网络层提供的服务

网络层负责在不同网络之间尽力转发数据包,基于数据包的IP地址转发
不负责丢失重传,也不负责传输顺序
image.png

网络层如何转发数据包

image.png
数据通信前的准备:
应用层提供数据
传输层 反段并编号
网络层加上IP地址
数据链路层加上 FCS 和 MAC地址
两种情况 使用自己的子网掩码,判断自己在哪个网段
如果是同一个网段,则ARP协议广播解析目标IP
如果不是同一个网段,就到网关
物理层成为bit stream
image.png
途中交换机接收到数据:
交换机转换bit stream 随后查看mac地址,随后选择出口。
途中路由器接受到数据:
根据比特流 随后查看IP地址 根据IP地址选择路径
image.png

网络层协议

image.png

ARP协议

ARP协议为IP协议提供服务
ARP 将IP地址通过广播 目标MAC地址是FF-FF-FF-FF-FF-FF 解析目标IP地址的MAC地址 (本网段)
详情参考 :https://blog.csdn.net/ever_peng/article/details/80008638

ARP欺骗

image.png
当IP4想与M1通信的时候,通过ARP协议广播,此时M1返回自己的MAC地址,M2在他之后返回并告诉IP4机器自己才是目标机器,数据就会发送到M1。

IP协议

RIP

OSPF

网际控制报文协议ICMP协议

ICMP用来测试网络层是否畅通,依赖于IP协议
PING(Packet Internet Grope),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。

time查看延迟
TTL数据包生存时间 过一个路由器TTL -1 当值为0的时候,数据包自动销毁
常见的TLL:
Linux 64
Windows 128
unix 255

ping -t 10.1.1.1 欧拉欧拉ping
image.png
ping -l 200 10.1.1.1 指定数据包大小
ping -i 2 10.1.1.1 指定TLL值

Internet组播管理协议 IGMP

点到点
广播 —- 不跨路由器
组播(多播)

IP数据报格式

IP数据包由首部和数据两部分组成

  • 首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。
  • 在首部的固定部分的后面是一些可选字段,其长度是可变的。

如图所示:
图片上方的数字代表bit,所以是4个字节,共5行,故20个字节。
image.png
版本:表示TCP/IP是那个版本的协议 IPV4 IPV6
首部长度:说明这个报文首部有多少字节
image.png
区分服务:优先级 车票军人优先 —- 语音数据包 QOS
image.png
image.png
总长度: 2 16次方 - 1 = 65535字节(网络层最大)
image.png
标识:通过标识来重组数据包 分片
image.png
标志:标记是否是一个数据包的分片还是完整的数据包
3bit,目前只有2位有意义,最低位是MF(more Flagment)。MF = 1表示后面“还有分片”。MF=0表示最后一个分片。标志字段中间的一位是DF(Don’t Fragment)。只有当DF=0时才允许分块传输。
一个不分片的数据包 010
image.png
一个分片的数据包 (第一个 所以片偏移量为0)
image.png
片偏移:
image.png
不分片的数据包片偏移量都为0
image.png
第一个分片的字节是整个数据包的第1480个字节
image.png
TTL:数据包的生存时间
协议:协议
image.png
ICMP 协议号 1
image.png
IGMP 协议号 2
TCP 6
image.png
UDP 17 hex
image.png
IPV6 41
OSPF 89

首部校验和:首部校验和(16位)字段只检验数据报的首部,不检验数据部分 这里不采用CRC检验码而采用简单的计算方法。
image.png
image.png
如果传输的过程中出现了错误的话,good = false bad = ture
可选部分:实在是太少见, 内容规范十分丰富。 IPV6没有这个字段
填充 :为可变部分填充