怎么开网站做网红,腾讯邮箱邮箱入口,长沙网站建设排名,wordpress外联前言
我们tcpdump抓包时会看到除报文数据外#xff0c;前面还有一段其他的数据#xff0c;这段数据分为两部分#xff0c;ip包头#xff08;一般20字节#xff09;和tcp包头#xff08;一般20字节#xff09;#xff0c;一般这两个头长度和为40#xff0c;我们直接跳…前言
我们tcpdump抓包时会看到除报文数据外前面还有一段其他的数据这段数据分为两部分ip包头一般20字节和tcp包头一般20字节一般这两个头长度和为40我们直接跳过抓取的数据前40字节及为我们需要分析的有效数据。
测试环境为centos7以下截图使用netcatyum -y install nc安装进行测试服务端192.168.11.19监听9999端口客户端192.168.17.143。服务端执行nc -l 9999客户端执行nc 192.168.11.19 9999直接再终端打字回车键发送。注netcat工具发送的tcp包头带有套接字选项头长度为32字节 一、以太网帧64-1518字节Ethernet II链路层协议
1.1 字段分布
目标端MAC6字节源端MAC6字节IP协议类型2字节0x0800代表IPv4协议0x86DD代表IPv6协议数据46-1500字节CRC校验码4字节 1.2 示例解析tcpdump 加上-XX选项可打印帧头的14字节 1.3 依据帧大小限制的补位和切片
因为Ethernet II协议的最小长度为64最大长度为1518抛开帧头和帧尾的18字节最小传输单元为46最大传输单元MTU值为1500。通常IP包头长20字节TCP包头也为20字节则一般的最小报文段长度为6、最大报文段长度MSS为1460。以IP包头20字节TCP包头20字节为例即当我们发送一个空报文是协议会自动补6字节空数据如下图而当我们发送1MB的数据时协议则会将其切片分成1024*1024/1460719个包逐个发送。 二、IP包头IPv4为例20-60字节
2.1 字段分布
版本号头长度服务类型2字节共计8位前四位代表包头长度单位为4字节数据总长2字节一些信息字段8字节源端ip4字节目标端ip4字节可选项0-40字节可变不足四字节倍数则进行填充 2.2 示例解析此处118f对应ip包头结束后面为tcp包头 三、 tcp包头20-60字节不设置sockopt时就为20字节
3.1 字段分布
源端口号2字节目标端口号2字节数据id4字节确认id4字节偏移位保留域控制位2字节共计16位前四位代表包头长度单位为4字节窗口大小2字节校验码2字节紧急指针2字节套接字选项0-40字节可变不足四字节倍数则进行填充setsockopt时该字段将被赋值 3.2 示例解析 3.3 常见套接字选项
TCP_NODELAY立即发送选项tcp发送小报文是会根据Nagle算法等待缓存达到最大数据长度MSS满后或者超时200ms时才发送使用该选项后小报文将即可发送不等待。SO_REUSEADDR服务端重启时原来监听的端口会在TIME_WAIT状态导致不能立马监听成功需要等待TIME_WAIT结束2MIN才能冲新监听成功。为保证服务端重启时效性需要设置该选项。TCP_MAXSEG最大数据长度设置一般以太网帧最大长度为1460设置此选项可将此长度设小以此提高网络传输效率。 四、tcpdump捕获有效数据
4.1 命令tcpdump -i ens192 -n -X host 192.168.11.19 and port 9999 -vvv -tttt 指定一个网卡、ip 和端口号进行转包 注此处只使用一个-X选项打印16进制若使用-XX打印的话还会额外打出以太网帧的一些信息。
4.2 示例只要读取sequence信息行的length字段表示有效的数据长度报文尾部开始读取该长度及为我们抓取的数据