[컴퓨터 네트워크] TCP - Option

신현식·2022년 12월 6일
0

컴퓨터 네트워크

목록 보기
34/34

TCP Option

TCP 연결 관리 기능을 확장시키는데 주로 사용되는 옵션 필드로 TCP 헤더 내에 포함된다. 그 크키는 가변 (0~40 바이트 즉, 최대 40 바이트까지 옵션을 넣을 수 있음)적이다.

📌 Maximum Segment Size(MSS) option

TCP 최대 세그먼트 크기 옵션인데 실제로는 최대크기의 데이터 크기를 의미한다. 이는 초기 연결을 set-up할때 결정되는 값이기에 SYN flag와 함께 전송되고 송신측이 아닌 수신측의 세그먼트에 의해 결정된다. TCP 데이터 세그먼트의 최대 길이로 이더넷은 약 1500 바이트이고, 여기서 데이터의 크기는 IP Header와 TCP Header를 제외한 1460 byte이다. 요새는 기존 default값인 536byte가 너무 작아 1460byte를 default값으로 한다.

📌 Window Scale factor option

Window size는 수신측 TCP의 수신가능한 버퍼 사이즈를 의미한다. TCP header에서 window size는 16bit로 2^16(0~65535,65K)이다. 하지만 65K byte가 표현 가능한 수신측 window의 최대값이 아니며 window-scaling option 값을 통해서 이 값을 shift 할수 있다.
TCP 헤더 내 윈도우 크기 필드 값을 윈도우 스케일 옵션 값(비트) 만큼 왼쪽으로 시프트하여 크기 스케일을 변환시칸다. 만약 쉬프트 값이 2라면 새로운 윈도우 사이즈는 2^18 (262144)이 된다. 이 옵션은 SYN flag와 함께 전송된다. 그래서 이를 'Shift Count'라고도 한다.

💡 Utilization

RTT = ms로 표현, 거리/속력
예를 들어, 1.5Mbit/sec의 T1 전송 라인이 513ms 왕복 시간 (RTT)의 위성 링크를 통해 사용된 경우 대역폭 지연 곱은 다음과 같습니다. 1,500,000 bit/sec * 0.513 sec=769,500 bit 또는 약 96,187바이트입니다. 64KB의 최대 버퍼 크기를 사용하면 버퍼가 (65,535 / 96,187) = 이론적 최대 속도인 1.5Mbit/초 또는 1.02Mbit/s의 68%까지만 채워질 수 있습니다.

📌 Timestamp option:PAWS(Protection Against Wrapped Sequence number)

RTT를 계산하기 위해 사용한다.재전송시 언제 보낸것에 해당하는 ack인지 알기가 쉽고 retransmission timer 설정시에 유용하다. 파일 용량이 큰 경우 주어진 seq 번호를 다 쓰고 기존에 사용했던 번호를 재사용할 수도 있다. 동일한 패킷 번호가 들어오면 혼동할 수 있기 때문에 출발시간을 함께 써 놓으면 receiver는 두 패킷을 수월하게 구별할 수 있다. ex. 400:12001 and 700:12001 are different segments, 400초와 700초에 발생한 것 각각을 표시

📌 Selective Ack(SACK) Permitted & SACK option

  • 선택 확인응답(SACK) 옵션 허용여부를 판단하기 위함으로 여러 패킷 중 손실된 패킷 만 선택적으로 재전송하기 위한 TCP 연결 설정 시의 협상 옵션이다.

  • 선택 확인응답 (SACK) 옵션 데이터로 수신측에서 손실되어 재전송을 원하는 불연속적인(순서 어긋난) 세그먼트 블록을 명시하기 위한 것이다. 성능 향상을 위해 사용하고 쓸데없는 데이터를 중복해서 전송하지 않기 위함이다.

profile
전공 소개

0개의 댓글