10-----网络层基础

129 阅读2分钟

基础概念

网络层(Network Layer)是OSI模型中的第三层。它主要负责将数据包从源主机传输到目标主机中的正确位置。

该层的主要功能包括:

  • 寻址和路由:确定数据包的目的地,并选择最佳路径来传输数据。
  • 分组:将数据分割成较小的包以便进行更有效的传输。
  • 连接服务:提供多种服务类型,如无连接服务和面向连接服务等。

在TCP/IP协议栈中,网络层使用IP协议进行通信。IP协议是一种无连接协议,它没有建立一个持久的连接,而是每个数据包都独立传输。IPv4是当前广泛使用的版本,但随着IPv4地址空间的枯竭,IPv6正在逐渐被采用。

常见协议有:IPv4、IPv6、ICMP、IGMP等

IP协议

IP:Internet Protocol,因特网协议,TCP/IP协议簇中最核心的协议

IPv4报文结构

Pasted image 20230527163725.png

Pasted image 20230527163744.png

数据包分片与重组

MTU是Maximum Transmission Unit(最大传输单元)的缩写,它是指在一次网络通信中可以通过的最大数据包大小,也就是以太网以上所有的载荷,以太网的MTU为1500字节。

如果发送方要发送比MTU更大的数据包,则必须将其分割成较小的片段,并在接收方重新组装,这个过程称为分片和重组。

Pasted image 20230527171642.png

ICMP演示

正常ping

Pasted image 20230527170746.png

可用空间:

1500 - 20(IP报头)- 8(ICMP报头)= 1472字节

注意:

ICMP是IP协议上层数据包,使用ICMP时,不需要通过端口号等进行TCP/UDP通信,对方只要回复ICMP_reply就可以,所以无法通过抓取TCP/UDP数据包查看ICMP。

超出MTU

设置ping发送的数据包大小:

ping -l 数据包大小

Pasted image 20230527175126.png

  • IP头部每次分片都会重新填充
  • ICMP的8字节只有在第一个分片中存在

Pasted image 20230527175725.png

Pasted image 20230527180039.png

TTL

TTL:Time to Live,生存时间

  • 防止IP数据包在网络内无休止地传输(产生环路)
  • 每经过一次路由TTL值就会减1
  • 当TTL=0时,丢弃数据包

设置TTL值

ping -i 1 ip

Pasted image 20230527191329.png

Pasted image 20230527191344.png

  • 终端中看到的TTL数值是对方回来的TTL,不是自己发送的TTL
  • 自己发送的TTL可以通过抓包查看发送的数据包里的值
  • 可以根据TTL特性进行路由跟踪

tracert

  • tracert 每次会发送三个数据包,来确保尽可能成功获得结果
  • tracert是通过逐渐增加TTL值来确定节点的
  • 如果tracert返回*,也就是无结果,有可能是超时,也有可能是对方设置不返回结果

协议号

  • 用于标识上层协议

Pasted image 20230528135314.png

Pasted image 20230528135322.png