北航计算机网络 传输层实验,北航研究生计算机网络实验_实验七 传输层实验

** 这个实验我没有约到没有问题的机子(连续三台机子都是坏的...)因此仅供参考

1、根据2.6中步骤3回答:TCP的连接和建立采用的是:三次握手方式,PCA是主动打开方(C),PCB是被动打开方(S)。先点击发送再点击接收,会出现什么问题?为什么?

答:先点击发送再点击接受会导致连接失败,而且如果没有应用进程被动打开,那么主动打开的应用进程无法建立连接。

因为C/S模式下,若Server没有启动,那么Client就连接不上。服务器和客户端的结合需要看TCP状态机,必须存在被动打开方才能够连接。

2、根据2.6中步骤5,结合预习报告,分析TCP连接的建立过程,根据TCP建立过程的三个报文,先填写下表:

字段名称

第一条报文

第二条报文

第三条报文

报文序号

3

4

5

Sequence Number

0

0

1

Acknowledgement Number

1

1

Ack

0

1

1

Syn

1

1

0

3、根据2.6中步骤6回答:

TCP连接建立时,其报文首部与其它TCP报文不同,有一个“Option”字段,它的作用是什么,值为多少?结合IEEE802.3协议规定的以太网最大帧长度分析此数据是怎样得出的。

答:Option字段的值中包含一个最大报文段长度(Maximum segment size,MSS),取C/S两方承载的MSS中取较小的值。MSS应用于数据传送阶段,在本实验中得到的MSS值是1460 bytes。

MSS=最大MTU长度-IP首部固定长度(20)-TCP首部固定长度(20)=1500-20-20=1460

4、根据2.6中步骤7:结合预习报告,分析TCP连接的释放过程,选择TCP连接撤消的四个报文,将报文信息填入下表。

字段名称

第一条报文

第二条报文

第三条报文

第四条报文

报文序号

Sequence Number

355911

355912

Acknowledgement Number

355911

355912

Ack

Fin

5、根据2.6中步骤8:分析TCP数据传送阶段的前8个报文,将报文信息填入下表。

报文序号

报文种类

(发送/确认)

序号字段

确认号字段

数据长度

被确认报文序号

窗口

发送

确认

发送

发送

确认

确认

发送

确认

请写出TCP数据部分长度的计算公式。数据传送阶段第一个报文的序号字段值是否等于连接建立时第三个报文的序号?

答:TCP数据部分长度 = IP总长度 - IP首都长度 - TCP首部长度

数据传送阶段第一个报文的序号字段值 等于 连接建立时第三个报文的序号。

6. 根据3.6.1中“ 滑动窗口机制和窗口侦查机制分析”步骤6回答:

(1) 分析数据发送部分的前几条报文,描述发送方发送窗口的变化,并解释为什么?

答:发送方发送窗口的大小线性增大,每次递增2920。

因为数据发送部分前几条报文时处于慢启动状态,拥塞窗口cwnd指数规律增长,而滑动窗口rwnd线性增长。一般而言rwnd < cwnd,而且发送窗口=min[cwnd, rwnd],因此发送窗口的大小也随着rwnd线性增长。

(2) 指出从哪个序号的报文能够看出接收端开始休眠,并解释理由。

202003192040227716gycdrxi71yr4i9_0.png

如果接收缓存大于65535,在接收窗口值持续减少前接收端已开始休眠。

如果接收缓存小于等于65535,在接收窗口值持续减少时接收端开始休眠。

因为其后通告的接收窗口越来越小,(左边沿在不断向右移动,而右边沿不再移动),接收方在窗口范围外的可用缓存已被使用完,表明接收方在窗口范围外的可用缓存被已确认的数据占据着,应用程序进程没有再从缓存中读取这些已确认的数据,即表明其已开始休眠

(3)分析文件send2-组座号-tcpsndwnddata.txt,选中三次握手连接建立后的前4条报文记录(3条DATA报文、1条ACK报文,序号为4、5、6、7),记下发送方发送窗口的相关值(rcv_wnd , snd_wnd_left , snd_wnd_point , snd_wnd_left+cwnd , snd_wnd_left+rcv_wnd , (snd_wnd_point- left))。按下表分析计算接收方(及发送方)的窗口的相关值。

5号报文(sender----data---->receiver)

rcv_wnd

snd_wnd_left

snd_wnd_pointer

snd_wnd_left+cwnd和

snd_wnd_left+rcv_wnd

snd_wnd_point- left

发送方发出报文

2379935191

2379938051

2379939571

2379941031

发送窗口右边沿

2379941031

通告的接收窗口

