赞
踩
Today, ready to go home,啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
《计算机网络》(谢希仁)内容总结 (javaguide.cn)
重点知识:
Today, at home,啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
作业题: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 的拥塞控制中,什么是慢开始、拥塞避免、快重传和快恢复算法?这里每一种算法各起什么作用? “乘法减小”和“加法增大”各用在什么情况下?
13.TCP 的拥塞窗口 cwnd 大小与传输轮次 n 的关系如表所示:
(1)试画出如教材中图 5-25 所示的拥塞窗口与传输轮次的关系曲线。
(2)指明 TCP 工作在慢开始阶段的时间间隔。[1~6] [23~26]
(3)指明 TCP 工作在拥塞避免阶段的时间间隔。[6~16] [17~22]
(4)在第 16 轮次和第 22 轮次之后发送方是通过收到三个重复的确认还是通过超时检测到丢失了报文段?
(5)在第 1 轮次,第 18 轮次和第 24 轮次发送时,门限 ssthresh 分别被设置为多大?
(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 数据报的长度是多少?
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]。接收窗口的大小体现了接收端对发送端施加的流量控制,而拥塞窗口的大小则是整个互联网的负载情况对发送端施加的拥塞控制。因此,当接收窗口小于拥塞窗口时,发送窗口的大小取决于流量控制,即取决于接收端的接收能力。但当拥塞窗口小于接收窗口时,则发送窗口的大小取决于拥塞控制,即取决于整个网络的拥塞状况。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。