系统管理指南:IP 服务

传输层:数据封装开始的位置

当数据到达传输层时,该层上的协议即会开始数据封装过程。传输层会将应用程序数据封装到传输协议数据单元中。

传输层协议可在发送应用程序和接收应用程序(以传输端口号区分)之间创建虚拟数据流。端口号可标识端口,端口是内存中接收或发送数据的专用位置。此外,传输协议层可能还会提供其他服务,如可靠的、按顺序的数据传送。最终结果取决于是 TCP、SCTP 还是 UDP 处理信息。

TCP 段

TCP 通常称为“面向连接的”协议,这是因为 TCP 可确保将数据成功传送到接收主机。图 1–1 说明了 TCP 协议如何接收来自 rlogin 命令的流。然后,TCP 将从应用层收到的数据分成多个段,再向每个段中附加一个头。

段头包含发送端口和接收端口、段排序信息以及称为校验和的一个数据字段。两台主机上的 TCP 协议都会使用校验和数据来确定数据传送是否出现错误。

建立 TCP 连接

TCP 使用段来确定接收系统是否准备好接收数据。当用于发送的 TCP 需要建立连接时,TCP 会将一个称为 SYN 的段发送到接收主机上的 TCP 协议。用于接收的 TCP 将返回一个称为 ACK 的段以确认是否成功收到段。用于发送的 TCP 会发送另一个 ACK 段,然后继续发送数据。这种控制信息的交换称为三次握手

UDP 包

UDP 是一种“无连接”协议。与 TCP 不同,UDP 不会检查数据是否已到达接收主机。相反,UDP 会将从应用层收到的消息的格式设置为 UDP 包。UDP 会向每个包中附加一个头。此头包含发送端口和接收端口、包含包长度的字段以及校验和。

发送 UDP 进程会尝试将包发送到接收主机上的对等 UDP 进程。应用层将确定接收 UDP 进程是否会确认包的接收。UDP 不需要任何接收通知。UDP 不使用三次握手。