您当前的位置:首页 > 电脑百科 > 网络技术 > 网络技术

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

时间:2020-04-14 10:44:58  来源:  作者:

目录

  • 抓包过程
  • 以太网帧(也叫mac帧)首部分析
  • IP数据包首部分析

抓包过程

使用了 Wireshark 进行抓包,用两个最常用的 curl 和 ping 命令来演示抓包情况,开启抓包。

## 先访问我自己的网站首页
 curl https://zengzhiqin.kuaizhan.com 
## 再查看我自己网站的地址
 ping https://zengzhiqin.kuaizhan.com

Wireshark根据 ping 命令得到的地址进行条件过滤,得到上面两个命令所得到的包,主要有 TCP(https基于tcp协议)协议和 ICMP(ping命令是基于 ICMP 协议)协议的包,如下图所示:

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

抓包分析

以太网帧(也叫MAC帧)首部分析

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

MAC帧 = 6字节源mac地址 + 6字节目标mac地址 + 2字节类型 + 4字节帧检验序列FCS + 数据长度(46~1500字节)

MAC帧长度是需要在64~1518字节之间的,太长或者太短都是无效的帧。

IP数据包过来了,MAC 层会给分别使用6个字节为其加上“源mac地址”和“目标mac地址”,并且花2个字节为其指明是哪种类型的IP数据报(目前有IPV4,IPV6两种类型),4字节“FCS帧检验序列” 负责检验帧是否有效,然后就是46~1500字节之间的IP数据报长度。

抓包里面的mac帧内容如下,选取了ping的reply类型包信息进行查看分析:

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

以太网帧

小补充:帧检验序列即FCS(frame check sequence), 让接收帧的网卡或接口判断是否发生了错误。

判断过程如下:发送网卡利用多项式计算,称循环冗余校验(CRC),将计算结果写入FCS字段,接收方收到这个帧,对其做相同的CRC计算。如果计算结果与接收的FCS字段相同,则帧没有发生错误。如果不同,接收方就相信帧肯定发生了错误,并丢弃这个帧。

IP数据包首部分析

抓包得到的头部对应关系如下所示(1~31表示的bit,8bit=1byte):

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

IP数据包头部

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

头部每个内容如下:

  • 版本: TCP/IP 协议版本,是ipv4,还是ipv6;
  • 首部长度:告诉数据包,首部长度有多长,因为首部有变长部分(如图中可变部分,试想一下如果当初没有设计这个可变长度,是不需要设计这个“首部长度”的);
  • 服务类型:网络中的数据包有着急的,有不着急的,比如你和别人聊微信,这个包就比较着急了,如果你是在发邮件,那么点击了发送让他慢慢溜达过去也是没问题的。就相当于火车站排队,军属优先,残疾人优先,让列宁同志先走的意思;
  • 总长度:首部+数据 的长度,总长度最大是2的16次方-1,即65535字节(上面讲到的数据链路层数据大小最大1500字节别忘了,除去IP首部的20个字节,数据链路层能接受的IP数据大小是1480字节,正因为这两货大小不一样,如果一个数据包大于了1480字节,网络层要把包送给数据链路层传输,才需要后面的分片)
  • 标识:用途就是数据包分片之后可以根据标识的编号,将分片的包重新组装为一个完整数据包
抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

分片

  • 标志:3bit表示标志,计算机收到了一个包,那他咋知道这是一个完整的数据包,还只是一个分片呢,标志说看我的
抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

此处单独截图抓包分析的标志内容,Reserved bit为保留了一位,没有进行设置;Don't fragement为1表示他是一个完整的数据包,不是一个片;More fragements为0表示这是最后一个分片,为1表示后面还有分片;

我curl的我的站点首页,内容是不多的,没有大于1500字节,所以不需要分片,如果我开启迅雷下载了一个很大的东西,那这个地方是需要分片的。

  • 片偏移:偏移量,标识数据包的第一个字节是整个数据包的第几个偏移量,此处抓包的片偏移量是0,因为他没有分片
抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

片偏移

  • 生存时间ttl:linux给数据包的默认ttl是64,windows系统是128,Unix系统是255,每次过一个路由器那么ttl-1,每次经过一个路由器就要减1,ttl耗尽了那么这个包就自动消失了,防止路由里面出现了环路死循环了,包永不消失。
  • 协议:标识这个包要交给谁来处理,如果是 tcp 或者 udp 那么就需要交给传输层处理,如果是ICMP,IGMP,OSPF那么就交给网络层来处理这个包。此处是tcp协议,协议号是6.
抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

image

  • 首部检验和
抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

校验过程

  • 源地址和目标地址无需多说了
  • 可选字段,填充:ipv6已经将这个可选的去掉了,因为可变就要可控,就要增大处理时间,这里是为了增大IP数据包的功能,但是实际上很少用到。

网络里面时时刻刻有那么多的包,设计者们秉着绝不浪费一个 bit 的精神,每一个标志的设计都是精心设计的,这个时候包的首部就要绝对的精简了。这两个内容写完就很多了,下一篇我会写一个姊妹篇,抓包分析传输层的tcp三次牵手四次分手过程~~感谢观看。



Tags:抓包   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
由于https 使用了 TLS/SSL 加密条件,我们无法直接在wireshark的中读取到数据内容,我们先看一下正常的http包的内容。可以直接读取到http的header 和body。 但如果是https 则不...【详细内容】
2021-12-01  Tags: 抓包  点击:(31)  评论:(0)  加入收藏
当我们通过kubectl来查看、修改Kubernetes资源时,有没有想过后面的接口到底是怎样的?有没有办法探查这些交互数据呢?Kuberenetes客户端和服务端交互的接口,是基于http协议的。所...【详细内容】
2021-11-23  Tags: 抓包  点击:(29)  评论:(0)  加入收藏
一、准备环境Burpsuite、夜神模拟器二、步骤运行burpsuite,打开代理后,访问 http://burp/ 下载CA证书点击右上角位置下载CA证书将下载的CA证书导入到浏览器中,打开浏览器选择设...【详细内容】
2021-10-08  Tags: 抓包  点击:(67)  评论:(0)  加入收藏
01概述无论是开发还是测试,在工作中经常会遇到需要抓包的时候。本篇文章主要介绍如何在各个平台下,高效的抓包。目前的抓包软件总体可以分为两类: 一种是设置代理抓取http包,比...【详细内容】
2021-09-28  Tags: 抓包  点击:(103)  评论:(0)  加入收藏
Fiddler 简介Fiddler 是位于客户端和服务器端的 HTTP 代理 目前最常用的 http 抓包工具之一 功能非常强大,是 Web 调试的利器关注+转发+私信【软件测试】领取Fiddler安装包和...【详细内容】
2021-09-28  Tags: 抓包  点击:(63)  评论:(0)  加入收藏
前言Charles 是移动端和PC端常用的网络抓包工具,测试人员和开发人员能够查看客服端和服务器之间的所有HTTP/ HTTPS/SSL网络请求,从而实现对网络抓包的截取和分析。 01下载官网...【详细内容】
2021-07-13  Tags: 抓包  点击:(73)  评论:(0)  加入收藏
在使用gRpc的过程中,有一个想法:gRpc客户端、服务端是怎么交互的呢?从这个想法萌生出一个验证方法,通过抓包来分析其交互过程与底层数据,一起来看看吧。1. gRpc是什么gRpc是什么?g...【详细内容】
2021-07-12  Tags: 抓包  点击:(136)  评论:(0)  加入收藏
发送请求在fiddler中也支持发送HTTP请求。就是通过Composer这个功能来进行发送请求功能入口 功能介绍 Parsed:解析后的报文.它是已经格式化后的,在这里你只需要按照区域展示...【详细内容】
2021-06-10  Tags: 抓包  点击:(156)  评论:(0)  加入收藏
分享大纲:1.测试概述 2.HTTP讲解 3.Fiddler抓包工具使用 4.Jmeter使用响应断言 HTTP基础HTTP简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广...【详细内容】
2021-06-04  Tags: 抓包  点击:(109)  评论:(0)  加入收藏
故事不长,始于脸红,终于眼红,爱而不得,皆是遗憾。。。 ---- 网易云热评 一、用户设置 1、选项卡字体及风格设置User options--》Display 2、设置数据包的字体及风格样式 3、设...【详细内容】
2021-06-04  Tags: 抓包  点击:(386)  评论:(0)  加入收藏
▌简易百科推荐
写一个shell获取本机ip地址、网关地址以及dns信息。经常会遇到取本机ip、网关、dns地址,windows一个命令ipconfig /all全部获取到,但linux系统却并非如此。linux系统都自带ifc...【详细内容】
2021-12-27  K佬食古    Tags:shell   点击:(2)  评论:(0)  加入收藏
步骤1、配置 /etc/sysconfig/network-scripts/ifcfg-eth0 里的文件。it动力的CentOS下的ifcfg-eth0的配置详情:[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifc...【详细内容】
2021-12-24  忆梦如风    Tags:网卡   点击:(10)  评论:(0)  加入收藏
1、查找当前目录下所有以.tar结尾的文件然后移动到指定目录find . -name “*.tar” -execmv {}./backup/ ;注解:find –name 主要用于查找某个文件名字,-exec 、xargs可...【详细内容】
2021-12-17  郭主任    Tags:运维   点击:(20)  评论:(0)  加入收藏
对于经常上网的朋友来说,除了手机购物上网,pc端玩网页游戏还是很多小伙伴首选的,但是有时候明明宽带链接上了,打开浏览器却出现上不了网的现象,下面小编要来跟大家说说电脑有网络...【详细内容】
2021-12-16  小白系统    Tags:网页无法打开   点击:(28)  评论:(0)  加入收藏
在访问像github、gitlab这样的外国网站时,很有可能会出现页面加载不出来或找不到页面的错误。这时候有的朋友就会以为是网络的问题,于是把Wifi断掉连上自己手机的热点,结果却还...【详细内容】
2021-12-15  启施技术IT狼叔    Tags:外网   点击:(16)  评论:(0)  加入收藏
网络地址来源:获取公网IP地址 https://ipip.yy.com/get_ip_info.phphttp://pv.sohu.com/cityjson?ie=utf-8http://www.ip168.com/json.do?view=myipaddress...【详细内容】
2021-12-15  韦廷华12    Tags:外网ip   点击:(15)  评论:(0)  加入收藏
准备好软件IPOP、用ENSP模拟一下华为交换机 启动交换机 <Huawei>sysEnter system view, return user view with Ctrl+Z.[Huawei]sysname FTPClient[FTPClient]interface vla...【详细内容】
2021-12-15  思源Edward    Tags:交换机   点击:(24)  评论:(0)  加入收藏
我们经常用到netstat命令查看主机连接状况,包括连接ip、端口、状态等,今天就练习下shell分析netsat结果。描述假设netstat命令运行的结果我们存储在nowcoder.txt里,格式如下:Pro...【详细内容】
2021-12-14  K佬食古    Tags:netstat   点击:(19)  评论:(0)  加入收藏
什么是滑动窗口?窗口是操作系统开辟的一块缓存空间,发送方在收到接收方ACK应答之前,必须在缓冲区保留已发送的数据,如果按期收到确认应答,数据就可以从缓冲区移除。什么是滑动窗...【详细内容】
2021-12-14  DifferentJava    Tags:TCP   点击:(30)  评论:(0)  加入收藏
概述日常管理华为路由设备过程中,难为会忘记设备登录密码,那么该如何重置设备登录密码吗?本期文章将全面向各位小伙伴总结分享。重置华为设备登录密码思路先行 采用console登录...【详细内容】
2021-12-10  onme0    Tags:   点击:(27)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条