计算机网络复习——第五章传输层

news2025/8/16 14:47:35

Today, ready to go home,啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

《计算机网络》(谢希仁)内容总结 (javaguide.cn)

重点知识:

Today, at home,啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

  • 进程(process) :指计算机中正在运行的程序实体。
  • 应用进程互相通信 :一台主机的进程和另一台主机中的一个进程交换数据的过程(另外注意通信真正的端点不是主机而是主机中的进程,也就是说端到端的通信是应用进程之间的通信)
  • 端口(port) :端口的目的是为了确认对方机器的哪个进程在与自己进行交互.端口又称协议端口号。端口号只有本地意义,它只是为了标志计算机应用层中的各个进程在和运输层交互时的层间接口
  • 停止等待协议(stop-and-wait) :指发送方每发送完一个分组就停止发送,等待对方确认,在收到确认之后在发送下一个分组。停止等待协议中超时重传是指只要超过一段时间仍然没有收到确认,就重传前面发送过的分组(认为刚才发送过的分组丢失了)。因此每发送完一个分组需要设置一个超时计时器,其重传时间应比数据在分组传输的平均往返时间更长一些。这种自动重传方式常称为自动重传请求 ARQ
  • 流量控制 : 就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
  • 拥塞控制 :防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。
  • 运输层提供应用进程之间的逻辑通信.运输层之间的通信并不是真正在两个运输层之间直接传输数据。运输层向应用层屏蔽了下面网络的细节,它使应用进程之间看起来好像两个运输层实体之间有一条端到端的逻辑通信信道。
  • 网络层为主机提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。
  • UDP 在传送数据之前不需要先建立连接,远地主机在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 确是一种最有效的工作方式。
  • TCP 提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP 不提供广播或多播服务。
  • UDP 的主要特点是 ① 无连接 ② 尽最大努力交付 ③ 面向报文 ④ 无拥塞控制 ⑤ 支持一对一,一对多,多对一和多对多的交互通信 ⑥ 首部开销小(只有四个字段:源端口,目的端口,长度和检验和)
  • TCP 的主要特点是 ① 面向连接 ② 每一条 TCP 连接只能是一对一的 ③ 提供可靠交付 ④ 提供全双工通信 ⑤ 面向字节流
  • TCP 用主机的 IP 地址加上主机上的端口号作为 TCP 连接的端点。这样的端点就叫做套接字(socket)或插口。套接字用(IP 地址:端口号)来表示。每一条 TCP 连接唯一地被通信两端的两个端点所确定。
  • TCP 使用滑动窗口机制。发送窗口里面的序号表示允许发送的序号。发送窗口后沿的后面部分表示已发送且已收到确认,而发送窗口前沿的前面部分表示不允许发送。发送窗口后沿的变化情况有两种可能,即不动(没有收到新的确认)和前移(收到了新的确认)。发送窗口的前沿通常是不断向前移动的。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。一般来说,我们总是希望数据传输更快一些。但如果发送方把数据发送的过快,接收方就可能来不及接收,这就会造成数据的丢失。
  • 拥塞的概念:在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。拥塞控制就是为了防止过多的数据注入到网络中,这样就可以使网络中的路由器或链路不致过载。(拥塞控制是全局性的,流量控制是点到点,端到端的控制)
  • 为了进行拥塞控制,TCP 发送方要维持一个拥塞窗口 cwnd 的状态变量。拥塞控制窗口的大小取决于网络的拥塞程度,并且动态变化。发送方让自己的发送窗口取为拥塞窗口和接收方的接受窗口中较小的一个。
  • TCP 的拥塞控制采用了四种算法,即慢开始,拥塞避免,快重传和快恢复。在网络层也可以使路由器采用适当的分组丢弃策略(如主动队列管理 AQM),以减少网络拥塞的发生。
  • 运输连接的三个阶段,即:连接建立,数据传送和连接释放。
  • 主动发起 TCP 连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫做服务器。TCP 连接采用三报文握手机制。服务器要确认用户的连接请求,然后客户要对服务器的确认进行确认。
  • TCP 的连接释放采用四报文挥手机制。任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送时,则发送连接释放通知,对方确认后就完全关闭了 TCP 连接。

作业题:1 3 6 7 9   10 15 16 17 21

23 37 39 53 59   68 74 

1.试说明运输层在协议栈中的地位和作用。运输层的通信和网络层的通信有什么重要的区别?为什么运输层是必不可少的?

