【精选】计算机网络教程(第5章运输层)

目录

前言

第5章运输层

1、用户数据报协议(UDP)

2、传输控制协议(TCP)

3、TCP/IP网络中的运输层协议

4、UDP的特点和应用 

5、TCP的连接过程

6、慢启动和拥塞避免 

7、快速恢复


前言

总结计算机网络教程课程期末必记知识点。

第5章运输层

1、用户数据报协议(UDP)
2、传输控制协议(TCP)
3、TCP/IP网络中的运输层协议
应用层
UDPTCP
IP
与各种网络的接口
4、UDP的特点和应用 

用户数据报协议(UDP)是一种在网络通信中常用的传输层协议。与传输控制协议(TCP)相比,UDP具有以下特点:

  1. 无连接性:UDP是一种无连接的协议,通信双方不需要在传输之前建立连接。这意味着UDP在发送数据之前不需要进行握手、建立虚拟电路等操作,因此速度较快。

  2. 不可靠性:UDP不提供数据包的可靠传输。一旦发送数据包,就无法确保数据包能够按照顺序、完整地到达目的地。如果数据包丢失或损坏,UDP不会重新发送或进行错误检查。

  3. 高效性:由于UDP没有TCP那样的连接维护和流量控制机制,它的开销较小。这使得UDP在对实时性要求较高的应用场景中非常适用。

实际生活中,UDP协议常用于以下应用场景:

  1. 实时音视频传输:UDP在实时音视频应用中非常常见。由于UDP传输速度快、延迟低,并且对数据丢失不敏感,因此常被用于视频会议、在线游戏、实时直播等需要实时传输的场景。

  2. DNS查询:域名系统(DNS)使用UDP协议进行域名解析。当你在浏览器中输入一个网址,DNS服务器通过UDP协议将域名映射为相应的IP地址,以便让你的浏览器能够连接到正确的服务器。

  3. 广播和多播:UDP支持广播和多播功能,可以将数据包同时发送给多个接收者。这在一些局域网中用于实现多人游戏、视频流传输等。

5、TCP的连接过程

三次握手,四次挥手 

6、慢启动和拥塞避免 

慢启动(Slow Start)和拥塞避免(Congestion Avoidance)是TCP(传输控制协议)中的两个重要机制,用于控制网络拥塞并优化数据传输性能。

  1. 慢启动(Slow Start): 慢启动是TCP连接刚开始发送数据时的一种策略。它的目标是在网络负载较轻的情况下,迅速找到合适的网络传输速率。具体流程如下:
  • TCP连接刚建立时,发送方将拥塞窗口(congestion window)设置为一个较小的值。
  • 每当收到一个确认(ACK)时,拥塞窗口就会加倍,即指数增长。
  • 发送方继续以这种方式增大拥塞窗口,直到达到一个阈值,称为慢启动门限(slow start threshold)。

慢启动的目的是避免在网络负载较重时引发拥塞。通过逐渐增加发送速率,慢启动可以让发送方逐步感知网络的可用带宽,从而避免发送过多的数据导致网络拥塞。

  1. 拥塞避免(Congestion Avoidance): 拥塞避免是在慢启动阶段后和达到慢启动门限后的一种传输状态。它的目标是在网络拥塞的情况下,尽量减少数据包的丢失,从而避免进一步加剧网络拥塞。具体流程如下:
  • 一旦达到慢启动门限,发送方将进入拥塞避免状态。
  • 拥塞避免状态下,发送方的拥塞窗口按线性增长,在每一个传输轮次中只增加一个拥塞窗口大小的数据。
  • 如果检测到数据包丢失,则表示网络可能已经发生了拥塞。此时,发送方会将慢启动门限设置为当前拥塞窗口的一半,并重新开始慢启动过程。

拥塞避免通过逐渐增加发送速率,但速度较慢,以防止过多的数据包在网络中积聚,从而减少网络拥塞的可能性。

慢启动和拥塞避免机制共同作用,可以使TCP连接根据网络的状况自适应地调整传输速率,避免网络拥塞并提高传输效率。

7、快速恢复

快速恢复(Fast Recovery)是TCP(传输控制协议)中的一种拥塞控制机制,用于在发生丢包时更快地恢复数据传输速率,以提高网络传输效率。

当发生数据包丢失时,TCP会认为网络出现了拥塞,并采取相应的措施来减少发送方的数据传输速率,以避免进一步加重网络拥塞。而快速恢复机制可以在减少发送速率的同时,更快地恢复到之前的传输速率,以提高效率。

具体步骤如下:

  1. 发送方收到三个重复的 ACK(确认),表示有一个或多个数据包已被接收方接收但是有一个数据包丢失。
  2. 当发送方收到第一个重复的 ACK 时,它会将拥塞窗口缩小一半,并将慢启动门限设置为当前拥塞窗口的一半。
  3. 发送方继续发送数据,等待接收方确认已接收的数据。
  4. 当发送方收到第二个和第三个重复的 ACK 时,它会认为接收方已经成功接收到后续的数据包,并不是因为网络拥塞导致的丢失。此时,发送方将拥塞窗口增加一个拥塞窗口大小的数据,而不是线性增长。
  5. 发送方继续发送数据,从上一步骤中恢复的拥塞窗口大小开始。
  6. 如果发送方再次收到重复的 ACK,则重新进入快速恢复过程。

