目录
OSI七层模型
OSI模型(OSI model),开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI)。
抓包通常抓取数据链路层、网络层、传输层的包。
数据包逐层封装头部
OSI主要关注5层,数据从上至下逐级封装,加入每层的头部信息,在物理层转换为比特率发送;
接收端使用逆向顺序把数据逐级解封装,发送给应用层。
抓包分析
linux下使用tcpdump抓包,抓取指定网卡,端口为50005 的包,保存到123.pcap,抓包完成后使用wireshark打开分析。
sudo tcpdump -i ens33 port 50005 -w 123.pcap -vvvv
下面抓一个UDP包进行分析。
TCP抓包分析看这里:https://blog.csdn.net/weixin_40355471/article/details/131187114?spm=1001.2014.3001.5502
数据包概况
点击第二条记录,wireshark分析抓包的第一条信息,是整个包的信息概况:
数据链路层抓包
数据链路层头部共14个字节,前6字节是目的MAC地址,随后6字节是源MAC地址,最后2字节是以太网帧所携带的上层数据类型:
通常第二条是数据链路层抓包,分别是目的MAC,源MAC,数据类型。
转换为16进制。
00 0c 29 59 de c5 00 0c 29 66 95 33 08 00
网络层抓包(IP协议抓包)
数据传输网络层使用IP协议。
IP数据包包头:20个字节。
抓包分析:
导出16进制。
45 00 00 26 55 df 40 00 40 11 d3 20 c0 a8 48 32 c0 a8 48 44
UDP抓包
udp头部格式比较简单。
导出16进制。
c3 55 b7 1f 00 12 69 ce
数据负载抓包
导出16进制,转换为十进制,对照ASCII 码表,就是hello back。
68 65 6c 6c 6f 20 62 61 63 6b
ASCII 码表:
Linux cooked-mode capture
Wireshark分析抓包时,数据链路层显示Linux cooked-mode capture,这是Linux上libpcap所使用的伪协议,因为不是所有的网卡接口都具有相同的链路层协议。抓包时不指定网卡会出现(tcpdump -i any)。
转换成16进制如下:
00 00 00 01 00 06 c4 70 ab fc 1b a9 00 00 08 00
前6字节代表上图中的前三项,随后6字节是源MAC地址,后面2字节全0未使用,最后2字节0800代表以太网帧所携带的上层数据类型。