地位和作用:运输层处于面向通信部分的最高层,同时也是用户功能中的最低层,向它上面的应用层提供服务

运输层的通信和网络层的通信有很大的区别。网络层提供主机之间的逻辑通信,而运输层则提供应用进程之间的逻辑通信。运输层还有复用、分用的功能,还要对收到的报文进行差错检测。
从网络层来说,通信的两端是两个主机。真正进行通信的实体是主机中的进程,是这个主机中的一个进程和另一个主机中的一个进程在交换数据(即通信)。因此严格地讲,两个主机进行通信就是两个主机中的应用进程互相通信。IP 协议虽然能把分组送到目的主机,但是这个分组还停留在主机的网络层而没有交付主机中的应用进程。从运输层的角度看,通信的真正端点并不是主机而是主机中的进程。也就是说,端到端的通信是应用进程之间的通信(见图 T-5-01)。因此,运输层是不可缺少的。

(运输层为应用进程之间提供端到端的逻辑通信,但网络层是为主机之间提供逻辑通信(面向主机,承担路由功能,即主机寻址及有效的分组交换)。

必不可少:各种应用进程之间通信需要“可靠或尽力而为”的两类服务质量,必须由运输层以复用和分用的形式加载到网络层。

2.当应用程序使用面向连接的TCP和无连接的IP时,这种传输是面向连接的还是无连接的?

这要从不同层次来看,运输层是面向连接的,而在网络层是无连接的。

3.接收方收到有差错的UDP用户数据报时应该如何处理?

简单地丢弃

4.如果应用程序愿意使用UDP完成可靠传输,这可能吗?说明理由。

可能,但这要由应用层自己来完成可靠传输,例如在应用程使用可靠传输协议。

5.端口的作用是什么?为什么端口号要划分为三种?

  • 端口是应用层中的应用进程与运输层实体进行层间交互的接口,只具有本地意义。
  • 服务器端使用两类端口号,熟知端口号和登记端口号,熟知端口号是给重要的应用程序使用的。
  • 登记端口号给没有熟知端口号的应用程序使用。
  • 客户端使用短暂端口号,这种端口号仅在客户端运行时才动态随机选择,留给客户临时使用。

6.试说明运输层中伪首部的作用。

所谓“伪首部”是指这种首部并不是 UDP 用户数据报或TCP 报文段真正的首部。只是在计算检验和时,临时添加在 UDP 用户数据报或 TCP 报文段的前面,得到一个临时的UDP 用户数据报或TCP 报文段。检验和就是按照这个临时的UDP 用户数据报或TCP 报文段来计算的。伪首部既不向下传送也不向上递交,而仅仅用于计算运输层的检验和

7.使用TCP对实时话音数据的传输会有什么问题?使用UDP在传送数据文件时会有什么问题?

TCP虽然保证可靠传输,但它的延迟大,因为一旦有分组丢失就要重传,增加时延,代价大。
UDP是不可靠的传输协议,UDP传输数据文件如果出现差错,UDP就会丢弃这个数据报,不会重传,所以数据文件有可能是错误的。

8.在停止等待协议中如果不使用编号是否可行?为什么?

不可以,分组和确认分组都必须进行编号,才能分得清哪个分组得到了确认。

9.在停止等待协议中,如果收到重复的报文段时不予理睬(即悄悄地丢弃它而其他什么也没做)是否可行?试举出具体的例子说明理由。

不可行,应当返回确认帧,停止等待协议对于重复报文要重传确认。发送方没有收到确认报文就会重传,接收方就会收到重复报文,因此要发送确认让发送方知道自己接收到了报文,让其继续发送下一个。如果不予理睬,发送方就以为对方没有收到报文,就会继续发送,进而陷入死循环。

10.使用连续 ARQ 协议中,发送窗口大小是 3,而序列范围 [0, 15],而传输媒体保证在接收方能够按序收到分组。在某时刻,接收方,下一个期望收到序号是 5。试问:
(1)在发送方的发送窗口中可能有出现的序号组合有哪几种?
(2)接收方已经发送出去的、但在网络中(即还未到达发送方)的确认分组可能有哪些?说明这些确认分组是用来确认哪些序号的分组。

1)全都确认5 6 7 全部丢失 2 3 4  所有可能2-7 -》 (234)(245)(456)(567)

2)2,3,4的确认分组可能还在网络中,用来确认序号为 2,3,4 的分组的。

