网络层协议解析

373 阅读5分钟

本章主要介绍了网络层协议中的IP数据包形式,以及ICMP,ARP协议的介绍

网络层的功能

  1. 定义了基于IP协议的逻辑地址

IP协议主要内容有:

ARP(地址解析协议): 是将IP地址转换成物理mac地址的协议

ICMP协议(网际控制报文协议):平时的主要操作有“ping”用于测试网络的连通性

RARP(逆地址解析协议):是根据物理mac地址转换成IP地址的协议

IGMP(网际组管理协议):一个组播 协议这个协议运行在主机和组播路由器之间

2.用于连接不同的媒介类型

即将交换机,路由器,计算机等设备连接在一起

3.选择数据通过网络的最佳路径

即网络路径的择优,选择传输线路短,传输速度快的路径进行传输

IP数据包的格式

2022-07-13_162238.png 版本号(4bit):指IP协议,一般使用IPv4协议(表示为0100),IPv6协议使用少的原因是老设备目前不支持,难推广

通信双方使用的版本需要一致才能通信

首部长度(4bit):IP数据包的包头长度

优先级与服务类型(8bit):该字段表示数据包的优先级与服务类型,如果遇到数据拥堵可以根据该字段进行数据先后的传输

总长度(16bit):指IP数据包的总长度,最长为65535个字节,包括包头和数据。

标识符(16bit):当IP对上层数据进行分片时,他会将所有分片数据分配一组编号,然后将编号放入标识符字段中,保证分片不会错误地重组,以便接收节点可以重组被分片的数据包

标识(3bit):和标识符一起传递,指示不可以被分片或者最后一个分片是否发出。标识的功能:1.数据小的不需要分片的会加上标识告知不需要分片;2.告知所有分片数据已经传输完成

段位偏移量(13bit):在一个分片序列中如何将各分片连接起来,按什么顺序连接起来。即分片数据不一定按顺序传输完毕,段位偏移量保证了数据传输完毕后按照正确顺序连接起来。

TTL生命周期(8bit):可以防止一个数据在网络中无限循环的转发下去,每经过一个路由器-1,当TTL为0时,该数据将会被丢弃(0-255)。举例:当一个数据传输出去后,无法找到目的地,这个数据将会一直在设备之间循环发送,生命周期可以保证这个数据不会无意义的在设备中循环,一直占用网路资源。

协议号(8bit):指上层数据使用的协议(ICMP:1,TCP:6,UDP:7)

首部校验和(16bit):这个字段只检验数据报的首部,不包括数据部分。

源地址(32bit):源ip地址,表示发送端的IP地址

目标地址(32bit):目标ip地址,表示接收端的IP地址

可选项(40bit的可变长部分):选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据

ICMP协议

image.png

  1. ICMP是一个“错误侦测与回馈机制”

    ICMP的主要作用是测试网络的连通性

  2. 通过IP数据包封装的

  3. 用来发送错误和控制信息

ICMP协议的功能: Ping:Ping是网络设备、Windows、Unix和Linux平台上的一个命令,其实是一个小巧而实用的应用程序,该应用基于ICMP协议。

Ping常用于探测到达目的节点的网络可达性。

Ping的选项有以下几种

1.显示自己的IP地址:ipconfig

image.png 从上图观察可以得到关于自己计算机的本地IP地址以及子网掩码包括网关的内容

2.显示帮助命令:ping --help(可以出现相关命令菜单协助操作)

image.png

3.将地址解析为主机名:ping -a IP地址

image.png

如上图所示查询本机的IP地址为169.254.478.45然后进行如下操作

image.png 可以看到通过这段命令,本机的IP地址以及转换成了主机名

4.发送缓冲区大小(即指定数据包的大小进行传输):ping -l 包的大小 IP地址

我们将包的大小设置成50字节进行一次操作,设备会进行一次大小为59字节的数据传输

image.png

5.超时等待时间(即如果超出等待时间,数据包未传输成功,则将数据收回,避免浪费网络资源):

ping -w 指定等待时间(默认是秒:2 ) IP地址

image.png

6.指定ping几次:ping -n 次数 IP地址

image.png

如上图所示,根据命令只ping了4次

7.追踪,设定经过几个路由设备:tracert IP地址

image.png 如上图所示可以看到该命令可以追踪到数据传输经过几个路由设备,由于ping的是本机IP地址所以经过设备只有1,如果在ping的过程中有数据发送失败的,可以根据失败的IP地址查询到相应的设备是否存在问题。

总结

以上ping的多种用法,ping的通是一定可以通信的,ping不通也不代表网络一定是不通的。