네트워크 용어 및 프로토콜 프로세스 정리
문제) Ethernet / ARP / IP / TCP / UDP 각 프로토콜의 헤더의 형태 정리.
1. Ethernet Protocol(2계층) : 네트워크에 연결된 각 기기들이 가진 고유번호 MAC 주소를 이용하여 상호간 데이터를 주고 받을 수 있도록 만들어진 기술
a. Preamble : 101010...으로 시작하여 마지막 1byte를 ..101011로 마무리하여 header가 시작됨을 알리는 부분
b. Destination Address : Ethernet은 2계층 protocol로써 사용되는 Address는 각 LAN card의 고유번호인 MAC Address가 들어가는데, 먼저 도착지 Address가 들어간다, 줄여서 DMAC또는 DA로 부른다.
c. Source Address : 위와 같은 이유로 MAC Address가 들어가며, 도착지 Address는 SMAC 또는 SA라고 부른다.
d. Type : Ether Type code라 불리며, 상위계층의 protocol type이 명시 되는 부분이다. IP(Internet Protocol)을 사용하는 경우에는 0x0800, ARP(Address Resolution Protocol)의 경우 0x0806 등 이 들어가며, https://en.wikipedia.org/wiki/EtherType 여기에서 Ethertype을 확인 할 수 있다.
e. Payload : 3계층에 들어가는 모든 데이터를 포함한 부분을 말하며, 최대 1500byte의 용량을 가질 수 있다. 즉, 위 Payload는 흔히 말하는 Packet(패킷: 3계층의 PDU[Protocol Data Unit]단위를 말한다.)과 동일하다 볼 수 있다.
f. FCS : Frame Checksum Sequence, 오류체크를 위한 값, Header부터 Payload까지 scs32알고리즘을 사용하여 계산한 값.
2. ARP(3계층) : Address Resolution Protocol, Ethernet Protocol사용시 필요한 MAC Address가 IP Address와 일치되는 정보가 없을때, 먼저 대상 MAC주소를 확인 하기 위해 사용되는 Protocol, Header의 크기는 일반적으로 28byte(Ethernet환경에서)이다.
a. Hardware Type(Htype) : ARP가 동작할 Network환경 정보. ex)Ethernet 0x0001, IEEE802(wifi)0x0006, Seriel 0x0014 etc.
b. Protocol Type(Ptype) : 논리적 주소 종류 ex)IPv4 0x0800
c. Hardware Address Length : 지정된 물리적 주소값의 크기 ex)MAC 06
d. Protocol Address Length : 지정된 논리적 주소값의 크기 ex)IPv4 04, IPv6 06
e. OPcode : ARP packet의 종류
f. Sender(Source) Hardware Address : 보내는 사람의 MAC 주소(6byte: 48bit)
g. Sender Protocol Address : 보내는 사람의 논리적 주소(IP) 4byte:32bit)
h. Target(Destination) Hardware Address : 받는 사람의 MAC 주소
i. Target Protocol Address : 받는 사람의 논리적 주소(IP)
3. IP(3계층) : Internet Protocol, Packet을 지정된 목적지까지 전달하는 역할을 담당, IP 주소에 따라 네트워크간 전송경로를 제어하며, 비연결 지향적, 비 신뢰성, 종단간 연결을 보장하는 특징이 있다.
a. Version : IP 버전 정보, 현재는 IPv4만 사용되므로, 04로 고정되나, IPv6가 발표되며 별도의 프로토콜 사용.
b. IHL : IP Header Length, IP Header의 크기를 명시하며, 4bit로 표기 ex) 4면 16byte, f면 60byte. (최대 60byte)
c. Different Service(DS) : 데이터의 우선순위 표시 -> Router에서 우선순위를 확인하고 Routing 처리함. ex) D: 지연, T: 처리율, R: 신뢰성
d. Total Length(TL) : IP Packet(IP header + Payload)의 전체 크기, IP Packet 의 최대크기는 MTU(Maximum Transmission Unit) 값을 가짐, 최소 68byte~ 최대 2^16-1byte의 값을 가짐.
e. Identifier : IP 계층에서 단편화(Fragmentation)가 시작되기 전 원본 데이터 식별 값이며, Random Number가 주어지고 다음 데이터에는 +1의 값이 주어진다.
f. IP Flags : 단편화 유무를 체크하는 필드. X,D,M 3bit로 표기된다.
X: 사용되지 않는 bit
D: 단편화 유무 확인, 단편화 할 수 있는 경우 1, 할 수 없는경우 0
M: 단편화 마지막 조각이면 0, 추가로 조각이 있는 경우 1
g. Fragment Offset : 단편화된 데이터의 순서를 나타내기 위한 필드, 13bit의 공간을 가지나, MTU 최대크기는 1500byte을 넘지않지 않는 선에서 IP header 20byte를 제외한 1480byte 혹은 520byte 로나누어서 데이터 전송을 한다.
h. TTL(Time To Live) : Network 환경에서 Packet이 생존할 수 있는 시간 표기, Router를 통과 할 때마다 1씩 감소되어, Network Looping 현상을 방지하기 위함.
i. Protocol : Payload에 포함된 Protocol 표기. ex)TPC, UDP, ICMP etc.
j. Header Checksum : IP header의 변조여부를 확인 하기 위한 값. Header를 word단위(2byte)로 checksum
k. Source IP Address : 출발지 IP 주소
l. Destination IP Address : 도착지 IP 주소
m. IP options : Option 부분은 IP header의 필수 부분이 아니며, 통신 그자체에는 관여 하지 않으나, 유용한 제어/시험/디버깅 등 이 가능. 현재 드물게 사용되거나 사용되지 않음.
4. ICMP : Internet Control Message Protocol, 인터넷 제어 메시지. 네트워크 관리 및 오류 보고에 사용됨. IP의 비 신뢰성, 비 연결성의 단점을 보완하고자 사용되는 IP Supported Protocol. IP보다 상위에 있는 3단계 Protocol이며 특정 프로그램에 호출되었을때 Message형식으로 정보 알림
a. Type : ICMP중에 아래와 같이 여러 타입의 종류가 있으며, ping의 경우 요청은 8, 응답은 0번을 사용하며, 나머지 번호들은 Error Message로 사용 된다.
b. Code : 위의 Type종류중 3, 4, 11과같이 Code값이 있는경우 Code를 넣어주어야 하며, 이외 Code값이 없는 경우에는 Null값이 들어간다.
c. Checksum : ICMP header의 오류값을 검사하기 위한 값.
d. Other Message Specific Information : 메시지의 종유에 따라 필드 구성이 달라지며, 추가로 필요한 정보가 지정 됨. MTU 최소 단위를 마추기 위해 쓰래기 값을 채우기도 함.
5. TCP : Transmission Control Protocol, 데이터 전달의 신뢰성을 보장.
연결지향 : 데이터를 전달할 논리적인 연결을 먼저 구성. 연결 설정 -> 데이터 전송 -> 연결종료
신뢰성 보장 : 순차적 데이터 전송, 확인응답 및 재전송
흐름제어 : 데이터 전달에 지연 현상이 발생했을 때 데이터양 조절 ->Sliding Window