RFC_793阅读笔记(第2部分)

  终于看完了,整整好7页!

 
[Page 6]
 
September 1981
Transmission Control Protocol
 
2. PHILOSOPHY
 
2.1. Elements of the Internetwork System
 
The internetwork environment consists of hosts connected to networks //"internetwork environment"--hosts in the network
which are in turn interconnected via gateways. It is assumed here
that the networks may be either local networks (e.g., the ETHERNET) or
large networks (e.g., the ARPANET), but in any case are based on
packet switching technology. The active agents that produce and   //the base:packet switching and interprocess communiction
consume messages are processes. Various levels of protocols in the  
networks, the gateways, and the hosts support an interprocess
communication system that provides two-way data flow on logical
connections between process ports.
 
The term packet is used generically here to mean the data of one //packet--block
transaction between a host and its network. The format of data blocks
exchanged within the a network will generally not be of concern to us.
 
Hosts are computers attached to a network, and from the communication //why using the interprocess communiction
network's point of view, are the sources and destinations of packets. //
Processes are viewed as the active elements in host computers (in
accordance with the fairly common definition of a process as a program
in execution). Even terminals and files or other I/O devices are      //all the module in communiction is viewed as process
viewed as communicating with each other through the use of processes.
Thus, all communication is viewed as inter-process communication.
 
Since a process may need to distinguish among several communication //using the port number to distinguish processes
streams between itself and another process (or processes), we imagine
that each process may have a number of ports through which it
communicates with the ports of other processes.
 
2.2. Model of Operation
 
Processes transmit data by calling on the TCP and passing buffers of //the process of TCP communiction
data as arguments. The TCP packages the data from these buffers into //buffer-segament-circuit-segament-buffer
segments and calls on the internet module to transmit each segment to
the destination TCP. The receiving TCP places the data from a segment
into the receiving user's buffer and notifies the receiving user. The
TCPs include control information in the segments which they use to
ensure reliable ordered data transmission.
 
The model of internet communication is that there is an internet   //the operations of the lower layer:embedded and fragment
protocol module associated with each TCP which provides an interface
to the local network. This internet module packages TCP segments
inside internet datagrams and routes these datagrams to a destination
internet module or intermediate gateway. To transmit the datagram
through the local network, it is embedded in a local network packet.
 
The packet switches may perform further packaging, fragmentation, or
 
[Page 7]
 
September 1981
Transmission Control Protocol
Philosophy
 
other operations to achieve the delivery of the local packet to the
destination internet module.
 
At a gateway between networks, the internet datagram is "unwrapped" //the process of the gateway:unwrapped-route-wrapped
from its local packet and examined to determine through which network
the internet datagram should travel next. The internet datagram is
then "wrapped" in a local packet suitable to the next network and
routed to the next gateway, or to the final destination.
 
A gateway is permitted to break up an internet datagram into smaller //the fragment mechanism
internet datagram fragments if this is necessary for transmission
through the next network. To do this, the gateway produces a set of
internet datagrams; each carrying a fragment. Fragments may be
further broken into smaller fragments at subsequent gateways. The
internet datagram fragment format is designed so that the destination
internet module can reassemble fragments into internet datagrams.
 
A destination internet module unwraps the segment from the datagram
(after reassembling the datagram, if necessary) and passes it to the
destination TCP.
 
This simple model of the operation glosses over many details. One //service and precedence is embedded in the packet
important feature is the type of service. This provides information
to the gateway (or internet module) to guide it in selecting the
service parameters to be used in traversing the next network.
Included in the type of service information is the precedence of the
datagram. Datagrams may also carry security information to permit
host and gateways that operate in multilevel secure environments to
properly segregate datagrams for security considerations.
 
2.3. The Host Environment
 
The TCP is assumed to be a module in an operating system. The users //TCP is like the file system!
access the TCP much like they would access the file system. The TCP
may call on other operating system functions, for example, to manage
data structures. The actual interface to the network is assumed to be
controlled by a device driver module. The TCP does not call on the
network device driver directly, but rather calls on the internet
datagram protocol module which may in turn call on the device driver.//the internet datagram protocol module call on the
                                                                     //device driver
The mechanisms of TCP do not preclude implementation of the TCP in a //front-end?host-to-front-end?前置?
front-end processor. However, in such an implementation, a
host-to-front-end protocol must provide the functionality to support
the type of TCP-user interface described in this document.
 
[Page 8]
 
September 1981
Transmission Control Protocol
Philosophy
 
2.4. Interfaces
 
The TCP/user interface provides for calls made by the user on the TCP //5 operations:OPEN,CLOSE,SEND,RECEIVE,STATUS
to OPEN or CLOSE a connection, to SEND or RECEIVE data, or to obtain
STATUS about a connection. These calls are like other calls from user
programs on the operating system, for example, the calls to open, read //compared to the file system,it's similar
from, and close a file.
 
The TCP/internet interface provides calls to send and receive
datagrams addressed to TCP modules in hosts anywhere in the internet
system. These calls have parameters for passing the address, type of
service, precedence, security, and other control information.
 
