电子科大计网期末复习之传输层传输层:两个进程之间的逻辑通信,网络层:两个主机之间的逻辑通信传输层协议运行在端系统发送

1、传输层:两个进程之间的逻辑通信,网络层:两个主机之间的逻辑通信

2、多路复用/多路分解工作原理

在发送主机多路复用:从多个套接字收集数据,用首部封装数据,然后将报文段传递到网络层(多路复用)

在接收主机多路分解:将接收到的数据段传递到正确的套接字(多路分解)

多路复用/分解如何工作(报文段头部字段实现)

主机收到IP数据报

主机用IP地址和端口号指明报文段属于哪个合适的套接字

3、无连接多路分解(UDP套接字:目的IP地址,目的端口号)

4、面向连接的多路分解(TCP套接字:源IP地址、源端口号、目的IP地址、目的端口号)

5、UDP用户数据报协议

UDP是面向报文的

基于InternetIP协议

“尽最大努力”服务,报文段可能:

为什么有UDP

常用于流式多媒体应用:丢包容忍/速率敏感

其他UDP应用:DNS/SNMP/RTP

经UDP的可靠传输:在应用层增加可靠性/应用程序特定的差错恢复!

6、UDP报文格式(8字节)每个字段含义

7、UDP是面向报文的传输方式

面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。即应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。

思考大的视频文件如何利用UDP传输:

将大数据分成多个小包,每个小包的大小不能超过UDP协议数据包的最大长度(一般为64KB)。

在每个小包中增加一个序列号,用于确保数据包的顺序和完整性。

在每个小包中增加一个校验和,用于检测数据包在传输过程中的错误。

接收方将收到的小包按照序列号和校验和的方式进行重组和验证,确保数据的完整性和正确性。

9、UDP首部的校验和计算

(1)将UDP伪头部、UDP头部和数据部分全部用16进制数表示。

(2)将第一个16进制数与第二个16进制数相加。求和时产生的进位必须回卷加到结果上。

(3)将上一步得到的16位数与第三个16进制的数相加,重复第二步,直到累加完所有的16进制数,并且得到的结果为16进制数。

(4)将累加最后得到的16进制数取反,得到校验和。

发送方对校验和进行了反码操作,并放入了校验和字段发送给了接受方等接收方对其他字段进行了二进制的加法,其中就有校验和字段,就会变成原码和反码的加法,就都变成1了,如果不是都是1的话那就说明其中的字段和发送方的字段不一样,肯定就是错误的,就把包丢了。

10、可靠数据传输原理rdt1.0-rdt3.0的工作场景(noloss、lostpacket、lostack、timeout)

Rdt1.0:完全可靠信道上的可靠数据传输

Rdt2.0:具有bit错误的信道

停等协议:发送方发送一个报文,然后等待接受方的响应

rdt2.0:缺陷

如果ACK/NAK发生错误/被破坏(corrupted)会怎么样?

如何解决重复分组问题?

rdt2.2:无NAK的消息协议

我们真的需要两种确认消息(ACK+NAK)吗?

rdt3.0:具有出错和丢失的信道

新假设:下层信道还要丢失报文(数据或者ACKs)

校验和,序号,确认,重发将会有帮助,但是不够

rdt3.0的性能分析

流水线:发送方允许发送多个“在路上的”,还没有确认的报文

流水线技术的两个通用形式:go-Back-N,***选择重传***

11、GBN协议

Go-Back-N(GBN)协议:发送方

Go-Back-N(GBN)协议:接收方

只有ACK:对接收的分组总是发送具有最高按序序号的ACK

对失序的分组:

12、SR协议

发送方

接收方

分组n的序号在[rcvbase,rcvbase+N-1]内

发送ACK(n)

失序分组:缓冲

有序分组:交付上层(包括已经缓冲的有序分组),提高窗口到下一个没有接收的分组

分组n在[rcvbase-N,rcvbase-1]内

其他:忽略

选择性重传:两难选择

例子:

序号:0,1,2,3

windowsize=3

在两种情况下接收方没有感觉到差别!

Q:窗口大小和序号大小有什么关系

A:窗口小于或等于序号空间大小的一半

可靠数据传输机制及用途总结

13、TCP是面向面向连接传输

点到点:

可靠按序的字节流:

流水线:

全双工数据:

面向连接:

流量控制:

TCP是面向字节流,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去。

有可能将多条数据当成一条数据进行处理,因此需要在应用层进行数据的边界管理

编程影响:上层可能会将多条数据当做一条数据处理。

特殊字符间隔:使用此方法则必须对数据中的特殊字符进行转义,否则会造成二义

数据定长:规定固定长度的数据,实际数据少的则需要进行补位

14、TCP报文格式(字段含义/用途)

15、TCP往返时延的估计和超时

设置超时

EstimtedRTT加上“安全余量”

EstimatedRTT变化大->更大的安全余量

SampleRTT偏离EstimatedRTT多少的估计

TimeoutInterval=EstimatedRTT+4*DevRTT

初始时TimeoutInterval设置为1秒

16、TCP可靠数据传输

TCP发送方事件

从应用程序接收数据:

超时:

收到确认:

TCP接收方事件

但是当收到上层应用的数据和收到ACK两个事件中的任何一个发生时,定时器的TimeoutInterval值恢复为由近期的EstimatedRTT和DevRTT计算得到。

快速重传

17、TCP流量控制机制

(假设TCP接收方丢弃失序的报文段)

缓冲区的剩余空间=RcvWindow=RcvBuffer-[LastByteRcvd-LastByteRead]

接收方在报文段接收窗口字段中通告其接收缓冲区的剩余空间

Sender限制自己已经发送的但还未收到ACK的数据不超过接收方的空闲RcvWindow尺寸

Receiver告知Sender,RcvWindow=0,会出现什么情况?

18、TCP连接管理(序号、确认序号)

建立连接