通过快速恢复机制,TCP可以更快地从拥塞状态中恢复,避免了慢启动阶段的线性增长,提高了网络传输效率。这样可以使发送方更好地利用可用带宽,减少传输延迟,并最大化地利用网络资源。

🌌点击下方个人名片,交流会更方便哦~(欢迎到博主主页加入我们的 CodeCrafters联盟一起交流学习)↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/284505.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows11编译x265源码生成Visual Studio工程详细步骤

概述 x265是一款开源符合HEVC标准的编码器,也属于VLC项目之一。 由于x265是开源的,因此它得到了广泛的应用和开发。许多开源项目和商业产品都使用x265进行视频压缩处理。同时,x265也支持多种编程语言和平台,使得开发者可以方便地…

【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)

系列文章目录 身躯已然冰封,灵魂仍旧火热 本文由睡觉待开机原创,未经允许不得转载。 本内容在csdn网站首发 欢迎各位点赞—评论—收藏 如果存在不足之处请评论留言,共同进步! 文章目录 系列文章目录前言题目链接(有需要…

Linux shell编程学习笔记36:read命令

目录 0 前言1 read命令的功能、格式、返回值和注意 1.1 命令功能1.2 命令格式1.3 返回值1.4 注意事项2 命令应用实例 2.1 一次读入多个变量值2.2 不指定变量名2.3 测试read命令的返回值2.3 指定输入时限并进行相应处理2.4 -t 指定结束符2.5 -n 指定输入字符个数2.6 -N 指定输入…

被我们忽略的HttpSession线程安全问题

1. 背景 最近在读《Java concurrency in practice》(Java并发实战),其中1.4节提到了Java web的线程安全问题时有如下一段话: Servlets and JPSs, as well as servlet filters and objects stored in scoped containers like ServletContext and HttpSe…

Java+Swing: 删除数据 整理15

1. 添加点击事件 2. 在MainViewHandler处理类中,实现相应的处理操作 if ("删除".equals(text)){int[] selectedRowIds mainView.getSelectedRowIds();if (selectedRowIds.length 0){JOptionPane.showMessageDialog(mainView, "请选择要删除的数据…

JWT令牌的作用和生成

JWT令牌(JSON Web Token)是一种用于身份验证和授权的安全令牌。它由三部分组成:头部、载荷和签名。 JWT令牌的作用如下: 身份验证:JWT令牌可以验证用户身份。当用户登录后,服务器会生成一个JWT令牌并返回…

Linux - 非root用户使用systemctl管理服务

文章目录 方式一 (推荐)1. 编辑sudoers文件:2. 设置服务文件权限:3. 启动和停止服务: 方式二1. 查看可用服务:2. 选择要配置的服务:3. 创建自定义服务文件:4. 重新加载systemd管理的…

【网络安全】-Linux操作系统—操作系统发展历史与Linux

文章目录 操作系统发展历史初期的操作系统分时操作系统个人计算机操作系统 Linux的诞生UNIX与GNU项目Linux内核的创建 Linux的特点开放源代码多样性社区支持 Linux的应用服务器和超级计算机嵌入式系统桌面系统 总结 操作系统发展历史 操作系统(Operating System&am…

Leetcode sql50基础题最后的4题啦

算是结束了这个阶段了,之后的怎么学习mysql的方向还没确定,但是不能断掉,而且路是边走边想出来的。我无语了写完了我点进去看详情都不让,还得重新开启计划,那我之前的题解不都没有了!! 1.第二高…

DDD | 入门 - [概念体系]

INDEX 接触 DDD 前的准备不要用和 MVC 对照的思想去接触 DDD 领域 & 子域 & 界限上下文思路领域子域界限上下文 领域的初步划分 接触 DDD 前的准备 不要用和 MVC 对照的思想去接触 DDD 不要用和 MVC 对照的思想去接触 DDD,这样你会很痛苦。 在之前 蛋式编…

Linux下Netty实现高性能UDP服务

前言 近期笔者基于Netty接收UDP报文进行业务数据统计的功能,因为Netty默认情况下处理UDP收包只能由一个线程负责,无法像TCP协议那种基于主从reactor模型实现多线程监听端口,所以笔者查阅网上资料查看是否有什么方式可以接收UDP收包的性能瓶颈…

IDEA报错处理

问题1 IDEA 新建 Maven 项目没有文件结构 pom 文件为空 将JDK换成1.8后解决。 网络说法:别用 java18,换成 java17 或者 java1.8 都可以,因为 java18 不是 LTS 版本,有着各种各样的问题。。