11.主机 A 向主机 B 连续发送了两个 TCP 报文段,其序号分别为 70 和 100。试问:
(1)第一个报文段携带了多少个字节的数据?
(2)主机 B 收到第一个报文段后发回的确认中的确认号应当是多少?
(3)如果主机 B 收到第二个报文段后发回的确认中的确认号是 180,试问 A 发送的第二个报文段中的数据有多少字节?
(4)如果 A 发送的第一个报文段丢失了,但第二个报文段到达了 B。B 在第二个报文段到达后向 A 发送确认。试问这个确认号应为多少?

1)100-70 = 30 70~99,共30个字节的数据

2)100(下一个报文段的序号)

3)180-100 = 80 100~179,共80字节数据

4)70, 对按序到达的最后一个分组确认,第一个报文段没到,继续第一个。

12.在 TCP 的拥塞控制中,什么是慢开始、拥塞避免、快重传和快恢复算法?这里每一种算法各起什么作用? “乘法减小”和“加法增大”各用在什么情况下?

  • 慢开始:主机发送数据时,拥塞窗口设置为一个最大报文段MSS的数值。每收到一个报文段的确认,就把拥塞窗口增加一个MSS,所以每经过一个RTT,拥塞窗口cwnd就加倍。
  • 拥塞避免:当拥塞窗口值大于慢开始门限时,停止使用慢开始算法而改用拥塞避免算法。拥塞避免算法使发送的拥塞窗口每经过一个往返时延 RTT 就增加一个 MSS 的大小。
  • 快重传:发送端只要一连收到三个重复的 ACK 即可断定有分组丢失了,就应该立即重传丢手的报文段而不必继续等待为该报文段设置的重传计时器的超时。
  • 快恢复:发送方知道是丢失报文段,网络未拥塞,所以就将门限值调整为cwnd/2,将拥塞窗口也减半。
  • 乘法减小:不论在慢开始阶段还是拥塞避免阶段,只要超时,就将慢开始门限值 ssthresh =cwnd/2,令门限值快速下降。
  • 加法增大:执行拥塞避免算法后,经过一个RTT,cwnd+=MSS,令拥塞窗口缓慢增大,以防止网络过早出现拥塞。

13.TCP 的拥塞窗口 cwnd 大小与传输轮次 n 的关系如表所示:

在这里插入图片描述

(1)试画出如教材中图 5-25 所示的拥塞窗口与传输轮次的关系曲线。

​​​​​​​
(2)指明 TCP 工作在慢开始阶段的时间间隔。[1~6] [23~26]
(3)指明 TCP 工作在拥塞避免阶段的时间间隔。[6~16] [17~22]
(4)在第 16 轮次和第 22 轮次之后发送方是通过收到三个重复的确认还是通过超时检测到丢失了报文段?

 

  • 16的时候,下一轮次cwnd减半,应当是收到了三个ack,22的时候,下一轮次从cwnd1开始,应当是超时检测到了丢失了报文段。

(5)在第 1 轮次,第 18 轮次和第 24 轮次发送时,门限 ssthresh 分别被设置为多大?

  • 第一轮次ssthresh=32,因为超过门限值进入拥塞避免阶段;18轮次ssthresh=20,因为乘法减小,门限值等于cwnd/2=21;第24次,ssthresh = 22时拥塞窗口=26的一半 13.

(6)在第几轮次发送出第 70 个报文段?

1轮:cwnd = 1  total = 1

2轮:cwnd = 2 total = 3

3轮:cwnd = 4 total = 7

4轮:cwnd = 8 total = 15

5轮: cwnd = 16 total = 31

6轮:cwnd = 32 total 63

7轮:cwnd = 33 total 96 > 70 第七十个报文段在第七轮发出。
(7)假定在第 26 轮次之后收到了三个重复的确认,因而检测出了报文段的丢失,那么拥塞窗口 cwnd 和门限 ssthresh 应设置为多大?

cwnd = 8,因为报文段丢失,则cwnd/2 = 4, ssthresh = 8/2 = 4

14.UDP 用户数据报的最小长度是多少?用最小长度的 UDP 用户数据报构成的最短 IP 数据报的长度是多少?

  •  UDP 用户数据报的最小长度是 8 字节,此时仅有首部而没有数据。
  • 用最小长度的 UDP 源用户数据报构成的最短 IP 数据报的长度为 28 字节。 IP 数据报具有 20 字节的固定首部,首部中没有可选字段。

