【计算机网络实验】实验四 TCP/UDP协议分析

本文深入探讨TCP连接、序列号计算及UDP协议对比,展现网络通信技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、TCP连接建立过程分析

二、TCP关闭连接过程分析

三、6号报文分析

四、A方TCP报文序列号分析

五、计算

六、UDP协议分析


一、TCP连接建立过程分析

图 1 第一次握手

第一次握手:客户端将标志位 SYN 置为 1 ,随机产生一个值SEQ = X = 0,并将该数据包发送给服务器,等待服务器确认;

图 2 第二次握手

第二次握手:服务器收到数据包后由标志位SYN = 1,直到客户端请求建立连接,服务器将标志位 SYN ACK 都置为 1 ACK = X + 1 = 1,随机产生一个值SEQ = Y = 0,并将该数据包发送给客户端以确认连接请求;

图 3第三次握手

第三次握手:客户端收到确认后,检查 ACK 是否为X + 1= 1,如果正确则将标志位 ACK 置为 1 SEQ = 1,ACK = Y + 1 = 1,并将该数据包发送给服务器,服务器检查 ACK 是否为1 ,如果正确则连接建立成功,后续开始传输数据。

二、TCP关闭连接过程分析

图 4第一次挥手

第一次挥手:主动关闭方发送一个 FIN = 1 ,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:不会再给对方发送数据了;

图 5第二次挥手

第二次挥手:被动关闭方收到 FIN = 1包后,发送一个 ACK = 1 给对方,确认序号为:收到报文序号Seq +收到报文所携带数据长度len+ 1=1 。上一个报文可能捎带了主动关闭方发送的最后一块数据,其长度用字段len来表示。

图 6第三次挥手

第三次挥手:被动关闭方发送一个 FIN = 1 ,同时ACK=1,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发送数据了;

图 7第四次挥手

第四次挥手:主动关闭方收到 FIN 后,发送一个 ACK 给被动关闭方,确认序号为:收到报文的序号Seq + 收到报文所携带数据长度len+ 1 ,至此,完成四次挥手,双向连接关闭。

三、6号报文分析

图 8  6号报文

Source Port: 2000 //请求端端口:2000

Destination Port: 21098 //服务器端端口:21098

[Stream index: 0] //tcp流序号:0(wireshark中对源于同一tcp流的包的标记)

[TCP Segment Len: 0] //tcp报文长度:0

Sequence Number: 1(relative sequence number) //报文序列号:1(相对序号)

Sequence Number (raw): 1959254470 //报文序列号:1959254470(绝对序号)

[Next Sequence Number: 1(relative sequence number)] //下一序列号:1

Acknowledgment Number: 1717(relative ack number) //确认号:1717(相对序号)

Acknowledgment number (raw): 1749145722 //确认号:1749145722(绝对序号)

0101 … = Header Length: 20 bytes (5) //报文头部长度(数据偏移):20bytes

Flags : 0x010 (ACK) //报文类型:ACK

000… = Reserved: Not set //保留字段

…0… = Nonce: Not set//随机数:无效(随机数(Nonce)是任意的或非重复的值,它包括在经过一个协议的数据交换中,通常为保证活跃度以及避免受重复攻击)

…0… = Congestion window Reduced (CWR): Not set

//拥塞窗口减少戳:无标记(TCP拥塞控制)

…0… =ECN-Echo: Not set //显式拥塞戳:无效(ECN-Echo与TCP拥塞控制)

…0… = Urgent: Not set //紧急指针戳:无效

…1… = Acknowledgment: Set //确认号戳:有效

…0… = Push: Not set //推送戳:无效

…0… = Reset: Not set //复位戳:无效

…0. = Syn: Not set //同步戳:无效

…0 = Fin: Not set //结束戳:无效

[TCP Flags …… A……]

window: 256 //窗口大小:256(TCP接收者缓冲的字节大小)

[ Calculated window size: 65536] //计算出的窗口大小(窗口大小单位*窗口大小)

[window size scaling factor: 256] //窗口大小换算系数

Checksum: Oxd6a1 [unverified] //校验和

[Checksum Status : Unverified] //校验状态

Urgent Pointer: 0(如果设置了URG位,这个域将被检查作为额外的指令,告诉CPU从数据包的哪里开始读取数据)

[SEQ/ACK analysis]//序列号及确认号的分析结果,当且仅当数据中含有ACK时,才有此项!

