TCP로 데이터를 분할한

Sunhee·2024년 2월 23일

네트워크

목록 보기
20/40
post-thumbnail

해당 포스트는 영진닷컴,『그림으로 배우는 네트워크 NetWork 원리』, Gene 저·김성훈 역을 참고하여 작성하였습니다.


TCP 헤더 형식

TCP로 전송하고 싶은 애플리케이션의 데이터에 TCP 헤더를 추가해, TCP 세그먼트라고 합니다.

TCP 헤더에서 중요한 부분만 간단히 설명하겠습니다. 가장 중요한 것은 포트 번호입니다. 포트 번호로 적절한 애프리케이션 프로토콜에 데이터를 배분할 수 있기 때문입니다.

그리고, 신뢰성 있는 데이터 전송을 위해서 시퀀스 번호ACK 번호라는 것이 있습니다. 시퀀스 번호는 '시퀀스(순서)'라는 이름처럼 TCP로 전송하는 데이터 순서를 나타냅니다. 데이터가 분할되어 있을 때에는 시퀀스 번호로 어떻게 데이터를 분할했는지 알 수 있스빈다. ACK 번호는 데이터를 바르게 수신했음을 확인하기 위해 이용합니다.

데이터 분할 구조

TCP에는 데이터를 분할하는 기능도 있습니다. TCP에서 애플리케이션의 데이터를 분할하는 단위는MSS라고 부릅니다. MSS를 넘는 크기의 데이터는 MSS 단위로 나누어 송신합니다. MSS의 표준 크기는 1460 바이트입니다.

웹에 액세스할 때 웹서버 애플리케이션에서 웹사이트의 데이터를 송신하는 경우에 TCP로 분할하는 모습을 생각해 봅시다. 애플리케이션 프로토콜로 HTTP를 이용하므로 웹사이트의 데이터에는 HTTP 헤더가 추가됩니다. 이것이 TCP가 처리할 데이터입니다. MSS로 나누고 각가에 TCP 헤더를 추가해 복수의 TCP 세그먼트로 만듭니다. 원래 데이터를 어떻게 분할 했는지 TCP 헤더 내 시퀀스 번호르 보면 알 수 있습니다.


Point

= 전송하고 싶은 애플리케이션의 데이터에 TCP 헤더를 추가해 TCP 세그먼트로서 전송한다.

  • 필요하면 TCP로 데이터를 분할한다.
  • TCP로 데이터를 분할하면 크기를 MSS라고 부른다.

[참고자료] https://itwiki.kr/w/TCP_%ED%97%A4%EB%8D%94

0개의 댓글