요즘 네트워크 관리사 자격증을 따기 위해 기초부터 다시 공부하는 중이다.
네트워크는 정처기 공부를 하던 시절 무작정 외워서 그런지 실무랑 이론이 따로 놀았는데
기초부터 다시 공부하니 이해가 더 잘 가게 되는 것 같다.
공부하는 중이라 두서없이 기억나는데로 핵심만 정리해보았다.
Network - 네트워크 관리사 2급 필기 요약
OSI 7 Layer & TCP/IP 4 Layer
네트워크 프로토콜은 실무적으로는 4계층(TCP/IP), 논리적으로 7계층(OSI 7 Layers)으로 나뉘어 진다.
응용 - 응용
표현 - 응용
세션 - 응용
전송 - 전송
네트워크 - 네트워크
데이터링크 - 네트워크 인터페이스
물리 - 네트워크 인터페이스
OSI 7 Layer
7계층을 비교가능하고 깔끔하게 정리해보았다.
Layer | name | data 단위 | 장비 | 프로토콜 |
7 | Application | 메시지 | - | HTTP, FTP, DNS, SNMP, Telnet, SMTP |
6 | Presentation | 메시지 | - | SSL, TLS |
5 | Session | 메시지 | - | NetBIOS, PPTP |
4 | Transport | 세그먼트(TCP), 데이터그램(UDP) |
Gateway | TCP, UDP |
3 | Network | 패킷 | Router | IP, ARP, ICMP, IPSec, X.25 |
2 | Data Link | 프레임 | Bridge, Switch | PPP, ARP, Ethernet, HCLC, LAPB, PAPD |
1 | Physical | 비트 | Repeater, Hub | Ethernet, USB, 블루투스, IEEE802.11, RS-232C, X.21, V.21 |
내가 느낀 계층의 특징은 역할을 중점으로 이해하였다.
이어달리기처럼 앞 주자(계층)와 뒷 주자(계층)의 단어(data)가 같아야 하는 것이다.
- 데이터링크 계층은 정확한 데이터를 전달해야 한다. 오류제어, 흐름 제어 등의 온갖 수단을 다 써서 정확한 데이터가 전달되는 게 최우선 목표이다. **접속된 기기 사이의 통신(point to point)
- 네트워크 계층은 데이터를 쪼개 패킷을 만들어 목적지까지 전달하는 역할이다. 모로가도 서울만 가면 된다고 받은 데이터를 목적지까지 잘 배송하면 된다.
- 전송 계층은 패킷을 순서대로 잃어버리지 않고 다음 주자에게 전달해줘야 한다. 그래서 패킷순서나 흐름, 오류 수정에 대한 부분을 신경쓴다. 여기서 신뢰성, 정확성 단어가 나온다. **다중화(N:N)
- 세션 계층은 패킷 전달의 개념에서 나아가 시스템, 프로세스 간 연결 개념으로 나아간다. 통신 시스템 간, 대화제어, 연결 설정, 프로세스 간 동기화 및 동기제어 기능을 수행한다.
- 표현 계층은 최전방인 응용 계층으로 보낼 데이터 번역기의 역할을 한다. 세션에서 받은 데이터를 암호/복호화, 압축, 구문 변환(아스키) 등을 변환해서 → 응용 계층으로 보낸다.
- 응용 계층은 보여주는 부분(최전방)의 통신을 다룬다. 사용자가 네트워크에 접근할 수 있는 인터페이스와 서비스를 제공한다.
Frame vs Packet vs Segment
네트워크 통신을 하기 위해서는 데이터를 담은 택배 상자를 준비해야 한다.
헤더(택배스티커) + 데이터(페이로드) 이런 식으로 구성이 되있다.
NASA의 직원에게 우주정거장으로 택배를 보내야 한다고 가정해보자
국내 택배 >>> 해외 택배 >>> 우주정거장 택배로
택배상자는 국경을 통과할 때마다 표준에 맞게 포장해서 덮어씌워서 보내줘야 반송이 안 된다.
택배 용어가 각 나라마다 다르듯이 데이터 단위도 각 계층별로 다르게 불린다.
Frame 은 DataLink 계층에서의 데이터를 말하고
Packet 은 Network 계층에서의 데이터를 말하고
Segment 은 Transport 계층에서 데이터를 말한다. (TCP인 경우)
프로토콜이란
원거리에 있는 기계 사이에 정확한 데이터 송수신을 위한 통신규약이다. 언어도 다르고 나라도 다른데 우편 서비스는 전세계 통일이다.
이와 같이 네트워크에서도 다양한 기기들 사이에서 통신하려면 규약이 정해져 있다.
단편화 | 전송 블록을 같은 크기로 나눔 |
재합성 | 수신측에서 단편화된 데이터를 합쳐서 복원 |
캡슐화 | 아무 프로토콜에서도 사용할수있는 블록이 될 수 있도록 제어정보 추가, (사용자 정보 앞뒤 부분 헤더와 트레일러를 부가) |
흐름제어 | 데이터 양, 통신 속도 등 수신 측의 처리 능력을 초과하지 않도록 제어 |
오류제어 | 오류 등 검출 & 정정 |
순서제어 | 데이터 순서대로 수신측에 전달 |
연결제어 | 비연결성, 가상회선을 이용한 통신로 개설, 유지, 종료 |
주소지정 | destination addr, source addr 처럼 정확한 주소 지정 |
동기화 | 두 통신 개채간의 상태를 일치 |
다중화 | 한 통신로를 여러 가입자들이 동시에 사용 (multiplexing) |
프로토콜 기본요소
구문(Syntax) - "데이터의 형식이나 부호화 및 신호 레벨을 규정한 것"
의미(Semantic) - "전송의 조작이나 오류 제어를 위한 제어 정보에 대한 규정"
순서(timing) - "접속되어 있는 개체 간의 통신 속도의 조정이나 메세지의 순서 제어 등을 규정"
UDP (User Datagram Protocol)
UDP는 전송계층의 비연결성 프로토콜로 IP를 가지고 연결된 포트 기반으로 통신을 하게 된다.
비연결성 프로토콜이라 불친절하다. 하지만 그만큼 빠르다.
패킷 순서가 보장이 안되고, 손실의 위험이 있어 신뢰성이 낮다.
오류나 에러 검사를 굳이 하지 않아도 되는 데이터를 보낼 때 딱이다. 예를 들면 채팅이나 메신저 등의 실시간 서비스 등에 사용하면 좋다.
헤더는 생각보다 간단하다. 쉬운만큼 신뢰성이 낮다. (최소한의 오버헤드)
동영상 스트리밍 서비스 전송에 많이 사용
TCP (Transmission Control Protocol)
전송 계층의 연결성 프로토콜로 친절한 녀석이다. 가상 회선 방식을 사용하며, 데이터는 세그먼트라고 불린다.
상대방한테 데이터를 받았는지 물어봐주고 못 받았으면 다시 전송을 해주거나, 필요한 만큼만 보내주는 센스를 겸비한 녀석이다. (슬라이딩 윈도우 방식)
신뢰성이 높은 만큼 UDP 보다 훨씬 복잡하다. 그리고 느리다. 그래서인지 무조건 연결이 되었는 상태여야만 하며 일대일 통신(Point to Point)만 가능하다.
- Source Port / Destination Port : 세그먼트의 출발지와 목적지를 나타내는 필드
- Sequence# : 전송하는 데이터의 순서
- Acknowledge# : 수신이 예상하는 다음 시퀸스#
- Flags : 비트 플래그이며 세그먼트의 상태
- → URG(긴급, 최우선) ACK(확인) SYN(요청) FIN(완료) RST(리셋) PSH(푸쉬)
- Window Size : 한번에 전송할 수 있는 데이터의 양
- Checksum : 송신 중에 발생하는 오류를 검출하는 값. (값을 대조해봄)
3 way Handshake
TCP를 사용하려면 무조건 서로가 연결이 되있어야 한다.
그러기 위해 네트워크를 하기전 서로 통신할 준비가 되었는지 안전빵으로 확인한다. (일종의 테스트 통신이랄까)
이걸 3 way Handshake 라고 한다.
간단하게 보면 그림과 같다.
Client → 서버로 SYN 플래그를 헤더에 담아보낸다.
서버에서 → Client로 잘받았다고 SYN + ACK 플래그를 보내준다.
Client → 서버로 확인 답장격인 ACK 를 보내주면 드디어 준비된다.
좀 더 깊숙히 들어가보면 TCP 의 state 와 seq#, ack# 가 있다.
Client → 서버로 SYN 플래그를 헤더에 담아보낸다.
+ 이때 seq# 도 같이 보내지는데 랜덤으로 생성된다.
서버에서 → Client로 잘받았다고 SYN + ACK 플래그를 보내준다.
+ 서버 측의 seq# 도 랜덤으로 생성된다. ack# 도 보내지는데 seq# + 1 이다.
Client → 서버로 확인 답장격인 ACK 를 보내주면 드디어 준비된다.
+ 여기서의 seq# 는 직전 응답의 ack# 과 같으며, ack# 는 직전 seq# + 1 이다.
TCP State
서버는 항상 listen 상태여야 하며 수동적(passive)이다.
클라이언트는 요청을 하게 되면 active open 을 하며 closed → syn_sent 상태로 가게 된다.
syn과 ack 가 난무하는 3way handshake 가 끝나면 클라이언트와 서버는 둘다 established 상태가 되는데
그제서야 제대로된 통신을 시작할 수 있게 된다.
TCP vs UDP
둘을 보기 쉽게 비교하여 보았다.
TCP | UDP | |
연결방식 | 연결형 | 비연결형 |
패킷 교환 방식 | 가상 회선 방식 | 데이터 그램 방식 |
전송 순서 | 전송 순서 보장 | 전송 순서 변경 가능 |
수신 여부 확인 | 수신 여부 확인 | 수신 여부 비확인 |
통신 방식 | 포인트 투 포인트 (Point To Point) | N:N 통신 |
신뢰성 | 높다 | 낮다 |
속도 | 느리다 | 빠르다 |
프로토콜 | FTP(20, 21) SSH(22) Telnet(23) HTTP(80) SSL(443) POP3(110) IMAP(143) NNTP(119) |
DNS(53) DHCP(67, 68) TFTP(69) SNMP(161, 162) |
Port
3계층에서 IP 였다면 4계층에서는 port 를 사용한다
Well-known port | Registered port | Dynamic Port |
FTP 20, 21 SSH 22 TELNET 23 DNS 53 DHCP 67,68 TFTP 69 HTTP 80 HTTPS 443 |
오라클DB 1521 MySql 3306 MS원격데스크탑 3389 |
49152 - 65535 번까지 아무거나 사용가능 (사용자) |
포트확인을 위해서는 netstat -ano 명령어로 확인 가능하다.
작업관리자에서 PID를 검색해보니 chrome 이다.
크롬(내컴터의 포트#3080인 프로세스) ↔ 네이버IP 로 연결해서 찾아가본 프로세스:443 번 포트가 연결되있다.
IP 란
IP주소 (IP Address)는 인터넷 상에서 통신하기 위해 각각의 컴퓨터 및 통신장비에 부여하는 고유한 주소를 의미한다.
IPv4와 IPv6 가 있다. (IPv6는 IP주소부족을 해결하기 위해 혜성처럼 등장했다)
IP는 내부 ip 와 외부 ip 두 종류가 있는데,
2계층에서 사용되는 내부 ip 가 있고, 3계층으로 갈 때 라우터를 통해 외부(WAN)로 퉁쳐서 묶어 나가는 외부(공인) ip 이다.
그 외부 네트워크 대역을 엮는 것은 라우터이다. → WAN(공인아이피) to WAN(공인아이피)
네트워크 세팅을 보면
- ipv4: 172.17.100.49 → 나의 내부 ip 가 있고
- subnetMask : 255.255.255.0 → 네트워크 대역을 sub 단위로 잘게 쪼갠다.
- router: 172.17.100.1 → 외부로 나갈때 공인 ip를 할당한다.
IPv6
- 총 128 비트 이고 16비트씩 8부분으로 16진수로 표기한다 (IPv4 의 주소공간을 4배 확장)
- 라우터의 부담을 ↓ 네트워크 부하를 분산
- 모바일IP, IPSec 프로토콜 사용이 가능 / 인증 및 보안 기능이 강화 / 자동 주소 설정기능
- 확장 헤더를 사용해 안정된 옵션을 사용가능 (헤더 자체도 좀더 단순)
- 0000 인부분은 생략가능 (: : :)
2001:0DB8:1000:0000:0000:0000:1111:2222 → 2001:0DB8:1000::::1111:2222
유니캐스트 | 애니캐스트 | 멀티캐스트 |
한개 노드에 단일 목적지를 지정하는 주소형태 | 복수개 인터페이스에 주소부여 가능한 형태로 된 패킷은 노드 그룹등 중 하나에만 전달 | 여러개 노드가 수신할 수 있는 특정 주소로 보내진 패킷은 그룹의 모든 노드에게 전달 |
**Hop Limit : 데이터그램의 생존기간
IPv4
- 총 32비트이고 8비트씩 4부분(옥텟)으로 10진수로 표시된다.
- 네트워크 주소와 + 호스트 주소로 이루어져 있다.
- 신뢰성은 없다. 전달만 한다 (중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 수도 있다)
** TTL(Time To Live)
TTL 은 직역하면 패킷이 살아있는 시간을 의미하는데 시간이라기보다는 라우터의 홉(Hop) 수를 의미한다.
라우터의 한 홉(Hop) 을 통과할 때마다 TTL 값이 1씩 감소
Ping(접근)과 Tracert(경로) 유틸리티는 특정호스트 컴퓨터에 접근을 시도하거나 그 호스트까지의 경로를 추적할때, 이 값을 사용한다.
(패킷의 루핑을 방지해서 미아가 되지 않도록 해주는게 킬포 )
IPv4 클래스
클래스 | 범위 | bit | 설명 |
A | 0.0.0.0 - 126.255.255.255 |
|
국가나 대형 네트워크 |
B | 128.0.0.0 - 191.255.255.255 | 중대형 네트워크 | |
C | 192.0.0.0 - 223.255.255.255 | 소형 네트워크 | |
D | 224.0.0.0 - 239.255.255.255 |
|
IP 멀티캐스트 기능 수행 |
E | 240.0.0.0 - 247.255.255.255 | 실험용 IP |
IP 의 클래스, 네트워크 영역과 호스트 영역 알아내기
Q. 122.12.250.13
→ A클래스, 네트워크 영역: 122.0.0.0, 호스트 영역: 12.250.13
Q. 129.123.22.5
→ B클래스, 네트워크 영역: 129.123.0.0, 호스트 영역: 22.5
Q. 211.203.130.250
→ C클래스, 네트워크 영역: 211.203.130.0, 호스트 영역: 250
IP 의 네트워크 주소 구하기
Q. 211.203.50.130/26 의 네트워크 주소를 구하시오
1. 10진수로 표기된 숫자들을 2진수로 변환하자 ( / 아래 숫자는 제외)
2. /26 은 26개로 8비트씩 쪼개서 나열해주자
3. 두 주소를 같이 나열해보고 둘다 1이 있는 부분만 추려내보자
4. 네트워크 주소를 다시 10진수로 변환해주자
** 이진수 변환방법
데이터 패킷의 조각화
MTU (Maximum Transmission Unit)
- 데이터를 보낼 수 있는 최대 패킷의 크기를 말한다.
보내려는 데이터(payload)가 2400 이고 MTU 가 980일때
패킷을 구성할 때는 ipv4 헤더크기(20bytes)를 추가해줘야한다.
페이로드의 패킷크기는 980 - 20(IPv4 헤더) 인 960 이다.
IPv4 + Data
20 + 960 / 20 + 960 / 20 + 480 = (2400 + 60)
980 980 500 2460
참고로 그 뒤에
Eth(14) + ICMP(8) + { IPv4(20) + Data } → 얘네는 필수 값이고 Eth + ICMP 같은 나머지 애들이 붙는다.
NAT (Network Address Translation)
네트워크 주소 변환(Network Address Translation, 줄여서 NAT)은 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술이다
패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 체크섬(checksum)도 다시 계산되어 재기록해야 한다.
내부 망에서는 사설 IP 주소를 사용하여 통신을 하고, 외부망은 NAT를 거쳐 공인 IP 주소로 자동 변환한다.
ARP (Address Resolution Protocol) 란
같은 공간에서 통신하는 2 계층에서 벗어나 다른 네트워크 대역에 있는 컴퓨터들과 통신을 하기 위하고 싶다면 맥 주소를 알아내야 한다.
ARP 는 IP 를 통해 mac 주소를 알아내는 역할만을 하는 프로토콜이다.
** 스위치란
어떤 디바이스가 스위치에 연결되면, 스위치는 이 디바이스의 MAC(Media Access Control) 주소를 기록한다.
스위치는 MAC 주소를 사용해 어떤 디바이스가 외부 송출 패킷을 전송했는지, 전송된 패킷을 어디로 전달해야 하는지 파악한다.
ARP vs RARP
ARP 는 IP 를 이용해 상대방의 Mac 주소를 알아오는 프로토콜이라면
RARP 는 Mac 주소를 이용해 상대방의 IP 를 알아오는 기법이다.
ARP 헤더 살펴보기
Wireshark 로 ARP 을 뜯어보면 Ethernet 헤더가 맨 앞에 첨부되어 있다
(이더넷의 padding은 00000000000... 이런식으로 표현이 되는데 빈 공간을 채우기 위함이다)
Opcode 는 이 통신이 요청(1)인지 응답(2) 인지를 알려준다
who has 은 누군가 요청을 보낸 거고, TargetAddr 이 broadcast 이면 같은 네트워크 대역 안에 있는 모든 컴퓨터에게 보낸 것이다.
Mac 주소는 모르기 때문에 000000 을 있는 힘껏 집어 넣어서 온다. ** 스위치가 broadcast 를 통해 모든 맥주소에게 보낸 요청이다
is at 으로 TargetAddr 에 맥 주소를 동봉해 응답을 보내준다
- 요청 헤더
- 응답 헤더
ICMP (Internet Control Message Protocol)
오늘은 ICMP 프로토콜에 대해 배워보았다.
ICMP 프로토콜은 네트워크 통신을 할 때 운영체제로부터 오류 메시지를 알려주는 프로토콜이다ㅔㄹ.
오류가 나면 어떤 오류인지 Type 과 Code 로 파악할 수 있게 된다.
Type | name | desc |
0, 8 | echo Reply/Request | 응답과 요청 (디버깅 목적) |
4 | Soure Quench | 송신측 데이터 전송속도 늦춰달라는 메시지. 전송시 중간장비(middleware)에 대한 혼잡상황 발생한 경우 패킷 손실/파괴 되는 경우 메시지 |
5 | Redirection | 원격으로 라우팅 테이블내 주소 변환 가능,더 나은 gateway가 있으면 경로변환 요청 |
3, 11 | Destination Unreachable | 보내긴 했으나 목적지 도달 못했다. (클라이언트 단에서 확인필요) |
Time To Live Exceeded | (목적지까지) 보내긴 했으나 응답이 없어 시간초과로 인한 에러 (서버 단에서 확인필요) |
|
12 | Parameter Problem | 패킷 전송시 IP 헤더에서 발생한 에러 |
13, 14 | Time Stamp Request/Reply | 목적지까지 지연시간 측정하는 메시지 |
17, 18 | Address Mask Reuqest/Reply | 서브넷 마스크 알고자하는 경우 |
IGMP(Internet Group Management Protocol)
- IGMP는 IPv4를 사용하는 네트워크에서 멀티캐스팅을 설정하는 데 사용되는 프로토콜이다.
- 여러 장치가 하나의 IP 주소를 공유하여 모두 동일한 데이터를 수신할 수 있다.
- TTL 이 제공되는 비대칭 프로토콜이다.
SMTP(Simple Mail Transfer Protocol)
- 단순 이메일 송신시 이용되는 TCP 응용 프로토콜이다
- 우편함에 → ASCII 문자메시지를 전송한다. (SSL 로 암호화)
- #25
IMAP(Internet Access Message Protocol)
- IMAP은 서버로부터 이메일 메시지를 관리하고 수신에 사용되는 프로토콜이다
- 서버에 메시지를 저장하고 여러가지 디바이스에 이 메일들을 동기화한다
- #143
POP3(Post Office Protocol3)
- POP3는 IMAP과 마찬가지로 이메일을 받아오는(수신) 프로토콜이다.
- POP3는 서버로부터 이메일을 가져오고 가져온 메일이 확인되면 서버로부터 이메일을 삭제한다.
- #110
SNMP(Simple Network Management Protocol)
- TCP/IP 를 사용하는 망 관리 프로토콜이다
- UDP 데이터그램 방식 사용해서 전송 (보안 ↓ / 시스템 관리 ↓)
- IETF RFC1157 표준 권고안
- 4가지 기능만 수행 - GET / GET NEXT / SET / TRAP
- 비동기식 요청/응답 메시지 프로토콜이다
- #161,162
DNS(Domain Name System)
- DNS는 HTTP , FTP , SMTP 등과 달리 사용자가 직접 요청하는 프로토콜이 아니다.
- 웹사이트 주소를 치면 브라우저가 DNS 서버에게 요청을 보낸다.
- UDP 와 TCP를 둘다 사용할 수 있는 프로토콜인데, default 가 UDP 이고, TCP는 패킷이 512 bypes 이상인 경우 사용한다.
- #53
Ethernet 이란
2 계층인 Ethernet 으로 동일 네트워크 대역에 있는 친구들과 통신을 할 수 있다.
맥 주소(MAC Adress) 는 각각 기기마다 내장된 고유의 주소이다.
(예전에 피씨방에서 스타크래프트할 때, 게임 내 Ethernet 이라는 옵션을 선택해 옆자리 친구들과 플레이를 했던 기억이 난다.)
이더넷 프로토콜의 구조는 다음과 같다
- Destination Address ( 도착지 맥주소 )
- Source Address ( 출발지 맥주소 )
- Ethernet Type ( 이더넷 타입 )
- Payload ( 데이터 페이로드 ) → 데이터 타입 + Data
내부 네트워크 대역을 엮는 것은 스위치 이다. → LAN(맥주소) to LAN(맥주소)
내부(LAN)에서 외부(WAN)의 세계로 나갈때는 → Router 을 통해 나간다
통신망 - 토폴로지 (Topology)
컴퓨터 네트워크의 요소들(링크, 노드 등)을 물리적으로 연결해 놓은 방식을 말한다.
종류 | 특징 |
트리형 | 분산 처리 시스템을 구성, 통신선로가 짧다 |
링형 | 양방향으로 접근할 수 있으니 통신회선 장애에 대해 유연하고, 근거리 통신망에서 사용한다. |
스타형 | 호스트 중심으로 된 중앙집중형, 중앙 컴퓨터 오류시 전체 시스템 마비 |
망형 | 모든 단말기 - 단말기들이 연결되어 있고, 공중데이터 통신망 주로 사용, 노드 연결성이 높다 |
버스형 | 한 통신회선에 여러 단말기들을 연결, 단순한 구조, 단말기 추가삭제 쉽지만 회선 오류시 전체 시스템 마비 (터미네이터로 시그널 반사를 방지) |
교환망
회선 교환망 : 회선자체 교환 / 팩시밀리로 전송 / 시분할 교환방식, 공간분할 교환방식 / 연결
메시지 교환망 : 메시지단위 교환 / 축적방식으로 전송 (응답시간 느림, 실시간 데이터에는 부적합)
패킷 교환망 : 메시지를 패킷 단위로 전송 / 데이터 전송 good / 전송량 제어 및 속도 변환, 재전송, 블로킹 현상 x / 비연결성
데이터 그램 방식 | 가상 회선 방식 |
• 특정 경로 설정 없이 노드들의 트래픽상황 감안해서 전송하고 경로 배정은 독립적으로 이루어진다. • 적은 양 데이터 전송시 good (UDP 에서 사용하는 방식이라 친 - 근) |
• 논리적 가상회선 꾸리고, 패킷들이 순차적 전송되는 방식 (안정성, 신뢰성, 순서보장) • 여러 사용자가 하나의 통신회선을 공유 → 회선이용률이 높다. (TCP 에서 사용하는 방식이라 친 - 근) |
LAN(근거리 통신망)
근거리 고속통신 ok, 경로설정 필요 x, 확장성/재배치 good, 오류 발생률 ↓
장비 - 라우터, 브릿지, 허브, 리피터, 스위치, 게이트웨이
✔️ CSMA/CD 방식
데이터 충돌을 막기위해 송신 데이터가 없을 때만 송신,
충돌이 감지되면 STOP → 잼 신호를 전송 "충돌🚨 충돌🚨"
(일정시간 후) "이제 해결됬겠지?" → 재전송
- 한 터미널에 이슈가 있어도 영향받지 x 모든 제어기는 동등한 엑세스 권한을 가짐
- 충돌은 동시 데이터 전송시에 발생한다.
✔️ 토큰 패싱 방식
토큰이라는 제어비트를 송신하고 해당 토큰을 확보해서 통신을 하는 방식이다.
제어 신호가 각 노드들을 순차적으로 옮겨가며 데이터를 전송하는 방식이다.
- 충돌이 발생하지 않음, 성능이 괜찮음
- 설치비용이 비싸고 복잡함, 토큰 분실 가능성
토큰 링 | 토큰 버스 |
모든 노드에 물리적인 링(Topology)이 연결, 토큰이 링을 따라 순차적 전송 |
모든 노드에 버스형 토폴로지 이용, 케이블 양 끝에 신호 바인딩 막기위한 터미네이터 장치 사용 |
LAN 표준
IEEE(국제표준위원회)라는 곳에서 만든 LAN을 표준으로 사용하라고 개발된 기술이다.
IEEE 802.1 - 상위 계층 인터페이스와 MAC BRIDGE
IEEE 802.2 - LLC(Logical Link Control)
IEEE 802.3 - CSMA/CD(Carrier Sense Multiple Access/Collision Detection)
IEEE 802.4 - 토큰버스(Token Bus)
IEEE 802.5 - 토큰링(Token Ring)
IEEE 802.6 - MAN(Metropolitan Area Network)
IEEE 802.7 - 광대역(Broadband) LAN
IEEE 802.8 - 광섬유(Fiber Optic) LAN
IEEE 802.9 - 종합 데이터 & 음성 네트워크
IEEE 802.10 - 보안 (Security)
IEEE 802.11 - 무선 네트워크(Wireless Network), CSMA/CA
표준규격이라니 궁금해서 확인해보았다.
와이파이 네트워크 인터페이스는 는 802.11 로 세팅이 되어있고 실제 연결된 와이파이도 세팅이 잘 되어있다.
** WPAN
단거리 통신에 사용되는 개인용 무선 네트워크로 블루투스(Bluetooth) 및 지그비(Zigbee)가 대표적이다.
낮은 가격, 낮은 전력의 무선 네트워크 제품에 사용되며 IOT분야의 핵심 기술이다.
스마트홈 통신에 사용되며 10m 이내의 단말기들을 무선으로 연결하는 네트워크 영역을 말한다
** SDN(Software Defined Networking)
SDN은 라우터 및 스위치를 사용하여 네트워크 트래픽을 제어하는 기존 네트워크와는 달리
물리적인 설정을 하지 않고 가상 네트워크를 생성 및 제어하거나 소프트웨어가 포함된 기존 하드웨어 네트워크를 제어한다
에러 종류와 원인
1. 감쇠현상 | 전송신호가 전송매체를 통과하며 신호세기가 약해짐 (아날로그 - 증폭기 / 디지털 - 리피터) | |
2. 지연왜곡 | 신호전달이 주파수에 따라 속도가 달라져 신호 손상 유발 | |
3. 잡음 | 열잡음 | 모든 진동 스펙트럼을 포함한 잡음 (백색잡음 / 열의 온도에 의해 발생) |
충격잡음 | 순간적인 높은 진폭의 잡음 (기계적인 충격, 낙뢰같은 자연현상) | |
누화잡음 | 상호인접한 전송매체의 전자기적 상호 유도 작용으로 인한 잡음 | |
상호변조잡음 | 서로 다른 주파수들이 똑같은 전송매체를 공유할 때 주파수 신호차이로 발생 | |
4. 에코 | 선로상 임피던스의 변화가 있을 때, 약해진 신호가 송신 측으로 다시 돌아옴 | |
5. 위상지터 | 연속적으로 위상이 변해 편차가 커지며 발생 |
전송 에러 제어 방식
1. 반복전송방식 | 송신측 → 동일 데이터를 2번이상 연속 전송 / 수신측 → 수신된 데이터 비교 오류 여부 확인 |
2. 궤환전송방식 | 송신측으로 궤환된 데이터를 비교, 검사 ( 2번이상의 전송 필요 - 전송요량의 낭비발생) |
3. 전진오류수정(FEC) | 정보비트 + 부가코드 함께 전송하면 / 수신측 → 이 부호로 오류 검출, 수정 (헤밍코드, 순환잉여검사 CRC) |
4. 후진오류수정(BEC) | 전송과정에서 오류발생시 수신측에서 재전송 요구 (ARQ) |
에러 검출 방식
패리티 검사 | 전송되는 문자마다 + 1개 패리티 비트 추가하여 EVEN / ODD 검사방식 |
순환중복검사 (CRC) |
블록마다 + 검사용 코드 추가해서 전송, 데이터를 연속하여 전송하는 경우 → 집단오류검출 위해 사용 주로 동기식 전송에서 주로 사용 |
해밍 코드 방식 | 에러 검출 & 교정 가능한 코드, 자기정정부호의 하나로 비트 착오를 검출 → 1비트 착오 정정 고속 동기식 전송에서 사용 |
에러 수정 방식 (ARQ)
정지 대기 ARQ (STOP N WAIT ARQ) | 송신 측 → 블록 전송 후, 수신측의 응답(ACK / NAK)을 기다리는 방식 |
GO-BACK N ARQ | 송신 측 → 여러 블록 연속해서 전송 후, 수신측에게 → NAK 받으면, 에러 발생한 블록 이후 모든 데이터 재전송 |
Selective ARQ | 송신 측 → 여러 블록 연속해서 전송 후, 수신측에게 → NAK 받으면, 에러가 발생한 블록만 선택하여 재전송 |
Adaptive ARQ | 전송효율 높이기 위해 블록 길이를 동적으로 변경하여 전송 |
** RAID
RAID0 : 스트라이핑, 분산 저장되나 다른 디스크 손실시 복구x
RAID1 : 미러링모드 구성, 디스크의 데이터는 다른 디스크에 백업, 손상시 백업데이터 사용(절반밖에 사용못함)
RAID2 : ECC 로 복구 가능
RAID3 : 패리티 비트를 따로 두고, 사용해서 복구
RAID5 : 각자의 뱅크에 패리티비트를 둔다
라우팅
- 라우터를 사용해 패킷의 최적의 목적지 경로를 설정해주는 방법이다. (IP의 Destination Addr 를 확인)
- 다른 라우터들과 경로 정보를 주기적으로 교환하면서 목적지까지 패킷을 전송
- 이 정보들을 라우팅 테이블에 저장
정적 라우팅 | 동적 라우팅 |
• 경로가 고정된 라우팅 • 관리자가 수동으로 테이블 매핑 → 장애 발생시 수동으로 재설정 • 소규모 네트워크 적합, 변경이 크지 않은 환경에 적합 |
• 경로가 동적으로 변경되는 기법 • 망간 최적의 경로는 Routing Metric 으로 결정 • 라우팅 테이블 자동 업데이트 → 관리자 설정이 불필요 • 경로장애 발생시 유연한 대처 • 초기 설정 작업이 복잡, 라우팅 테이블이 동일해야 함 • 메모리 자원의 소모가 큼 |
라우팅 프로토콜
거리벡터 알고리즘 | |
라우팅 테이블 유지할 때 목적지 거리를 라우터 수(Hop Count) 로 계산 | |
RIP(Routing Information Protocol) | BGP(Border Gateway Protocol) |
• 라우터 홉수에 따라 최단 거리를 결정하는 프로토콜 • 홉수가 최대 16 이므로 대규모 네트워크에는 부적합 • 라우터 정보 수명이 짧아→ 외부 라우터와 일정시간 교신 끊기면 정보 삭제 • 가까운 호스트에게 30초마다 전체 라우팅 테이블 전송 |
• 대표적인 EGP 프로토콜 • TCP포트 이용 → 신뢰, 연결지향 • 루프 발생 x • AS 가 다른 AS 들과 연결된 경우 사용 |
링크 상태 알고리즘 | |
- 라우터 연결 속도 기준으로 목적지 거리 계산 - 네트워크에 변화가 있을 때만 정보 교환 - 자신의 현재 상태(State)를 알려줌 - 자율 시스템(AS) 을 위해 설계, 멀티캐스트 적용( 라우터 그룹끼리만 라우팅 가능 ) - 사용자 경로 지정 & 복수 경로 지정 ok - 알고리즘이 복잡해서 라우터가 부담을 느낌 - VLSM 지원 → IP 주소 낭비 x |
|
OSPF(Open Shortest Path First Protocol) | |
• 최저 cost 경로를 최적 라우팅 경로로 결정 • 네트워크가 변경이 되어도 컴버전스 시간이 짧고 라우팅 루프 발생x • AS 의 네트워크를 각 Area 로 나누고 Area 들은 다시 Backbone 으로 연결이 되어 있는 계층 구조이다 |
DNS 레코드
DNS 레코드에는 서버가 요청에 응답하는 방법에 대한 다양한 구문과 명령이 포함되어 있다.
해당 패킷을 받았을 때 어떤식으로 처리할 지 나타내는 지침 이 나와있다.
✔️ SOA(Start of Authority) 레코드
- zone 파일은(DNS 설정파일) SOA 레코드가 먼저 명시되어있다
- 도메인 영역의 등록 정보 내용이 저장
이름 | example.com | |
레코드 유형 | SOA | |
MNAME | ns.primaryserver.com | 영역에 대한 기본 이름 서버의 이름 |
RNAME | admin.example.com | 관리자의 이메일 주소 @ 대신 . 으로 표현한다 |
SERIAL | 1111111111 | 보조 영역이 zone 의 수정여부를 알 수 있다 |
REFRESH | 86400 | 보조영역이 → 주서버 zone 의 수정여부를 검사 (DNS변경이 잦으면 짧은 주기를 설정) |
RETRY | 7200 | 보조영역 → 주서버로 연결이 안될 때 재시도 주기 |
EXPIRE | 4000000 | 보조영역 → 주서버로 연결 못할 때 해당 도메인이 유효하지 않다고 여기는 접속 만료 시간 |
minimum / TTL | 11200 | 다른 NS가 현재 zone 정보를 가질 경우, cache 에 TTL을 저장 |
✔️ DNS 레코드
A | 해당 주소가 가지는 IP (호스트 이름을 IPv4 주소와 매핑) |
AAAA | IPv6 버전 A 레코드 |
CNAME | 별칭을 부여한 특정 도메인 주소 / 한 도메인 → 다른 도메인으로 리디렉션 (NS가 도메인 조회시, 이 레코드를 발견하면 → 첫 도메인 이름을 CNAME으로 대체) |
MX | 메일 주고 받긱 위한 서비스 레코드 (우선순위대로 여러서버에 메일을 전송하는 메시지 라우팅제공) |
TXT | 일반적인 텍스트 내용을 기록 (string) |
SOA | 도메인의 시작점 |
PTR | IP 주소에 대해 도메인 명을 매핑, Reverse zone 파일에서 사용 (역방향 조회) |
SRV | 비슷한 TCP/IP 서비스를 제공하는 다수의 서버 위치 정보 |
NS | 영역을 풀이할 수 있는 DNS 서버 목록 |
UINFO | 사용자 정보 |
MINFO | 메일박스와 메일리스트 정보 |
HINFO | 호스트의 CPU 정보와 운영체제 정보 |
**DNS 명령어
ifconfig /displydns : DNS cache 확인
ifconfig /flushdns : DNS cache 삭제
ifconfig /release : IP 해제
ifconfig /renew : IP 가져오기
ifconfig all : 모든걸 다보여줌
DNS 라운드 로빈
여러 대의 웹 서버는 자신의 공인 IP를 각각 가지고 있다.
브라우저에 해당 도메인 주소를 입력하면 → DNS는 도메인의 정보를 조회하고 → 여러 대의 서버 IP 리스트 중에서 라운드 로빈 형태로 랜덤하게 하나 혹은 여러개를 선택하여 다시 사용자에게 IP 를 알려준다
→ 결과적으로 다수의 사용자는 실제로는 여러대의 웹 서버에 나뉘어 접속하게 되면서 자연스럽게 서버의 부하가 분산되는 방식이다.
IDS vs IPS
IDS(Intrusion Detection System) | IPS(Intrusion Prevent System) |
침입 탐지 시스템 로그, 서명(Signiture) 기반의 패턴 매칭 실시간 탐지, 사후 분석 대응 - 오용 탐지 기법 : 새로운 유형 탐지 불가 - 비정상 탐지 기법 : 새로운 유형 탐지 가능 |
침입 방지 시스템 정책, 규칙 DB 기반 비정상 행위를 실시간 탐지 (세션 기반) 비싼 장비, 오탐 현상 가능성 |
후기
독감에 걸려서 정말 아팠는데 불굴의 의지로 시험을 치뤘다.
서울을 선택했고, 선린인터넷고등학교에서 총 50분간 50분제를 풀었다.
가져간 필기도구 + 지급되는 메모지 한 장을 사용하고 나갈때는 제출해야 한다.
시험장에 도착해서 블로그에 정리한 포스팅을 보며 마지막까지 편하게 시험을 치를 준비를 하였다.
1년치 기출문제를 깊이 공부했고, 유튜브 네트워크 강의, 포스팅 정리를 하며 공부하였다.
하지만 기쁨도 잠시... 🫠 곧 이어 다가오는 실기 ... 새발자는 과연 어떻게 준비할 것인가 🤔
ps. 다가오는 실기도 새발자와 함께 가봅시다 💕
Hoxy 저의 미흡한 포스팅이 도움이 되셨다면..? 5랜시간을 해메이다 학습에 도움이 되셨다면..?
광고한번만 눌러주시면 힘내서 더 열심히 포스팅하겠습니다! 감사합니다. (🙇♀️꾸벅) -새발자올림-
'OS & Network' 카테고리의 다른 글
Network - 빗버킷 22번 포트 우회하기 (SK 인터넷) (0) | 2023.06.30 |
---|---|
Network - 네트워크 관리사 2급 실기 (서비스 관리자) (0) | 2023.06.23 |
Network - 네트워크 관리사 2급 필기 / NOS 정리 (0) | 2023.05.16 |
웹 최적화 - 구글폰트 워닝 "The resource was preloaded using link preload but not used within a few seconds from the window's load event." (0) | 2023.03.27 |
npm 실행오류 - Cannot find module 'are-we-there-yet' (0) | 2023.03.16 |
댓글