2.5. Relation to Other Protocols
 
The following diagram illustrates the place of the TCP in the protocol //the status of TCP-host level
hierarchy:
 
+------+ +-----+ +-----+ +-----+
|Telnet| | FTP | |Voice| ... | | Application Level
+------+ +-----+ +-----+ +-----+
| | | |
+-----+ +-----+ +-----+
| TCP | | RTP | ... | | Host Level
+-----+ +-----+ +-----+
| | |
+-------------------------------+
| Internet Protocol & ICMP | Gateway Level
+-------------------------------+
|
+---------------------------+
| Local Network Protocol | Network Level
+---------------------------+
 
Protocol Relationships
 
Figure 2.
 
It is expected that the TCP will be able to support higher level
protocols efficiently. It should be easy to interface higher level
protocols like the ARPANET Telnet or AUTODIN II THP to the TCP.
 
2.6. Reliable Communication
 
A stream of data sent on a TCP connection is delivered reliably and in //send a stream of data
order at the destination.
 
[Page 9]
 
September 1981
Transmission Control Protocol
Philosophy
 
Transmission is made reliable via the use of sequence numbers and //sequence number and ACK
acknowledgments. Conceptually, each octet of data is assigned a     //sequence number-each octet
sequence number. The sequence number of the first octet of data in a//segament sequence number-the first octet
segment is transmitted with that segment and is called the segment //ACK-the sequence number of next expected octet in return
sequence number. Segments also carry an acknowledgment number which
is the sequence number of the next expected data octet of
transmissions in the reverse direction. When the TCP transmits a
segment containing data, it puts a copy on a retransmission queue and
starts a timer; when the acknowledgment for that data is received, the //retansmitte mechanism:ACK and timer
segment is deleted from the queue. If the acknowledgment is not
received before the timer runs out, the segment is retransmitted.
 
An acknowledgment by TCP does not guarantee that the data has been //ACK doesn't guarantee the sucessly reaching
delivered to the end user, but only that the receiving TCP has taken
the responsibility to do so.
 
To govern the flow of data between TCPs, a flow control mechanism is //using the "window" on flow control
employed. The receiving TCP reports a "window" to the sending TCP.
This window specifies the number of octets, starting with the
acknowledgment number, that the receiving TCP is currently prepared to
receive.
 
2.7. Connection Establishment and Clearing
 
To identify the separate data streams that a TCP may handle, the TCP //using the port number(may be different between SENDER
provides a port identifier. Since port identifiers are selected      //and RECEIVER
independently by each TCP they might not be unique. To provide for
unique addresses within each TCP, we concatenate an internet address
identifying the TCP with a port identifier to create a socket which
will be unique throughout all networks connected together.
 
A connection is fully specified by the pair of sockets at the ends. A //port--socket
local socket may participate in many connections to different foreign //socket(s)--socket(s)
sockets. A connection can be used to carry data in both directions,
that is, it is "full duplex".                                         //full duplex:全双工
 
TCPs are free to associate ports with processes however they choose. //It's the TCP,not the process,that selects the port
However, several basic concepts are necessary in any implementation. //number randomly!
There must be well-known sockets which the TCP associates only with   //But some well-known port numbers are related to some
the "appropriate" processes by some means. We envision that processes //given process
may "own" ports, and that processes can initiate connections only on
the ports they own. (Means for implementing ownership is a local
issue, but we envision a RequestPort user command, or a method of
uniquely allocating a group of ports to a given process, e.g., by
associating the high order bits of a port name with a given process.)
 
A connection is specified in the OPEN call by the local port and
foreign socket arguments. In return, the TCP supplies a (short) local
 
[Page 10]
 
September 1981
Transmission Control Protocol
Philosophy
 
connection name by which the user refers to the connection in       //the connection name--pointer to the TCB
subsequent calls. There are several things that must be remembered
about a connection. To store this information we imagine that there
is a data structure called a Transmission Control Block (TCB). One //TCB:Transmission Control Block-control the transmission
implementation strategy would have the local connection name be a
pointer to the TCB for this connection. The OPEN call also specifies
whether the connection establishment is to be actively pursued, or to //基于TCB进行conection的调用
be passively waited for.
 
A passive OPEN request means that the process wants to accept incoming //passive OPEN request--waiting(like the server)
connection requests rather than attempting to initiate a connection.
Often the process requesting a passive OPEN will accept a connection
request from any caller. In this case a foreign socket of all zeros
is used to denote an unspecified socket. Unspecified foreign sockets //all zeros socket-unspecified socket,and it's assigned
are allowed only on passive OPENs.                                    //to the server with passive OPEN request
 
A service process that wished to provide services for unknown other //the server issue the passive OPEN requst
processes would issue a passive OPEN request with an unspecified
foreign socket. Then a connection could be made with any process that
requested a connection to this local socket. It would help if this
local socket were known to be associated with this service.
 
