我们用telnet发起tcp连接, 建立三次握手, 抓包来看看:
xxxxxx$ sudo tcpdump -iany port 19006 -Xnlps0tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes23:11:23.413499 IP 10.100.70.139.32759 > 10.100.70.139.19006: Flags [S], seq 1465007382, win 43690, options [mss 65495,sackOK,TS val 1172655098 ecr 0,nop,wscale 8], length 0 0x0000: 4510 003c 76ec 4000 4006 21e2 0a64 468b E..<v.@.@.!..dF. 0x0010: 0a64 468b 7ff7 4a3e 5752 3d16 0000 0000 .dF...J>WR=..... 0x0020: a002 aaaa a20c 0000 0204 ffd7 0402 080a ................ 0x0030: 45e5 4bfa 0000 0000 0103 0308 0000 0000 E.K............. 0x0040: 0000 0000 0000 0000 0000 0000 ............23:11:23.413512 IP 10.100.70.139.19006 > 10.100.70.139.32759: Flags [S.], seq 3728841059, ack 1465007383, win 43690, options [mss 65495,sackOK,TS val 1172655098 ecr 1172655098,nop,wscale 8], length 0 0x0000: 4500 003c 0000 4000 4006 98de 0a64 468b E..<..@.@....dF. 0x0010: 0a64 468b 4a3e 7ff7 de41 9963 5752 3d17 .dF.J>...A.cWR=. 0x0020: a012 aaaa a20c 0000 0204 ffd7 0402 080a ................ 0x0030: 45e5 4bfa 45e5 4bfa 0103 0308 0000 0000 E.K.E.K......... 0x0040: 0000 0000 0000 0000 0000 0000 ............23:11:23.413520 IP 10.100.70.139.32759 > 10.100.70.139.19006: Flags [.], ack 1, win 171, options [nop,nop,TS val 1172655098 ecr 1172655098], length 0 0x0000: 4510 0034 76ed 4000 4006 21e9 0a64 468b E..4v.@.@.!..dF. 0x0010: 0a64 468b 7ff7 4a3e 5752 3d17 de41 9964 .dF...J>WR=..A.d 0x0020: 8010 00ab a204 0000 0101 080a 45e5 4bfa ............E.K. 0x0030: 45e5 4bfa 0000 0000 0000 0000 0000 0000 E.K............. 0x0040: 0000 0000 ....
在相当长的时段时间内, 我都知道这个是三次握手, 也对syn, ack/syn, ack很熟悉, 但Flags [S.]和Flags [.]让我纳闷过, 也没有深究, 最近深究了一下, 发现其中的点实际上就是A, 表示ACK, 我擦, 居然用点来表示。
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow