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

这篇具有很好参考价值的文章主要介绍了数据链路层(MAC)、网络层(IP)、传输层(TCP/UDP)抓包分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

OSI七层模型

OSI模型(OSI model),开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI)。
抓包通常抓取数据链路层、网络层、传输层的包。
网络层抓包,开发知识,macos,tcp/ip,udp

数据包逐层封装头部

OSI主要关注5层,数据从上至下逐级封装,加入每层的头部信息,在物理层转换为比特率发送;
接收端使用逆向顺序把数据逐级解封装,发送给应用层。
网络层抓包,开发知识,macos,tcp/ip,udp

抓包分析

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
网络层抓包,开发知识,macos,tcp/ip,udp

数据包概况

点击第二条记录,wireshark分析抓包的第一条信息,是整个包的信息概况:
网络层抓包,开发知识,macos,tcp/ip,udp

数据链路层抓包

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

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

网络层抓包,开发知识,macos,tcp/ip,udp
通常第二条是数据链路层抓包,分别是目的MAC,源MAC,数据类型。
网络层抓包,开发知识,macos,tcp/ip,udp
转换为16进制。

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

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

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

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

IP数据包包头:20个字节。
网络层抓包,开发知识,macos,tcp/ip,udp

第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)。

抓包分析:
网络层抓包,开发知识,macos,tcp/ip,udp

导出16进制。

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

UDP抓包

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

udp头部格式比较简单。
网络层抓包,开发知识,macos,tcp/ip,udp

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

网络层抓包,开发知识,macos,tcp/ip,udp

导出16进制。

c3 55 b7 1f 00 12 69 ce

数据负载抓包

网络层抓包,开发知识,macos,tcp/ip,udp
导出16进制,转换为十进制,对照ASCII 码表,就是hello back。

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

ASCII 码表:
网络层抓包,开发知识,macos,tcp/ip,udp

Linux cooked-mode capture

Wireshark分析抓包时,数据链路层显示Linux cooked-mode capture,这是Linux上libpcap所使用的伪协议,因为不是所有的网卡接口都具有相同的链路层协议。抓包时不指定网卡会出现(tcpdump -i any)。

网络层抓包,开发知识,macos,tcp/ip,udp

转换成16进制如下:

00 00 00 01 00 06 c4 70 ab fc 1b a9 00 00 08 00

前6字节代表上图中的前三项,随后6字节是源MAC地址,后面2字节全0未使用,最后2字节0800代表以太网帧所携带的上层数据类型。文章来源地址https://www.toymoban.com/news/detail-586936.html

到了这里,关于数据链路层(MAC)、网络层(IP)、传输层(TCP/UDP)抓包分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包