@SovietPower
2022-05-18T12:53:46.000000Z
字数 1996
阅读 1150
CN
Wireshark中,选择捕获选项,选择连接的网络,关闭混杂模式,设置过滤器tcp port 80
,开始。
用wget www.baidu.com
发送请求,当wget
结束时停止捕获。
结果:
画出TCP数据段的结构
TCP握手的三个数据包
因为网络状况不好,所以会有 Retransmission(超时重传)、Ord-of-Order(网络拥塞,导致顺序包抵达时间不同)、DUP ACK(重复应答)。
画出三次握手协议的步骤图
观察TCP数据段中的Options字段
前两次握手都设置了Options:MSS、NOP、Window scale、NOP、NOP、SACK permitted。
以第一次的为例:
Options: (12 bytes), Maximum segment size, No-Operation (NOP), Window scale, No-Operation (NOP), No-Operation (NOP), SACK permitted
TCP Option - Maximum segment size: 1460 bytes
TCP Option - No-Operation (NOP)
TCP Option - Window scale: 8 (multiply by 256)
TCP Option - No-Operation (NOP)
TCP Option - No-Operation (NOP)
TCP Option - SACK permitted
MSS:表示希望接受的最大报文长度为 1460B。
Window scale:表示要扩大窗口,即实际窗口大小为。
SACK permitted:表示当发送序列中某个数据包丢失时,可以通过发送 SACK 报文通知发送方该数据包丢失,则发送方可以重新发送这个丢失的数据包,而不用发送全部的数据包。
TCP挥手的数据包
(因为重新捕获了所以端口变了)
在客户机发送FIN时,服务器没有包需要发送,所以在发出ACK的同时发出FIN,所以只有三个包。
画出四次挥手协议的步骤图
为什么连接的时候是三次握手,关闭的时候却是四次挥手
因为连接时,对于客户机的SYN,服务器可以同时返回SYN和ACK。
释放时,对于客户机的FIN,服务器要立刻返回ACK,但可能并不能同时发送FIN(因为还有数据包)。当服务器发送完成后才能单独发送一个FIN。
当客户机发送FIN时,若服务器没有包要发送,则也只需要三次,因为可以像连接时将ACK和FIN两个包合并。
在统计中查看IO图表。
在下方的 Y Axis 修改单位。添加 All packets 的过滤器查看需要的包。
All packets 最高约为,或。
实验中的下载速率是多少?
下载内容用过滤器tcp.srcport==80
显示。
最高约为,是不知道为什么。
内容占下载率的百分比是多少?
对如下数据包,负载百分比为。
Frame 11: 1414 bytes on wire (11312 bits), 1414 bytes captured (11312 bits) on interface \Device\NPF_{F9F266B1-8A20-44C5-B64D-87757D623C6D}, id 0
Ethernet II, Src: Cisco_c6:bd:40 (e8:65:49:c6:bd:40), Dst: LiteonTe_f9:c1:65 (50:5b:c2:f9:c1:65)
Internet Protocol Version 4, Src: 110.242.68.4 (110.242.68.4), Dst: 172.30.247.107 (172.30.247.107)
Transmission Control Protocol, Src Port: 80, Dst Port: 11136, Seq: 1, Ack: 102, Len: 1360
Source Port: 80
Destination Port: 11136
[Stream index: 1]
[TCP Segment Len: 1360]
...
实验中的上传速率,即ACK消息的发送速率是多少?
上传内容用过滤器tcp.dstport==80
显示。
从最初的减少到,然后到。
如果最近从服务器收到的TCP数据段的序列号是X,那么下一个发送的ACK是多少?
。