回忆:TCP在交换数据报文段之前在发送方和接收方之间建立连接

初始化TCP变量:

-序号

-缓冲区流控信息(例,接收窗口)

客户:连接发起者SocketclientSocket=newSocket("hostname","portnumber");

服务器:被客户联系SocketconnectionSocket=welcomeSocket.accept();

三次握手:

Step1:客户发送TCPSYN报文段到服务器

-指定初始的序号

-没有数据

Step2:服务器接收SYN,回复SYN/ACK报文段

-服务器分配缓冲区

-指定服务器的初始序号

Step3:客户接收SYN/ACK,回复ACK报文段,可能包含数据

关闭连接

客户关闭套接字:clientSocket.close

Step1:客户发送TCPFIN控制报文段到服务器

Step2:服务器接收FIN,回复ACK.进入半关闭连接状态;

Step3:服务器发送FIN到客户,客户接收FIN,回复ACK,进入“timewait”状态等待结束时释放连接资源

Step4:服务器接收ACK.连接关闭.

19、拥塞控制的方法

根据网路层是否为运输层拥塞控制提供了显示帮助,来区分拥塞控制方法。分为两类方法:

端到端拥塞控制:

网络辅助的拥塞控制:

路由器给端系统提供反馈

单bit指示拥塞(SNA,DECnet,TCP/IPECN,ATM)

指明发送者应该发送的速率

19、TCP拥塞控制(慢启动、拥塞避免、快速恢复;总结:TCP拥塞控制)

端到端控制(没有网络辅助)

大体上,

rate=CongWin/RTT(Bytes/sec),CongWin是动态的,感知的网络拥塞的函数

发送方如何感知拥塞

如何合理控制发送速率?

TCPAIMD(Additive-increase,multiplicative-decrease)

原理:发送方增加传输速率(窗口大小),谨慎地探测可用带宽,直到发生丢包事件

方法:AIMD

TCP慢启动(slowstart)

连接开始的时候,CongWin=1MSS

初始速率=20kbps

有效带宽将>>MSS/RTT

故以指数方式增加速率,直到产生丢失事件,或者达到某个阈值ssthresh

ssthresh(阈值)变量

(发送丢失事件后,ssthresh设置为丢失事件事件前的CongWin的1/2)

什么时候从指数增加变为线性增加(拥塞避免)

对拥塞事件的反应

注:上述为TCPReno版本的内容,在TCPTahoe版本里,无论超时还是三个重复,都直接将CongWin置为1个MSS

怎么理解不同的丢包事件?

在快速恢复阶段:

UDP报文实现差错检测时,不需要在网络上传输的部分是(A)

A.伪首部B.首部C.数据D.校验和

运输层协议在端系统和路由器中都可以实现。(×)

数据0x9876A543的十六比特因特网校验和为(C)

A、0x3DB9B、0x3DBAC、0xC245D、0xC246

十六比特因特网校验和是通过将数据分成16位的字,然后将这些字相加,如果有溢出则将溢出部分加到结果上,最后对结果取反得到的。对于数据0x9876A543,我们可以将其分成两个16位的字:0x9876和0xA543。将这两个字相加得到0x13DB9,由于有溢出,所以我们需要将溢出部分加到结果上,得到0x3DBA。最后对结果取反得到校验和为0xC245。

UDP服务器端将为每个客户的请求建立一个新的套接字。(×)

TCP中,套接字是一对一的关系。如要向10个客户端提供服务,那么除了负责监听的套接字外,还需要创建10套接字。但在UDP中,不管是服务器端还是客户端都只需要1个套接字。

一条线路带宽为1Mbps,往返时延为45ms,假设数据帧的大小为1000字节。若采用停等协议方式,实际的数据率大约是(C)。

A、15KbpsB、1.5KbpsC、151KbpsD、1510Kbps

由于带宽为1Mbps,所以发送一个1000字节的数据帧需要8ms。加上往返时延45ms,总共需要53ms才能发送一个数据帧。因此,实际的数据率为1000字节/53ms=151.51Kbps。

在选择重传协议中,假设发送窗口和接收窗口的大小相等,如果用来表示分组序号的字段长度为8个比特,则发送方窗口长度最大为(C)。

A、32B、64C、128D、256

在选择重传协议中,发送窗口和接收窗口的大小相等,用来表示分组序号的字段长度为8个比特,那么序号的范围为0-255。由于选择重传协议要求发送窗口的大小不能超过序号空间的一半,所以发送方窗口长度最大为256/2=128。

流水线可靠传输技术中序号的数量应该大于等于发送窗口和接收窗口之和。(√)

因为序号的数量决定了可以同时发送的数据帧的数量,而发送窗口和接收窗口之和决定了可以同时发送和接收的数据帧的数量。如果序号的数量小于发送窗口和接收窗口之和,那么就会出现序号重复的情况,导致数据传输出错。因此,为了保证流水线可靠传输技术的正确性,序号的数量应该大于等于发送窗口和接收窗口之和。

GBN回退N帧可靠传输中某一分组超时时,要重传该分组及其以后的所有分组。(√)

因为在GBN协议中,接收方只能按序接收数据帧,如果某一分组丢失,那么其后面的所有分组都无法被接收方正确接收。因此,当某一分组超时时,发送方需要重传该分组及其以后的所有分组,以保证数据的正确传输。

在选择重传(SR)协议中,发送方可能会收到落在其当前窗口之外的分组的ACK包。(√)

比如,如果序号为sendbase的分组发送后,接收方正确的收到了该分组,但是对其应答的ack超时,没有到,于是发送方又重发了序号为sendbase的分组。而接收方,也会再次发送ack。后到的ack就可能在窗口外。

能为计算机网络通信提供加密防护服务的协议是(B)。

A、ARPB、SSLC、SMTPD、PPP

SSL协议在传输层和应用层之间,为网络通信提供安全保障。

