(文/阿群)

本文随手记录一些底层网络协议的细节, 假定读者已经熟悉如何使用抓包工具 Wireshark 并且对以太网通讯协议有兴趣.

(以下正文)

--

打开Wireshark主程序, 指定一块网卡, 开始抓包.

这里我抓到一个典型HTTP网页请求包, 作为例子

MAC地址报头14字节

00 ec ac ce 91 37---f4 4d 30 1b bd b7---08 00

无论抓到哪种包, 从抓包记录中肯定能看见自己的网卡MAC地址.

MAC地址长度是6字节, 每一块网卡都有独一无二的MAC地址.

抓包记录中, 自己网卡的MAC地址和对方主机的MAC地址同时出现, 一共是12字节.

顺序是destination MAC在前, source MAC在后.

接下来还有2字节代表以太网数据类型.

EtherType=0x0800指明按照IPv4协议解析后续数据

EtherType 是以太帧里的一个int16字段,用来指明应用于帧数据字段选择的协议。

为了能够向前兼容早期实验阶段的以太网, 当EtherType的值>=0x0600即1536时这个桢才是以太网II型数据桢. 这个值小于1500时是兼容早期的以太网报文格式, 作为报文长度.

通过以太网层的MAC header里面的这个EtherType字段标记出接下来应该采用哪种具体的第三层协议解析报文, 第三层协议包括IPv4/ARP/PPPoE/802.1X等协议

0x0800--IP(历史悠久的IPv4协议)

0x0806--ARP地址查询

0x86DD--IPv6

0x8863/0x8864--PPPoE相关

PPPoE方式拨号上网(大部分家庭宽带上网都是PPPoE)

0x888E--EAPoE

即大学校园常见的802.1X拨号验证客户端所采用的协议

# 附: 一个完整的HTTP请求包(含MAC/IP报头)

0000 00 ec ac ce 91 37 f4 4d 30 1b bd b7 08 00 45 00 .....7.M0.....E.

0010 01 a5 66 95 40 00 80 06 00 00 c0 a8 00 19 c0 a8 ..f.@...........

0020 00 61 6c df 00 50 bb 0d 8b bd 38 5a f6 89 50 18 .al..P....8Z..P.

0030 08 05 83 62 00 00 47 45 54 20 2f 20 48 54 54 50 ...b..GET / HTTP

0040 2f 31 2e 31 0d 0a 48 6f 73 74 3a 20 31 39 32 2e /1.1..Host: 192.

0050 31 36 38 2e 30 2e 39 37 0d 0a 43 6f 6e 6e 65 63 168.0.97..Connec

0060 74 69 6f 6e 3a 20 6b 65 65 70 2d 61 6c 69 76 65 tion: keep-alive

0070 0d 0a 55 73 65 72 2d 41 67 65 6e 74 3a 20 4d 6f ..User-Agent: Mo

0080 7a 69 6c 6c 61 2f 35 2e 30 20 28 57 69 6e 64 6f zilla/5.0 (Windo

0090 77 73 20 4e 54 20 31 30 2e 30 3b 20 57 69 6e 36 ws NT 10.0; Win6

00a0 34 3b 20 78 36 34 29 20 41 70 70 6c 65 57 65 62 4; x64) AppleWeb

00b0 4b 69 74 2f 35 33 37 2e 33 36 20 28 4b 48 54 4d Kit/537.36 (KHTM

00c0 4c 2c 20 6c 69 6b 65 20 47 65 63 6b 6f 29 20 43 L, like Gecko) C

00d0 68 72 6f 6d 65 2f 36 33 2e 30 2e 33 32 33 39 2e hrome/63.0.3239.

00e0 31 33 32 20 53 61 66 61 72 69 2f 35 33 37 2e 33 132 Safari/537.3

00f0 36 0d 0a 55 70 67 72 61 64 65 2d 49 6e 73 65 63 6..Upgrade-Insec

0100 75 72 65 2d 52 65 71 75 65 73 74 73 3a 20 31 0d ure-Requests: 1.

0110 0a 41 63 63 65 70 74 3a 20 74 65 78 74 2f 68 74 .Accept: text/ht

0120 6d 6c 2c 61 70 70 6c 69 63 61 74 69 6f 6e 2f 78 ml,application/x

0130 68 74 6d 6c 2b 78 6d 6c 2c 61 70 70 6c 69 63 61 html+xml,applica

0140 74 69 6f 6e 2f 78 6d 6c 3b 71 3d 30 2e 39 2c 69 tion/xml;q=0.9,i

0150 6d 61 67 65 2f 77 65 62 70 2c 69 6d 61 67 65 2f mage/webp,image/

