目录
前言
第5章运输层
1、用户数据报协议(UDP)
2、传输控制协议(TCP)
3、TCP/IP网络中的运输层协议
4、UDP的特点和应用
5、TCP的连接过程
6、慢启动和拥塞避免
7、快速恢复
前言
总结计算机网络教程课程期末必记知识点。
第5章运输层
1、用户数据报协议(UDP)
2、传输控制协议(TCP)
3、TCP/IP网络中的运输层协议
应用层 | |
UDP | TCP |
IP | |
与各种网络的接口 |
4、UDP的特点和应用
用户数据报协议(UDP)是一种在网络通信中常用的传输层协议。与传输控制协议(TCP)相比,UDP具有以下特点:
无连接性:UDP是一种无连接的协议,通信双方不需要在传输之前建立连接。这意味着UDP在发送数据之前不需要进行握手、建立虚拟电路等操作,因此速度较快。
不可靠性:UDP不提供数据包的可靠传输。一旦发送数据包,就无法确保数据包能够按照顺序、完整地到达目的地。如果数据包丢失或损坏,UDP不会重新发送或进行错误检查。
高效性:由于UDP没有TCP那样的连接维护和流量控制机制,它的开销较小。这使得UDP在对实时性要求较高的应用场景中非常适用。
实际生活中,UDP协议常用于以下应用场景:
实时音视频传输:UDP在实时音视频应用中非常常见。由于UDP传输速度快、延迟低,并且对数据丢失不敏感,因此常被用于视频会议、在线游戏、实时直播等需要实时传输的场景。
DNS查询:域名系统(DNS)使用UDP协议进行域名解析。当你在浏览器中输入一个网址,DNS服务器通过UDP协议将域名映射为相应的IP地址,以便让你的浏览器能够连接到正确的服务器。
广播和多播:UDP支持广播和多播功能,可以将数据包同时发送给多个接收者。这在一些局域网中用于实现多人游戏、视频流传输等。
5、TCP的连接过程
三次握手,四次挥手
6、慢启动和拥塞避免
慢启动(Slow Start)和拥塞避免(Congestion Avoidance)是TCP(传输控制协议)中的两个重要机制,用于控制网络拥塞并优化数据传输性能。
- 慢启动(Slow Start): 慢启动是TCP连接刚开始发送数据时的一种策略。它的目标是在网络负载较轻的情况下,迅速找到合适的网络传输速率。具体流程如下:
- TCP连接刚建立时,发送方将拥塞窗口(congestion window)设置为一个较小的值。
- 每当收到一个确认(ACK)时,拥塞窗口就会加倍,即指数增长。
- 发送方继续以这种方式增大拥塞窗口,直到达到一个阈值,称为慢启动门限(slow start threshold)。
慢启动的目的是避免在网络负载较重时引发拥塞。通过逐渐增加发送速率,慢启动可以让发送方逐步感知网络的可用带宽,从而避免发送过多的数据导致网络拥塞。
- 拥塞避免(Congestion Avoidance): 拥塞避免是在慢启动阶段后和达到慢启动门限后的一种传输状态。它的目标是在网络拥塞的情况下,尽量减少数据包的丢失,从而避免进一步加剧网络拥塞。具体流程如下:
- 一旦达到慢启动门限,发送方将进入拥塞避免状态。
- 拥塞避免状态下,发送方的拥塞窗口按线性增长,在每一个传输轮次中只增加一个拥塞窗口大小的数据。
- 如果检测到数据包丢失,则表示网络可能已经发生了拥塞。此时,发送方会将慢启动门限设置为当前拥塞窗口的一半,并重新开始慢启动过程。
拥塞避免通过逐渐增加发送速率,但速度较慢,以防止过多的数据包在网络中积聚,从而减少网络拥塞的可能性。
慢启动和拥塞避免机制共同作用,可以使TCP连接根据网络的状况自适应地调整传输速率,避免网络拥塞并提高传输效率。
7、快速恢复
快速恢复(Fast Recovery)是TCP(传输控制协议)中的一种拥塞控制机制,用于在发生丢包时更快地恢复数据传输速率,以提高网络传输效率。
当发生数据包丢失时,TCP会认为网络出现了拥塞,并采取相应的措施来减少发送方的数据传输速率,以避免进一步加重网络拥塞。而快速恢复机制可以在减少发送速率的同时,更快地恢复到之前的传输速率,以提高效率。
具体步骤如下:
- 发送方收到三个重复的 ACK(确认),表示有一个或多个数据包已被接收方接收但是有一个数据包丢失。
- 当发送方收到第一个重复的 ACK 时,它会将拥塞窗口缩小一半,并将慢启动门限设置为当前拥塞窗口的一半。
- 发送方继续发送数据,等待接收方确认已接收的数据。
- 当发送方收到第二个和第三个重复的 ACK 时,它会认为接收方已经成功接收到后续的数据包,并不是因为网络拥塞导致的丢失。此时,发送方将拥塞窗口增加一个拥塞窗口大小的数据,而不是线性增长。
- 发送方继续发送数据,从上一步骤中恢复的拥塞窗口大小开始。
- 如果发送方再次收到重复的 ACK,则重新进入快速恢复过程。
通过快速恢复机制,TCP可以更快地从拥塞状态中恢复,避免了慢启动阶段的线性增长,提高了网络传输效率。这样可以使发送方更好地利用可用带宽,减少传输延迟,并最大化地利用网络资源。
🌌点击下方个人名片,交流会更方便哦~(欢迎到博主主页加入我们的 CodeCrafters联盟一起交流学习)↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