使用tcpdump监控和解析tcp三次握手四次挥手

TCP协议在网络分层模型中处于传输层,许多的应用层协议(例如HTTP,SMTP等)是基于传输层TCP协议工作的,TCP协议提供了面向连接的可靠的传输服务,理解TCP协议的工作原理对于工作和面试是非常有帮助的。TCP连接三次握手为了简便,使用nc命令来模拟服务器和客户端来建立连接的三次握手过程。首先在linux上打开一个终端,键入nc -v -l 127.0.0.1 22222命令,该命令的作用是让该主机监听本机的22222端口,充当服务器功能。接下来再打开一个终端使用tcpdump...
摘要由CSDN通过智能技术生成

 

TCP协议在网络分层模型中处于传输层,许多的应用层协议(例如HTTP,SMTP等)是基于传输层TCP协议工作的,TCP协议提供了面向连接的可靠的传输服务,理解TCP协议的工作原理对于工作和面试是非常有帮助的。

TCP连接三次握手

为了简便,使用nc命令来模拟服务器和客户端来建立连接的三次握手过程。

首先在linux上打开一个终端,键入nc -v -l 127.0.0.1 22222命令,该命令的作用是让该主机监听本机的22222端口,充当服务器功能。

接下来再打开一个终端使用tcpdump命令来监控三次握手过程

tcpdump -i any port '22222' -XX -nn -vv

然后再打开一个终端,键入nc -v 127.0.0.1 2222来模拟客户端功能,与服务器建立连接。

观察tcpdump窗口的变化

客户端和服务器进行了三次握手过程,建立了连接。

下面来分析协议细节。

分析一下第一次握手的细节

0x0000:  0000 0304 0006 0000 0000 0000 0000 0800  ................
0x0010:  4500 003c 8aa5 4000 4006 b214 7f00 0001  E..<..@.@.......
0x0020:  7f00 0001 b5c8 56ce 246e 2eea 0000 0000  ......V.$n......
0x0030:  a002 aaaa fe30 0000 0204 ffd7 0402 080a  .....0..........
0x0040:  b675 a44f 0000 0000 0103 0307 0000 0000  .u.O............
0x0050:  0000 0000 0000 0000 0000 0000            ............

前32个字节是其他层协议的部分,我们暂时不研究,从第33个字节开始就是TCP的头部信息了

十六进制 十进制 TCP头部信息
0xb5c8 46536 16位源端口号
0x56ce 22222 16位目的端口号
0x246e2eea 611200746 32位序号
0x00000000 0 32位确认号
0xa 10 4位头部长度,10个4字节,最多60字节
0x002 2 前6位保留位,后六位标志位,设置了SYN标志
0xaaaa 43690 16位接受窗口大小
0xfe30   头部校验和
0x0000   16位紧急指针
0x0204   最大报文段长度选项的kind值和length值
0xffd7 65495 最大报文段长度
0x0402   允许SACK选项
0x080a   时间戳选项的kind值length值
0xb675a44f   时间戳
0x00000000   回显应答时间戳
0x01   空操作选项
0x0303   窗口扩大因子选项的kind值length值
0x06 6 窗口扩大因子为6

SYN置1,随机生成序列号,这样40个字节长度的TCP头部就列出来了。接下来看第二次握手的细节。

0x0000:  0000 0304 0006 0000 0000 0000 0000 0800  ................
0x0010:  4500 003c 0000 4000 4006 3cba 7f00 0001  E..<..@.@.<.....
0x0020:  7f00 0001 56ce b5c8 20f5 1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值