接收窗口左边沿

接收窗口指针

接收窗口右边沿

在接收缓存中的数据量(即未确认的数据)

接收方接到DATA前

2379935191

2379936591

2379935191

接收方接到DATA后

2379935191

2379938051

2379935191

6号报文(sender----data---->receiver)

rcv_wnd

snd_wnd_left

snd_wnd_pointer

snd_wnd_left+cwnd和

snd_wnd_left+rcv_wnd

snd_wnd_point- left

发送方发出报文

5840

2379935191

2379939511

2379939571

2379941031

4320

发送窗口右边沿

2379941031

通告的接收窗口

接收窗口左边沿

接收窗口指针

接收窗口右边沿

在接收缓存中的数据量(即未确认的数据)

接收方接到DATA前

2379935191

2379938051

2379935191

接收方接到DATA后

2379935191

2379939511

2379935191

7号报文(receiver ----ack----> sender)

通告的接收窗口

接收窗口左边沿

接收窗口指针

接收窗口右边沿

在接收缓存中的数据量(即未确认的数据)

接收方发出ACK

2379935191

2379935191

2379941031

rcv_wnd

snd_wnd_left

snd_wnd_pointer

snd_wnd_left+cwnd和

snd_wnd_left+rcv_wnd

snd_wnd_point- left

发送方接到ACK后

2379936591

2379939511

2379942431

2379944991

发送窗口右边沿

2379944991

发送方接到ACK前

2379935191

2379939511

2379939571

2379941031

发送窗口右边沿

2379941031

(1) 根据文件send2-组座号-tcpsndwnddata.txt中发送方的发送窗口相关值进行分析,接收方开始休眠后,描述接收窗口的变化,指出窗口收缩、窗口合拢、窗口张开对应的开始报文序号,并记下send2-组座号-tcpsndwnddata.txt文件中的对应报文的数值记录(pkt_seqno,pkt_type,..,……)。

窗口收缩:右边沿向左移动,RFC强烈不建议使用,一般不发生。

窗口合拢:窗口的左边沿向右边沿靠近,发生在接收窗口持续减小期间:

166       snd_data

167       rcv_ack

168       snd_data

169       snd_data

170       snd_data

171       snd_data

172       snd_data

173       rcv_ack

174       snd_data

175       rcv_ack

窗口张开:当窗口的右边沿向右移动时将允许发送更多的数据,一般发生在休眠结束后通告大窗口时

180       rcv_ack

181       snd_data

182       rcv_ack

183       snd_data

184       rcv_ack

7. 根据3.6.1中“ 滑动窗口机制和窗口侦查机制分析”步骤7回答:

写出窗口侦查开始的报文序号,窗口侦查报文数据长度、窗口侦查报文发送的时间规律。

202003192040227716gycdrxi71yr4i9_1.png

窗口侦查报文指的是Keep-Alive报文,长度为5840

每相邻两条窗口侦查报文Keep-Alive报文 时间差组成的数据序列的规律:成倍增加规律

13、根据4.6中步骤7:

(1)分析UDP报文结构:选中第一个UDP报文,将UDP协议树中各字段名、字段长度、字段值、字段表达信息,填入下表。并绘制UDP报文结构,详细绘制UDP协议树字段。

字段名

字段长度

字段值

字段表达信息

Source Port

2 bytes

murray(1123)

源端口:1123

Destination

2 bytes

目的端口:1030

Length

2 bytes

报文长度:13

Checksum

2 bytes

0x301d

校检码:0x301d

(2)UDP报文结构与TCP报文结构有什么区别?

答:UDP报文仅有源端口、目的端口、报文长度、校检码和数据组成。

TCP除此之外还有seq、ack、偏移字段等字段,用于保证传输的可靠性。

(3)在步骤5交换机S1和S2之间的网线拔掉期间,PCA向PCB发送的UDP消息,在步骤6交换机S1和S2之间的网线重新插上之后,PCB是否还能收到?请解释为什么会出现这种现象?

答:PCA会向PCB发送i’m fine, and you?

在步骤6交换机S1和S2之间的网线重新插上之后,PCB不能收到。因为UDP是不可靠传输协议,因此因为拔掉网线而发送失败后报文就丢失了。

(4)综合分析TCP协议和UDP协议的不同之处。

UDP

TCP

无连接

面向连接

不可靠传输,无流量控制和拥塞控制

可靠传输,使用流量控制和拥塞控制

支持一对一、一对多、多对一、多对多交互通信

只支持一对一通信

面向报文

面向字节流

首部8字节

首部20~60字节

适用于实时应用

适用于要求可靠传输的应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值