计算机网络传输层
传输层主要功能
- 传输层提供应用进程之间的逻辑通信(端到端的通信)。与网络层的区别是:网络层提供的是主机之间的逻辑通信。
- 复用和分用;
- 复用;指发送方不同的应用进程都可以使用同一个传输层协议传送数据;
- 分用;指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程;
- 传输层对收到的报文进行差错检测(首部和数据部分)。而网络层只检查IP数据包的首部;
- 提供两种不同的传输协议,面向连接的TCP和无连接的UDP。
常见端口号
TCP协议端口
FTP | SSH | TELNET | SMTP | HTTP | BGP |
---|---|---|---|---|---|
21 | 22 | 23 | 25 | 80 | 179 |
FTP文件传输协议; SSH安全登陆; telnet不安全的文本传送
UDP协议端口
DNS | SNMP | TFTP |
---|---|---|
53 | 161 | 69 |
UDP和TCP对比与差异
TCP与UDP对比
- TCP;面向连接的传输控制协议,提供的是一条全双工的可靠逻辑信道。
- UDP;无连接的用户数据报协议,提供的是一条不可靠的逻辑信道。
TCP提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后释放连接。由于TCP要提供可靠传输,增加了许多开销,这不仅使得协议数据单元的首部增大,还要占用很多处理机资源。
UDP是一个无连接的非可靠传输协议。它在IP层之上仅提供两个附加服务:1.复用和分用;2.差错检测。由于UDP比较简单,因此它执行速度快,实时性好。
TCP
TCP首部格式
TCP概述
UDP
UDP优点
- 无须建立连接
- 无连接状态
- 分组首部开销小
- 实时性高
- 支持一对一、一对多、多对一和多对多的交互通信
连续ARQ可靠传输
连续的ARQ通过滑动窗口保证可靠传输;
目前广泛使用的是:返回N组连续ARQ协议
对报文编号,识别重复报文,将其丢弃。
超时重传,解决报文在传输时,丢失的问题。
ACK的值可以理解为,期待收到的下一个数据包的序号。若一个数据包的seq = n,这个数据包的ACK = n+1。
滑动窗口
滑动窗口用于:
- 流量控制
- 差错控制
TCP流量控制
控制发送报文的速率
差错控制
控制“连续ARQ”的参数
拥塞控制
拥塞控制:检测、避免和缓解拥塞的方法
拥塞控制与流量控制区别
- 流量控制是给定的发送端和接收端之间通信量控制
- 控制发送方的发送速率,使接收方来得及接收
- 拥塞控制是一个全局性的过程,涉及
- 所有主机、路由器
- 多种资源(信道带宽、缓存、处理能力)
拥塞控制四个算法:慢开始、拥塞避免(线性增长)、快重传、快恢复
在TCP连接建立和超时的时候,才采用慢开始算法
发送方最终的发送窗口 ≤ min(拥塞窗口,通知窗口)
慢开始、拥塞避免
快重传
当发送饭连续收到三个重复的ACK报文时,直接重传对方尚未收到的报文,不必等待那个报文段设置的重传计时器超时。
快恢复
TCP三次握手、四次挥手
三次握手:
四次挥手:
四次挥手过程,简单记法:
以下的四个描述步骤,只是形象生动的解释,在答题时,不要使用;
- 客户机:我希望与你断开连接;
- 服务器:你等一下,我还有数据没有发完;
- 服务器:我的数据发完了,你可以断开连接了;
- 客户机:我知道了,这就断开连接;
[扩展,考试不会作考察]:四次挥手的第四步,客户机在收到连接释放报文后,还需要再等2MSL(最长报文段寿命)的讨论?
- 如果客户机不等待2MSL的时间,直接关闭。
- 一旦客户机第四步发出的数据包,在路上丢失了;
- 服务器在发送完第三步的数据包后,迟迟等不来确认。按照超时重传的理论,服务器会重新发送第三步的数据包。
- 此时,由于客户机已经关机了。所以服务器永远等不到客户机对它的第三步报文的确定。
- 如果客户机等待2MSL再关机,会有什么好处?
- 如果客户机发送的四次挥手第四步的报文在路上丢失了;
- 服务器在发送完第三步的数据包后,迟迟等不来确认。按照超时重传的理论,服务器会重新发送第三步的数据包。
- 客户机收到服务器重发的第三步报文。客户机重新发送第四步的报文,重新开始计时2MSL,这就又回到了开头。
- 但是如果服务器重发的第三步报文,在路上丢失了,此时客户机在经过2MSL的等待后,没有收到服务器的数据,客户机就关机了。这样也会导致服务器收不到客户机的第四次报文。(这是否意味着,四次挥手是不完美的)
参考资料:
[1]. 2022王道论坛计算机网络.229-230(纸质:217-218)
[2]. 2022王道论坛计算机网络.230-231(纸质:218-219)