1. TCP 세그먼트
ㅇ TCP 세그먼트
- TCP 세션으로 연결된 양 끝단 간에 서로 교환,전달되는 데이터 단위
ㅇ TCP 세그먼트 크기
- IP 헤더,TCP 헤더는 제외하고, TCP가 실을 수 있는 데이터 만의 크기를 의미
2. TCP 세그먼트 크기 계산
ㅇ TCP 페이로드 세그먼트 크기
= (IP 헤더 상의 Total Length) - (IP 헤더의 Header Length) - (TCP 헤더의 Header Length)
3. TCP 세그먼트 크기의 적정성
※ TCP 세그먼트의 적정 크기의 결정 문제는, 일견 간단해 보이지만,
- 어떤 시점에서 가장 효율적인 세그먼트 크기를 결정하는 것은 꽤 복잡하게 됨
. 이는 TCP 연결 회선의 성능과 직결됨
ㅇ TCP 세그먼트가 너무 작으면,
- 작아진 데이터 수용량, 잦은 전송 발생으로 비효율적
. 작아진 세그먼트로 작은 데이터들 만을 전송되므로 비효율적
ㅇ TCP 세그먼트가 너무 커지면,
- MTU(최대전송단위) 이상이 되어 쪼개지는(IP 단편화가 되는) 경우가 많이 발생되어
전송 비효율적
. 큰 세그먼트로 너무 많은 데이터들이 실려, 잦은 IP 단편화가 발생되어 비효율적
※ 적정 TCP 세그먼트 크기
= min(송신 버퍼 크기, 수신 버퍼 크기, MTU 크기, path MTU 크기) - 헤더 크기
- 이러한 크기를 통보 또는 알 수 있는 방법
. 송신 버퍼 크기 : 송신측 자신이 이미 알고 있음
. 수신 버퍼 크기 : 수신측이 송신시 매번 TCP 헤더의 Window Size 필드에 적어 보냄
. MTU 크기 : 모든 TCP 세그먼트 송신시에, TCP MSS 옵션에 적어 보냄
. path MTU 크기 : TCP 계층이 아닌 IP 계층 이하에서 알려줌
※ 일반적으로,
- 수신 TCP 모듈이 갖는 수신 버퍼 크기를 그 한계로 보는 것이 가장 일반적임
. 수신측이 이 값 이상을 허용 않는다고 통신 상대방에게 알리는 의지 표현