ARP(AddressResolutionProtocol)是一种用于将IP地址解析为物理地址的协议;SMTP(SimpleMailTransferProtocol)是一种用于发送电子邮件的协议;PPP(Point-to-PointProtocol)是一种用于在点对点链路上进行数据传输的协议。

TCP是一个点对点的协议,协议双方连接的端点是应用进程端口号(√)

TCP报头中的确认号是指(B)

A、传输数据的第一个字节在缓冲区中的位置编号

B、期待接收的下一个字节的位置编号

C、已连续接收的最后一个字节在缓冲区中的位置编号

D、当前接收数据的序号

确认号用于告诉发送方,接收方已经成功接收到了哪些数据,期待接收的下一个字节的序号是多少。这样,发送方就可以根据确认号来判断哪些数据已经被成功接收,哪些数据需要重传。

假设主机A通过一条TCP连接向主机B发送两个紧接着的TCP报文段。第一个报文段的序号为90,第二个报文段序号为110。a.第一个报文段中有多少数据?20bytesb.假设第一个报文段丢失而第二个报文段到达主机B。那么在主机B发往主机A的确认报文中,确认号应该是多少?确认号=90

假定主机A通过TCP连接向主机B发送一个序号为20的20字节报文段后,那么主机A收到的确认号不可能是(B)

A、10B、39C、40D、无法确定

主机甲和主机乙间已建立一个TCP连接,主机甲向主机乙发送了两个连续的TCP段,分别包含300字节和500字节的有效载荷,第一个段的序列号为200,主机乙正确接收到两个段后,发送给主机甲的确认序列号是(D)

A.500B.700C.800D.1000

TCP协议中的确认号表示接收方期待接收的下一个字节的序号。由于主机甲发送了两个连续的TCP段,分别包含300字节和500字节的有效载荷,所以主机乙期待接收的下一个字节的序号应该是200+300+500=1000。

主机甲与主机乙之间已建立一个TCP连接,主机甲向主机乙发送了3个连续的TCP段,分别包含300字节、400字节和500字节的有效载荷,第3个段的序号为900。若主机乙仅正确接收到第1和第3个段,则主机乙发送给主机甲的确认序号是(B)

A.300B.500C.1200D.1400

TCP什么时候对报文段采用快速重传?(C)

A、报文段的定时器过期

B、估计往返时延过长

C、收到之前发出的一个报文段的三个重复ACK

D、以上都不是

快速重传是TCP协议中的一种重传机制,它用于在收到三个或以上的冗余ACK(duplicateACK)时快速重传丢失的数据包。当发送方收到三个重复的ACK时,它可以推断出接收方已经成功接收了之前的报文段,但是当前的报文段丢失了。因此,发送方会立即重传该报文段,而不是等待定时器过期。

网络上所抓到的TCP数据报文段中,有一个字段RcvWindow,其含义和作用为(A)

A、接收可用空间大小,用于流量控制

B、发送可用空间大小,用于流量控制

C、发送可用空间大小,用于拥塞控制

D、接收可用空间大小,用于拥塞控制

是接收方向发送方指示接收缓存可用空间的大小,主要用于发送方控制其发送窗口的大小。

主机甲和主机乙之间已建立一个TCP连接,TCP最大段长度为1000字节,若主机甲的当前拥塞窗口为4000字节,在主机甲向主机乙连接发送2个最大段后,成功收到主机乙发送的第一段的确认段,确认段中通告的接收窗口大小为2000字节,则此时主机甲还可以向主机乙发送的最大字节数是(A)

A:1000B:2000C:3000D:4000

TCP采用序列号、确认、滑动窗口协议等机制来实现端到端节点之间可靠的数据传输。其中,滑动窗口协议规定未被确认的分组数最多为窗口的大小,且只需要重传未被确认的分组。通告的接收窗口大小为2000B,则说明此时主机乙具有一个2000B的空闲缓冲区,即此时主机乙最大还可以接收2000B的数据。由于主机乙还未对主机甲发出第2个报文段进行确认,因此这2000B的空闲缓冲区还需预留出1000B用于接收第2个报文段,即此时主机甲还可以向主机乙发送的最大字节数只有1000B。

主机甲向主机乙发送一个(SYN=1,seq=3210)的TCP段,期望与主机乙建立TCP连接,若主机乙接受该连接请求,则主机乙向主机甲发送的正确的TCP段可能是(C)

A.(SYN=0,ACK=0,seq=3211,ack=3211)

B.(SYN=1,ACK=1,seq=3210,ack=3210)

C.(SYN=1,ACK=1,seq=3211,ack=3211)

D.(SYN=0,ACK=0,seq=3210,ack=3210)

TCP是面向连接的,所谓面向连接,就是当计算机双方通信时必需先建立连接,然后数据传送,最后拆除三个过程,也就是客户主动打开TCP传输,服务器被动打开。第一次握手:客户发送SYN=1,seq=x给服务器,即客户的TCP向服务器发出连接请求报文段,其首部中的同步位SYN=1,并选择序号seq=x,表明传送数据时的第一个数据字节的序号是x。第二次握手:服务器发送SYN=1,ACK=l,seq=y,ack=x+1给客户,即服务器的TCP收到连接请求报文段后,如同意则发回确认。服务器在确认报文段中应使SYN=1,使ACK=1,其确认号ack=x+1,自己选择的序号seq=y。第三次握手:客户发送ACK=1,seq=x+1,ack=y+1给服务器,即客户收到此报文段后向服务器给出确认,其ACK=1,确认号ack=y+1。客户的TCP通知上层应用进程,连接已经建立。服务器的TCP收到主机客户的确认后,也通知其上层应用进程:TCP连接已经建立。如果ACK为0,那么数据报不包含确认信息,确认字段被省略。SYN:用于建立连接。目前连接还在建立阶段,乙向甲发送的TCP段是包含确认信息ack的,则SYN=1,ACK=1;至于seq,ack,乙向甲发送的seq可以随意,但是乙向甲发送的ack却要求是之前甲向乙发送的请求seq加1。

