精华内容
下载资源
问答
  • 计算机网络第5章答案和重点 计算机网络(第四版) 编者:谢希仁 大连理工大学出版社
  • 计算机网络 第5章网际控制报文协议ICMP PPT
  • 计算机网络第5章(运输层) 运输层向它上面的应用层提供通信服务,属于面向通信部分的最高层,同时也是用户功能中的最底层,享受着网络层提供的端到端通信服务。 文章目录计算机网络第5章(运输层)前言5.1、运输层...

    【一周搞定计算机网络】文章全系列已经更新完毕,详情请戳:
    计算机网络第1章(概述)
    计算机网络第2章(物理层)
    计算机网络第3章(数据链路层)
    计算机网络第4章(网络层)
    计算机网络第5章(运输层)
    计算机网络第6章(应用层)

    计算机网络第5章(运输层)

    运输层向它上面的应用层提供通信服务,属于面向通信部分的最高层,同时也是用户功能中的最底层,享受着网络层提供的端到端通信服务。

    前言

    这是本人在观看b站湖科大计算机网络教学视频后所做的笔记,以此来记录一些比较重要的计算机网络知识点,希望能够帮助到有需要的小伙伴学习计算机网络这门知识点较为繁杂的重要学科。有被帮助到的小伙伴记得给我点个赞以作鼓励哦,万分感谢!!!

    b站湖科大计算机网络视频地址:计算机网络微课堂(有字幕无背景音乐版)

    5.1、运输层概述

    概念

    进程之间的通信

    image-20201020211725185

    • 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层
    • 当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到三层(到网络层)的功能。

    image-20201020211339131

    进程之间通信流程

    image-20201020213721054

    “逻辑通信”是指运输层之间的通信好像是沿水平方向传送数据,但事实上,这两条数据并没有一条水平方向的物理连接,要传送的数据是沿着图中上下多次的虚线方向传送的

    进程Ap1与Ap4之间进行基于网络的通信,进程Ap2与Ap3之间进行基于网络的通信

    在运输层使用不同的端口,来对应不同的应用进程

    然后通过网络层及其下层来传输应用层报文

    接收方的运输层通过不同的端口,将收到的应用层报文,交付给应用层中相应的应用进程

    这里端口并不是指看得见、摸得着的物理端口,而是指用来区分不同应用进程的标识符

    image-20201020220439303

    总结

    image-20201020220545411

    image-20201020222828878

    5.2、运输层端口号、复用与分用的概念

    为什么用端口号

    image-20201020223242364

    发送方的复用和接收方的分用

    image-20201020223920225

    多个进程(这里一个端口表示一个进程) 利用一个运输层协议(或者称为运输层接口)发送数据称为 复用

    多个进程(这里一个端口表示一个进程) 利用一个运输层协议(或者称为运输层接口)接收时叫做 分用

    TCP/IP体系的应用层常用协议所使用的运输层熟知端口号

    image-20201020224521744

    运输层传输流程(重点)

    举例

    在这里插入图片描述

    在浏览器输入域名,回车浏览

    然后用户PC中的DNS客户端进程会发送一个DNS查询请求报文

    DNS查询请求报文需要使用运输层的UDP协议封装成UDP用户数据报

    首部中的源端口字段的值,在短暂端口号49151~65535中挑选一个未被占用的,用来表示DNS客户端进程

    首部中的目的端口字段的值:53,是DNS服务器端进程所使用的熟知端口号

    image-20201020225830336

    之后,将UDP用户数据报封装在IP数据报中,通过以太网发送给DNS服务器

    image-20201020230059196

    DNS服务器收到该IP数据报后,从中解封出UDP用户数据报

    UDP首部中的目的端口号为53,这表明应将该UDP用户数据报的数据载荷部分,也就是DNS查询请求报文,交付给本服务器中的DNS服务器端进程

    DNS服务器端进程解析DNS查询请求报文的内容,然后按其要求查找对应的IP地址

    之后,会给用户PC发送DNS响应报文,DNS响应报文需要使用运输层的UDP协议封装成UDP用户数据报

    其首部中的源端口字段的值设置为熟知端口号53,表明这是DNS服务器端进程所发送的UDP用户数据报,目的端口的值设置为49152,这是之前用户PC中发送DNS查询请求报文的DNS客户端进程所使用的短暂端口号

    image-20201020231032812

    将UDP用户数据报封装在IP数据报中,通过以太网发送给用户PC

    image-20201020231308120

    用户PC收到该数据报后,从中解封出UDP用户数据报

    UDP首部中的目的端口号为49152,这表明应将该UDP用户数据报的数据载荷部分,也就是DNS响应报文,交付给用户PC中的DNS客户端进程

    DNS客户端进程解析DNS响应报文的内容,就可知道自己之前所请求的Web服务器的域名对应的IP地址

    在这里插入图片描述

    现在用户PC中的HTTP客户端进程可以向Web服务器发送HTTP请求报文,请求报文的内容为“首页内容是什么?”

    HTTP请求报文需要使用运输层的TCP协议封装成TCP报文段

    TCP首部中的源端口字段的值在短暂端口号49151~65535中挑选一个未被占用的(49152),用来表示HTTP客户端进程。目的端口字段的值设置为80,这是HTTP服务端进程所使用的熟知端口号。

    image-20201020232517383

    之后,将TCP报文段封装在IP数据报中,通过以太网发送给Web服务器。

    image-20201020232132890

    Web服务器收到该数据报后,从中解封出TCP报文段。

    TCP首部中的目的端口号为80,这表明应该将该TCP报文段的数据载荷部分(HTTP请求报文),交付给本服务器中的HTTP服务器端进程。

    HTTP服务端进程解析HTTP请求报文的内容,然后按其要求查找首页内容。

    之后,会给用户PC发送HTTP响应报文,其内容是HTTP客户端所请求的首页内容。HTTP响应报文需要使用运输层的TCP协议封装成TCP报文段

    其首部中的源端口字段的值设置为熟知端口号80,表明这是HTTP服务器端进程所发送的TCP报文段;目的端口字段的值设置为49152,这是之前用户PC中发送HTTP请求报文的HTTP客户端进程所使用的短暂端口号。

    image-20201020232548833

    之后,将TCP报文段封装在IP数据报中通过以太网发送给用户PC。

    在这里插入图片描述

    用户PC收到该IP数据报后,从中解封出TCP报文段。

    TCP首部中的目的端口号为49152,这表明应该将该TCP报文段的数据载荷部分(HTTP响应报文),交付给用户PC中的HTTP客户端进程。

    HTTP客户端进程解析HTTP响应报文的内容,并在网页浏览器中进行显示。这样,就可以在网页浏览器中看到Web服务器所提供的首页内容了。

    5.3、UDP和TCP的对比

    概念

    • UDPTCP 是TCP/IP体系结构运输层中的两个重要协议
    • 当运输层采用面向连接的 TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道
    • 当运输层采用无连接的 UDP 协议时,这种逻辑通信信道是一条不可靠信道

    可靠信道与不可靠信道

    image-20201021192221061

    • 两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)。
    • TCP 传送的数据单位协议是 TCP 报文段(segment)。
    • UDP 传送的数据单位协议是 UDP 报文用户数据报

    在这里插入图片描述

    UDP的通信是无连接的,不需要套接字(Socket)

    TCP是面向连接的,TCP之间的通信必须要在两个套接字(Socket)之间建立连接

    用户数据报协议UDP(User Datagram Protocol)

    在这里插入图片描述

    可以发送广播

    image-20201021194104694

    可以向某个多播组发送多播

    image-20201021194225567

    还可以发送单播

    image-20201021194341256

    UDP 支持单播、多播以及广播

    换句话说,UDP支持一对一,一对多,以及一对全的通信

    运输过程

    image-20201021195034383

    UDP对应用进程交下来的报文既不合并也不拆分,而是保留这些报文的边界

    换句话说,UDP是面向应用报文的

    UDP向上层提供无连接不可靠传输服务

    image-20201021204152175

    UDP结构

    image-20201021205214512

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    传输控制协议TCP(Transmission Control Protocol)

    使用TCP协议的通信双方,在进行数据传输之前,必须使用“三报文握手”建立TCP连接

    image-20201021194557102

    TCP连接建立成功后,通信双方之间就好像有一条可靠的通信信道,通信双方使用这条基于TCP连接的可靠信道进行通信

    image-20201021194749562

    很显然,TCP仅支持单播,也就是一对一的通信

    运输过程

    image-20201021195435677

    发送方

    • TCP会把应用进程交付下来的数据块看作是一连串无结构的字节流,TCP并不知道这些待传送的字节流的含义
    • 并将他们编号,并存储在自己发送缓存中
    • TCP会根据发送策略,从发送缓存中提取一定量的字节构建TCP报文段并发送

    接收方

    • 一方面从所接受到的TCP报文段中,取出数据载荷部分并存储在接收缓存中;一方面将接收缓存中的一些字节交付给应用进程
    • TCP不保证接收方应用进程所收到的数据块与发送方发送的数据块,具有对应大小的关系(例如,发送方应用进程交给发送方的TCP共10个数据块,但接收方的TCP可能只用了4个数据块,就把收到的字节流交付给了上层的应用进程,但接收方收到的字节流必须和发送方应用进程发出的字节流完全一样)
    • 接收方的应用进程必须有能力识别收到的字节流,把它还原成有意义的应用层数据

    TCP是面向字节流的,这正是TCP实现可靠传输、流量控制、以及拥塞控制的基础

    本图只画了一个方向的数据流,在实际网络中,基于TCP连接的两端,可以同时进行TCP报文段的发送和接收(全双工通信)

    TCP向上层提供面向连接的可靠传输服务

    image-20201021204508839

    TCP结构

    image-20201021205307406

    总结

    image-20201023004653315

    5.4、TCP的流量控制

    概念

    image-20201021223432091

    举例

    具体流程的视频

    image-20201021231801076

    ACK是TCP报文段首部中的标志位,取值1表示这是一个TCP确认报文段。

    上图主机A现在可将发送缓存中序号1~200的字节数据全部删除,因为已经收到了主机B对它们的累计确认

    image-20201021231904707

    上图主机A现在可将发送缓存中序号201~500的字节数据全部删除,因为已经收到了主机B对它们的累计确认

    image-20201021231945653

    image-20201021232027721

    上图主机A现在可将发送缓存中序号501~600的字节数据全部删除,因为已经收到了主机B对它们的累计确认

    image-20201021232600497

    image-20201021232645300

    上图如果零窗口探测报文在发送过程中如果丢失,还是能打破死锁局面

    因为零窗口探测报文段也有重传计时器,重传计时器超时后,零窗口探测报文段会被重传

    总结

    image-20201021234004254

    5.5、TCP的拥塞控制

    概念

    image-20201022141057083

    网络拥塞往往是由许多因素引起的。例如:

    1. 点缓存的容量太小;
    2. 链路的容量不足;
    3. 处理机处理的速率太慢;
    4. 拥塞本身会进一步加剧拥塞;

    拥塞控制的一般原理

    • 拥塞控制的前提:网络能够承受现有的网络负荷。
    • 实践证明,拥塞控制是很难设计的,因为它是一个动态问题
    • 分组的丢失是网络发生拥塞的征兆而不是原因。
    • 在许多情况下,甚至正是拥塞控制本身成为引起网络性能恶化、甚至发生死锁的原因。

    开环控制和闭环控制

    image-20201022142108309

    监测网络的拥塞

    主要指标有:

    1. 由于缺少缓存空间而被丢弃的分组的百分数;
    2. 平均队列长度;
    3. 超时重传的分组数;
    4. 平均分组时延;
    5. 分组时延的标准差,等等。

    上述这些指标的上升都标志着拥塞的增长。

    拥塞控制的算法

    image-20201022141423443

    image-20201022141556134

    真正的发送窗口值swnd = Min (接收方窗口值rwnd,拥塞窗口值cwnd)

    下图的实例横纵坐标的意思

    传输轮次:

    • 发送方给接收方发送数据报文段后,接收方给发送方发回相应的确认报文段
    • 一个传输轮次所经历的时间其实就是往返时间,往返时间并非是恒定的数值
    • 使用传输轮次是为了强调把拥塞窗口所允许发送的报文段都连续发送出去,并收到了对已发送的最后一个报文段的确认

    拥塞窗口:

    • 它会随网络拥塞程度,以及所使用的拥塞控制算法动态变化

    慢开始和拥塞避免

    慢开始(slow-start)

    • 目的:用来确定网络的负载能力或拥塞程度。
    • 算法的思路:由小到大逐渐增大拥塞窗口数值。
    • 两个变量:
      • 拥塞窗口(cwnd):初始拥塞窗口值:2 种设置方法。窗口值逐渐增大。
        • 1 至 2 个最大报文段 (旧标准)
        • 2 至 4 个最大报文段 (RFC 5681)
      • 慢开始门限(ssthresh):防止拥塞窗口增长过大引起网络拥塞。

    image-20201022145631052

    image-20201022144725100

    图中swnd是发送窗口

    每经过一个传输轮次,拥塞窗口就加倍

    窗口大小按指数增加,2的n-1次方

    拥塞避免(congestion avoidance)

    • 思路:让拥塞窗口 cwnd 缓慢地增大,避免出现拥塞。
    • 每经过一个传输轮次,拥塞窗口 cwnd = cwnd + 1
    • 使拥塞窗口 cwnd 按线性规律缓慢增长。
    • 在拥塞避免阶段,具有 “加法增大” (Additive Increase) 的特点。

    image-20201022150143886

    如果在发送过程中出现部分报文段丢失,这必然会造成发送方对这些丢失报文段的超时重传

    image-20201022145749592

    这个时候又回到了慢开始

    image-20201022145544163

    image-20201022145824004

    两个算法完整示意图

    image-20201022150236926

    快重传和快恢复

    image-20201022150902709

    快重传(fast retrasmit)

    image-20201022151250183

    快恢复(fast recovery)

    image-20201022151819265

    改进后的整体算法的示意图

    image-20201022152041751

    5.6、TCP超时重传时间的选择

    image-20201022152651184

    如果超时重传时间RTO的值设置得比RTT0的值小很多,这会引起报文段不必要的重传,使网络负荷增大

    image-20201022152708875

    如果超时重传时间RTO的值设置得远大于RTT0的值,这会使重传时间推迟的太长,使网络的空闲时间增大,降低传输效率

    image-20201022153244047

    image-20201022153518218

    RFC6298建议使用下式计算超时重传时间RTO

    image-20201022153758413

    往返时间RTT的测量比较复杂

    image-20201022154045440

    image-20201022154137911

    TCP超时重传的计算

    举例

    image-20201022154350745

    总结

    image-20201022154418863

    5.7、TCP可靠传输的实现

    本集具体讲解

    image-20201022161436801

    image-20201022161734997

    image-20201022164339902

    5.8、TCP的运输连接管理

    概念

    image-20201022193215183

    TCP的连接建立

    • TCP 建立连接的过程叫做握手
    • 握手需要在客户和服务器之间交换三个 TCP 报文段。称之为三报文握手
    • 采用三报文握手主要是为了防止已失效的连接请求报文段突然又传送到了,因而产生错误。

    TCP的连接建立要解决以下三个问题

    image-20201022193418673

    TCP使用“三报文握手”建立连接

    • TCP 连接的建立采用客户服务器方式
    • 主动发起连接建立的应用进程叫做TCP客户 (client)。
    • 被动等待连接建立的应用进程叫做TCP服务器 (server)。

    “握手”需要在TCP客户端和服务器之间交换三个TCP报文段

    过程

    image-20201022194219693

    最初两端的TCP进程都处于关闭状态

    image-20201022194350899

    一开始,TCP服务器进程首先创建传输控制块,用来存储TCP连接中的一些重要信息。例如TCP连接表、指向发送和接收缓存的指针、指向重传队列的指针,当前的发送和接收序号等

    之后,就准备接受TCP客户端进程的连接请求

    此时,TCP服务器进程就进入监听状态,等待TCP客户端进程的连接请求

    TCP服务器进程是被动等待来自TCP客户端进程的连接请求,因此称为被动打开连接

    image-20201022194926877

    TCP客户进程也是首先创建传输控制块

    由于TCP连接建立是由TCP客户端主动发起的,因此称为主动打开连接

    image-20201022195108616

    然后,在打算建立TCP连接时,向TCP服务器进程发送TCP连接请求报文段,并进入同步已发送状态

    TCP连接请求报文段首部中

    • 同步位SYN被设置为1,表明这是一个TCP连接请求报文段
    • 序号字段seq被设置了一个初始值x,作为TCP客户端进程所选择的初始序号

    请注意:TCP规定SYN被设置为1的报文段不能携带数据,但要消耗掉一个序号

    image-20201022195847144

    TCP服务器进程收到TCP连接请求报文段后,如果同意建立连接,则向TCP客户进程发送TCP连接请求确认报文段,并进入同步已接收状态

    TCP连接请求确认报文段首部中

    • 同步位SYN和确认位ACK都设置为1,表明这是一个TCP连接请求确认报文段
    • 序号字段seq被设置了一个初始值y,作为TCP服务器进程所选择的初始序号,
    • 确认号字段ack的值被设置成了x+1,这是对TCP客户进程所选择的初始序号(seq)的确认

    请注意:这个报文段也不能携带数据,因为它是SYN被设置为1的报文段,但同样要消耗掉一个序号

    image-20201022202010182

    TCP客户进程收到TCP连接请求确认报文段后,还要向TCP服务器进程发送一个普通的TCP确认报文段,并进入连接已连接状态

    普通的TCP确认报文段首部中

    • 确认位ACK被设置为1,表明这是一个普通的TCP确认报文段
    • 序号字段seq被设置为x+1,这是因为TCP客户进程发送的第一个TCP报文段的序号为x,所以TCP客户进程发送的第二个报文段的序号为x+1
    • 确认号字段ack被设置为y+1,这是对TCP服务器进程所选择的初始序号的确认

    请注意:TCP规定普通的TCP确认报文段可以携带数据,但如果不携带数据,则不消耗序号(在这种情况下,所发送的下一个数据报文段的序号仍是x+1)

    image-20201022202932905

    TCP服务器进程收到该确认报文段后也进入连接已建立状态

    现在,TCP双方都进入了连接已建立状态,它们可以基于已建立好的TCP连接,进行可靠的数据传输

    为什么TCP客户进程最后还要发送一个普通的TCP确认报文段?能否使用“两报文握手”建立连接?

    下图实例是“两报文握手”

    image-20201022203744174

    所以并不多余,这是为了防止已失效的连接请求报文段突然又传送到了TCP服务器,因而导致错误

    总结

    image-20201022204422775

    TCP的连接释放

    • TCP 连接释放过程比较复杂。
    • 数据传输结束后,通信的双方都可释放连接。
    • TCP 连接释放过程是四报文挥手

    TCP通过“四报文挥手”来释放连接

    • TCP 连接的建立采用客户服务器方式
    • 主动发起连接建立的应用进程叫做TCP客户 (client)。
    • 被动等待连接建立的应用进程叫做TCP服务器 (server)。
    • 任何一方都可以在数据传送结束后发出连接释放的通知

    过程

    image-20201022205124204

    现在TCP客户进程和TCP服务器进程都处于连接已建立状态

    TCP客户进程的应用进程通知其主动关闭TCP连接

    TCP客户进程会发送TCP连接释放报文段,并进入终止等待1状态

    TCP连接释放报文段首部中

    • 终止位FIN和确认位ACK的值都被设置为1,表明这是一个TCP连接释放报文段,同时也对之前收到的报文段进行确认
    • 序号seq字段的值设置为u,它等于TCP客户进程之前已传送过的数据的最后一个字节的序号加1
    • 确认号ack字段的值设置为v,它等于TCP客户进程之前已收到的、数据的最后一个字节的序号加1

    请注意:TCP规定终止位FIN等于1的报文段即使不携带数据,也要消耗掉一个序号

    image-20201022210030419

    TCP服务器进程收到TCP连接释放报文段后,会发送一个普通的TCP确认报文段并进入关闭等待状态

    普通的TCP确认报文段首部中

    • 确认位ACK的值被设置为1,表明这是一个普通的TCP确认报文段
    • 序号seq字段的值设置为v,它等于TCP服务器进程之前已传送过的数据的最后一个字节的序号加1,这也与之前收到的TCP连接释放报文段中的确认号匹配
    • 确认号ack字段的值设置为u+1,这是对TCP连接释放报文段的确认

    image-20201022232158631

    TCP服务器进程应该通知高层应用进程,TCP客户进程要断开与自己的TCP连接

    此时,从TCP客户进程到TCP服务器进程这个方向的连接就释放了

    这时的TCP连接属于半关闭状态,也就是TCP客户进程已经没有数据要发送了

    但如果TCP服务器进程还有数据要发送,TCP客户进程仍要接收,也就是说从TCP服务器进程到TCP客户进程这个方向的连接并未关闭

    image-20201022233050922

    TCP客户进程收到TCP确认报文段后就进入终止等待2状态,等待TCP服务器进程发出的TCP连接释放报文段

    若使用TCP服务器进程的应用进程已经没有数据要发送了,应用进程就通知其TCP服务器进程释放连接

    由于TCP连接释放是由TCP客户进程主动发起的,因此TCP服务器进程对TCP连接的释放称为被动关闭连接

    image-20201022233941557

    TCP服务器进程发送TCP连接释放报文段并进入最后确认状态

    该报文段首部中

    • 终止位FIN和确认位ACK的值都被设置为1,表明这是一个TCP连接释放报文段,同时也对之前收到的报文段进行确认
    • 序号seq字段的值为w,这是因为在半关闭状态下,TCP服务器进程可能又发送
    • 确认号ack字段的值为u+1,这是对之前收到的TCP连接释放报文段的重复确认

    image-20201022234741310

    TCP客户进程收到TCP连接释放报文段后,必须针对该报文段发送普通的TCP确认报文段,之后进入时间等待状态

    该报文段首部中

    • 确认为ACK的值被设置为1,表明这是一个普通的TCP确认报文段
    • 序号seq字段的值设置为u+1,这是因为TCP客户进程之前发送的TCP连接释放报文段虽然不携带数据,但要消耗掉一个序号
    • 确认号ack字段的值设置为w+1,这是对所收到的TCP连接释放报文段的确认

    TCP服务器进程收到该报文段后就进入关闭状态,而TCP客户进程还要进过2MSL后才能进入关闭状态

    TCP客户进程在发送完最后一个确认报文后,为什么不直接进入关闭状态?而是要进入时间等待状态?

    image-20201022234942562

    因为时间等待状态以及处于该状态2MSL时长,可以确保TCP服务器进程可以收到最后一个TCP确认报文段而进入关闭状态

    另外,TCP客户进程在发送完最后一个TCP确认报文段后,在经过2MSL时长,就可以使本次连接持续时间内所产生的所有报文段都从网络中消失,这样就可以使下一个新的TCP连接中,不会出现旧连接中的报文段

    TCP保活计时器的作用

    TCP双方已经建立了连接,后来,TCP客户进程所在的主机突然出现了故障

    TCP服务器进程以后就不能再收到TCP客户进程发来的数据

    因此,应当有措施使TCP服务器进程不要再白白等待下去

    image-20201022235800155

    5.9、TCP报文段的首部格式

    image-20201023000859363

    各字段的作用

    源端口和目的端口

    image-20201023005210010

    序号、确认号和确认标志位ACK

    在这里插入图片描述

    image-20201023003826059

    数据偏移、保留、窗口和校验和

    image-20201023004227265

    同步标志位、终止标志位、复位标志位、推送标志位、紧急标志位和紧急指针

    image-20201023005001450

    接收方收到紧急标志为1的报文段,会按照紧急指针字段的值从报文段数据载荷部分取出紧急数据,并直接上交应用进程,而不必在接收缓存中排队。

    选项和填充

    image-20201023005132426

    看到这如果有所收获的话,希望能给博主一个大大的赞哦!!!

    展开全文
  • 第五章练习题答案 网络互连有何实际意义进行网络互连时有哪些共同的问题需要解决 答网络互连使得相互连接的网络中的计算机之间可以进行通信 也就是说从功能上和 逻辑上看 这些相互连接的计算机网络组成了一个大型的...
  • 第五章练习题答案 5.1 网络互连有何实际意义进行网络互连时有哪些共同的问题需要解决 答网络互连使得相互连接的网络中的计算机之间可以进行通信也就是说从功能上和逻辑上看这些相互连接的计算机网络组成了一个大型的...
  • 计算机网络第五章.one

    2021-01-20 16:09:29
    计算机网络第五章.one
  • 计算机网络第五版第二答案计算机网络第五版第二答案计算机网络第五版第二答案计算机网络第五版第二答案计算机网络第五版第二答案计算机网络第五版第二答案计算机网络第五版第二答案
  • 计算机网络 第五章答案 复习五(运输层)

    万次阅读 多人点赞 2018-12-28 22:26:06
    1.试说明运输层在协议栈中的地位和作用,运输层的通信和网络层的通信有什么重要区别?为什么运输层是必不可少的?  答: 运输层处于面向通信部分的最高层,同时也是用户功能中的最低层,向它上面的应用层提供...

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

    答:

    • 运输层处于面向通信部分的最高层,同时也是用户功能中的最低层,向它上面的应用层提供服务向下兼容网络层,起到承上启下的中间作用 
    • 运输层为应用进程之间提供端到端的逻辑通信,但网络层是为主机之间提供逻辑通信(面向主机,承担路由功能,即主机寻址及有效的分组交换)。 
    • 各种应用进程之间通信需要“可靠或尽力而为”的两类服务质量,必须由运输层以复用和分用的形式加载到网络层。 

    2 . 网络层提供数据报或虚电路服务对上面的运输层有何影响?

    答:网络层提供数据报或虚电路服务不影响上面的运输层的运行机制。 但提供不同的服务质量。

    网络层所提供的服务越多,传输层协议就可以做得越简单。若网络层提供虚电报服务,那就能保证报文五差错、不丢失、不重复且按序地进行交互,因而传输协议就很简单。

    但若网络层提供的是不可靠的数据报服务,则就要求主机上有一个复杂的传输协议。

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

    答:都是。这要在不同层次来看,在运输层是面向连接的,在网络层则是无连接的。

    4.试用画图解释运输层的复用。画图说明许多个运输用户复用到一条运输连接上,而这条运输连接又复用到IP数据报上。

           

    5. 试举例说明有些应用程序愿意采用不可靠的UDP,而不用采用可靠的TCP。

    答:VOIP:由于语音信息具有一定的冗余度,人耳对VOIP数据报损失由一定的承受度,但对传输时延的变化较敏感。有差错的UDP数据报在接收端被直接抛弃,TCP数据报出错则会引起重传,可能带来较大的时延扰动。因此VOIP宁可采用不可靠的UDP,而不愿意采用可靠的TCP。

    原理:有差错的数据报UDP直接丢弃,而TCP则要求重传,TCP会带来较大的时延

    此外还有DNS、SNMP等都采用不可靠的UDP协议,而不愿意采用可靠的TCP

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

    答:丢弃

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

    答:可能,但应用程序中必须额外提供与TCP相同的功能。

    8.为什么说UDP是面向报文的,而TCP是面向字节流的?

    答:发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。接收方 UDP 对 IP 层交上来的 UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。发送方TCP对应用程序交下来的报文数据块,视为无结构的字节流(无边界约束,课分拆/合并),但维持各字节。

    UDP是面向报文的:发送方的UDP对应用程序交下来的报文,在添加了首部之后就向下交付,UDP对应用层交付下来的报文即不合并也不拆分,而是保留这些报文的边界,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文,接收方UDP对下方交上来的UDP用户数据报,在去除首部之后就原封不动的交付给上层的应用程序,一次交付一个完整报文,所以是UDP是面向报文的

    TCP是面向字节的:发送方TCP对应用程序交下来的报文数据块,视为无结构的字节流(无边界约束,可拆分/合并),但维持各字节流顺序(相对顺序没有变),TCP发送方有一个发送缓冲区,当应用程序传输的数据块太长,TCP就可以把它划分端一些再传输,如果应用程序一次只传输一个字节,那么TCP可以等待积累足够多的字节后再构成报文端发送出去,所以TCP的面向字节的

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

    答:端口的作用是对TCP/IP体系的应用进程进行统一的标志,使运行不同操作系统的计算机的应用进程能够互相通信。

    • 熟知端口号:数值一般为0~1023,标记常规的服务进程如FTP是21,DNS是53,HTTP是80等
    • 登记端口号:数值为1024~49151,标记没有熟知端口号的非常规的服务进程
    • 短暂端口号:数值为49152~65535,客户进程运行时动态选择

    把端口划分为3类是因为:避免端口号重复,无法区分应用进程。二是因特网上的计算机通信都是采用C/S方式,在客户发起通信请求时,必须知道服务器的端口,对应一些重要的应用程序,必须让所有用户知道。

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

    答:用于计算运输层数据报校验和。

    伪首部(pseudo header),通常有TCP伪首部和UDP伪首部。在UDP伪首部中,包含32位源IP地址,32位目的IP地址,8位协议,16位UDP长度。通过伪首部的校验,UDP可以确定该数据报是不是发给本机的,通过首部协议字段,UDP可以确认有没有误传。

    11.某个应用进程使用运输层的用户数据报UDP,然而继续向下交给IP层后,又封装成IP数据报。既然都是数据报,可否跳过UDP而直接交给IP层?哪些功能UDP提供了但IP没提提供?

    答:IP数据报只能找到目的主机而无法找到目的进程。UDP提供对应用层的复用和分用功能,并提供对数据部分的差错检验。

    12.一个应用程序用UDP,到IP层把数据报在划分为4个数据报片发送出去,结果前两个数据报片丢失,后两个到达目的站。过了一段时间应用程序重传UDP,而IP层仍然划分为4个数据报片来传送。结果这次前两个到达目的站而后两个丢失。试问:在目的站能否将这两次传输的4个数据报片组装成完整的数据报?假定目的站第一次收到的后两个数据报片仍然保存在目的站的缓存中。

    答:不行  重传时,IP数据报的标识字段会有另一个标识符。 仅当标识符相同的IP数据报片才能组装成一个IP数据报。前两个IP数据报片的标识符与后两个IP数据报片的标识符不同,因此不能组装成一个IP数据报。

    13 .一个UDP用户数据的数据字段为8192字节。在数据链路层要使用以太网来传送。试问应当划分为几个IP数据报片?说明每一个IP数据报字段长度和片偏移字段的值。

    答:UDP报文的长度=8192+8=8200字节。由于以太网的MTU=1500字节,所以IP分组的数据部分长度为1500-20=1480字节。因此需要划分为6个IP数据片。

    数据字段的长度:前5个是1480字节,最后一个是800字节。

    片偏移字段的值分别是:0,185,370,555,740和925.。

    14. 一UDP用户数据报的首部十六进制表示是:06 32 00 45 00 1C  E2 17.试求源端口、目的端口、用户数据报的总长度、数据部分长度。这个用户数据报是从客户发送给服务器发送给客户?使用UDP的这个服务器程序是什么?

    答:源端口0x0632=1586,目的端口0x0045=69,UDP用户数据报总长度0x001C=28字节,数据部分长度是28-8=20字节。 此UDP用户数据报是从客户发给服务器(因为目的端口号<1023,是熟知端口),服务器程序是TFFTP。

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

    答:如果语音数据不是实时播放(边接受边播放)就可以使用TCP,因为TCP传输可靠。接收端用TCP讲话音数据接受完毕后,可以在以后的任何时间进行播放。但假定是实时传输,则必须使用UDP。  UDP不保证可靠交付,但UCP比TCP的开销要小很多。因此只要应用程序接受这样的服务质量就可以使用UDP。

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

    答:分组和确认分组都必须进行编号,才能明确哪个分则得到了确认。

    停止等待协议要点:

     停止等待协议用于通信系统中,两个相连的设备相互发送信息时使用,以确保信息不因丢包或包乱序而丢失,是最简单的自动重传请求方法。
    只有收到序号正确的确认帧 ACKn 后,才更新发送状态变量 V(S)一次,并发送新的数据帧。
    接收端接收到数据帧时,就要将发送序号 N(S) 与本地的接收状态变量 V(R) 相比较。
    若二者相等就表明是新的数据帧,就收下,并发送确认。否则为重复帧,就必须丢弃。但这时仍须向发送端发送确认帧 ACKn,而接收状态变量 V(R) 和确认序号 n 都不变。
    连续出现相同发送序号的数据帧,表明发送端进行了超时重传。连续出现相同序号的确认帧,表明接收端收到了重复帧。
    发送端在发送完数据帧时,必须在其发送缓存中暂时保留这个数据帧的副本。这样才能在出差错时进行重传。只有确认对方已经收到这个数据帧时,才可以清除这个副本。
    实用的CRC 检验器都是用硬件完成的。
    CRC 检验器能够自动丢弃检测到的出错帧。因此所谓的“丢弃出错帧”,对上层软件或用户来说都是感觉不到的。
    发送端对出错的数据帧进行重传是自动进行的,因而这种差错控制体制常简称为ARQ(Automatic Repeat reQuest),直译是自动重传请求,但意思是自动请求重传。

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

    答: 收到重复帧不确认相当于确认丢失

    不可行。例如:发送方发送M1,接受方收到M1,确认M1,确认M1丢失。发送方超时重传M1,如果接受方收到重复的M1,不理睬,发送方又超时,又重传M1,如此重复下去了。

    18.假定在运输层使用停止等待协议。发送发在发送报文段M0后再设定的时间内未收到确认,于是重传M0,但M0又迟迟不能到达接收方。不久,发送方收到了迟到的对M0的确认,于是发送下一个报文段M1,不久就收到了对M1的确认。接着发送方发送新的报文段M0,但这个新的M0在传送过程中丢失了。正巧,一开始就滞留在网络中的M0现在到达接收方。接收方无法分辨M0是旧的。于是收下M0,并发送确认。显然,接收方后来收到的M0是重复的,协议失败了。试画出类似于图5-9所示的双方交换报文段的过程。

    答:  旧的M0被当成新的M0。      收下后就丢弃,什么也不做。 

     

    19.试证明:当用n比特进行分组的编号时,若接收到窗口等于1(即只能按序接收分组),当仅在发送窗口不超过2n-1时,连接ARQ协议才能正确运行。窗口单位是分组。

    这里的n比特进行分组编号即指序号为n位 协议中的是16位

    答:由于使用n比特对分组进行编码,所以分组的编号从0~2n-1,现假设发送方窗口的大小为2n,则发送方可一次发送序号为0~2n-1的分组。  

    假定序号为0~2n-1的分组全部发送且接收方正确接收后,接收方将用ACK0来进行确认,发送方收到此分组后,不能确定的是重传序号为0的旧分组还是新分组,出现二义性,故发送窗口不能超过2n-1  

    20.在连续ARQ协议中,若发送窗口等于7,则发送端在开始时可连续发送7个分组。因此,在每一分组发送后,都要置一个超时计时器。现在计算机里只有一个硬时钟。设这7个分组发出的时间分别为t0,t1…t6,且tout都一样大。试问如何实现这7个超时计时器(这叫软件时钟法)?

    答:可采用链表记录,其信息域为分组的相对发送时间和分组编号来实现。当编号为0的分组定时时钟到期后,修改链表指针并重发此分组,同时将头指针指向编号为1的分组,以此类推。

    补充:方法2:可以定义一个含有7个数据的数组,数组中的数据表示时间,当该组数据发送出去时,在对应序号的数组中填入时间值,该时间值是该组发送出去的时间+超时时间得到,如何不停的对该数组的值进行扫描,当接收到接收端的确认分组时,即将对应数组序号的时间值设置为空,准备记录下一个数据发发送时间,当系统时间大于数组中某一个时间值时,说明该分组以及超时了,需要进行重传

    21.使用连续ARQ协议中,发送窗口大小事3,而序列范围[0,15],而传输媒体保证在接收方能够按序收到分组。在某时刻,接收方,下一个期望收到序号是5  

    试问:  

    1)在发送方的发送窗口中可能有出现的序号组合有哪几种?  

    2)接收方已经发送出去的、但在网络中(即还未到达发送方)的确认分组可能有哪些?说明这些确认分组是用来确认哪些序号的分组。  

    答:

    (1)序号到4为止的分组都已收到。若这些确认都已到达发送方,则发送窗口的范围是[5,7]。假定所有的确认都丢失了,发送方没有收到这些确认。这时,发送窗口应为[2,4]。因此,发送窗口可以是[2,4],[3,5],[4,6],[5,7]中的任何一个。

    (2)接收方期望收到序号5的分组,说明序号为2,3,4的分组都已收到,并且发送了确认。对序号为1的分组确认肯定被发送方收到了,否则发送方不可能发送4号分组。可见,对序号为2,3,4的分组的确认有可能仍滞留在网络中。这些确认是用来确认序号为2,3,4的分组。

    22.主机A向主机B发送一个很长的文件,其长度为L字节。假定TCP使用的MSS1460字节。  

    1)在TCP的序号不重复使用的条件下,L的最大值是多少?  

    2)假定使用上面计算出文件长度,而运输层、网络层和数据链路层所使用的首部开销共66字节,链路的数据率为10Mb/s,试求这个文件所需的最短发送时间。  

    答:

    ( 1 ) L 的最大值是 2^ 32=4GB=4294967296 字节
            因为TCP报文 序号 字段——占 4 字节(32位)。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。 L是让求文件的长度,即TCP报文 序号 字段最多可以表示的字节的总数
    (2 )每次发送的报文段为 1460 字节。因此必须分4294967296/1460 取整为2941758,因为有余数,所以29417598+1即 2941759 个报文段。(而不是2941758)发送的总字节数是 2941759*66+4294967296=4489123390 字节。
    发送 4489123390 字节需时间为 4489123390 × 8 ÷10Mb/s=3591.3 秒≈ 59.85 分≈ 1 小时。

    23.主机A向主机B连续发送了两个TCP报文段,其序号分别为70100。试问:  

    1)第一个报文段携带了多少个字节的数据?  

    2)主机收到第一个报文段后发回的确认中的确认号应当是多少?  

    3)如果主机B收到第二个报文段后发回的确认中的确认号是180,试问A发送的第二个报文段中的数据有多少字节?  

    4)如果A发送的第一个报文段丢失了,但第二个报文段到达了BB在第二个报文段到达后向发送确认。试问这个确认号应为多少  

    答:1第一个报文段的数据序号是7099,共30字节的数据。  

    2确认号应为100  

    3180-100=80 字节。  

    4) 70  

    24 一个TCP连接下面使用256kb/s的链路,其端到端时延为128ms。经测试,发现吞吐量只有120kb/s。试问发送窗口W是多少?(提示:可以有两种答案,取决于接收端发出确认的时机)。  

    答:

    本题目主要考查的是“TCP流量控制”。
    为了提高报文段的传输效率,TCP采用大小可变的滑动窗口进行流量控制。窗口大小的单位为字节。发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值。发送端利用发送窗口调节向网络注入分组的速率不仅是为了使接收端来得及接收,而且还是为了对网络进行拥塞控制。在每一个运输连接上报文段是断续发送的,这样就有了两种速率。一种是链路层的数据率,另一种是从运输层看到的数据注入速率。
    题目中给出端到端时延为128ms,则在一个传输周期里,从发送第一个报文段到收到所有确认时间为:W/R+2*T,其中w为发送窗口的大小,R为链路速率,T为端到端时延。因此吞吐量TP=W/(W/R+2*T),将题目中的具体数据代入,即可求得W=7228字节。

    (b)W/256=120kb/s   推出w=3840B

    25.为什么在TCP首部中要把TCP端口号放入最开始的4个字节?  

    答:在ICMP的差错报文中要包含IP首部后面的8个字节的内容,而这里面有TCP首部中的源端口和目的端口。当TCP收到ICMP差错报文时需要用这两个端口来确定是哪条连接出了差错。  

    26.为什么在TCP首部中有一个首部长度字段,而UDP的首部中就没有这个这个字段?  

    答:TCP首部除固定长度部分外,还有选项,因此TCP首部长度是可变的。UDP首部长度是固定的。  

    27.一个TCP报文段的数据部分最多为多少个字节?为什么?如果用户要传送的数据的字节长度超过TCP报文字段中的序号字段可能编出的最大序号,问还能否用TCP来传送?  

    答:65495字节,此数据部分加上TCP首部的20字节,再加上IP首部的20字节,正好是IP数据报的最大长度65535。(当然,若IP首部包含了选择,则IP首部长度超过20字节,这时TCP 报文段的数据部分的长度将小于65495字节。)数据的字节长度超过TCP报文段中的序号字段可能编出的最大序号,通过循环使用序号,仍能用TCP来传送。  

    IP数据报的最大长度=2^16-1=65535(字节)
    TCP报文段的数据部分=IP数据报的最大长度-IP数据报的首部-TCP报文段的首部=65535-20-20=65495(字节)

    一个tcp报文段的最大载荷是65515字节.

    IP数据报的最大长度为2^16-1=65536B,减去IP数据报首部20B和TCP首部20B后的TCP报文段的数据部分为65495B。

    28.主机A向主机B发送TCP报文段,首部中的源端口是m而目的端口是n。当BA发送回信时,其TCP报文段的首部中源端口和目的端口分别是什么?  

    答:分别是nm  

    29.在使用TCP传送数据时,如果有一个确认报文段丢失了,也不一定会引起与该确认报文段对应的数据的重传。试说明理由。  

    答:还未重传就收到了对更高序号的确认。  

    因为TCP接收方只会对按序到达的最后一个分组发送确认 

    当对更高的序号确认了 意味着已经到达了,即不用重传了。

    30.TCP 使用的最大窗口为65535字节,而传输信道不产生差错,带宽也不受限制。若报文段的平均往返时延为20ms,问所能得到的最大吞吐量是多少?  

    答:在发送时延可忽略的情况下,最大数据率=最大窗口*8/平均往返时间=26.2Mb/s  

    31.通信信道带宽为1Gb/s,端到端时延为10msTCP的发送窗口为65535字节。试问:可能达到的最大吞吐量是多少?信道的利用率是多少?  

    答:报文长度L=65536×8+40×8=524600信道宽度C=109b/sL/C=0.0005246s传播时延Td=10×10-3s=0.02104864  

    最大吞吐量=L/(L/C+2×Td)=524600/0.0205246=25.5Mb/s  

    信道的利用率=(L/C)//(L/C+2×D)=0.0255  

    最大吞吐量为25.5Mb/s。信道利用率为25.5/1000=2.55%  

    往返时延等于两倍的端到端传播时延,即20ms=0.02s
    发送时延等于窗口数据量除以带宽,即65535*8/10^9秒
    TCP每发送一个窗口,需要进行等待确认信息回来,所以每发送完一个窗口,最快需要经过一个往返时延才可以发送下一个窗口(确认信息很小不考虑发送时延),所以在一个传输轮次中,包含一个发送时延和一个往返时延,而传输的数据量是一个窗口的大小(这里不考虑TCP、IP首部和帧的构成)
    所以最大吞吐量为一个窗口的大小除以一个传输轮次的时间,即65535*8/(65535*8/10^9+0.02)=25.54Mbit/s
    信道利用率为25.54Mbit/s/1000Mbit/s=2.55%
    注意在通信传输中G=10^9 M=10^6

    32.什么是Karn算法?TCP的重传机制中,若不采用Karn算法,而是在收到确认时都认为是对重传报文段的确认,那么由此得出的往返时延样本和重传时间都会偏小。试问:重传时间最后会减小到什么程度?  

    答:Karn 算法:在计算平均往返时延RTT时,只要报文段重传了,就不采用其往返时延样本。在统计意义上,重传时间最后会减小到使用karn 算法的1/2. 

    33.假定TCP在开始建立连接时,发送方设定超时重传时间是RTO=6s  

    1)当发送方接到对方的连接确认报文段时,测量出RTT样本值为1.5s。试计算现在的RTO值。  

    2)当发送方发送数据报文段并接收到确认时,测量出RTT样本值为2.5s。试计算现在的RTO值。  

    答:  

    1RFC2988 建议,RTO=RTTs+4*RTTd。其中RTTd RTTs的偏差加权均值。初次测量时,RTTd1= RTT1/2;后续测量中,RTTdi=1-Beta * RTTdi-1+Beta*{ RTTs- RTTi}Beta=1/4  

    依题意,RTT1)样本值为1.5 秒,则RTTs1=RTT1=1.5s RTTd1=RTT1/2=0.75s  

    RTO1=RTTs1+4RTTd1=1.5+4*0.75=4.5(s)  

    2)由已知:RTT2=2.5 RTTs1=1.5s RTTd1=0.75s,所以RTTd2=1-Beta * RTTd1+Beta*{ RTTs1- RTT2}=0.75*3/4+{1.5-2.5}/4=13/16  

    所以有:RTO2=RTTs1+4RTTd2=1.5+4*13/16=4.75s  

    34.已知第一次测得TCP的往返时延的当前值RTT30ms。现在收到了三个接连的确认报  

    文段,它们比相应的数据报文段的发送时间分别滞后的时间是:26ms32ms24ms。设α=0.9。试计算每一次的新的加权平均往返时间值RTTs。讨论所得出的结果。  

    答:a=0.1RTT=30 ms,M1=26ms,M2=32msM3=24ms  

    RTTS1=RTT*(1-a) +26*a=29.6  

    RTTS2=RTT1*a+32(1-a)=29.84  

    RTTS3=RTT2*a+241-a=29.256  

    三次算出加权平均往返时间分别为29.629.84 29.256ms。可以看出,RTT 的样本值变化多达20%时,加权平均往返。  

    35.试计算一个包括5段链路的运输连接的单程端到端时延。5段链路程中有2段是卫星链路,有3段是广域网链路。每条卫星链路又由上行链路和下行链路两部分组成。可以取这两部分的传播时延之和为250ms。每一个广域网的范围为1500km,其传播时延可按150000km/s来计算。各数据链路速率为48kb/s,帧长为960位。  

    答:5段链路的传播时延=250*2+1500/150000*3*1000=530ms  

    5段链路的发送时延=960/48*1000*5*1000=100ms  

    所以5段链路单程端到端时延=530+100=630ms  

    36.重复5-35题,但假定其中的一个陆地上的广域网的传输时延为150ms  

    答:5段链路的传播时延=250*2+1500/150000*3*1000=530ms  

    5段链路的发送时延=960/48*1000*4*1000+150=230ms  

    所以5段链路单程端到端时延=530+230=760ms  

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

    答:慢开始:  

    在主机刚刚开始发送报文段时可先将拥塞窗口cwnd设置为一个最大报文段MSS的数值。在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个MSS 的数值。用这样的方法逐步增大发送端的拥塞窗口cwnd,可以分组注入到网络的速率更加合理。  

    拥塞避免:  

    当拥塞窗口值大于慢开始门限时,停止使用慢开始算法而改用拥塞避免算法。拥塞避免算法使发送的拥塞窗口每经过一个往返时延RTT就增加一个MSS的大小。  

    快重传算法规定:  

    发送端只要一连收到三个重复的ACK即可断定有分组丢失了,就应该立即重传丢手的报文段而不必继续等待为该报文段设置的重传计时器的超时。  

    快恢复算法:  

    当发送端收到连续三个重复的ACK时,就重新设置慢开始门限ssthresh与慢开始不同之处是拥塞窗口cwnd不是设置为1,而是设置为ssthresh若收到的重复的ACKn个(n>3),则将cwnd 设置为ssthresh若发送窗口值还容许发送报文段,就按拥塞避免算法继续发送报文段。若收到了确认新的报文段的ACK,就将cwnd缩小到ssthresh。  

    乘法减小:  

    是指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(即出现一次网络拥塞),就把慢开始门限值ssthresh设置为当前的拥塞窗口值乘以0.5。当网络频繁出现拥塞时,ssthresh 值就下降得很快,以大大减少注入到网络中的分组数。  

    加法增大:  

    是指执行拥塞避免算法后,在收到对所有报文段的确认后(即经过一个往返时间),就把拥塞窗口cwnd增加一个MSS大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。  

    38.TCPssthresh的初始值为8(单位为报文段)。当拥塞窗口上升到12时网络发生了超时,TCP使用慢开始和拥塞避免。试分别求出第次到第15 次传输的各拥塞窗口大小。你能说明拥塞控制窗口每一次变化的原因吗?  

    答:拥塞窗口大小分别为:124891011121246789。  

    依照原理,首先执行TCP连接初始化,将拥塞窗口cwnd值置为1;其次执行慢开始算法,cwnd按指数规律增长,因此随后窗口大小分别为2,4,8。当拥塞窗口cwnd=ssthresh时,进入拥塞避免阶段,其窗口大小依次是9,10,11,12,直到上升到12为止发生拥塞;然后把门限值ssthresh设置为当前的拥塞窗口值乘以0.5,门限值ssthresh变为6,;然后进入慢开始,cwnd值置为1cwnd按指数规律增长,随后窗口大小分别为1,2,4,6,当拥塞窗口cwnd=ssthresh时,进入拥塞避免阶段,其窗口大小依次是7,8,9。  

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

    表5.1 拥塞窗口cwnd 大小与传输轮次n的关系  

     

    cwnd 

    1  

    2  

    4  

    8  

    16  

    32  

    33  

    34  

    35  

    36  

    37  

    38  

    39  

    n  

    1  

    2  

    3  

    4  

    5  

    6  

    7  

    8  

    9  

    10  

    11  

    12  

    13  

    cwnd 

    40  

    41  

    42  

    21  

    22  

    23  

    24  

    25  

    26  

    1  

    2  

    4  

    8  

    n  

    14  

    15  

    16  

    17  

    18  

    19  

    20  

    21  

    22  

    23  

    24  

    25  

    26  

     

     

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

    2)指明TCP 工作在慢开始阶段的时间间隔。  

    3)指明TCP 工作在拥塞避免阶段的时间间隔。  

    4)在第16 轮次和第22 轮次之后发送方是通过收到三个重复的确认还是通过超时检测到丢失了报文段?  

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

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

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

    答:

    40.TCP 在进行流量控制时是以分组的丢失作为产生拥塞的标志。有没有不是因拥塞而  

    引起的分组丢失的情况?如有,请举出三种情况。  

    答:  

    IP数据报在传输过程中需要分片,但其中的一个数据报未能及时到达终点,而终点组装IP 数据报已超时,因而只能丢失该数据报;IP 数据报已经到达终点,但终点的缓存没有足够的空间存放此数据报;数据报在转发过程中经过一个局域网的网桥,但网桥在转发该数据报的帧没有足够的差错空间而只好丢弃。  

    41.TCP传送512字节的数据。设窗口为100字节,而TCP报文段每次也是传送100字节的数据。再设发送端和接收端的起始序号分别选为100200,试画出类似于教材中图5-31的工作示意图。从连接建立阶段到连接释放都要画上。  

    答:答案如图5.4所示。  

    图5.4 TCP传送数据的工作示意图  

    42.在图5-29中所示的连接释放过程中,主机B能否先不发送ACK=x+1 的确认? (因为后面要发送的连接释放报文段中仍有ACK=x+1 这一信息)  

    答:  

    如果不再发送数据了,是可以把两个报文段合并成为一个,即只发送FIN+ACK 报文段。但如果还有数据报要发送,而且要发送一段时间,那就不行,因为迟迟收不到确认,就会以为刚才发送的FIN 报文段丢失了,就超时重传这个FIN 报文段,浪费网络资源。  

    43.在图(5-30)中,在什么情况下会发生从状态LISTEN到状态SYN_SENT,以及从状态SYN_ENT到状态SYN_RCVD的变迁?  

    答:当A和B都作为客户,即同时主动打开TCP连接。这时的每一方的状态变迁

    都是:CLOSED----→SYN-SENT---→SYN-RCVD--→ESTABLISHED

    44.试以具体例子说明为什么一个运输连接可以有多种方式释放。可以设两个互相通信的用户分别连接在网络的两结点上。  

    答:设AB建立了运输连接。协议应考虑一下实际可能性:  

    AB故障,应设计超时机制,使对方退出,不至于死锁;  

    A主动退出,B被动退出  

    B主动退出,A被动退出  

    45.解释为什么突然释放运输连接就可能会丢失用户数据,而使用TCP的连接释放方法就可保证不丢失数据。  

    答:  

    当主机1和主机2之间连接建立后,主机1发送了一个TCP数据段并正确抵达主机2,接着主机1发送另一个TCP数据段,这次很不幸,主机2在收到第二个TCP数据段之前发出了释放连接请求,如果就这样突然释放连接,显然主机1发送的第二个TCP报文段会丢失。  

    而使用TCP的连接释放方法,主机2发出了释放连接的请求,那么即使收到主机1的确认后,只会释放主机2到主机1方向的连接,即主机2不再向主机1发送数据,而仍然可接受主机1发来的数据,所以可保证不丢失数据。  

    46.试用具体例子说明为什么在运输连接建立时要使用三次握手。说明如不这样做可能会出现什么情况。  

    答:  

    3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。  

    假定BA发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,BA的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号,B甚至怀疑A是否收到自己的连接请求分组,在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待连接确认应答分组。而A发出的分组超时后,重复发送同样的分组。这样就形成了死锁。  

    47.一个客户向服务器请求建立TCP连接。客户在TCP连接建立的三次握手中的最后一个报文段中捎带上一些数据,请求服务器发送一个长度为L字节的文件。假定:  

    1)客户和服务器之间的数据传输速率是R字节/秒,客户与服务器之间的往返时间是RTT(固定值)。  

    2)服务器发送的TCP报文段的长度都是M字节,而发送窗口大小是nM字节。  

    3)所有传送的报文段都不会出错(无重传),客户收到服务器发来的报文段后就及时发送确认。  

    4)所有的协议首部开销都可忽略,所有确认报文段和连接建立阶段的报文段的长度都可忽略(即忽略这些报文段的发送时间)。  

    试证明,从客户开始发起连接建立到接收服务器发送的整个文件多需的时间是:T=2RTT+L/R nM>R(RTT)+MT=2RTT+L/R+(K-1)[M/R+RTT-nM/R] nM<R(RTT)+M其中,K=[L/nM],符号[x]表示若x不是整数,则把的整数部分加1  

    答:  

    发送窗口较小的情况,发送一组nM个字节后必须停顿下来,等收到确认后继续发送。共需K=[L/nM]个周期:其中前K-1个周期每周期耗时M/R+RTT,共耗时(K-1)(M/R+RTT)第周期剩余字节数Q=L-K-1*nM,需耗时Q/R总耗时=2*RTT+(K-1)(M/R+RTT)+Q/R =2*RTT+L/R+(K-1)[( M/R+RTT)-nM/R  

    48.网络允许的最大报文段长度为128字节,序号用8比特表示,报文段在网络中的寿命为30s,则每一条TCP连接所能达到的最高数据传输速率为?

    具有相同编号的报文段不应该同时在网络中传输,必须保证当序列号循环回来重复使用的时候,具有相同序列号的报文段已经从网络中消失。若序号用8比特表示,报文段的寿命为30s,那么在30s的时间内发送方发送的报文段的数目不能多于255个。网络允许的最大报文段长度为128B,再结合下式可得每一条TCP连接所能达到的最高数据传输速率约为8.7kbps。

    49.下面是以十六进制格式存储的一个UDP首部:

    CB84000D001C001C

    试问:

    a.源端口号是什么?

    b.目的端口号是什么?

    c.这个用户数据报的总长度是什么?

    d.数据长度是多少?

    e.这个分组是从客户到服务器还是从服务器到客户?

    答:

    a.源端口号是最前面的四位十六进制(CB84),代表着源端口号为52100。

    b.目的端口号是第二个四位十六进制(000D),代表着目的端口号为13。

    c.第三个四位十六进制(001C)定义了整个UDP分组的长度为28字节。

    d.数据的长度是整个分组的长度减去首部的长度,也就是28-8=20字节。

    e.目的端口号是13(熟知端口),所以是从客户到服务器的。
     

    未完待续......这章内容信息着实有多 寒假再啃啃TCP/IP详解再来~

     

     

    展开全文
  • 计算机网络第五章545

    2010-01-25 12:17:49
    计算机网络的每习题联系。。掌握基础。。抓住重点
  • 计算机网络第五章课后答案第七版(谢希仁著)

    万次阅读 多人点赞 2018-11-13 21:17:14
    计算机网络第五章课后答案 简介: 平时老师布置的作业自己做的答案,仅是做参考,希望有帮助 还可以把全部的答案分享给大家:&gt;完整答案&lt; 第五课后作业答案: 第一页 第二页 第三页 ...
      				计算机网络第五章课后答案
    

    简介:

    平时老师布置的作业自己做的答案,仅是做参考,希望有帮助
    

    还可以把全部的答案分享给大家:>完整答案<
    第五章课后作业答案:

    1. 第一页
    2. 第二页
    3. 第三页
    展开全文
  • 重点:数据报和虚电路,路由选择算法,IP协议,ARP协议,子网划分。内容包括概述,路由选择,路由协议,IP协议,Internet控制协议。
  • 计算机网络第五版 第五 传输层 参考答案
  • 计算机网络第五版 第四 网络层 参考答案
  • 计算机网络 学习之路 艰辛但无悔! 一起从风雨中走出 迎接美丽彩虹!
  • 计算机网络试题第五章,和好的。希望对大家的考试有用啊。
  • 我们数学系用的计算机网络课件第五章 希望能帮到你
  • 计算机网络第五版word文档,第一计算机网络第五版word文档,第一
  • 谢希仁计算机网络第五版(第5章)课后习题答案
  • 计算机网络第知识点总结。第一节 计算机网络在信息时代的作用;第二节 互联网概述;第三节 互联网的组成;第四节 计算机网络在我国的发展;第五节 计算机网络的类别;第六节 计算机网络的性能;第七节 计算机...
  • 计算机网络第五版 第一 概述 参考答案
  • 计算机网络 第五版 第4 官方中文答案 北邮 官方 答案
  • 计算机网络基础的课件PPT,第1章计算机网络概论第2章数据通信基础第3章计算机网络体系结构第4章计算机局域网络第5章结构化布线系统第6章网络操作系统与网络结构第7章网络的计算模式第8章网络的互连第9章Internet第10...
  • 测试 考试 1 下列有关 MAC 地址的说法中哪一项正确? A.MAC 地址由软件实施。...该帧会广播给同一网络上的所有其他设备。 B.该帧会发送到默认网关。 C.该帧会被丢弃。 D.该帧会返回始发网络设备 3 基于...

    测试

    1.请参见图示。如果最终目的地是 PC1,那么以太网帧离开 Web 服务器时其目的 MAC 地址是什么?选择一项:
    A.00-60-2F-3A-07-AA
    B.00-60-2F-3A-07-BB
    C.00-60-2F-3A-07-CC
    D.00-60-2F-3A-07-DD

    2.十六进制值 3F 的十进制表示是什么?选择一项:
    A.18
    B.34
    C.45
    D.46
    E.63

    在这里插入图片描述
    请参见图示。H2 已向所有主机发送了广播消息。如果主机 H1 想要响应这条广播消息,下列哪项陈述是正确的?选择一项:
    A.H1 发送单播消息到 H2,但交换机将该消息转发给所有设备。
    B.H1 发送单播消息到 H2,交换机将该消息直接转发给 H2。
    C.H1 发送广播消息到 H2,交换机将该消息转发给所有设备。
    D.H1 发送组播消息到 H2,交换机将该消息直接转发给 H2。

    4.题干01-00-5E-0A-00-02 是什么类型的地址?选择一项:
    A.到达本地子网内每台主机的地址
    B.到达一个特定主机的地址
    C.到达网络中每台主机的地址
    D.到达一组特定主机的地址

    5.在以太网络中,十六进制地址 FF-FF-FF-FF-FF-FF 表示广播MAC地址。

    6.请参见图示。PC1 发出 ARP 请求,因为它需要发送数据包到 PC3。在这种情况下,接下来将发生什么?选择一项:
    A.RT1 将 ARP 请求转发给 PC3。
    B.RT1 将用其自身的 Fa0/0 MAC 地址发送 ARP 应答。
    C.RT1 将使用 PC3 的 MAC 地址发送 ARP 应答。
    D.SW1 将用其自身的 Fa0/1 MAC 地址发送 ARP 应答。
    E.RT1 将用其自身的 Fa0/1 MAC 地址发送 ARP 应答。

    7.请在空白处填写数字。
    最小以太网帧的大小为64字节。任何小于该值的帧都将视为“残帧”。

    8.题干以下哪两项功能或操作是由 MAC 子层执行的?(请选择两项。)选择一项或多项:
    A.负责介质访问控制。
    B.执行网卡驱动程序软件的功能。
    C.添加报头和报尾以形成 OSI 第 2 层 PDU。
    D.处理上层和下层之间的通信。
    E.将控制信息加入到网络协议层数据。

    9.标记题目题干第 2 层交换机用于将从 1000BASE-T 端口传入的帧切换到连接 100Base-T 网络的端口。此任务最好使用下列哪种内存缓冲方法?选择一项:
    A.基于端口的内存缓冲
    B.1 级缓存缓冲
    C.共享内存缓冲
    D.固定配置缓冲

    10.题干第 2 层交换机接收到第 2 层广播帧时将实行哪种操作?选择一项:
    A.丢弃该帧。
    B.它会向除了收到该帧的端口以外的所有端口发送该帧。
    C.它会将帧发送到所有注册端口以转发广播。
    D.它会将帧发送到所有端口。

    11.题干如果交换机配置在每个端口的基础上包含用户定义的错误阈值,则达到错误阈值时,交换机将返回哪种交换方法?选择一项:
    A.免分片
    B.快速转发
    C.直通
    D.存储转发

    12.填空题。
    二进制数 0000 1010 可以表示为十六进制数0A

    13.题干当使用存储转发交换方法时,以太网帧的哪一部分用于执行错误检查?
    选择一项:
    A.帧尾中的 CRC
    B.帧头中的源 MAC 地址
    C.帧头中的目的 MAC 地址
    D.帧头中的协议类型

    14.填空题。
    以太网MAC负责直接与物理层通信。

    15.题干ARP 的主要作用是什么?选择一项:
    A.将 URL 转换成 IP 地址
    B.将 IPv4 地址解析为 MAC 地址
    C.向网络设备提供动态 IP 配置
    D.将内部私有地址转换为外部公有地址

    考试

    1 下列有关 MAC 地址的说法中哪一项正确?
    A.MAC 地址由软件实施。
    B.如果连接到 WAN,网卡只需要 MAC 地址。
    C.ISO 负责 MAC 地址规范。
    D.前三个字节用于供应商分配的 OUI。

    2 思科以太网交换机上接收的残帧会发生什么情况?
    A.该帧会广播给同一网络上的所有其他设备。
    B.该帧会发送到默认网关。
    C.该帧会被丢弃。
    D.该帧会返回始发网络设备

    3 基于端口的内存缓冲有何特征?
    A.所有帧均存储在一个公共内存缓冲区中。
    B.交换机上的所有端口共用一个内存缓冲区。
    C.内存缓冲区中的帧动态链接到目的端口。
    D.帧在链接到特定端口的队列中进行缓冲。

    4 不会被接收器作为超短帧丢弃的最小的以太网帧大小是多少?
    A.1500 个字节
    B.512 字节
    C.1024 字节
    D.64 字节

    5 请将每个特征与转发方法进行配对。(并非全部选项都要用到)。
    直通
    具有低延迟
    可能转发残帧
    收到目的地址后开始转发
    存储转发
    始终存储整个帧
    在转发之前检查 CRC
    在转发之前检查帧长度

    6 判断题。
    当设备向远程网络上的另一设备发送数据时,会将以太网帧发送给默认网关的 MAC 地址。
    A.错误 B.正确

    7 下列哪两项是以太网帧的大小(最小和最大)? (选择两项。)
    A.1518 个字节
    B.56 个字节
    C.128 个字节
    D.64 个字节
    E.1024 个字节

    8 交换机的 ARP 表映射了哪两种地址?
    A.第 3 层地址到第 2 层地址
    B.第 3 层地址到第 4 层地址
    C.第 4 层地址到第 2 层地址
    D.第 2 层地址到第 4 层地址

    9 哪种交换方法会使用帧中的 CRC 值?
    A.直通
    B.快速转发
    C.免分片
    D.存储转发

    10
    在这里插入图片描述

    请参见图示。 一台默认配置的交换机连接了四台主机。 图示为主机 A 的 ARP 表。 当主机 A 要向主机 D 发送 IP 数据包时会发生什么情况?
    A.主机 A 向交换机发出数据包。 交换机只向主机 D 发送数据包,主机 D 随即响应。
    B.主机 D 向主机 A 发送一条 ARP 请求。
    C.主机 A 向主机 D 的 MAC 地址发送一条 ARP 请求。
    D.主机 A 发出广播 FF:FF:FF:FF:FF:FF。 连接到交换机的所有其他主机都收到该广播,主机 D 以其 MAC 地址作出响应

    11 下列哪项陈述描述了本地链路上 ARP 请求的处理?
    A.本地网络上的所有路由器都必须转发它们。
    B.本地网络上的每台设备都将收到并处理它们。
    C.只有目标设备会收到并处理它们。
    D.本地网络上的所有交换机都会丢弃它们。

    12 ARP 欺骗攻击的目的是什么?
    A.将 IP 地址与错误的 MAC 地址相关联
    B.通过 ARP 请求导致网络主机不堪重负
    C.使用虚假地址填充交换机 MAC 地址表
    D.利用 ARP 回复广播向网络发起泛洪攻击

    13
    在这里插入图片描述

    请参见图示。 交换机均为默认配置。 主机 A 需要与主机 D 通信,但主机 A 默认网关没有 MAC 地址。 哪些网络主机将收到主机 A 发送的 ARP 请求?
    A.只有主机 B 和 C
    B.只有主机 D
    C.只有主机 A、B 和 C
    D.只有主机 A、B、C 和 D
    E.只有主机 B、C 和路由器 R1
    F.只有路由器 R1

    14 下列哪项陈述描述的是以太网?
    A.它会连接多个站点,比如位于不同国家/地区的路由器。
    B.它是互联网通信所需的第 1 层和第 2 层标准。
    C.它定义了用于描述网络运行方式的标准模型。
    D.它定义了世界上最常见的 LAN 类型。

    15 下列哪两种说法正确描述了以太网标准中逻辑链路控制子层的特点或功能? (选择两项。)
    A.数据链路层使用 LLC 与协议簇的上层通信。
    B.LLC 子层负责定位和检索介质上和介质外的帧。
    C.逻辑链路控制在软件中实现。
    D.逻辑链路控制在 IEEE 802.3 标准中指定。
    E.LLC 子层会向数据添加一个帧头和帧尾。

    16
    在这里插入图片描述

    请参见图示。由于 PC1 需要向 PC2 发送数据包,因此 PC1 发出一个 ARP 请求。在这种情况下,接下来将发生什么?
    A.RT1 将发送一个带有其 Fa0/0 MAC 地址的 ARP 应答。
    B.PC2 将发送一个带有其 MAC 地址的 ARP 应答。
    C.RT1 将发送一个带有 PC2 MAC 地址的 ARP 应答。
    D.SW1 将发送一个带有 PC2 MAC 地址的 ARP 应答。
    E.SW1 将发送一个带有其 Fa0/1 MAC 地址的 ARP 应答。

    17 交换机记录哪些编址信息以构建其 MAC 地址表?
    A.传出数据包的第 3 层源地址
    B.传入数据包的第 3 层目的地址
    C.传入帧的第 2 层源地址
    D.传出帧的第 2 层目的地址

    18 下列哪项陈述描述了 MAC 地址的特征?
    A.它们只在私有网络内可路由。
    B.它们有一个 32 位二进制值。
    C.它们必须全球唯一。
    D.它们作为第 3 层 PDU 的一部分添加。

    19
    si'ke

    请参见图示。 图中显示了小型交换网络和交换机的 MAC 地址表的内容。 PC1 发送了一个目的地为 PC3 的帧。 交换机将会如何处理此帧?
    A.交换机会丢弃该帧。
    B.交换机会将该帧转发到所有端口。
    C.交换机只会将该帧转发到端口 2。
    D.交换机只会将该帧转发到端口 1 和 3。
    E.交换机会将该帧转发到除端口 4 外的所有端口。

    20 什么是自动 MDIX?
    A.一种以太网连接器类型
    B.思科交换机上的一种端口类型
    C.一种思科交换机类型
    D.一种用于检测以太网电缆类型的功能

    21 ARP 操作可能会引起哪两个网络问题?(请选择两项。)
    A.多个 ARP 应答会使交换机 MAC 地址表包含的条目与连接到相关交换机端口的主机 MAC 地址表匹配。
    B.网络攻击者可能会控制 ARP 消息中的 MAC 地址和 IP 地址映射,以图拦截网络流量。
    C.手动配置静态 ARP 关联可能会促进 ARP 毒化或 MAC 地址欺骗。
    D.在带宽较低的大型网络中,多个 ARP 广播可能会导致数据通信延迟。
    E.大量 ARP 请求广播会导致主机 MAC 地址表溢出并阻止主机通过网络通信。

    22 ARP 请求帧使用下列哪个目的地址?
    A.FFFF.FFFF.FFFF
    B.0.0.0.0
    C.127.0.0.1
    D.01-00-5E-00-AA-23
    E.255.255.255.255

    展开全文
  • 计算机网络-第五章

    2012-12-06 16:12:53
    计算机网络的基础教程,是ppt文档,内容深入浅出,适用于初学者快速提高。
  • 计算机网络第五版 第三 数据链路层参考答案
  • 包括计算机网络第五版第一所有习题及第二大部分习题答案
  • 计算机网络 第三 课后答案 (第五版)
  • 计算机网络,考研真题整理答案解析,网络层考研真题答案解析Word版本,这一非常重要,是后边学习传输层的基础,总结了20道考研选择真题,和5道考研解答题
  • 吉林大学计算机网络课程,自顶向下,第五章考试重点,含有知识点归纳,重点讲解,归纳的很详细,可以作为期末考试参考资料

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 87,428
精华内容 34,971
关键字:

计算机网络第五章