当前位置:   article > 正文

数据链路层(MAC)、网络层(IP)、传输层(TCP/UDP)抓包分析_mac数据包

mac数据包

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
  • 1

下面抓一个UDP包进行分析。
TCP抓包分析看这里:https://blog.csdn.net/weixin_40355471/article/details/131187114?spm=1001.2014.3001.5502
在这里插入图片描述

数据包概况

点击第二条记录,wireshark分析抓包的第一条信息,是整个包的信息概况:
在这里插入图片描述

数据链路层抓包

数据链路层头部共14个字节,前6字节是目的MAC地址,随后6字节是源MAC地址,最后2字节是以太网帧所携带的上层数据类型:

IPv4: 0x0800
ARP:0x0806
PPPoE:0x8864
802.1Q tag: 0x8100
IPV6: 0x86DD
MPLS Label:0x8847

在这里插入图片描述
通常第二条是数据链路层抓包,分别是目的MAC,源MAC,数据类型。
在这里插入图片描述
转换为16进制。

00 0c 29 59 de c5 00 0c 29 66 95 33 08 00   
  • 1

网络层抓包(IP协议抓包)

数据传输网络层使用IP协议。

IP指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。实现大规模、异构网络的互联互通;分割顶层网络应用和底层网络技术之间的耦合关系。IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。

IP数据包包头:20个字节。
在这里插入图片描述

第1个字节(45) ,前4位4表示的是IP协议的版本,即IPv4;后4位,IHL(Internet Header Length 报头长度),表示IP报文头部按32位字长(32位,4字节)计数的长度,也即报文头的长度等于IHL的值乘以4。
第2个字节 是区分服务。
第3,4个字节 是指首部和数据之和的长度,即 IP数据包包头和IP数据之和,不包括以太帧头部的字节
第5,6个字节 是一个数据报被分片后的标识,便于正确的重装原来的数据报。
第7,8个字节 分前3位为标志位和后13位为片偏移,其中标识位只有两位有意义。
第9个字节 表示的是数据报在网络中的寿命。
第10个字节 指出数据报携带的数据时使用的协议类型(01表示ICMP协议; 06表示TCP协议; 11表示UDP协议)。
第11,12个字节 表示首位检验和,对数据报的保留与丢弃进行判别。
第13,14,15,16个字节 表示发送者的IP地址(源IP)。
第17,18,19,20个字节 表示接收者的IP地址(目的IP)。

抓包分析:
在这里插入图片描述

导出16进制。

45 00 00 26 55 df 40 00 40 11 d3 20 c0 a8 48 32 c0 a8 48 44
  • 1

UDP抓包

UDP,用户数据报协议(User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。

udp头部格式比较简单。
在这里插入图片描述

源端口号:发送方端口号。
目标端口号:接收方端口号。
包长度:整个UDP数据报的长度 = 报头+载荷。
校验和:检测UDP数据(包含头部和数据部分)报在传输中是否有错,有错则丢弃。

在这里插入图片描述

导出16进制。

c3 55 b7 1f 00 12 69 ce
  • 1

数据负载抓包

在这里插入图片描述
导出16进制,转换为十进制,对照ASCII 码表,就是hello back。

68 65 6c 6c 6f 20 62 61 63 6b
  • 1

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
  • 1

前6字节代表上图中的前三项,随后6字节是源MAC地址,后面2字节全0未使用,最后2字节0800代表以太网帧所携带的上层数据类型。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/487145
推荐阅读
相关标签
  

闽ICP备14008679号