WireShark-TCP
问题1-3
- 打开 Chrome 浏览器,先访问 http://gaia.cs.umass.edu/wireshark-labs/alice.txt
- 把页面上的文字(Alice in Wonderland)全部复制,保存到本机的一个文本文件,命名为 alice.txt
1 | mkdir WS_tcp |
- 网卡eth0,确认开始抓包,回到 Chrome,访问 http://gaia.cs.umass.edu/wireshark-labs/TCP-wireshark-file1.html
- 在页面中点击选择文件,选择刚刚新建的alice.txt,Upload,等待页面返回Confradulations
- 回到Wireshark,停止抓包
- 过滤器:http.request.method == POST,记一下编码(我的是No.230) (成功上传了)
- 点击No.230,查看Internet Protocol Version 4 Transmission Control Protocol
- 题目:
- 客户端计算机(源)用于传输文件到 gaia.cs.umass.edu 的 IP 地址和 TCP 端口号是什么?
IP:192.168.178.162
端口:40468 - gaia.cs.umass.edu 的 IP 地址是什么?它在哪个端口号上发送和接收此连接的 TCP 段?
IP:128.119.245.12
端口:80 - 你自己的客户端计算机用于传输文件到 gaia.cs.umass.edu 的 IP 地址和 TCP 端口号是什么?
IP 地址:192.168.178.162
TCP 端口号:40468
- 客户端计算机(源)用于传输文件到 gaia.cs.umass.edu 的 IP 地址和 TCP 端口号是什么?
问题4
- 在过滤器输入 tcp.flags.syn == 1
- 找第一个Source 为你的主机ip destination为服务器地址的没有443的[SYN],点击并展开Transmission Control Protocol(No.87,stream index 7)
- 题目:
序列号:0(相对序列号)
SYN 标识: Flags 字段为 0x002 (SYN),Syn 标志置位
问题5
- 右键No.87,右键追踪流,找到包:源IP是 128.119.245.12,Info 显示 80 → 40468 [SYN, ACK] (No.90)
- 点击90,展开 Transmission Control Protocol
- 题目:
序列号: 0(相对序列号)
确认号: 1
确定方式: 服务器将客户端 SYN 段的序列号(0)+ 1,表示期望接收的下一个字节序列号为 1
标识: Flags 为 0x012 (SYN, ACK),SYN 和 ACK 同时置位
问题6
- 根据问题1-3截图知,HTTP POST 段的序列号:145074(相对序列号)
问题7-8
- 点击任意一个从客户端发往服务器的包
- 菜单栏 → 统计 → TCP 流图 → 往返时间图
- 过滤器:tcp.stream eq 7,找6个包算就行
- 题目:
- 第7题
1 94 1 25.697074119 25.697234406 0.160 0.160
2 95 698 25.697180161 25.697309750 0.130 0.156
3 96 3618 25.697219428 25.697396461 0.177 0.159
4 98 6538 25.697234406 25.697430000 0.196 0.163
5 99 13538 25.697242324 25.697503808 0.261 0.176
6 103 17082 25.697366939 25.697503808 0.137 0.171 - 第8题(TCP)长度:
1 94 697
2 95 2920
3 96 2920
4 98 7300
5 99 1460
6 103 2920
- 第7题
问题9
- 过滤器:tcp.stream eq 7
- 选择一个服务器发回的 ACK 包
- 展开 Transmission Control Protocol
- 看 Window 字段
- 浏览多个 ACK 包,找最小值
- 题目:
最小可用缓冲区:21122 bytes
是否限制发送方:没有,窗口从未接近 0,没有零窗口通告
问题10
- 过滤器:tcp.analysis.retransmission,结果为空
- 题目:
是否有重传:没有
检查依据: tcp.analysis.retransmission and ip.addr == 128.119.245.12 过滤结果为空,本连接无重传段
问题11
- 由前文知:
- 通常一次确认:2920 bytes(2 个 MSS 段,延迟确认机制)
- 每两个段 ACK 一次的实例:
No.102(Ack=3618)确认了段2和段3
No.105(Ack=6538)确认了段4的数据(部分)
问题12
- 过滤器:tcp.stream eq 7,最后5个包的info和时间
- 题目:
总传输字节数: 149419 bytes(POST 包 Next Seq = 149420,减客户端初始 Seq 1)
传输时间:
开始:SYN 发送 = 25.426553195(No.87)
结束:最后一个数据 ACK = 27.048695083(No.242,确认了全部数据)
传输时间 = 27.048695083 − 25.426553195 = 1.622141888 s
吞吐量:约 110540 bytes/s(约 0.88 Mbps)
问题13
- 点击 tcp.stream eq 7 中任意一个客户端发的包
- 菜单 → 统计 → TCP 流图 → 时间序列图(Stevens)
- 题目:
从图上看:
慢启动阶段: 0s ~ 约 0.3s
曲线斜率由缓变陡,呈指数增长特征
这段时间内拥塞窗口快速增大
拥塞避免阶段: 约 0.3s 之后
曲线斜率趋于稳定,呈线性增长
每个 RTT 窗口增加约 1 个 MSS
与理想化行为的差异:
图形呈阶梯状而非平滑曲线——这是因为 TCP 发送是突发的,在收到 ACK 后一次性发出多个包
慢启动和拥塞避免的过渡不明显,没有一个尖锐的拐点
整个传输过程中没有丢包,因此没看到快速重传/快速恢复阶段
Y 轴序列号在短时间内快速增长,说明整体网络状况良好
问题14
已在13中实现
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 QingMaxLim-Blog!










