首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >14、网络层协议IP、ICMP、ARP、RARP

14、网络层协议IP、ICMP、ARP、RARP

原创
作者头像
堕落飞鸟
发布于 2022-01-05 16:24:28
发布于 2022-01-05 16:24:28
2.4K0
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏

一、IP 

1、IP包头的格式

IPv4包头长度通常为20字节,但是如果可选项中有信息,可能会超过20字节

版本:目前使用一般为IPv4

首部长度:定义了整个IPv4数据包头部的长度,默认20字节

优先级域服务类型:优先级与服务类型,提供3层的QoS

总长度: IP数据总长度

标识符、标志、段偏移量:上层来的数据到IP层会被分段,这几个字段用来对数据包进行标识,是在数据到达目的端重组的时候,不会乱序。

TTL:生命周期字段,经过一个路由器减1,为0时,数据包丢弃,为了放置一个数据包在网络中无限的循环下去。 

协议号:协议字段,用来标识封装的上层数据是UDP还是TCP,UDP是17,TCP是6

首部校验和:用来做IP头部正确性检测,但不包含数据部分。因为每个路由器要改变TTL的值,所以路由器会为每个通过的数据包重新计算这个值。

源地址:发送方地址

目标地址:接收方地址

可选项:可有可无,发送时间,拍错信息等

数据:数据

二、ARP

1、ARP作用

IP地址解析为MAC地址

2、为什么需要MAC地址才能通信

通过之前的OSI七层模型可以知道,数据在数据链路层传输的时候会加一个帧的头部,里面包含MAC地址,解封的过程也需要MAC地址

3、ARP原理

MAC地址是物理地址,只在本地网络中定义主机

IP地址逻辑上的,他可以定义全局地址

每台主机都会在自己的ARP缓冲区中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址,如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址;源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。

4、ARP的查询

在Windows操作系统中:

arp -a 

在Cisco路由器上

show ip arp

三、RARP协议

1、RARP作用

反向ARP解析,已知自己的MAC地址,找自己的IP地址。(无盘工作站)

2、RARP原理

四、代理ARP 

1、代理ARP原理

五、ICMP协议

1、作用

ICMP消息通过IP数据包传送,被用来发送错误和控制信息。

2、信息类型

ICMP定义了很多信息类型,例如

目的地不可达

TTL超时

消息请求

信息应答

地址请求

地址应答

3、ICMP协议的应用

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档