15.TCP 连接使用 1000 字节的窗口值,而上一次的确认号是 22001。它收到了一个报文段,确认号是 22401.。试用图来说明在这之前与之后的窗口情况。

 

16.在 TCP 的连接建立的三报文握手过程中,为什么第三个报文段不需要对方的确认?这会不会出现问题?

在发送第三个报文段时,可以有两种选择:
(1)仅仅是确认而不携带数据,数据接着在后面发送。A 在下一个报文段发送自己的数据。但下一个报文的首部中仍然包括了对 B 的 SYN + ACK 报文段的确认。此时没影响。
(2)不仅是确认,而且携带上自己的数据。B 由于没有收到三报文握手中的最后一个报文段(A 发送的确认报文段),因此 B 就不能进入 TCP 的 ESTABLISHED 状态(“连接已建立” 状态)。B 在 “半开连接” 状态下,B 虽然已经初始化了连接变量和缓存,但是不能接收数据。通常,B 在经过一段时间后还没有收到来自 A 的确认报文段,就终止这个半开连接状态,A 就必须重新建立 TCP 连接。因此,在这种情况下,第三个报文段(A 发送的第二个报文段)的丢失,就导致了 TCP 连接无法建立。会产生影响。

17.流量控制和拥塞控制的最主要的区别是什么?发送窗口的大小取决于流量控制还是拥塞控制?

流量控制是在一条 TCP 连接中的接收端才用的措施,用来限制对方(发送端)发送报文的速率。流量控制只控制一个发送端。控制端到端的报文发送速率。

拥塞控制是用来控制 TCP 连接中发送端发送报文段的速率,以免使互联网中的某处产生过载。拥塞控制可能会同时控制许多个发送端,限制它们的发送速率。限制整个网络中的发送端报文发送速率。

发送窗口的上限值是 min [rwnd, cwnd]。接收窗口的大小体现了接收端对发送端施加的流量控制,而拥塞窗口的大小则是整个互联网的负载情况对发送端施加的拥塞控制。因此,当接收窗口小于拥塞窗口时,发送窗口的大小取决于流量控制,即取决于接收端的接收能力。但当拥塞窗口小于接收窗口时,则发送窗口的大小取决于拥塞控制,即取决于整个网络的拥塞状况。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python字符串及正则表达式

