网络协议分析

使用Wireshark抓包,分析MAC、IP、TCP、HTTP、ARP等协议。

网络协议分析_第1张图片


分析

MAC&IP

网络协议分析_第2张图片

网络协议分析_第3张图片

mac帧头部占14字节(6+6+2,目的mac+源mac+类型),最后两个字节为上层协议类型。抓到的包中,该字段为0800即上层协议为ip协议。IP数据报头部的第一个字节的前四位为IP协议的版本类型,抓到的包中,该部分为4即IPv4协议。


TCP

网络协议分析_第4张图片

IP数据报头部的第十个字节为上层协议号,抓到的包中,该字段为06即TCP协议。(TCP协议号为6)

IP数据报头部的第一个字节的后四位为首部长度,抓到的包中,该字段为5即该IP数据报的头部长度为20字节(5*4字节)。


HTTP

TCP协议的报头中,前第3、4字节为目的端口号。抓到的包中,该字段为00 50即端口号为80。说明使用TCP的上层协议为HTTP协议。

HTTP协议的请求报文和响应报文结构有所不同:

请求报文

网络协议分析_第5张图片

响应报文

网络协议分析_第6张图片

通过观察我们可以发现两种报文都是使用空格来隔开各部分。空格在ASCII表中为0010 0000,转换为十六进制为20。所以我们以20为标志,解读HTTP报文的各个部分。

网络协议分析_第7张图片

网络协议分析_第8张图片

上图的蓝色部分是HTTP协议报文的一部分。我们尝试使用ASCII表将其转换成字符。

47 45 54 ,转换为二进制数为:0100 0111 0100 0101 0101 0100 。对应ASCII表中的字符为:G E T 。看来这是一个请求报文而且是get请求。

20,转换为二进制数为:0010 0000,对应ASCII表中的字符为:空格

源数据(十六进制) 二进制 ASCII
2f 0010 1111 /
3f 0011 1111
68 0110 1000 h
65 0110 0101 e
6c 0110 1100 l
6c 0110 1100 l
6f 0110 1111 o
25 0010 0101 %
32 0011 0101 2
30 0011 0000 0
77 0111 0111 w
6f 0110 1111 o
72 0111 0010 r
6c 0110 1100 l
64 0110 0100 d

%20 = 空格

get /?hello%20world


ARP协议

简介

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。摘自百度百科。

分组格式

网络协议分析_第9张图片

mac帧中的类型字段为0x0806

网络协议分析_第10张图片

详解

网络协议分析_第11张图片

网络协议分析_第12张图片

从左到右:

MAC帧头部

  • 字段1,以太网目的MAC地址,6字节

    • 是ARP请求的目的以太网地址,全1时代表广播地址。
  • 字段2,以太网源MAC地址,6字节

    • 是发送ARP请求的以太网地址。
  • 字段3,帧类型,2字节

    • 以太网帧类型表示的是后面的数据类型,ARP请求和ARP应答这个值为0x0806

ARP头部

  • 字段4,硬件类型,2字节

    • 表示硬件地址的类型,硬件地址不只以太网一种,是以太网类型时此值为1
  • 字段5,协议类型,2字节

    • 表示要映射的协议地址的类型,要对IPv4地址进行映射,此值为0x0800
  • 字段6,硬件地址长度,1字节

    • MAC地址占6字节
  • 字段7,协议地址长度,1字节

    • IP地址占4字节
  • 字段8,操作类型,2字节

    • 值为1,表示进行ARP请求;
    • 值为2,表示进行ARP应答;
    • 值为3,表示进行RARP请求;
    • 值为4,表示进行RARP应答。
  • 字段9,发送端的(源)硬件地址,长度由前边字段6可知

    • 由字段4可知硬件类型
  • 字段10,发送端的协议地址,长度由前边字段7可知

    • 由字段5可知协议类型
  • 字段11和12是目的端的硬件地址和协议地址

    • 判断长度、类型,同字段9、字段10
    • ARP请求则不填。(全0,不确定)

原文链接:协议分析

你可能感兴趣的:(网络芝士,网络协议,网络,tcp/ip,http)