16KB超时,阈值变为8KB,客户端从1KB开始穿(执行快开始算法)

1RTT结束,1KB->2KB2RTT结束,2KB->4KB3RTT结束,4KB->8KB(到达阈值,执行拥塞避免算法)4RTT结束,8KB->9KB

(1)将“慢开始门限值”设置为出现超时时刻的“拥塞窗口值”的一半,也就是16KB÷2=8KB;

超时后的第一个传输轮次:拥塞窗口值为1KB,进行超时后的第一个传输轮次,成功后拥塞窗口值增加到2KB;

超时后的第二个传输轮次:拥塞窗口值为2KB,进行超时后的第二个传输轮次,成功后拥塞窗口值增加到4KB;

超时后的第三个传输轮次:拥塞窗口值为4KB,进行超时后的第三个传输轮次,成功后拥塞窗口值增加到8KB;

超时后的第四个传输轮次:拥塞窗口值为8KB,进行超时后的第四个传输轮次,成功后需要增加拥塞窗口的值,由于已经达到“慢开始门限值”,因此拥塞窗口的值线性加1KB变为9KB,之后改用“拥塞避免”算法。

拥塞避免和慢启动当拥塞发生时(超时或收到重复确认),慢启动门限ssthresh被设置为当前拥塞窗口cwnd大小(题目为16)的一半,即8。同时cwnd重置为1(最大报文段长度)。新的数据被接收,则cwnd增加,规则为ssthresh之前,慢启动,即cwnd指数增长;到达ssthresh之后,拥塞避免,即cwnd加1。

TCP可靠数据传输过程中的定时器设置,初始时定时器T设置为1秒,第1个样本SampleRTT=2秒,获得该样本后估算EstimatedRTT=2秒,偏差DevRTT=1秒,第2个样本SampleRTT=1秒,第3个样本SampleRTT=3秒,计算收到第三个样本后TCP为第四个待发送分组设定的定时器T的值?(要求:给出EstimatedRTT和DevRTT的均值公式和定时器T的计算公式,EstimatedRTT公式中系数是0.125,DevRTT公式中系数是0.25,给出每次收到样本时均值的变化,计算时小数保留3位)

ERTT=(1-a)ERTT+a*SRTTDRTT=(1-b)DRTT+b*|SRTT-ERTT|T=ERTT+4*DRTT收到第二个样本后:DRTT=(1-0.25)*1+0.25*|1-2|=1秒,ERTT=(1-0.125)*2+0.125*1=1.875秒收到第三个样本后:DRTT=(1-0.25)*1+0.25*|3-1.875|=1.031秒,ERTT=(1-0.125)*1.875+0.125*3=2.016秒定时器T:(1分)T=2.016+4*1.031=6.14秒

(注:在计算DRTT时,ERTT用上一轮的)

在SR中,发送窗口大小不能超过序号空间的(1/2)。

小于(1024)的TCP/UDP端口号已保留与现有服务一一对应,此数字以上的端口号可自由分配。

设TCP拥塞窗口的当前阈值为8(单位为报文段),当拥塞窗口上升到12时收到3个重复ACK,那么下一轮传输时拥塞窗口大小为()

A.8B.9C.6D.4

在TCP拥塞控制中,当收到3个重复的ACK时,会触发快速重传和快速恢复算法。在快速重传和快速恢复算法中,当收到3个重复的ACK时,阈值会被设置为当前拥塞窗口大小的一半,拥塞窗口大小会被设置为阈值加上3个MSS(最大报文段长度)的大小。根据题目中给出的信息,当前阈值为8,当拥塞窗口上升到12时收到3个重复ACK。此时,阈值会被设置为当前拥塞窗口大小的一半,即12/2=6。拥塞窗口大小会被设置为阈值加上3个MSS的大小,即6+3=9。

TCP通信时,若某一方发送带有FIN标志的数据段,其含义为(C)

A.将断开通信双方的TCP连接

B.连接被重新建立

C.单方面释放连接,表示本方已经无数据发送,但可以接收对方数据

D.终止数据发送,双方都不能发送数据

假设使用8位校验和字段对数据0x5879B432计算Internet校验和,结果是(C)

A.0xB8

B.0x48

C.0x47

D.0xB7

以下哪个TCP熟知端口号是错误的(D)

A.HTTP:80

B.TELENT:23

C.SMTP:25

D.FTP:24

一般情况下,FTP使用的端口号为21和20。

主机甲和主机乙已建立TCP连接,甲始终以MSS=1KB大小的段发送数据,并一直有数据发送;乙每收到一个数据段都会发出一个接收窗口为10KB的确认段。若甲在t时刻发生超时,其拥塞窗口为8KB。则从t时刻开始,不再发生超时情况下,经过10个RTT后,甲的发送窗口是多少?

当t时刻发生超时时,把sthresh设为8的一半,即为4,且拥塞窗口设为1KB。然后经历10个RTT后,拥塞窗口的大小依次为2、4、5、6、7、8、9、10、11、12,而发送窗口取当时的拥塞窗口和接收窗口的最小值,而接收窗口始终为10KB,所以此时的发送窗口为10KB。

简述TCP拥塞控制中进入慢启动、快速恢复、拥塞避免三种状态对应的触发事件?

慢启动状态的事件:开始传输;超时;低于阈值;

快速恢复的事件:三次及以上重复确认;

拥塞避免:高于阈值,正常收到分组确认

假设主机A通过一条TCP连接向主机B发送一个大文件。主机A发送但未被确认的字节数不会超过接收缓存的大小。(√)

流量控制

假设主机A通过TCP连接向主机B发送一个大文件。如果某个段(segment)的Seq号为m,那下一个正常发送的段的Seq号必然为m+1(×)