0160 61 70 6e 67 2c 2a 2f 2a 3b 71 3d 30 2e 38 0d 0a apng,*/*;q=0.8..

0170 41 63 63 65 70 74 2d 45 6e 63 6f 64 69 6e 67 3a Accept-Encoding:

0180 20 67 7a 69 70 2c 20 64 65 66 6c 61 74 65 0d 0a gzip, deflate..

0190 41 63 63 65 70 74 2d 4c 61 6e 67 75 61 67 65 3a Accept-Language:

01a0 20 7a 68 2d 43 4e 2c 7a 68 3b 71 3d 30 2e 39 0d zh-CN,zh;q=0.9.

01b0 0a 0d 0a ...

易混淆的概念以及缩略词

packet、datagram和frame

packet和datagram都被翻译为报文或数据包. datagram是packet的一个子类. 使用术语datagram暗示将通过不可靠的传输服务进行数据收发, 允许中间过程丢失数据包. (可以想象发无线电报的情形). 所有的 IP packet 都具备 datagram 的特性.

packet capturing->使用软件进行抓包的过程;

packet size. packet的长度

datagram的长度可以大于IP packet所规定的最大长度, 当需要发送这样的超长datagram时主机通过软件进行 IP 分片处理.

另: frame桢的概念我也想知道.

header和payload

header是报头, payload是报文体. 报头header也可译作"首部";

payload是指除前14字节(header)之外的报文体.

14字节header和变长payload所处的位置. 开头8字节前导标识和末尾4字节CRC校验码由网卡硬件完成

MAC address和IP address

MAC地址也叫以太网地址(Ethernet Address)或网卡物理地址(Physical Address). MAC 是 Media Access Control 的缩写, 与 MacOSX 操作系统无关.

IP地址与MAC地址的划分方式大相径庭.

socket

套接字, 是面向程序员的一组C语言函数接口;

TCP/IP

传输控制协议/互联网协议;

UDP

User Datagram Protocol用户数据报协议;

linux抓包查对方的mac地址,1.根据MAC地址抓包相关推荐

  1. omnipeek抓包(确定设备AP模式下的MAC地址+过滤)

    转载请注明作者和出处:美二 https://blog.csdn.net/qq_32654897/article/details/89217656 这篇教程写给纯小白,大神可在评论处直接指导,哈哈~ 目 ...

  2. 【Linux网络编程】原始套接字实例:MAC 地址扫描器

    如果 A (192.168.1.1 )向 B (192.168.1.2 )发送一个数据包,那么需要的条件有 ip.port.使用的协议(TCP/UDP)之外还需要 MAC 地址,因为在以太网数据包中 ...

  3. 在Mac Os(苹果)上用手机抓包软件Charles抓取微信小程序中的高清无水印视频

    手机抓包是一名测试工程师常备的技能,比如我想查看一个接口请求的参数.返回值,还有移动设备上的http请求.https请求,这一次的背景是我们想要在app端和小程序端抓取一些视频,这里用腾讯视频作为例子 ...

  4. 在Mac上怎么使用Charles进行抓包

    B站实战视频地址:[Charles抓包]一款强大的抓包神器,Charles抓包零基础到精通全教程_哔哩哔哩_bilibili 本文记录如何在Mac上使用Charles进行抓包,包含两个场景,抓取电脑应 ...

  5. Mac 内置最强WI-FI抓包工具 Airport

    许多Mac OS X用户对Mac缺乏复杂的网络分析工具感到遗憾,这些工具在Linux系统上普遍存在.许多人不知道的是Mac OS X附带了一个内置的命令行工具,可以对Wi-Fi网络进行各种的操作,从数 ...

  6. 关于fi dd ler 手机抓包 网卡地址地址_利用无线路由器如何抓取手机网络数据包【详细介绍】...

    当用户运用手机访问网络时,手机在不断接受与发送数据包,而这些数据包中包含了大量的用户信息,包括各种账号信息.聊天信息.发送接收文件.邮件.浏览的网页等.虽然很多信息是加密传输的,但还是会有大量信息是明 ...

  7. linux绑定arp mac静态,arp 静态绑定Mac地址

    root@firewall root]# arp -a ? (192.168.100.83) at 00:15:58:A2:13: D0 [ether] on eth0 ? (192.168.100. ...

  8. (0104)iOS开发之在Mac上用Charles给iPhone抓包

    长时间不抓包用到时又不会了,又要百度一番.记录最近一次在Mac上用Charles给iPhone抓包的步骤. 在Mac上用Charles给iPhone抓包 Charles 从入门到精通 [抓包工具–Ch ...

  9. Mac自带嗅探器和Wireshake抓包(三)

    一.Mac的嗅探器抓包 1.把Mac和android设备连接到同一个路由器 2.使用嗅探器   -->无线诊断    -->窗口     --->嗅探器 3.查看2.4GHz或5GH ...

最新文章

  1. 邮件服务器SASL TLS 反垃圾邮件系统
  2. Kail Linux渗透测试教程之免杀Payload生成工具Veil
  3. TCP UDP IP
  4. 众善之源 or 万恶之源?详析微服务的好与坏
  5. 解决树莓派的gpio口不能读取ds18b20的设备文件
  6. 无基础学python能干什么-呼市学Python语言能干什么
  7. express中间件和路由教程
  8. getchar() 和 scanf(%c)的区别
  9. np.expand_dims
  10. scrum角色及其职责介绍
  11. 基于IC设计的实用ISP介绍
  12. 一级标题居中,二级标题固定缩进
  13. H5页面免费制作工具大集合
  14. APUE编程:83---信号处理(SIGABRT信号与abort函数)
  15. 如何才能成为顶级的数据分析师?
  16. 逻辑回顾_回顾色彩设计
  17. nowcoder 79F 小H和圣诞树 换根 DP + 根号分治
  18. bat文件快捷打开指定的程序、文件夹、文档或Internet资源
  19. 【华人学者风采】翟成祥 伊利诺伊大学香槟分校
  20. Vue人资中台--公司的员工管理(数据处理)

热门文章

  1. 超强高温天气来袭,“幕后推手”是谁
  2. C. Product 1 Modulo N
  3. 利用草地湿润模型学习机器学习之参数估计
  4. 蓝桥杯—手机尾号评分—Java
  5. 周鸿祎的“花房上市”执念
  6. 2019最新财务管理计算器源码
  7. linux命令 - tail:查看文件最后几行的命令
  8. 源码分析 --- MapReduce如何确定任务的SplitSize、Splits、Map、Reduce
  9. 一分钟让你明白货币贬值现象
  10. PHP开发规范——转自ThinkPHP手册