传输层
概述
传输层是只有主机才会有的层次。
- 传输层提供进程与进程之间的逻辑通信;网络层提供的是主机与主机之间的逻辑通信。
- 复用:发送方两个进程的数据可以使用同一个传输层的数据进行传输。
- 分用:接收方将数据分交给不同的进程。
- 传输层会对收到的报文进行差错检测。
端口号能够标识主机中的应用进程。
在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程。
bash
套接字 Socket = (主机 IP 地址, 端口号)
UDP 协议
UDP 在 IP 数据报服务之上增加了复用、分用和差错检测功能。
UDP 主要特点:
- UDP 是无连接的,减少开销和发送数据之前的时延。
- UDP 尽最大努力交付,即不保证可靠交付。
- UDP 是面向报文的,适合一次性传输少量数据的网络应用;UDP 一次发送一个完整的报文。
- 无拥塞控制,适合很多实时应用,如视频会议。
- UDP 首部开销小,8B,TCP 有20B。
UDP 首部格式:
UDP 检验和会检验包括首部字段与数据字段的所有数据。
TCP 协议
特点与报文段
- TCP 是面向连接(虚连接)的传输层协议。
- 每一条 TCP 连接只能有两个端点,即点对点传输。
- TCP 提供可靠交付的服务,无差错、不丢失、不重复、按序到达。
- TCP 提供全双工通信,有发送缓存与接受缓存。
- TCP 面向字节流,即 TCP 把应用层交下来的数据仅仅看成是一串无结构的字节流。
TCP 报文短首部格式:
控制位:
连接管理
TCP 连接:连接建立、数据传送、连接释放。
TCP 连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫做客户,被动等待连接的进程叫服务器。
三次握手流程:
四次挥手流程:
可靠传输
可靠指的是:保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一致的。
TCP 实现可靠传输的机制:校验、序号、确认、重传。
流量控制
滑动窗口机制:在确认报文中设置接收窗口 rwnd 的值来限制发送速率。和数据链路层中相同。