Well-known sockets are a convenient mechanism for a priori associating//well-known sockets means the standard of the service
a socket address with a standard service. For instance, the
"Telnet-Server" process is permanently assigned to a particular
socket, and other sockets are reserved for File Transfer, Remote Job
Entry, Text Generator, Echoer, and Sink processes (the last three
being for test purposes). A socket address might be reserved for
access to a "Look-Up" service which would return the specific socket
at which a newly created service would be provided. The concept of a
well-known socket is part of the TCP specification, but the assignment
of sockets to services is outside this specification. (See [4].)
 
Processes can issue passive OPENs and wait for matching active OPENs //the connection can be established asynchronously which
from other processes and be informed by the TCP when connections have//is based on the distributed computing system
been established. Two processes which issue active OPENs to each
other at the same time will be correctly connected. This flexibility
is critical for the support of distributed computing in which
components act asynchronously with respect to each other.
 
There are two principal cases for matching the sockets in the local //2 cases:specified and unspecified
passive OPENs and an foreign active OPENs. In the first case, the
local passive OPENs has fully specified the foreign socket. In this
case, the match must be exact. In the second case, the local passive
OPENs has left the foreign socket unspecified. In this case, any
foreign socket is acceptable as long as the local sockets match.
Other possibilities include partially restricted matches.
 
[Page 11]
 
September 1981
Transmission Control Protocol
Philosophy
 
If there are several pending passive OPENs (recorded in TCBs) with the//the case of several passive OPENs
same local socket, an foreign active OPEN will be matched to a TCB    //let the foreigh socket choose
with the specific foreign socket in the foreign active OPEN, if such a
TCB exists, before selecting a TCB with an unspecified foreign socket.
 
The procedures to establish connections utilize the synchronize (SYN) //establish connection by three-way hand shake
control flag and involves an exchange of three messages. This         //base on SYN(a special segament to creat connection)
exchange has been termed a three-way hand shake [3].
 
A connection is initiated by the rendezvous of an arriving segment
containing a SYN and a waiting TCB entry each created by a user OPEN
command. The matching of local and foreign sockets determines when a
connection has been initiated. The connection becomes "established"
when sequence numbers have been synchronized in both directions.     //sequence numbers being synchronied sign the established
 
The clearing of a connection also involves the exchange of segments,//FIN(a special segament to finish connection)
in this case carrying the FIN control flag.
 
2.8. Data Communication
 
The data that flows on a connection may be thought of as a stream of //the PUSH mechanism in the sender
octets. The sending user indicates in each SEND call whether the data //the PUSH falg-sign the need of immediately sending
in that call (and any preceeding calls) should be immediately pushed
through to the receiving user by the setting of the PUSH flag.
 
A sending TCP is allowed to collect data from the sending user and to //the PUSH mechanism in the receiver
send that data in segments at its own convenience, until the push     //the PUSH flag-sign the need of immediately handing in
function is signaled, then it must send all unsent data. When a
receiving TCP sees the PUSH flag, it must not wait for more data from
the sending TCP before passing the data to the receiving process.
 
There is no necessary relationship between push functions and segment //no relation between the push functions and the segament
boundaries. The data in any particular segment may be the result of a
single SEND call, in whole or part, or of multiple SEND calls.
 
The purpose of push function and the PUSH flag is to push data through
from the sending user to the receiving user. It does not provide a
record service.
 
There is a coupling between the push function and the use of buffers//the coupling between the push function and the buffers
of data that cross the TCP/user interface. Each time a PUSH flag is
associated with data placed into the receiving user's buffer, the
buffer is returned to the user for processing even if the buffer is
not filled. If data arrives that fills the user's buffer before a
PUSH is seen, the data is passed to the user in buffer size units.
 
TCP also provides a means to communicate to the receiver of data that //the urgent data
at some point further along in the data stream than the receiver is
 
[Page 12]
 
September 1981
Transmission Control Protocol
Philosophy
 
currently reading there is urgent data. TCP does not attempt to
define what the user specifically does upon being notified of pending
urgent data, but the general notion is that the receiving process will
take action to process the urgent data quickly.
                                                              //TCP提供2种传输:随到随传和装满在传
2.9. Precedence and Security
 
The TCP makes use of the internet protocol type of service field and //type of service field and security option to provide
security option to provide precedence and security on a per connection//precedence and security
basis to TCP users. Not all TCP modules will necessarily function in
a multilevel secure environment; some may be limited to unclassified
use only, and others may operate at only one security level and
compartment. Consequently, some TCP implementations and services to
users may be limited to a subset of the multilevel secure case.
                                                                       //只提供较低的优先级服务
TCP modules which operate in a multilevel secure environment must
properly mark outgoing segments with the security, compartment, and
precedence. Such TCP modules must also provide to their users or
higher level protocols such as Telnet or THP an interface to allow
them to specify the desired security level, compartment, and
precedence of connections.
 
2.10. Robustness Principle
 
TCP implementations will follow a general principle of robustness: be //保守的做,开放的接受!
conservative in what you do, be liberal in what you accept from
others.
 
[Page 13]
 
September 1981
Transmission Control Protocol
 
[Page 14]
 
September 1981
Transmission Control Protocol
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值