下一个正常发送的段的序列号并不一定是m+1,而是m加上前一个段中数据的字节数。例如,如果前一个段中包含512个字节的数据,那么下一个正常发送的段的序列号将是m+512。

TCP报文段在它的首部中有一个rwnd字段。(√)

rwnd即接收窗口(receivewindow),用来告知发送方,自己在该TCP连接的缓存中还有多少可用空间

假定在一条TCP连接中最后的SampleRTT等于1秒,那么对于该连接的TimeoutInterval的当前值必定大于等于1秒。(×)

TimeoutInterval=EstimatedRTT+4×DevRTT,所以TimeoutInterval数据和SampleRTT无关

假设主机A通过一条TCP连接向主机B发送一个序号为38的4个字节的报文段。在这个相同的报文段中,确认号必定是42。(×)

某些情况下(比如该报文段发送超时)接收方会发送一个重复的ACK,即确认号仍然是38。

考虑TCP的拥塞控制。当发送方定时器超时时,其ssthresh的值将被设置为原来值的一半。(x)

看准了,应该是ssthresh被设置为当前拥塞窗口的一半。

考虑一个GBN协议,其发送方窗口为4,序号范围为1024。假设在时刻接收方期待的下一个有序分组的序号是k,且媒体不会对报文重新排序。回答以下问题:

a.在t时刻,发送方窗口内的报文序号可能是多少?论证你的回答。

b.在t时刻,在当前传播回发送方的所有可能报文中,ACK字段的所有可能值是多少?论证你的回答。

GBN协议特点:GBN协议几个特点:

a)在t时刻,接收方起到收到的下一个分组序号为k,说明接收方已经正确接受了k之前的所有分组,对于发送方而言,我们考虑两种最极端的情况:

第一种情况:假设之前所有的报文都正确传输,没有任何丢失的问题,那么在这种情况下,发送方正确接收了接收方对于小于k的所有报文的ACK确认,因此窗口将会不断向后移动,序号如下图所示:

第二种情况:由已知条件我们可以得知序号为k-1的报文是发送方发送的最后一个报文,假设该报文虽然到达了接收方,但是接收方返回的ACK确认由于一些原因没有到达发送方,则窗口不会移动,在这种情况下我们再假设序号k-1位于窗口的最后一列,即如下图所示的所有序号报文都没有在发送方被确认,则得到了我们最坏的一种情况:

两种极端情况中间的任意一种情况都可能发生,因此发送方窗口序号可能为k-4、k-3、k-2、k-1、k、k+1、k+2、k+3。如果发送方窗口为N,则发送方窗口序号可能为[k,k+N-1]或[k-N,k-1]。

b)如果接收机正在等待分组k,则它已经接收(并确认)了分组k-1和在此之前的3个分组。如果发送方尚未接收到这4个ACK中的任何一个,则值为[k-4,k-1]的ACK消息可能仍在传播。ACK字段的所有可能值为k-1、k-2、k-3、k-4。如果发送方窗口为N,那么ACK字段的所有可能值为[k-N,k-1]。

考虑从主机A向主机B传输L字节的大文件,假设MSS为536字节。

a.为了使得TCP序号不至于用完,L的最大值是多少?前面讲过TCP的序号字段为4字节。

a.序号占用4字节,即32位。它的范围是[0,2^321],也就是说一共有4294967296个序号。L=2^32=4294967296byte

UDP和TCP使用反码来计算它们的检验和。假设你有下面3个8比特字节:01010011,01100110,01110100。这些8比特字节和的反码是多少(注意到尽管UDP和TCP使用16比特的字来计算检验和,但对于这个问题,你应该考虑8比特和。)写出所有工作过程。UDP为什么要用该和的反码,即为什么不直接使用该和呢使用该反码方案,接收方如何检测出差错1比特的差错将可能检测不出来吗2比特的差错呢

01010011+01100110=1011100110111001+01110100=100101101(多了一位,第一位1回卷)00101101+1=00101110取其反码,得到11010001。

运用反码相加,全1的检测对于计算机来说更加方便,速度会更快。

将反码11010001放在检验和处,在接受方将全部的传输数据和检验和相加为11111111时,无差错,只要有任意一位为0,传输中就出现了差错。

1比特的差错一定能够检查出来,2比特的差错如果出现在同一位上,则会被忽略。

主机A和B经一条TCP连接通信,并且主机B已经收到了来自A的最长为126字节的所有字节。假定主机A随后向主机B发送两个紧接着的报文段。第一个和第二个报文段分别包含了80字节和40字节的数据。在第一个报文段中,序号是127,源端口号是302,目的地端口号是80。无论何时主机B接收到来自主机A的报文段,它都会发送确认。

a)在从主机A发往B的第二个报文段中,序号、源端口号和目的端口号各是什么?

b)如果第一个报文段在第二个报文段之前到达,在第一个到达报文段的确认中,确认号、源端口号和目的端口号各是什么?

c)如果第二个报文段在第一个报文段之前到达,在第一个到达报文段的确认中,确认号是什么?

a)在从主机A到B的第二段中,序列号为207,源端口号码是302,目的地端口号是80。

b)如果第一段在第二段之前到达,则在对第一段的确认中到达段,确认号为207,源端口号为80并且目的地端口号是302。

c)如果第二段在第一段之前到达,则在对第一个到达的段,确认号码是127,表明它仍然是等待字节127及以后。

d)

假设TCPReno是一个经历如上所示行为的协议,回答下列问题。在各种情况中,简要地论证你的回答。

(3)在第16个传输轮回之后,报文段的丢失是根据3个冗余ACK还是根据超时检测岀来的?

(4)在第22个传输轮回之后,报文段的丢失是根据3个冗余ACK还是根据超时检测出来的?

(5)在第1个传输轮回里,ssthresh的初始值设置为多少?

