TCP Header   Transmission Control Protocol Header   TCP 헤더

(2023-04-30)

초기 순서번호, ISN, Window Size , 윈도우 크기 , Windowsize, Acknowledgement Number, 확인응답 번호


1. TCP 세그먼트헤더 구성

    

  ※ [참고]  TCP 헤더 크기  :  (기본 20 ~ 최대 60 바이트)


2. 각 필드에 대한 설명

  ㅇ Sourse/Destination Port Number (각 16 비트)             ☞ 포트 번호 참조
     - IP 주소 + 포트 번호 = 소켓 주소소켓, 소켓 주소 참조
        . 양쪽 호스트 내 종단 프로세스 식별                  ☞ SAP(서비스 엑세스점) 참조

  ㅇ Sequence Number (32 비트)                               ☞ 순서번호 참조
     - 바이트 단위로 구분되어 순서화되는 번호임
        . 이를 통해, TCP에서는 신뢰성흐름제어 기능 제공  ☞ 슬라이딩 윈도우 참조 

     - 순서 가능 범위
        . 시작 : 임의 값으로 시작하여, 최대값(4,294,967,295) 이후에는 `0`으로되어 시작함
        . 최대 : 32 비트이므로 최대 4기가 바이트(232) 크기의 송신 데이터에,
                 순서화된 일련번호를 붙일 수 있음

     - 순서번호 의미
        . TCP 세그먼트의 첫번째 바이트에 부여되는 번호 

     - 초기 순서번호 (ISN, Initial Sequence Number)           ☞ TCP 연결 설정 참조
        . 초기 TCP 연결설정을 위함
        . 난수 발생기로 초기 순서번호(ISN)를 생성하고, 이를 순서번호 필드에 넣어 보냄
           .. 난수 발생기 : 매 4 ㎲ 마다 1씩 증가하는 12 비트 카운터에 의해 구현됨
        . TCP는 양방향이므로 각 방향 마다 다른 ISN 번호가 사용됨 

  ㅇ Acknowledgement Number (확인응답 번호 / 승인 번호) (32 비트)    ☞ TCP 확인응답 참조
     - 수신하기를 기대하는 다음 바이트 번호 = (마지막 수신 성공 순서번호 + 1)
         헤더 길이 필드 (Header length, HLEN, 4 비트)
     - TCP 헤더 길이를, 4 바이트(32 비트) 단위로 표시
        . TCP 헤더 길이는, 최소 4 x 5 = 20 바이트 부터 ~ 4 x (24 - 1) = 60 바이트 이하

  ㅇ 6 개의 Flag bits (URG, ACK, PSH, RST, SYN, FIN)         ☞ TCP 제어 플래그 참조
     - TCP 세그먼트 전달과 관련되어 TCP 회선 및 데이터 관리 제어 기능을 하는 플래그
        . 관계된 기능 : 흐름제어,연결설정,연결종료,연결리셋,데이터전송모드

  ㅇ 윈도우 크기 (Window size, 16 비트)                      ☞ 슬라이딩 윈도우 참조
     - 흐름제어를 위해 사용하는 16 비트 필드 (65,535 bytes까지 가능)
        . TCP 흐름제어를 위해 송신자에게 자신의 수신 버퍼 여유용량 크기를 지속적으로 통보
           .. TCP 연결은 양방향이므로, 매 TCP 세그먼트를 보낼시 마다, 
           .. 이 필드에 자신의 수신 버퍼 용량 값을 채워 보내게 됨 (지속적인 현행화)
        . 결국, 양방향 각각의 수신측에 의해 능동적으로 흐름제어를 수행하게 됨

  ㅇ Checksum (16 비트)                           ☞ TCP Checksum(TCP 가상헤더) 참조
     - 검사합

  ㅇ Urgent pointer (16 비트)
     - TCP 세그먼트에 포함된 긴급 데이터의 마지막 바이트에 대한 일련번호
        . 현재 일련번호(sequence number)로부터 긴급 데이터까지의  바이트 오프셋(offset)
        . 해당 세그먼트의 일련번호에 urgent point 값을 더해 긴급 데이터의 끝을 알수있음

  ㅇ 옵션                                         ☞  TCP 옵션  참조
     - 최대 40 바이트까지 옵션 데이터 포함 가능
        . TCP MSS 옵션을 협상하거나,  (MSS)
        . 주어진 윈도우 크기 보다 더 크게 사용하거나,  (Windowing)
        . 선택확인응답을 하거나,  (SACK)
        . 타임스탬프 옵션 정의  (Timestamp) 등


3. 위 필드 중 상대쪽에서 오는 방향과 관련된 필드들 TCP 헤더 내 대부분의 필드들은 양방향 모두 쓰이나,
     - 특히, 다음 4개 필드는, 상대측으로부터 받는 방향에 쓰여지는 필드들임

  ㅇ TCP 제어 플래그 내 `ECE`,`ACK 제어 비트`    ☞ TCP 제어 플래그 참조
     - 확인응답번호 필드에 확인응답번호(Acknowledgement Number) 값이 셋팅됐음 등을 알림

  ㅇ `확인응답 번호 (Acknowledgement Number)`
     - 통상,  `순서번호 + 1`로 설정됨

  ㅇ `윈도우 크기 (window size)`    ☞ 수신 윈도우 참조

TCP 패킷(세그먼트)
   1. TCP 헤더   2. TCP 제어 비트   3. TCP 옵션   4. TCP MSS 옵션   5. TCP 세그먼트  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"