본문으로 바로가기

[네트워크] TCP의 MSS란?

category 네트워크 2023. 6. 9. 11:01
728x90
반응형

TCP는 네트워크에서 데이터를 안정적으로 전송하기 위해 사용되는 전송 프로토콜입니다.

반대되는 전송 프로토콜은 UDP입니다. UDP는 안정적으로 전송을 하지는 못하지만, 속도가 빠르다는 장점 등이 있습니다.

TCP는 큰 데이터는 한번에 보내지 못하기 때문에 큰 데이터를 작은 조각으로 나누어 전송하는데, 이러한 조각을 세그먼트라고 합니다.

MSS는 Maximum Segment Size의 약어입니다.

간단히 설명하자면, TCP 세그먼트의 최대 크기를 나타내는 값입니다.

MSS값은 TCP 헤더에 포함되어 전송되고, 수신자와 송신자 간의 최대 세그먼트 크기를 정의합니다.

MTU(Maximum Transmission Unit)라고 많이 들어보셨을 건데, 이 값은 네트워크에서 전송 가능한 최대 데이터 크기를 나타냅니다.

MSS는 이러한 MTU 제한을 고려하여 설정됩니다.

MSS 값은 TCP 연결을 설정하는 초기 3핸드쉐이크 단계에서 상호 네고됩니다.

일반적으로, MSS 1460바이트를 사용하지만, 네트워크 환경에 따라 다른 MSS 값이 사용될 수 있습니다.

이 MSS 값을 조정함에 따라서 TCP의 성능 조정을 할 수 있습니다.


예를 들어 전송할 데이터가 2000바이트 입니다.

한번에 2000바이트를 을 보낼 수 없기 때문에 2000바이트를 쪼개서 보내야 되는데 그 기준이 되는 것이 MSS입니다.

3핸드쉐이크에서 MSS값을 1460으로 정했다고 했을 경우, 2000바이트는 1460바이트로 한번 전송되고, 나머지 540바이트로 한번 전송됩니다.

즉, 세그먼트되어 2번 전송 됩니다.

위의 예시는 이더넷 헤더, ip 헤더,tcp 헤더를 제외한 페이로드만 생각한 것입니다.

헤더를 붙이게되면 패킷이 더 커지게 된다고 생각하시면됩니다.

728x90
반응형