IP의 데이터그램과 TCP 헤더
- IP 데이터 그램의 헤더
- VERS
4 비트 프로토콜 버전(현재 4)
- H.LEN
4비트 헤더 길이(32bit 길이)이고, 선택 사양과 Padding없이 20 Octet
- SERVICE TYPE(TOS : 서비스 유형)
어떻게 데이터 그램이 다루어져야 하는지를 나타냄
비트 | 값이 0 일 때 | 값이 1일 때 |
0 ~ 2 | 우선순위 |
|
3 | 보통 지연 | 지연 적음 |
4 | 보통 처리율 | 고속 처리율 |
5 | 보통 안정성 | 높은 안정성 |
6 ~ 7 | 예약 |
|
우선순위 | D | T | R | 0 | 0 |
▶ 서비스 유형 필드의 구조
- PRECEDENCE(우선 순위)
3비트이고, 데이터그램의 선행 순위를 정의하여 송신자가 각 데이터그램의 중요성을 나타내도록 함
- D/T/R 비트
- 데이터그램이 원하는 전송의 유형을 알려 줌
- D : 낮은 지연, T : 높은 처리율, R : 높은 신뢰성
- 전송 요구는 경로 설정 알고리즘에 대한 명령이 아닌 제인
- TOTAL LENGTH
- 헤더와 데이터 모두를 포함하는 데이터그램 내의 총 Octet수
- 216 = 65536 Octet이고, H.LEN을 빼면 실제 데이터 영역의 크기
- IDENTIFICATION(식별번호)
- 본래의 데이터그램을 절단하여 여러 개의 조각으로 메시지가 분류되는데, 이 조각들이 모두 하나의 데이터그램에서 절단된 것임을 알려주는 것
- 식별 번호는 하나의 수이며, 송신자가 생성
- FLAGS(플래그)
- 두 비트 DF(Don't Fragment)와 MF(More Fragment)는 데이터그램의 절단된 조각을 제어하기 위한 것
- DF 비트가 1로 되어 있다면, IP는 어떤 상황에서도 절단하지 않고는 전송이 불가능하다 하더라도 데이터그램을 절단하지 않음
- MF 비트는 데이터그램이 여러 조각으로 절단된 경우에 사용되며, 후속 조각이 있는지 없는지를 나타냄
- 필ㄷ의 첫 번째 비트는 사용하지 않음
- FRAGMENT OFFSET(세분화 오프셋)
- MF 비트를 사용하는 경우 조각 오프셋은 본래 데이터그램으로부터 현재 조각이 갖는 위치를 나타냄
- 목적지 호스트는 이 필드를 사용해서 본래의데이터그램을 정확하게 조합할 수 있음
- TIME TO LIVE(TTL)
- 1과 255사이의 양의 정수로, 카운터가 0인 경우 데이터그램은 버려지고 오류 메시지가 스스로 되돌려짐
- 데이터그램이 루프를 포함하는 경로로 영원히 이동하는 것을 방지
- TYPE(Protocol)
전송 계층에서 사용할 프로토콜의 번호를 기입하며 ICMP=1, TCP=6, UDP=17
- HEADER CHECKSUM
헤더 비트들의 체크섬 필드
- IP OPTIONS
특정 작업(네트워크 관리, 보안)에 관해서는 IP 프로토콜 헤더가 확장되어 옵션을 포함
- PADDING
선택 사양이 32비트 단위로 끝나지 않는 겨우 0 비트를 채워줌
- SOURCE/DESTINATION IP ADDRESS
송신자와 목적지의 IP 주소
- TCP 헤더
- 메시지 단위
- 데이터를 운반하는 메시지
- Acknowledgement
- 연결을 생성하거나 종료하는데 사용하는 2-Way Handshake 부분의 메시지
- SOURCE PORT
송신측 컴퓨터의 애플리케이션 구별
- TCP : FTP(20,21), Telnet(23), SMTP(25), HTTP(80)
- UDP : DNS(53), TFTP(69), SNMP(161)
- DESTINATION PORT
수신측 컴퓨터의 애플리케이션을 구별
- SEQUENCE NUMBER
보내는 데이터를 위한 참조로 세그먼트 내에 전달되는 데이터의 순서 번호
- ACKNOWLEGEGMENT NUMBER
수신된 데이터의 순서 번호
- HLEN
세그먼트 헤더의 길이를 정의하는 정수를 가지고 있음
- CODE BITS
- URG : 긴급한(Urgent) 데이터임을 표시
- ACK : 응답 번호를 표시
- PSH : 세그먼트 PUSH를 요청하며, 현재 세그먼트의 데이터가 즉시 응용 계층에 전달되어야 함
- RST : 연결을 재설정
- SYN : 순서 번호를 동기화 함
- FIN : 데이터 전송의 종료를 의미
- WINDOWS
흐름 제어를 위해 사용
- URGENT POINT
빨리 처리해야 할 페이로드(Payload)의 위치를 알려줌
- 3-Way Handshake
- 신뢰성 있는 연결의 성립과 종료를 보장하기 위하여, TCP는 3개의 메시지가 교환되는 3-Way handshake를 이용
- 동기화 세그먼트(SYN Segment)
연결을 설정하는 데 사용하는 3-Way Handshake의 메시지를 설명
- 종료 세그먼트(FIN Segment)
연결을 종료하는데 사용하는 3-Way Handshake의 메시지를 설명
- Acknowledgement(ACK)
각 방향에서 전송된 ACK는 연결이 종료되기 전에 모든 데이터가 도착했다는 것을 보장
- 3-Way Handshake에서는 양측이 SYN이나 FIN에 대한 각 ACK를 보내기 전에는 연결을 새로 연거나 닫지 않음
- 양 종단간 연결을 설정하기 위해 TCP는 임의의 32비트 연속 수의 생성을 요청
- 혼잡(Congestion) 제어
- 최근 패킷 손실은 하드웨어 오류보다 혼잡으로 인해 더 많이 발생
- 메시지 재전송이 혼잡을 더 악화시키므로, 패킷 손실에 의해 혼잡을 평가하고 재전송되는 데이터의 비율을 감소해야 함
- 메시지 손실이 발생할 때 마다 TCP는 혼잡 제어를 시작
- TCP는 데이터를 포함하는 하나의 메시지를 전송함으로써 시작하고, 부가적인 손실없이 ACK가 도착하면 데이터를 2배로 전송
- 부가적인 손실없이 ACK가 도착하면 데이터를 2배로 전송함으로써 계속 반복하는데, 수신자의 Window Advertisement의 절반이 될 때까지 지수적으로 증가하고, 그 이후에는 감소됨
- TCP의 혼잡 제어 방안은 인터넷에서 증가하는 통신량에 만족스럽게 반응하고, 혼잡한 인터넷에 재전송을 부가하는 것을 장비
- UDP
- Source Port, Destination Port는 TCP와 동일
- UDP length
헤더와 데이터를 포함한 UDP 세그먼트의 전체 길이를 바이트 단위로 표시
- UDP Checksum
UDP 세그먼트에 대한 Checksum 정보를 나타냄
구분 | TCP | UDP |
수신 순서 | 송신 순서대로 수신 | 송신 순서와 다를 수 있음 |
오류 제어, 흐름 제어 | 사용 | 거의 사용 안함 |
연결제어 | 연결형 | 비연결형 |