网络层协议解析

211 阅读7分钟

网络层协议解析

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

一、网络层的功能

1、定义了基于IP协议的逻辑地址,就是ip地址

IP协议主要内容有:

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

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

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

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

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

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

3、选择数据通过网络的最佳路径,完成逻辑地址寻址

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

二、IP数据包的格式

image.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一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据

image.png

三、ICMP协议

src=http___upload-images.jianshu.io_upload_images_20425542-00666941cb1857c6.png

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

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

  3. 通过IP数据包封装的

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

1、ICMP数据包格式

src=http___www.pianshen.com_images_416_d95828c310fd8cc78c289efbdc042148.png

  • ICMP是工作在网络层,协议号1
  • 报文重要字段:Type+Code

type和code的不同组合可以表示不同功能的ICMP报文 image.png type为3的都是不可达信息

2.ICMP协议的功能

2.1、ping:

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

  1. 作用:常用于探测到达目的节点的网络可达性。
  2. 功能:差错检测

检测步骤:

  • ping 自己 127.0.0.1 硬件
  • 看双方地址是否有问题
  • 看网关是否有问题
  • 防火墙策略是否有问题( 配合 找网络工程师)

2.2、ping的使用方法

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

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

3.指定数据包大小:ping ip地址 -l 指定数据包大小 image.png

4.长ping:一直ping下去,ctrl+c 停止 image.png

5.指定超时等待时间:ping ip地址 -w 等待时间(即如果超出等待时间,数据包未传输成功,则将数据收回,避免浪费网络资源) image.png

6.指定ping几次:ping ip地址 -n 次数(指定发送几个包) image.png

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

8.追踪,设定经过几个路由设备:tracert IP地址 image.png 如上图所示可以看到该命令可以追踪到数据传输经过几个路由设备,由于ping的是本机IP地址所以经过设备只有1。

如果在ping的过程中有数据发送失败的,可以根据失败的IP地址查询到相应的设备是否存在问题。 image.png

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

四、ARP协议

1、什么是ARP协议

ARP协议是地址解析协议(Address Resolution Protocol)是通过解析IP地址得到MAC地址的。

2、ARP协议工作过程

image.png PC1 想和 PC2 通信 需要知道 PC2的mac地址,需要ARP 协议

  1. PC1首先 查看本机的 ARP 缓存表,如果有就直接发送。
  2. 如果没有 就会发送广播,询问,谁有192.168.1.2mac地址
  3. 同一网段的 所有机器 都会收到 广播,只有PC2 会回复(因为是发给PC2的)其余PC 丢弃。
  4. PC1 会收到PC2的回复 数据包里面会携带PC2 的 MAC地址

3、ARP功能

  1. 免费(无故)ARP (检测 地址是否冲突):当一台设备获取到一个Ip 地址时 ,会自动发送一个无故ARP,检测 是否有设备已使用了此地址
  2. 将ip地址 转化成 mac地址

五、知识延展

1、冲突域

冲突域是一个以太网术语,指的是这样一种网络情形,即网段上的一台设备发送分组时,该物理网段上的其他所有设备都必须债昕它。这很糟糕,因为如果同一个物理网段中的两台设备同时传输数据,将发生冲突(即两台设备的数字信号将在线路上相互干扰),导致设备必须在以后重传数据。冲突对网络性能有严重的负面影响,因此绝对要避免冲突。前面描述的情形通常出现在集线器环境中,在这种环境中,所有主机都连接到一个集线器,它们组成一个冲突域和一个广播域。

总结:

冲突域:两台设备同时发送消息时,互相干扰,那他们就处于同一个冲突域

2、广播域

广播域的书面定义如下:广播域指的是网段中的一组设备,它们侦昕在该网段上发送的所有广播。广播域的边界通常为诸如交换机和路由器等物理介质,但广播域也可能是一个逻辑网段,其中每台主机都可通过数据链路层(硬件地址)广播访问其他所有主机。介绍广播域的基本概念后,下面来看看半双工以太网使用的一种冲突检测机制。

总结:

1、广播域:一台机器发送广播,能收到消息的机器 都是在同一广播域

2、交换机的所有端口默认在同一个广播域里,

3、路由器的 每一个端口都是一个独立的 广播域