구글 에드센스에서 불법 소프트웨어에 관한 경고가 와서 이곳의 자료들은 비공개로 하고 자료를 드리지 않습니다.
cakel@네이버.컴 으로 요청 하시면 바로 드리겠습니다. 계속 cakel.tistory.com 은 운영 중이니깐 애용 해주시기 바랍니다.
만약 이곳이 부활 한다면 이 글은 비공개로 들어갈 겁니다 ^^
결론
TCP 옵션은 인터넷 통신을 원활하게 할 수 있게 서로 규격을
정하고 여러 방면에서 효율적인 통신을 할 수 있게 해줍니다. 그리고 지금도 이 통신을 어떻게 하면 더
빠르고 안정적으로 할 수 있을지 연구 중입니다.
http://www.freesoft.org/CIE/Course/Section4/8.htm
http://www.zdnet.co.kr/builder/dev/web/0,39031700,39129847,00.htm
http://www.ietf.org/rfc/rfc4413.txt
http://www.iana.org/assignments/tcp-parameters
http://www.simson.net/thesis/pki2.pdf
http://en.wikipedia.org/wiki/FTP_Software
http://www.usenet.com/newsgroups/comp.arch/msg03781.html
http://en.wikipedia.org/wiki/Space_Communications_Protocol_Specifications
http://nost.gsfc.nasa.gov/wwwclassic/documents/pdf/CCSDS-714.0-B-1.pdf
http://www.crhc.uiuc.edu/wireless/talks/tcp-wireless-tutorial.ppt
http://www.cisco.com/en/US/products/ps6350/products_configuration_guide_chapter09186a008045552b.html
http://www.isi.edu/tcpsat/list/archive/0942.html
http://www.kinx-idc.net/support/network_dictionary.asp?strSearchText=SNAP
http://www.cs.rutgers.edu/~muthu/draft-bellovin-tcpcomp-00.txt
253, 254 : RFC3692-style
Experiment
Numerous name
spaces exist for which no values have been reserved for experimentation or
testing purpose. Experimental values for
such protocols can of course be assigned through the normal process of
publishing an RFC that documents the details of such an allocation. To simplify
the process in those cases where the publication of a documentation just for
the purpose of assigning an experimental allocation seems overkill,
experimental values can be made through IESG Approval [RFC 2434].
많은 네임스페이스(이름 공간)들이 다른 시험을 위하거나 실험 목적으로 값이 존재 되어서는 안 되기에 (이들이) 존재합니다. 물론 실험값은 RFC 문서상의 정상적인 절차에 따른 할당이 가능합니다. IESG 승인(RFC 2434 참고)을 통해 만들어진 값 할당 실험만 하는데 문서화를 하는 절차가 과하다고 여겨지는 경우 이 간소화를 시킬 목적으로 사용됩니다.
25: 할당되지 않음(12/18/2000)
24: SNAP
24: SNAP(subnet
network access protocol)
참고 : http://www.kinx-idc.net/support/network_dictionary.asp?strSearchText=SNAP
Subnetwork
Access Protocol(서브네트워크 액세스 프로토콜)의 약어. 서브네트워크의
네트워크 엔티티와 엔드 시스템의 네트워크 엔터티(개체) 사이에서 실행되는 인터넷 프로토콜. SNAP는 IEEE 네트워크에서
IP 데이터그램과 ARP 메시지를 캡슐화하는 표준적인 방식을 지정한다. 종단 시스템의 SNAP 엔티티는 서브네트워크의 서비스를 활용하며, 데이터 전송, 연결 관리, QoS
선택 등의 세 가지 주요 기능을 수행합니다.
23: 손상 경험
참고: http://www.isi.edu/tcpsat/list/archive/0942.html
The Corruption Experienced Option provides a means for a TCP
connection to react to data loss caused by corruption differently than to loss
caused by congestion. Currently, TCP assumes that all loss is a result of
congestion. When losses are due to corruption, TCP's congestion response is
inappropriate, and has a negative effect on throughput. Use of the Explicit
Corruption Notification option is only appropriate in networks where congestion
is explicitly signaled. In the absence of an explicit corruption signal, loss
is assumed to be due to congestion, and congestion recovery mechanisms are
invoked. There remains a further issue, which is the coincidence of corruption
in one portion of the network and severe congestion in another. The case in
which (all) congestion signals fail either due to congestion collapse or
corruption of the congestion signals is under study.
(RFC 문서에 다루지 않으므로 따로 조사하여
추가했습니다.)
22. Record boundary
참고:
http://www.cisco.com/en/US/products/ps6350/products_configuration_guide_chapter09186a008045552b.html
The X.25 Record Boundary Preservation for Data Communications
Networks feature enables hosts using TCP/IP-based protocols to exchange data
with devices that use the X.25 protocol, retaining the logical record
boundaries indicated by use of the X.25 "more data" bit (M-bit).
호스트가 TCP/IP 기반 프로토콜에서 X. 25 프로토콜을 사용하는 기기들과 X. 25의 사용을 가리키는 논리적 레코드 경계를 유지하는 데이터 통신 네트워크 X. 25레코드 경계 보호(M-비트 이상) 기능입니다.
When to Use Record
Boundary Preservation
언제 레코드 경계 보호가 쓰이는가
Before the
introduction of the X.25 Record Boundary Preservation for Data Communications
Networks feature, Cisco IOS software provided two methods for enabling the
exchange of data between X.25 hosts and hosts using TCP/IP-based protocols:
protocol translation and X.25 over TCP (XOT). Protocol translation supports a
variety of configurations, including translation of a data stream between an
X.25 circuit that is using X.29 and a TCP session. The X.29 protocol is an
integral part of protocol translation. One aspect of X.29 is that it is
asymmetric and allows the packaging of data into X.25 packets to be controlled
in one direction only. The TCP protocol is stream-oriented, rather than
packet-oriented. TCP does not attach significance to TCP datagram boundaries,
and those boundaries can change when a datagram is retransmitted. This
inability to preserve boundaries makes protocol translation appropriate only
for configurations in which the X.25 packet boundary is not significant.
데이터(자료) 통신 네트워크 기능으로 X.
25레코드 경계 보호를 소기 하기 전에, Cisco IOS 소프트웨어는 두 가지 방식으로 X. 25 호스트와 TCP/IP 쓰는 호스트들 간에 사용하는 데이터
교환을 제공합니다. X. 25 와 TCP 간의 프로토콜 번역 (XOT). 프로토콜 번역은 X. 29와 TCP 세션을 사용하는 X. 25회로 간의 데이터스트림 설정을 포함한
다양한 설정을 지원합니다. X. 29는 프로토콜 번역의 통합 부분들 중 하나입니다. X. 29의 한 방면으로 비 대칭적이고 데이터를 X. 25 패킷으로
보낼 수 있게 묶어서 단방향으로 보낼 수 있도록 해줍니다. TCP 프로토콜은 패킷-기반보다 스트림-기반입니다. TCP는
TCP 데이터 그램 경계에 대한 중요성을 같이 붙이지 않으며, 이들
경개는 데이터그램이 재전송할 때에 바뀔 수 있습니다. X. 25 패킷 경계에 관한 설정만 통한 프로토콜
번역을 보존하지 못하는 것은 중요하지 않습니다.
XOT 기능은 X. 25 패킷이 TCP로 보낼 수 있게 해줍니다. 이는 X. 25회로를 제어할 수 있지만 호스트가 TCP 세션을 끝낼 낼 때에는 XOT 프로토콜과 X. 25 패킷 레이어 프로토콜로 구현되어야 합니다. 레코드 경계 보존(RBP) 기능은 두 가지 옵션을 사이에 위치합니다. 이는 X. 25 프로토콜에 대한 상세한 정보를 알지 않은 상태에서 논리적 메시지 경계를 가리키게 해줍니다.
(RFC 문서에 다루지 않으므로 따로 조사하여
추가했습니다.)
21: Selective negative ACKs
- no retransmission timer
- transmitter periodically requests receiver to ack received
data
- reduces reverse channel bandwidth usage when losses are rare
위성 전송 프로토콜(STP – 꼭 STP에만 한정되지는 않음)
- TCP으로부터 다른 위성채널 프로토콜에서 갈려진 프로토콜 연결을 할 때 사용합니다.
- selective
negative acks 수신자가 손실을 탐지했을 때 발생합니다.
- 재송신 타이머가 없음
- 주기적으로 받은 자료에 대한 ACK 송신
- 손실시 역채널 대역폭의 사용 양을 줄이는 경우는 드뭅니다.
20 - 26;
(RFC 문서에 다루지 않으므로 따로 조사하여
추가했습니다.)
20: SCPS Capabilities
20: SCPS 기능
참고
http://en.wikipedia.org/wiki/Space_Communications_Protocol_Specifications"
http://nost.gsfc.nasa.gov/wwwclassic/documents/pdf/CCSDS-714.0-B-1.pdf
The Space Communications
Protocol Specifications (SCPS) are a set of extensions to existing protocols
and new protocols developed by the Consultative Committee for Space Data
Systems (CCSDS) to improve performance of Internet protocols in space
environments. The SCPS protocol stack consists of:
19: MD5 Digest
16 - 18: These non-RFC option
types are not considered in this document.
비 RFC 옵션 형식은 이 문서에 다루지 않습니다.
(RFC 문서에서 다루지 않으므로 따로 조사하여
추가했습니다.)
참고 - Re: Cray to
commercialize Red Storm
(http://www.usenet.com/newsgroups/comp.arch/msg03781.html)
16 - 18: These non-RFC option
types are not considered in this document.
비 RFC 옵션 형식은 이 문서에 다루지 않습니다.
(RFC 문서에서 다루지 않으므로 따로 조사하여
추가했습니다.)
16 – Skeeter / 17 - Bubba
참고 http://www.simson.net/thesis/pki2.pdf
두 프로토콜에 대한 이야기
Skeeter 와 Bubba, FTP
Software(1986년 에 설립한 회사, 회사명을 인터넷 프로토콜에 넣은 최초의 회사. http://en.wikipedia.org/wiki/FTP_Software
참고)
15: Alternate Checksum Data
만약 대체 알고리듬이 연결 시에 쓰여지고 있다면, 이후 모든 패킷에 이 옵션값이 쓰여질 수 있습니다(만약 검사합 값을 옮길 필요가 있다면) 하지만 이 옵션 값은 실제로는 전혀 보여지 않습니다. 따라서 헤더 압축 틀이 이걸 부호화 시킬 때에만 요구 사항이 됩니다.
14: Alternate Checksum Request
13: CC.ECHO
11: Connection Count (CC)
12: CC.NEW
10: POC service profile
9: Partial Order Connection (POC) permitted
8: Timestamps
With regard to
compression, note that the range of resolutions for the timestamp suggested in
RFC 1323 [7] is quite wide (1ms to 1s per 'tick'). This (along with the perhaps wide variation
in RTT) makes it hard to select a set of encodings that will be optimal in all
cases.
압축에 관해서는 처리 범위가 타임스탬프가 제안된 RFC 1323을 참조 하면 그 범위는 꽤 넓습니다. (1ms에서 1초 당 ‘틱’) 이는 (RTT 의 다양한 변화에 따라 달라집니다.) 모든 경우에서 최적의 상태에서 부호화하기가 쉽지 않다는 걸 알게 해줍니다.
7: Echo Reply
Ignoring the
others; specifically, it must choose the newest segment with the oldest
sequence number (see RFC 1072 [4]). The
Echo Reply option is generally not used in practice – it is obsoleted by the
Timestamp option. However, for transparency
it is desirable that a compression scheme be able to transport it. (However, there is no benefit in attempting
any more sophisticated treatment than viewing it as a generic 'option').
다른 걸 무시하고, 구체적으로 가장 오래된 순서 번호에서 새 세그먼트를 선택해야 합니다. (RFC
1072 참고). 에코 응답 옵션은 일반적으로 쓰이지 않습니다 – 타임스탬프(시간도장) 옵션으로
대체되었습니다. 하지만, 투명성을 위해서 압축된 틀 안에서
전송되는 것이 바람직 합니다. (하지만, 일반적인 “선택사항”으로 간주하는 거 보다 더 정교한 취급으로 얻어지는 이득은
없습니다.) (에코 옵션과 동일 사항)
6: Echo
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 블록 안에 담겨 있는 자료의 시각에서 값의 성격을 바꾸지는 않습니다. (기본적으로 동일)
3: Window Scale Option (WSopt)
윈도의 비 변환(스케일링) 사용으로 값이 전송되는 동안 어떠한 다른 영역을 부호화(인코딩)하는데 영향을 주어서는 안 됩니다. 윈도우비 변환 값 자체를 부호화하는 것이 중요합니다. 변환 비는 반드시 0부터 14 까지(포함)만 허용됩니다. 일반적으로 작은 값이 예상됩니다. (윈도우 비 14인 값은 아주 큰 1GB 윈도를 허용하게 합니다.)
4: SACK-Permitted
2: Maximum Segment Size
1: No-Operation
4.3.2. Option Field Behavior
4.3.2 옵션 영역(필드) 성격
Generally speaking, all option fields have been classified as changing. This section describes the behavior of each option referenced within an RFC, listed by 'kind' indicator.
일반적으로 말해 모든 설정 영역(옵션 필드)은 변화에 따라 분류됩니다. 이 절에서는 각 RFC 에 참조되어 어떤 '성질'에 의해 분류된 옵션을 설명합니다.
0: End of Option List
0: 옵션 목록(옵션 리스트)의 끝
This option code indicates the end of the option list. This might not coincide with the end of the TCP header according to the Data Offset field. This is used at the end of all options, not at the end of each option, and it need only be used if the end of the options would not otherwise coincide with the end of the TCP header. Defined in RFC 793 [2].
이 옵션 번호(코드)는 옵션 목록의 끝이라는 것을 표시합니다. 이건 데이터 오프셋 영역에 따른 TCP 헤더의 끝과 일치하지 않을 수 있습니다. 이 값은 모든 옵션 값의 끝 부분에 사용되며, 각 옵션 값들의 끝은 아니고 TCP 헤더가 끝 부분과 관련이 없을 때 끝을 표시하는 데에 필요합니다. RFC 793 에 정의되어 있습니다.
There is no data associated with this option, so a compression scheme must simply be able to encode its presence. However, note that since this option marks the end of the list and the TCP options are 4-octet aligned, there may be octets of padding (defined to be '0' in [2]) after this option.
이 옵션 값에는 어떠한 (전송과 관련된) 데이터 값이 연관되어 있지 않습니다. 그러니 그 존재만으로 구별될 수 있게 간편하게 부호화시켜야 합니다. 하지만 이 값이 목록의 마지막을 표시하고 TCP 옵션 값이 4비트로 맞춰 있다면 이 옵션 값 뒤에 8진수의 끼워 넣어 맞추는 부분이 필요합니다.