一: 字符串可以用单引号或双引号来创建,也可以用三引号来创建多行字符串。 String_1 加快发展 String_2 "促进生产" String_3 """吾家吾国, 吾家吾国, 吾家吾国, 吾家吾国。""…

JDBC在IDEA中配置mysql过程及编程详解

目录 jdbc编程简介 1.导入jar包 2.建立数据库连接 2.1 创建数据源,描述数据库服务器在哪 2.2 实现一个mysql客户端,通过网络和服务器进行通信 3.使用代码操作数据库 3.1 增删改操作 增加操作 更新操作 删除操作 3.2 查询操作 4.断开连接,释放资源 jdbc编程简介 J…

关联规则之 Apriori 算法实现

一、数据预览 Apriori 算法是电商数据挖掘中的经典算法,用于发现商品之间的关联规则,例如买了 A 和 B 的情况下是否还会买 C,通过计算商品组合之间的支持度和置信度来实现。首先我们来看一张订单表,包含订单编号,和商…

数据可视化之雷达图:自助数据集处理,完美演绎球员数据可视化

数据可视化,不只应用于工作或者财务报告,在某些场合通过使用图表展示数据,进行信息可视化表达,不仅可以省去繁冗的文字,还能更为清晰直观地展示,化平庸为神奇,让任何人有认真看的欲望。 当今世…

Thinkpad X201i笔记本电脑开机Fan Error

Thinkpad X201i笔记本电脑开机Fan Error1 背景2 现象3 更换风扇3.1 准备工具3.2 开始拆机1 背景 家里的老笔记本电脑,thinkpad X201i笔记本电脑,一直在使用,之前给风扇清过会,添加过硬盘,基本上也是拆了卸&#xff0c…

Logger.error还不知道怎么传参打印?看完这个你就明白了

Logger.error方法打印出堆栈信息,非常重要,可以使我们快速定位出相关问题,提高效率。 但是Logger.error有多个重载方法,不同的传参,打印结果各不一样。 下面,来看一个示例, 一、代码示例 impor…

WordPress Mixed Content混合内容警告:4 种简单的修复方法

如果您在 WordPress 网站上看到混合内容警告,请不要惊慌,它是一个常见警告。即使您安装了 SSL(安全套接字层)证书,也可能在任何网站上发生这种情况。 WordPress Mixed Content混合内容警告不会阻止您的网站在页面上显示…

[附源码]java毕业设计医学季节性疾病筛查系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

学生Dreamweaver静态网页设计 基于HTML+CSS+JavaScript制作简食餐厅美食网站制作

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

计算机组成原理4小时速成:系统总线,片内总线,系统总线,通信总线,数据总线,地址总线,控制总线,传输率=带宽/传输周期

计算机组成原理4小时速成:系统总线,片内总线,系统总线,通信总线,数据总线,地址总线,控制总线,传输率带宽/传输周期 2022找工作是学历、能力和运气的超强结合体,遇到寒冬…

知识图谱-KGE-对抗模型-2018:KBGAN

KBGAN paper: KBGAN: Adversarial Learning for Knowledge Graph Embeddings 论文 本文是清华大学的一名同学发表在 NAACL(虽然是 C,但是是北美的 ACL) 2018 上的一篇文章,提出了 KBGAN,首次使用生成对抗网的思想做…

【配电网优化】配电网潮流计算与经济调度模糊满意度评价【含GUI Matlab源码 2159期】

⛄一、配电网潮流计算与经济调度模糊满意度评价软件介绍 单击guimh.m文件打开系统主界面,如图1所示,界面友好、简单、易于操作。主界面上方有一个“开始”按钮,可以控制整个软件的执行。主界面右方有三个选项,分别为“配电网潮流…

S32DS 调用脚本实现Post-build处理

作者:Stephen Du 免责声明: 本文为个人学习笔记及总结,仅代表个人观点,尽可能保证内容准确性。 所有文字均是自己码出来的,所有图片均为自己勾画(除部分来源于原始标准)。 复制/转发请注明来源/…

【目标检测】swin-transformer的学习

文章目录1. swin-transformer2. swin-transformer的结构1. swin-transformer 优点: 解决transformer在cv领域速度慢的问题保持CNN的位移不变性、尺寸不变性、感受野与尺寸的关系、分阶段降低分辨率等特点在多领域表现SOTA 缺点: 不具备CNN的权值共享…

常用框架技术-07 Apache Dubbo 一款高性能、轻量级的开源Java RPC框架

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言1.软件架构的演进过程1.1 集群和分布式1.2 单体架构1.2.1 架构说明1.2.2 优点1.2.3 缺点1.3 垂直架构1.3.1 架构说明1.3.2 优点1.3.3 缺点1.4 SOA架构1.4.1 架构…

[附源码]计算机毕业设计JAVA旅游景点推荐系统

[附源码]计算机毕业设计JAVA旅游景点推荐系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybati…

dolphinscheduler-数据质量-源码分析

数据质量工作流程 数据质量运行流程分为2个部分:在web端进行数据质量检测的流程定义,通过dolphinscheduer进行调度,提交到spark计算引擎;spark端负责解析数据质量模型的参数,通过读取数据、执行转换、输出三个步骤&am…

Java -- 每日一问:谈谈常用的分布式ID的设计方案?Snowflake是否受冬令时切换影响?

典型回答 首先,我们需要明确通常的分布式 ID 定义,基本的要求包括: 全局唯一,区别于单点系统的唯一,全局是要求分布式系统内唯一。 有序性,通常都需要保证生成的 ID 是有序递增的。例如,在数据…

小体积单输入单输出单电源供电光电隔离转换器0-75mV/0-5V/0-200mV/0-20mA/4-20mA

概述: 导轨安装DIN11 IPO OC系列模拟信号隔离放大器是一种将输入信号隔离放大、转换成按比例输出的直流信号混合集成厚模电路。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等需要直流信号隔离测控的行业。此系列产品内部采用了线性光电隔离技术相…

Unity | 以附加模式加载场景,实现多场景叠加及注意事项

1 多场景叠加 Unity 允许多场景叠加,这种叠加包括编辑模式及运行模式 新建两个简单的场景,SampleScene 和 AdditiveScene,设置不同的天空盒及平行光源颜色 SampleScene AdditiveScene 2 编辑模式 2.1 添加场景 在编辑器中的场景资源右键选…