TCP Header   Transmission Control Protocol Header   TCP 헤더

(2018-10-07)

초기 순서번호, ISN, Window Size, 윈도우 크기

1. TCP 세그먼트헤더 구성

   


2. 각 필드에 대한 설명

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

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

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

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

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

  ㅇ Acknowledgement Number(확인응답번호/승인번호) (32 비트)
     - 수신하기를 기대하는 다음 바이트 번호 = (마지막 수신 성공 순서번호 + 1)
         헤더 길이 필드 (Header length,HLEN, 4 비트)
     - TCP 헤더 길이를 4 바이트(32 비트) 단위로 표시
        . 따라서, TCP 헤더 길이는 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 옵션을 협상하거나, 주어진 윈도우 크기 보다 더 크게 사용하거나,
          선택확인응답을 하거나, 타임스탬프 옵션 정의 등


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

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

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

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


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

 
        최근수정     요약목록     참고문헌