计算机网络——自顶向下方法(第七版)Wireshark Lab4:TCP
这部分回顾Wireshark Lab4,该实验主要目标是了解TCP协议。
参考资料:
- https://github.com/moranzcw/Computer-Networking-A-Top-Down-Approach-NOTES
- https://github.com/jzplp/Computer-Network-A-Top-Down-Approach-Answer/blob/master/Chapter-3/Wireshark_TCP/Wireshark_TCP-Answer.md
- https://github.com/moranzcw/Computer-Networking-A-Top-Down-Approach-NOTES/tree/master/WiresharkLab/Wireshark%E5%AE%9E%E9%AA%8C-TCP
Wireshark Lab4: TCP
2. A first look at the captured trace
1
- 源ip:192.168.1.102
- 端口号:1161
2
- gaia.cs.umass.edu ip:128.119.245.12
- 端口号:80
3
略过。
3. TCP Basics
4
SYN区段的序列号为0(232129012):
Transmission Control Protocol, Src Port: 1161, Dst Port: 80, Seq: 0, Len: 0
Source Port: 1161
Destination Port: 80
[Stream index: 0]
[TCP Segment Len: 0]
Sequence Number: 0 (relative sequence number)
Sequence Number (raw): 232129012
[Next Sequence Number: 1 (relative sequence number)]
Acknowledgment Number: 0
Acknowledgment number (raw): 0
0111 .... = Header Length: 28 bytes (7)
Flags: 0x002 (SYN)
Window: 16384
[Calculated window size: 16384]
Checksum: 0xf6e9 [unverified]
[Checksum Status: Unverified]
Urgent Pointer: 0
Options: (8 bytes), Maximum segment size, No-Operation (NOP), No-Operation (NOP), SACK permitted
[Timestamps]
作用是建立连接。
5
对应No为1的报文:
Transmission Control Protocol, Src Port: 80, Dst Port: 1161, Seq: 0, Ack: 1, Len: 0
Source Port: 80
Destination Port: 1161
[Stream index: 0]
[TCP Segment Len: 0]
Sequence Number: 0 (relative sequence number)
Sequence Number (raw): 883061785
[Next Sequence Number: 1 (relative sequence number)]
Acknowledgment Number: 1 (relative ack number)
Acknowledgment number (raw): 232129013
0111 .... = Header Length: 28 bytes (7)
Flags: 0x012 (SYN, ACK)
Window: 5840
[Calculated window size: 5840]
Checksum: 0x774d [unverified]
[Checksum Status: Unverified]
Urgent Pointer: 0
Options: (8 bytes), Maximum segment size, No-Operation (NOP), No-Operation (NOP), SACK permitted
[SEQ/ACK analysis]
[Timestamps]
序列号为0(883061785);Acknowledgment的值是1(232129013);Acknowledgment为客户端的Sequence Number + 1,表示从下次接收信息的开始编号。
6
对应No为4的报文:
Transmission Control Protocol, Src Port: 1161, Dst Port: 80, Seq: 1, Ack: 1, Len: 565
Source Port: 1161
Destination Port: 80
[Stream index: 0]
[TCP Segment Len: 565]
Sequence Number: 1 (relative sequence number)
Sequence Number (raw): 232129013
[Next Sequence Number: 566 (relative sequence number)]
Acknowledgment Number: 1 (relative ack number)
Acknowledgment number (raw): 883061786
0101 .... = Header Length: 20 bytes (5)
Flags: 0x018 (PSH, ACK)
Window: 17520
[Calculated window size: 17520]
[Window size scaling factor: -2 (no window scaling used)]
Checksum: 0x1fbd [unverified]
[Checksum Status: Unverified]
Urgent Pointer: 0
[SEQ/ACK analysis]
[Timestamps]
[Time since first frame in this TCP stream: 0.026477000 seconds]
[Time since previous frame in this TCP stream: 0.003212000 seconds]
TCP payload (565 bytes)
[Reassembled PDU in frame: 199]
TCP segment data (565 bytes)
序列号为1,其中http post相关信息包含在[Reassembled PDU in frame: 199]。
7
序列号 | No | 发送时间 | No | ACK时间 | RTT | EstimatedRTT |
---|---|---|---|---|---|---|
1 | 4 | 0.026477 | 6 | 0.053937000 | 0.027460000 | 0.02746 |
566 | 5 | 0.041737 | 9 | 0.077294000 | 0.035557000 | 0.028472125 |
2026 | 7 | 0.054026 | 12 | 0.124085000 | 0.070059000 | 0.033670484375 |
3486 | 8 | 0.054690 | 14 | 0.169118000 | 0.114428000 | 0.043765173828125 |
4946 | 10 | 0.077405 | 15 | 0.217299000 | 0.139894000 | 0.05578127709960937 |
6406 | 11 | 0.078157 | 16 | 0.267802000 | 0.189645000 | 0.07251424246215821 |
说明:
ACK时间在SEQ/ACK analysis字段:
[SEQ/ACK analysis]
[This is an ACK to the segment in frame: 4]
[The RTT to ACK the segment was: 0.027460000 seconds]
[iRTT: 0.023265000 seconds]
EstimatedRTT计算代码:
rtt = [0.027460000, 0.035557000, 0.070059000,
0.114428000, 0.139894000, 0.189645000]
n = len(rtt)
estimated_rtt = rtt[0]
alpha = 0.125
print(estimated_rtt)
for i in range(1, n):
estimated_rtt = (1 - alpha) * estimated_rtt + alpha * rtt[i]
print(estimated_rtt)
运行结果:
0.02746
0.028472125
0.033670484375
0.043765173828125
0.05578127709960937
0.07251424246215821
8
长度为:
- 566 - 1 = 555
- 2026 - 566 = 1460
- 3486 - 2026 = 1460
- 4946 - 3486 = 1460
- 6406 - 4946 = 1460
- 7866 - 6406 = 1460
9
这题其实没有完全理解,感觉是对应Win的最小值:
2 0.023172 128.119.245.12 192.168.1.102 TCP 62 80 → 1161 [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1460 SACK_PERM=1
即最小可用缓冲区间为5840。
10
没有重传,因为序号在增加:
备注:作图时需要主要流量的方向,使用切换方向可以转向。
11
没有理解,先略过。
12
搜索http:
[Timestamps]
[Time since first frame in this TCP stream: 5.297341000 seconds]
[Time since previous frame in this TCP stream: 0.000084000 seconds]
[122 Reassembled TCP Segments (164090 bytes): #4(565), #5(1460), #7(1460), #8(1460), #10(1460), #11(1460), #13(1147), #18(1460), #19(1460), #20(1460), #21(1460), #22(1460), #23(892), #30(1460), #31(1460), #32(1460), #33(1460), #34(1460), #3]
所以吞吐量为:
统计图结果:
13
一开始是慢启动,后续应该没有拥塞的情形。
14
略过。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Doraemonzzz!
评论
ValineLivere