以太网基础-IP、ICMP、ARP协议

一、IP协议

参考:rfc791.txt.pdf (rfc-editor.org)

IP协议(Internet Protocol)是TCP/IP协议族中最核心的协议,提供不可靠的、无连接的、尽力而为的数据报传输服务。

IP报文数据头如下

  •  Version:4bit,4表示IPv4、6表示IPv6
  • IHL:4bit,首部长度,以4字节为单位,如果不带Option字段,则为20。
  • Type of Service:8 bit,务类型。只有在有QoS差分服务要求时这个字段才起作用。
  • Total Length:总长度,16 bit,包括首部和数据之和,单位为字节,最长为65535,当总长度超过数据链路层的最大传输单元MUT时,需要进行分片。
  • Identification:标识,主机每发一个报文,都会在该字段进行加1。当数据包进行分片时,每段分片的标识是相同的。
  • Flags:标志位,3bit。

    标志位:

               0     1      2
            +-----+------+------+
            |  0  |  DF  |  MF  |
            +-----+------+------+
    • Bit 0: 保留位,必须为0。
    • Bit 1: DF(Don't Fragment),能否分片位,0表示可以分片,1表示不能分片。
    • Bit 2: MF(More Fragment),表示是否该报文为最后一片,0表示最后一片,1代表后面还有。
  • Fragment Offset:片偏移,分片重组时会用到该字段。表示较长的分组在分片后,某片在原分组中的相对位置。以8个字节为偏移单位。例如第一个分片包的片偏移为0,分段长度为1480,则第二段的偏移为(1480/8),第三片的偏移为((1480+1480)/8)。具体可参考:TCP/IP协议中分包与重组原理介绍、分片偏移量的计算方法、IPv4报文格式_ip分片偏移量计算-CSDN博客
  • Time to Live:生存时间,8bit。可经过的最多路由数,即数据包在网络中可通过的路由器数的最大值。
  • Protocol:协议类型,8 bit。

  •  Header Checksum:16 bit,首部检验和,只检验数据包的首部,不检验数据部分。这里不采用CRC检验码,而采用简单的计算方法。
  • Source Address:32 bit。
  • Destination Addres:32 bit。
  • Options(可变):选项字段,用来支持排错,测量以及安全等措施。
  • Padding(可变):填充字段,全填0。

二、ICMP协议

CMP是 Internet Control Message Protocol 的缩写,即互联网控制消息协议。它是互联网协议族的核心协议之一。它用于 TCP/IP 网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈,通过这些信息,使网络管理者可以对所发生的问题作出诊断,然后采取适当的措施解决问题。

虽然 ICMP 是网络层协议,但是它不像 IP 协议和 ARP 协议一样直接传递给数据链路层,而是先封装成 IP 数据包然后再传递给数据链路层。所以在 IP 数据包中如果协议类型字段的值是 1 的话,就表示 IP 数据是 ICMP 报文。

ICMP报文格式如图所示,每一个ICMP消息都将包含引发这条ICMP消息的数据包的完全IP包头,ICMP报文则作为IP数据包的数据部分封装在IP数据包内部。ICMP包头中包含的三个固定字段就是源端设备确定发生错误的类型的主要依据。

  • Type字段表示ICMP消息的类型;
  • Code字段表示ICMP消息类型细分的子类型;
  • Checksum字段表示ICMP报文的校验和。

ICMP报文分类。 

Type

Code

描述

查询/差错

0-Echo响应

0

Echo响应报文

查询

3-目的不可达

0

目标网络不可达报文

差错

1

目标主机不可达报文

差错

2

目标协议不可达报文

差错

3

目标端口不可达报文

差错

4

要求分段并设置DF flag标志报文

差错

5

源路由失败报文

差错

6

未知的目标网络报文

差错

7

未知的目标主机报文

差错

8

源主机隔离报文

差错

9

禁止访问的网络报文

差错

10

禁止访问的主机报文

差错

11

对特定的TOS网络不可达报文

差错

12

对特定的TOS主机不可达报文

差错

13

由于过滤 网络流量被禁止报文

差错

14

主机越权报文

差错

15

优先权终止生效报文

差错

5-重定向

0

重定向网络报文

差错

1

重定向主机报文

差错

2

基于TOS的网络重定向报文

差错

3

基于TOS的主机重定向报文

差错

8-Echo请求

0

Echo请求报文

查询

9-路由器通告

0

路由通告报文

查询

10-路由器请求

0

路由器的发现/选择/请求报文

查询

11-ICMP超时

0

TTL超时报文

差错

1

分片重组超时报文

差错

12-参数问题

0

IP报首部参数错误报文

差错

1

丢失必要选项报文

差错

2

不支持的长度报文

差错

13-时间戳请求

0

时间戳请求报文

查询

14-时间戳应答

0

时间戳应答报文

查询

15-信息请求

0

信息请求报文

查询

16-信息应答

0

信息应答报文

查询

ICMP最常见的场景就是使用Ping去查询目的地址是否可以到达

Ping

Ping程序是最常见的用于检测IPv4和IPv6网络设备是否可达的调试手段,它使用ICMP的echo信息来确定:

  • 远程设备是否可达;
  • 与远程主机通信的来回旅程(round-trip)的延迟;
  • 报文包的丢失情况

ICMP报文其余字段

 

 

各字段说明
  • 类型:占一字节,标识ICMP报文的类型,目前已定义了14种,从类型值来看ICMP报文可以分为两大类。第一类是取值为1~127的差错报文,第2类是取值128以上的信息报文。如前所述
  • 代码:占一字节,标识对应ICMP报文的代码。它与类型字段一起共同标识了ICMP报文的详细类型。如前所述
  • 校验和:这是对包括ICMP报文数据部分在内的整个ICMP数据报的校验和,以检验报文在传输过程中是否出现了差错。其计算方法与在我们介绍IP报头中的校验和计算方法是一样的。
  • 标识:占两字节,用于标识本ICMP进程,但仅适用于回显请求和应答ICMP报文,对于目标不可达ICMP报文和超时ICMP报文等,该字段的值为0。

 三、ARP 协议

 ARP(Address Resolution Protocol,地址解析协议)是用来将IP地址解析为MAC地址的协议。主机或三层网络设备上会维护一张ARP表,用于存储IP地址和MAC地址的映射关系,一般ARP表项包括动态ARP表项和静态ARP表项。

为什么需要ARP?

在局域网中,当主机或其它三层网络设备有数据要发送给另一台主机或三层网络设备时,需要知道对方的网络层地址(即IP地址)。但是仅有IP地址是不够的,因为IP报文必须封装成帧才能通过物理网络发送,因此发送方还需要知道接收方的物理地址(即MAC地址),这就需要一个通过IP地址获取物理地址的协议,以完成从IP地址到MAC地址的映射。地址解析协议ARP即可实现将IP地址解析为MAC地址。

ARP 工作的基本流程

ARP 工作流程分为两个阶段,一个是 ARP 请求过程,另一个是 ARP 响应过程。

工作流程如下所示。
 

ARP协议工作流程-请求示意图


 

ARP协议工作流程-响应示意图


在上面图片中,主机 A 的 IP 地址为 192.168.1.1,主机 B 的 IP 地址为 192.168.1.2。

主机 A 与主机 B 进行通信,需要获取其 MAC 地址,基本流程如下:

  • 主机 A 以广播形式向网络中所有主机发送 ARP 请求,请求包中包含了目标 IP 地址 192.168.1.2。
  • 主机 B 接收到请求,发现自己就是主机 A 要找的主机,返回响应,响应包中包含自己的 MAC 地址

 ARP报文格式

ARP请求和应答报文格式

报文的长度是42字节。前14字节的内容表示以太网首部,后28字节的内容表示ARP请求或应答报文的内容。报文中相关字段的解释如下图所示。

 注意:标准以太网帧的最小长度为64字节,上述全部的字节数为42字节,所以在发送ARP报文的时候需要补充0。

以太网帧最大长度为1518字节

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值