(6)在第18个传输轮回里,ssthresh的值设置为多少?

(7)在第24个传输轮回里,ssthresh的值设置为多少?

(8)在哪个传输轮回内发送第70个报文段?

(9)假定在第26个传输轮回后,通过收到3个冗余ACK检测出有分组丢失,拥塞的窗口长度和ssthresh的值应当是多少?

(10)假定使用TCPTahoe(而不是TCPReno),并假定在第16个传输轮回收到3个冗余ACK。在第19个传输轮回,ssthresh和拥塞窗口长度是什么?

(11)再次假设使用TCPTahoe,在第22个传输轮回有一个超时事件。从第17个传输轮回到第22个传输轮回(包括这两个传输轮回),一共发送了多少分组?

(1)[1,6]and[23,26]

(2)[6,16]and[17,22]

(3)3个冗余ACK

(4)超时

(5)32

(6)21(在16轮回,CongWin=42,ssthresh设置为当前拥塞窗口的一半)

(7)14(在22轮回,CongWin=29,向下取整)

(8)7(64-96)

(9)4,7

(10)21,4(拥塞窗口长度变为1,慢启动,17为1,18为2,19为4)

(11)52=1+2+4+8+16+21(第17个发了1个,第18个发了2个,第19个发了4个,第20个发了8个,第21个发了16个,第22个翻倍超过ssthresh,因此只发了21个,慢启动不能超阈值)

主机A通过一条TCP连接向主机B发送一个很大的文件。在这条连接上,不会出现任何分组丢失和定时器超时。主机A与因特网连接链路的传输速率表示为Rbps,主机A上的进程能够以Sbps的速率向TCP套接字发送数据,其中S=10xR。假设TCP的接收缓存足够大,能够容纳整个文件,并且发送缓存只能容纳这个文件的百分之一。如何防止主机A上的进程连续地向TCP套接字以速率Sbps传送数据呢?还是用TCP流量控制呢?还是用TCP拥塞控制?或者用其他措施?阐述其理由。

首先,由于接收方的接收缓存能容纳整个大文件,因此不会出现流量控制;并且因为在这条连接上不会出现任何分组丢失和定时器超时,因此拥塞控制机制不会遏制发送方的速率。最后,由于发送方的发送缓存会很快被填充满,因此一旦发送缓存被填充满,进程将无法继续以S速率向套接字发送数据,而是以R向套接字发送数据。

比较GBN、SR和TCP(无延时的ACK)。假设对所有3个协议的超时值足够长,使得5个连续的数据报文段及其对应的ACK能够分别由接收主机(主机B)和发送主机(主机A)收到(如果在信道中无丢失)。假设主机A向主机B发送5个数据报文段,并且第二个报文段(从A出发)丢失。最后所有5个数据报文段已经被主机B正确接收。

请问主机A总共发送了多少个报文段和主机B总共发送了多少ACK?它们的序号是多少?对于三种协议回答这个问题。

假设发送的五个数据报文段的序号分别为1、2、3、4、5.

GBN:A总共发送了5+4=9个报文段,分别为1、2、3、4、5、2、3、4、5,B总共发送了4+4=8个ACK,序号分别为1、1、1、1、2、3、4、5;

SR:A总共发送了5+1=6个报文段,分别为1、2、3、4、5、2,B总共发送了4+1=5个ACK,序号分别为1、3、4、5、2;

TCP:A总共发送了5+1=6个报文段,分别为1、2、3、4、5、2,B总共发送了4+1=5个ACK,序号分别为2、2、2、2、6.

对于TCP,GBN,SR之间关系的总结:

GBN:

发送方拥有一个窗口,长度为N;

接收方无窗口,只接收希望接受序号的报文,对于失序到达的报文段采取的方式是直接丢弃;

在重传的时候,将会重传当前发送方窗口中所有未被确认的报文段;

采用累计应答的方式。例如接收端返回ACK=3,则证明报文段3以及之前的报文段都被正确接收。

接收端不对失序到达的分组进行缓存。

SR:

接收方拥有一个窗口,长度为N,对于失序到达的报文段将会缓存下来;

在重传的时候,将会重传窗口中超时的单个报文,而不会重传窗口中所有的报文;

接收端返回ACK是当前接收成功报文段的序号,SR不采用累计应答的方式,如接收到序号为0的报文段,则ACK确认ACK=0。

TCP:

TCP使用累计应答的方式。这一点与GBN类似。

TCP在接收端会设置缓存,来缓存正确接收但是失序的分组,这点与SR类似。(实际上TCPRFC并没有对接收端要怎样处理失序到达的分组提出要求,但是在接收端设置缓存是实践中大家都采用的方法)

接收方回复的ACK确认序号是希望接收到的下一个报文段的序号,如接收到序号为0的报文段,则ACK确认ACK=1。

补充关于选择重传的过程:

窗口下界:最左边第一个窗口对应的序号

假设发送窗口和接收窗口都为4,发送方发送0帧,接收方收到0帧,并回复0帧确认,由于0帧是接收窗口下界,于是移动窗口使得窗口下界为第一个未被接收的帧(1号帧),同时把新加入帧(4号帧)的状态置为可接收状态:

发送方发送1帧,接收方收到1帧,并回复1帧确认,由于1帧是接收窗口下界,于是移动窗口使得窗口下界为第一个未被接收的帧(2号帧),同时把新加入帧(5号帧)的状态置为可接收状态:

发送方发送2帧,但是2帧丢失,接收方未收到2帧:

发送方发送3帧,接收方收到3帧,缓存三帧,发送ACK3:

发送方收到ACK0,由于窗口下限被确认,所以窗口右移一个,发送4帧,接收方收到4帧,缓存,发送ACK4:

发送方收到ACK1,由于窗口下界被确认,所以窗口右移1个,发送5帧,接收方接收5帧,缓存,发送ACK5:

