SACK

학교/컴퓨터통신 2007. 6. 30. 03:30

      5: SACK

 5: SACK

This option is to be used to convey extended acknowledgment information over an established connection.  Specifically, it is to be sent by a data receiver to inform the data transmitter of non-contiguous blocks of data that have been received and queued.  The data receiver awaits the receipt of data in later retransmissions to fill the gaps in sequence space between these blocks.  At that time, the data receiver acknowledges the data, normally by advancing the left window edge in the Acknowledgment Number field of the TCP header. It is important to understand that the SACK option will not change the meaning of the Acknowledgment Number field, whose value will still specify the left window edge, i.e., one byte beyond the last sequence number of fully received data (RFC 2018 [12]).

이 옵션 값은 성공한 연결을 통해 보내어지는 연장된 확인 정보를 전송하는데 쓰입니다. 엄밀히 말하면 비연속적인 자료(데이터) 블록이 보내어지고 예약(큐잉)되었다는 신호를 자료 수신기가 전송기에 보낼 때 사용합니다. 자료 수신기(데이터 리시버)는 블록 간의 비워진 공간을 다 채우기 위해 재전송을 다 받을 때까지 기다립니다. 그 동안 자료 수신기는 자료를 알리고, 보통 남은 윈도 끝을 TCP 헤더 부분의 확인 번호 영역 안에서 이동합니다. 이는 SACK 옵션 값이 여전히 남은 윈도 끝 영역을 표시(예를 들어 전부 받은 자료의 마지막 순서 번호를 넘는 하나의 바이트)하는 확인 번호 영역을 바꾸지 않는다는 것을 이해하는데 중요하게 작용합니다.

If SACK has been negotiated (through an exchange of SACK- Permitted options), then this option may occur when dropped segments are noticed by the receiver.  Because this identifies ranges of blocks within the receiver's window, it can be viewed as a base value with a number of offsets.  The base value (left edge of the first block) can be viewed as offset from the TCP acknowledgement number.  There can be up to 4 SACK blocks in a single option.  SACK blocks may occur in a number of segments (if there is more out-of-order data 'on the wire'), and this will typically extend the size of or add to the existing blocks.

만약 SACK 이 변경(SACK-Permitted(허용) 옵션 값의 교환을 통해)되었다면 이 옵션 값은 수신기에 의해 빠진 세그먼트를 알리는데 쓰일 수 있습니다. 그 이유는 이 값은 수신자의 윈도우 내에 블록의 범위를 확인하고, 이동 좌표 번호의 기준으로 볼 수 있기 때문입니다. 이 값(첫 번째 블록의 왼쪽 끝) TCP 인지 번호의 기본 좌표로 볼 수 있습니다. 단일 옵션 값으로 4개의 SACK 블록이 구성될 수 있습니다. SACK 블록은 세그먼트의 개수(만약 더 많은 자료가동신 선상에서존재할 때)에서 발생할 수 있습니다. 그리고 일반적으로 값이 더 길어 지거나 기존의 블록들을 추가합니다.

Alternative proposals such as DSACK RFC 2883 [17] do not fundamentally change the behavior of the SACK block, from the point of view of the information contained within it.

대안으로 제시되는 것이 DSACK RFC 2883인데 기본적인 SACK 블록 안에 담겨 있는 자료의 시각에서 값의 성격을 바꾸지는 않습니다. (기본적으로 동일)

Posted by 카켈