[This is an ACK to the segment in frame: 5]//这是对5号报文的回应

[ The RTT to ACK the segment was: 0.00050900e seconds]//往返时延

[iRTT: 8.000343000 seconds]//互联网往返时延

[Timestamps]//时间戳

[Time since first frame in this TCP stream: 0.012839000 seconds]// 从此TCP流中的第一帧开始的时间:0.012839000秒

[ Time since previous frame in this TCP stream: 0.000509000 seconds]// 从此TCP流中的上一帧开始的时间:0.000509000秒

四、ATCP报文序列号分析

  1. A方第1个报文的序列号(相对值)是0

  1. 因为在TCP建立连接的第二次握手中的确认号为ack=X+1=1A方第2个报文作为TCP建立连接的第三次握手,其序列号seq=X+1=1

  1. 下一个报文序列号 = 其前一报文序列号 + 其前一报文所携带数据长度

  1. 在最后的TCP连接关闭时(第四次挥手),主动关闭方收到 FIN 后,会额外发送一个 ACK 给被动关闭方(这就是该26号报文的产生原因),此时26号报文(A方最后一个报文的序号)+110568+1得到最终的报文序列号为10569.

  1. 10567字节

五、计算

1. 如图,双方通信所用时间:0.085306s

2.A方发送的所有的帧的长度之和为过滤后lengh的数值总和A方发送的所有的帧的长度之和:11497字节

3.A->B连接的通信吞吐率:

A方发送的所有的帧的长度之和*8/10^6)Mb/双方通信所用的时间s
A->B连接的通信吞吐率:1.078Mbps

六、UDP协议分析

  1. UDP报文分析

User Datagram Protocol, Src Port: 41831,Dst Port: 8080//UDP协议

Source Port: 41831 //请求方端口:41831

Destination Port: 8080 //服务器端口:8080

Length: 20 //长度:20

Checksum: 0x46c2 [unverified] //校验和

[checksum Status: Unverified] //校验状态

[Stream index: 0] //流序号:0

  2. 分析TCPUDP协议主要特点

 填写下表:

序号

特性

TCP协议的特点

UDP协议的特点

1

连接

面向连接

面向无连接

2

可靠性

高可靠

较可靠

3

实时性

一般

较好

4

网络开销

较大

较小

5

数据负载边界

面向字节流,以整个待传输的数据为边界,保证数据正确性

基于数据报,以每段报文为边界,不保证传输的数据顺序

### TCP协议分析实验 #### 实验目的 通过本实验了解并掌握TCP协议的工作原理及其在网络通信中的应用,熟悉如何利用思科模拟器Cisco Packet Tracer进行网络配置与故障排除。 #### 所需工具 - 思科模拟器Cisco Packet Tracer 7.0 或更高版本[^1] #### 实验环境搭建 为了完成此次实验,在启动Cisco Packet Tracer之后,创建一个新的项目文件。根据实际需求添加必要的网络组件到工作区中,比如PC机、交换机(Switch)以及路由器(Router),并通过直通线(Crossover Cable)连接这些设备形成局域网(LAN)。 对于每台计算机(PC),设置静态IP地址以便于后续操作;而对于路由器,则需要为其各接口分配相应的IPv4地址,并开启相应端口的服务功能。例如: ```shell Router> enable Router# configure terminal Router(config)# interface FastEthernet 0/0 Router(config-if)# ip address 192.168.2.1 255.255.255.0 Router(config-if)# no shutdown ``` 上述命令用于给路由器的第一个快速以太网口指定一个有效的IP地址范围内的具体数值作为其标识符,并激活该物理接口使其能够正常参与数据传输过程[^2]。 #### 开展TCP流量捕获 当所有硬件设施准备就绪后,可以在任意一台客户终端上运行Wireshark抓包程序来捕捉由应用程序产生的TCP三次握手次挥手全过程的数据报文序列号变化情况以及其他重要参数信息。与此同时,也可以借助Packet Tracer内置的仿真模式下提供的“Simulation Mode”,观察整个会话建立期间各个节点间交互的消息流图示化表示形式,从而更加直观形象地理解TCP协议机制运作规律特点所在。 #### 数据分析总结 最后阶段是对收集起来的日志记录做进一步深入挖掘处理,尝试从中归纳提炼出有关延迟时间长短分布特征、丢包率高低程度统计概况等方面的知识要点结论出来供日后参考借鉴之用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

出差的焦糖玛奇朵朵朵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值