用tcpdump来看3次握手4次挥手tcp连接过程以及解析

ser 端代码


cli端代码


命令 tcpdump -i  lo -nnA 'port=6000' 这个的意思是监听6000号端口 记得加上lo 不能是ech0网卡 这个是回环地址

由于是本机回环 使用IP都是一样的 端口号不同


用 netstat -pan|grep cli 也可以

19:36:06.190761 IP 192.168.243.128.37147 > 192.168.243.128.6000: Flags [S], seq 946003763, win 65495, 

options [mss 65495,sackOK,TS val 28598343 ecr 0,nop,wscale 6], length 0

截出来第一次握手

19:36:06.190820 IP 192.168.243.128.6000 > 192.168.243.128.37147: Flags [S.], seq 3620774452, ack 946003764, win 65483, options [mss 65495,sackOK,TS val 28598344 ecr 28598343,nop,wscale 6], length 0

//第二次握手

19:36:06.190862 IP 192.168.243.128.37147 > 192.168.243.128.6000: Flags [.], ack 1, win 1024, 

woptions [nop,nop,TS val 28598344 ecr 28598344], length 0

//第三次握手


options 表示选项

mss表示是发送端通告的最大报文长度

sackOK表示发送端支持SACK选项 SACK选项是为了更好的确定数据的准确接收的

TS val发送端的时间戳 ecr 接收端的时间戳

wscale 表示窗口因子大小

例如 第一次握手



[zhangsunqian@localhost ~]$ ./cli
请输入:aaa
[zhangsunqian@localhost ~]$ ./ser

aaa

21:52:06.684156 IP 192.168.243.128.37174 > 192.168.243.128.6000: Flags [P.], seq 1:4, ack 1, win 1024, options [nop,nop,TS val 36138676 ecr 36137330], length 3
E..7..@.@..U.........6.p.r.h^.......h|.....
.'n..'iraaa
21:52:06.685711 IP 192.168.243.128.6000 > 192.168.243.128.37174: Flags [.], ack 4, win 1024, options [nop,nop,TS val 36138678 ecr 36138676], length 0
E..4..@.@............p.6^....r.k....E......

.'n..'n. 

每次接收数据服务器都会回复 并且数据就放在末尾 如上

接着关闭cli


综上

如图

    

为什么最后一次握手ack=0 

(网络协议解析软件,有一个宗旨,就是将枯燥乏味的0、1二进制流解析成用户友好的显示,让协议分析尽量简单、直白。

TCPDUMP第三个ACK显示的偏移值(Offeset),即相对于初始序列号(原点)的偏移值,但需要明确的是,TCPDUMP捕获的原始报文里是绝对值(应该是长长的一串数字),只是显示成一个偏移量。



作者:车小胖
链接:https://www.zhihu.com/question/66005703/answer/237644085
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值