发送方2帧超时未收到2帧确认,重新传2帧,这次接收方收到了,2-5帧交付(发送给上层网络层),发送ACK2:

发送方收到ACK3,但是无帧可发,等待,一直到ACK2到达,窗口下界被确认,窗口右移1个。

THE END
1.今日最黑:面试取消原因面试新浪财经今日最黑:面试取消原因 秒懂的,点这里http://finance.sina.com.cn/wm/2024-11-20/doc-incwsues2187540.shtml
2.[今日环球]多家伊朗相关媒体网站遭美国政府强行关闭[今日环球]未来产业 进博看新 解锁未来出行的N种可能 [今日环球]第七届进博会迎来集中签约高峰 [今日环球]立冬时节 各地美食齐“补冬” [今日环球]中国多地迎来降雪天气 [今日环球]国产C919大飞机首次巡展澳门 [今日环球]第十五届中国航展开展在即 红-19地空导弹武器系统首次展出 [今日环球]第十五届中...http://m.app.cctv.com/vsetv/detail/VSET100439687580/a8645cddc1d94d91ae42dc03230a6cb7/index.shtml
3.职场信息平台#看准平台宣布关闭服务#9...来自中国网财经【职场信息平台#看准平台宣布关闭服务#】9月5日,看准运营团队发布通知:由于业务调整,看准平台(包括看准APP、看准小程序、看准网)将于2024年9月30日23:59:59关闭现有服务。服务关闭后,除法律法规另有规定或看准平台与您所签署的协议另有约定外,看准平台所有的账号数据及信息将会做删除处理。(财联社) ...https://weibo.com/2377587254/OvB8KaUa6
4.职场信息平台“看准”宣布App/小程序/看准网9月30日关闭...IT之家 9 月 5 日消息,职场信息平台“看准”9 月 4 日在其官网、App 等平台发布通知称,由于业务调整,看准平台(包括看准 App、看准小程序、看准网)将于 2024 年 9 月 30 日 23:59:59 关闭现有服务。 在此之前,用户仍可以正常访问上述平台,并对个人账号数据进行处理。用户可以通过“导出个人信息”功能...https://finance.sina.cn/tech/2024-09-05/detail-incnaxxk8948782.d.html
5.职场信息平台看准网宣布9月30日关闭服务【职场信息平台看准网宣布9月30日关闭服务】财联社9月5日电,看准运营团队发布通知:由于业务调整,看准平台(包括看准APP、看准小程序、看准网)将于2024年9月30日23:59:59关闭现有服务。服务关闭后,除法律法规另有规定或看准平台与您所签署的协议另有约定外,看准平台所有的账号数据及信息将会做删除处理。https://finance.ifeng.com/c/8cdNEyuBtQm
6.读懂总书记两会金句中的重要指引工作动态上饶市人民政府当前,中国经济前行以及实现突破的方向是十分明确的,习近平总书记强调“看准了就抓紧干”“真正行动”,就是号召大家抓住机遇、脚踏实地,努力以自身工作的确定性应对形势变化的不确定性,稳步实现既定战略目标。 “在发展中稳步提升民生保障水平” 习近平总书记去年在参加江苏代表团审议时强调“人民幸福安康是推动高质量发展...https://www.zgsr.gov.cn/wjw/gzdt/202403/9a8d94543a1a44dbb85483564d03db89.shtml
7.电脑基础常识和必备技巧大全8、完成上面的设置后,再用鼠标依次单击“关闭”按钮退出设置界面,并单击“确定”按钮完成无线局域网的无线连接设置工作,要是参数设置正确的话,系统会自动出现无线网络连接已经成功的提示。笔记本已经连接无线局域网了. 设置好IP就可以无线上网了. 在有效范围内都可以连接. ...http://openvpn.danzhao1.cn/show-496836.html
1.英国智库:英国就业数据有误近百万人从数据中消失格隆汇11月20日|据英国智库决议基金会(Resolution Foundation)称,由于英国国家统计局(ONS)的重大失误,近一百万英国工人从官方就业数据中消失,这使得英国央行更难控制通胀。该智库指责ONS公布的数据“质量差”且不可靠,歪曲了就业市场,夸大了失业危机。据智库经济学家计算,自2019年以来,统计人员低估了93万名工人的就业...https://www.gelonghui.com/live/1764830
2.港股开盘:恒指跌0.30%,科指跌0.45%,科网股多数走低快手绩后跌超5%a...中信建投:随着近期港股下行以及港股与A股走势的分化,港股估值与AH溢价再次体现高性价比。当前,特朗普胜选对港股走势造成冲击,但中期看,特朗普的政策主张有利于港股流动性。因此,在短期冲击结束之后,港股或迎来上涨行情,当下是布局港股极具性价比的时机,科网板块最值得推荐。 https://www.163.com/dy/article/JHGPONSP0519QIKK.html
3.看准网凉了,公司点评只能悄悄的?看准运营团队发布重要通知,宣布由于业务调整的需要,看准平台(涵盖看准APP、看准小程序及看准网)将于2024年9月30日23:59:59正式关闭其现有服务。 看准小程序现有 END 阅读18 声明:本文内容由脉脉用户自发贡献,部分内容可能整编自互联网,版权归原作者所有,脉脉不拥有其著作权,亦不承担相应法律责任。如果您发现有...https://maimai.cn/article/detail?fid=1846140039&efid=ttLH273foxqYShJBfC4JMg
4.看准网为什么要关闭服务了?可能因为这些平台的评价,影响的是同业竞争,看准网影响的是社会形象 赞(4) 回应 momo 2024-09-26 15:47:42 福建 可能因为这些平台的评价,影响的是同业竞争,看准网影响的是社会形象 土豆 为啥会影响社会形象呀 赞 回应 康斯坦丁的烟 2024-09-26 15:50:23 广东 动了资本家的蛋糕呗 赞(5)...https://www.douban.com/group/topic/311761134/
5.看准网现在就是鸡肋,现在关闭了对公司步行街主干道看不了公司评价了,只能看面试评价。看准网咋想的呀,这下子这app一点用没有了。 步行街主干道 发布于上海阅读27760全部回复 chelseanash2021-01-28· 湖北 已经卸载了,如果是互联网行业直接去脉脉上看 亮了(0) 回复 撒油娜拉2021-01-28· 江西 还有什么别的能看的软件没 亮了(0) 查看回复(1) 回复展开全...https://m.hupu.com/bbs/40773120.html
6.职场信息平台“看准”宣布App/小程序/看准网9月30日关闭现有服务9月4日,看准平台在官网发布通知称,由于业务调整,看准平台(包括看准 App、看准小程序、看准网)将于2024年9月30日23:59:59关闭现有服务。 在此之前,用户仍可以正常访问上述平台,并对个人账号数据进行处理。用户可以通过“导出个人信息”功能,导出自己在看准平台上的个人信息和历史发布内容,平台将会通过邮件形式发...https://www.eet-china.com/mp/a345380.html
7.职场信息平台看准网宣布9月30日关闭服务9月5日讯,看准运营团队发...【职场信息平台看准网宣布9月30日关闭服务】9月5日讯,看准运营团队发布通知:由于业务调整,看准平台(包括看准APP、看准小程序、看准网)将于2024年9月30日23:59:59关闭现有服务。服务关闭后,除法律法规另有规定或看准平台与您所签署的协议另有约定外,看准平台所有的账号数据及信息将会做删除处理。 https://www.gold678.com/C/202409051809391059
8.网站行情不好知名招聘职场网站看准网倒闭了9月4日,国内知名的招聘网站看准网发布了关闭服务通知。 通知说明中,看准平台(包括看准APP、看准小程序、看准网)将于2024年9月30日23:59:59关闭现有服务。 这已经是全平台关闭了,看准网是不打算再运营这个网站了。 看准网(Kanzhun)是国内知名的雇主点评与职场信息平台,成立于2013年12月,并于2016年上线了...https://zhujib.com/wangzhanhangqingbuhaozhimingzh.html
9.洛克王国休息时间怎么关闭洛克王国几点就不能玩了可以百川。也可以加血。适当时候可以开唯我增加攻击力。如果被破魔拳置换宠物,齐天大圣可以当头棒喝物防-1.被烧伤,就分化身影(物攻+1)。看准机会大闹天宫(3次攻击)。能不能杀死修罗王就看你的运气了。 9、洛克王国镇狱修罗王解析(要有性格、技能、战斗的解析 ...https://www.773hf.com/wiki/18234.html
10....正则表达式字符串面试题面试问题:C#上位机开发…接下来我们运行看一下效果: 可以看到,当我们发送字符“1”的时候,状态栏显示接收到1byte数据,表明计数正常,但是接收到的却是字符形式的“49”,这是因为接收到的byte类型的数据存放的就是ASCII码值,而调用byte对象的ToString()方法,由下图可看到,这个方法刚好又将这个ASCII值49转化成为了字符串“49”,而不是对应的...https://blog.csdn.net/weixin_39918084/article/details/117080996
11.祝匡武那种一经拜师求鸽,即纳为门下;进出大计,要蒙师恩准,看其脸色;弟子将来飞绩,尽计在原主账上;打着鸽系旗帜,刻意张扬,网罗雏哥的行为,实令人不屑、不耻。求鸽的时候,做徒弟的时候,中规中矩,不乱说话,唯师傅马首是瞻,尚能理解。但鸽圈没有老师,鸽学永无止境。仰人鼻息,纵然唯诺一时,当你立身扬名之际,...http://gdgs.chinaxinge.com/gdgs/show/?id=16485&newsid=2114843
12.语文教师考编作文范文(推荐22篇)2.答题时看准题目 在回答阅读理解的题目是一定不要跑题,在这个位置,出题的老师很容易玩文字游戏。所以要认真阅读题目,不要把中心思想写成某一个词语的意思。还有一点重要的就是不要过分解读题目。一般小学的阅读理解不会问很深入的问题,有些同学可能读的课外读物很多,会有一些其他的解读。尽量不要把这些角度带到回...https://m.1314zhou.com/fanwen/qitafanwen/262998.html
13.2021江苏始准考证打印入口12月18日关闭5、《准考证》要妥善保存,笔试后如进入资格复审、面试、体检等程序时需出示此证,谨防丢失。 江苏公务员考试准考证打印后需要做什么? 1.第一时间看考试地点 打印准考证真的需要这么早吗?当然不需要了,上考场前手头有准考证就可以了。那为什么要第一时间就看准考证呢?因为这里有一个关键的信息——你的考试地点!准...http://m.js.offcn.com/html/2020/12/241263.html
14.有关小学生消防安全作文(通用8篇)体验浓烟逃生时我觉得模拟的烟像真的烟一样很难闻,很熏人,差点连安全出口指示的绿光都看不清,而且在最黑暗的地方我和别的同学失散了,我当时很想往回走,但想想可能已经接近出口了,所以我又摸索着匍匐前进,忽然我看到了一个白色的东西,我想应该是同学的衣服,然后白色的东西拐弯不见了,我可高兴了,因为我断定出口...https://www.360wenmi.com/f/file7c55o599.html
15.你好,投递通道关闭了吗没看清楚就点了确定,刚好那天有事 牛客5655:其他公司的面试(事)吗 点赞 评论 收藏 分享 昨天00:14 西北工业大学 HTML5 我拒绝了秋招唯一的offer 日常加班和离家太远的工作状态让我无法接受,哪怕现在是就业寒冬,我也不想妥协。于是,我选择了重新出发,冬招,我来了!虽然现在是0offer,但我相信,总...https://www.nowcoder.com/discuss/comment/13926981