본문 바로가기
IT Basic/Network

[네트워크] TCP 헤더에 담긴 내용 알아보기

by HouseDust 2021. 12. 9.
반응형

TCP 헤더

TCP 헤더의 크기는 최소 20byte에서 옵션 포함 최대 60byte

 

1. 출발지 포트번호(Source Port Number)

  • 출발지 주소를 판별하기 위해서, IP주소와 포트번호가 필요하다. TCP 헤더에는 포트 번호가 담겨있다

 

2. 목적지 포트번호(Destination Port Number)

  • 목적지 주소를 판별하기 위해서, IP주소와 포트번호가 필요하다. TCP 헤더에는 포트 번호가 담겨있다

 

3. 일련 번호(Sequence Number)

  • 전송하는 데이터의 순서, 32비트를 할당받기 때문에, 시퀀스 번호가 중복되기는 어렵다
  • 최대값(4,294,967,296)을 넘어가면 0부터 재시작한다

 

4. 확인 응답 번호(Acknowledgment Number)

  • 데이터 수신자가 예상하는 다음 시퀀스 번호를 의미한다.
  • 상대방이 보낸 시퀀스 번호 + 자신이 받은 데이터의 bytes
  • 결국 확인 응답 번호는, 다음에 보내줘야하는 데이터의 시작점을 의미한다

 

5. 헤더 길이(Header Length)

  • Data Offset, 헤더가 아닌 데이터가 시작되는 위치가 어디부터인지 표시한다
  • 32비트 워드 단위를 사용한다. 1 word = 4 bytes
  • 해당 필드 값에 4를 곱하면 세그먼트에서 헤더를 제외한 실제 데이터의 시작 위치를 알 수 있다
  • 4비트로 0부터 15까지의 word 범위를 담을 수 있다. 즉, 0~60bytes 까지 표현 가능하다
  • 헤더의 최소 길이는 20bytes 이므로, 기본적으로 5 word로 고정되어 있다
  • 옵션의 길이가 유동적이기 때문에 필요한 필드

 

6. 예약 영역(Reserved)

  • 미리 예약된 필드로, 모두 0으로 채워져 있다

 

7. 코드 비트(Code bit) - 6개의 Flag bit

총 9개의 플래그비트 = 기존 6개의 플래그 비트 + 예약 영역의 3비트를 빌려 추가된 3개의 플래그 비트

혼잡 제어기능의 향상을 위해 NS, CWR, ECE 플래그가 추가되었다.

  • URG : Urgent Pointer 필드에 값이 채워져있음을 알리는 플래그
  • ACK : Acknowledgment Number 필드에 값이 채워져있음을 알리는 플래그. 0일 경우, 승인번호 필드 무시
  • PSH : Push 플래그, 수신 측에게 데이터를 최대한 빠르게 응용프로그램에 전달해달라는 플래그. 0일 경우 수신측은 버퍼가 다 채워질 때까지 기다린다.
  • RST : Reset 플래그. 이미 연결이 확립되어 ESTABLISHED 상태인 상대에게 연결을 리셋해달라는 의미
  • SYN : Synchronize 플래그. 시퀀스 번호 동기화를 맞추기 위한 세그먼트
  • FIN : Finish 플래그. 상대방과의 연결 종료
  • NS : ECN(Explicit Congestion Notification, 명시적 혼잡통보)에서 사용하는 CWR, ECE 필드가 은폐되는 경우를 방어하기 위한 플래그
  • ECE : ECN Echo 플래그. ECE가 1이고 SYN이 1이면 ECN을 사용한다는 의미, ECE가 1이고 SYN이 0이면, 네트워크가 혼잡하니 세그먼트 윈도우의 크기를 줄여달라는 의미
  • CWR : ECE 플래그를 받아 윈도우의 크기를 줄였다는 의미의 플래그

 

8. 윈도우 크기(Window Size)

  • 한번에 전송할 수 있는 데이터의 양
  • 16bit 할당, byte 단위 이므로 윈도우의 최대크기는 64KB
  • 윈도우 사이즈의 최대 크기를 늘리고 싶을 때에는, 옵션필드의 WSCALE 필드를 사용한다

 

9. 체크섬(Checksum)

  • 송신 중 발생하는 오류를 검출하기 위한 값
  • 전송할 데이터를 16bits로 나누어 차례대로 더해가는 방법으로 생성
  • 체크섬 생성 및 체크 방법 - 

 

10. 긴급 포인터(Urgent Pointer)

  • URG 플래그가 1일 경우, 이 포인터가 가르키고 있는 데이터를 우선적으로 처리한다

 

11. 옵션(Option)

  • TCP의 기능을 확장할 때 사용하는 필드
  • 크기는 가변적이다
  • 최대 크기 40bytes
  • 옵션의 종류 - 

 

 


참고자료

 

모두의 네트워크

 

모두의 네트워크 - 교보문고

10일 만에 배우는 네트워크 기초 | 즐거운 프로그래밍 경험 | 누구나 10일이면네트워크를 이해할 수 있다!준비 | 네트워크 기초 지식 익히기네트워크, 패킷, 비트, 바이트, 랜, 서버 등 네트워크 용

www.kyobobook.co.kr

정보통신기술 용어 해설 - http://www.ktword.co.kr/test/view/view.php?m_temp1=1889 

Evans Library - https://evan-moon.github.io/2019/11/10/header-of-tcp/

반응형

댓글