网络层的功能

91 阅读3分钟

网络层的功能

  • 定义了基于IP协议的逻辑的地址
  • 连接了不同的媒介类型
  • 选择数据通过网络的最佳途径

一.IP数据包的格式

分为20字节的固定部分,是每个ip数据包必须包含的部分,和40字节的可变长部分

image.png

  • 版本号(4bit):指IP协议版本,目前我们使用的是IPv4
  • 首部长度(4bit):IP数据包的包头长度(不包括数据),最小是20,最大是60
  • 优先级与服务类型(8bit):用于表示数据包的优先级(先处理哪一项任务)
  • 总长度(16bit):IP数据包的总长度,最长为 65535 字节,包括包头和数据
  • 标识符(16):表示给所有的分片数据分配一组编号
  • 标志(3bit):和标识符一起传递,指示不可以被分片或者最后一个分片是否发出(完整)
  • 段偏移量(13bit):重组数据,一组数据也许不是按发出的顺序接收到的,所以需要重组数据
  • TTL生命周期(8bit):防止一个数据包在网络中无限循环的转发下去
  • 协议号(8bit):封装的上层哪个协议,ICMP:1 TCP:6 UDP:17
  • 首部校验和(16bit):确定首部的数据是否完整,有没有被篡改
  • 源地址(32bit):源ip地址,表示发送端的IP地址
  • 目标地址(32bit):目标ip地址,表示接收端的IP地址
  • 可选项:增强IP数据包功能(根据实际情况可变长)

二.ICMP协议

控制消息协议,就是ping

ICMP协议的作用:检测网络的双向连通性

ping的格式: ping 空格 IP地址 空格 [选项]

[选项]为可增加项目,有不同的选择

  • -l 空格 数据
    指定数据包的大小

image.png

  • -t
    一直ping下去(Ctrl+C结束ping)

image.png

  • -w 空格 时间
    指定超时等待时间为你设置的时间(默认秒)

image.png

  • -n 空格 次数
    指定ping几次

image.png

Tips:

  • --help
    当你不知道用具体哪一个选项时,可以帮助你寻找指令

image.png

  • 可以两个指令一起发送

image.png

三.ARP协议

ARP协议功能

  1. 将IP地址转换成MAC地址
  2. 免费(无故)ARP,检测是否有地址重复

ARP工作原理

image.png

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

ARP协议过程:

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

通过ARP协议知道mac地址以后,进行数据帧的封装

交换机转发的过程:

  1. PC1会发送数据帧给交换机
  2. 交换机收到PC1发送的数据帧,查找mac地址表
  3. 如果有对应的mac地址,直接转发
  4. 没有就会广播(泛洪)
  5. PC2会回复自己的mac地址给交换机,形成mac地址表
  6. 下次就会以单播的形式进行通信

Tips:交换机转发的原理在另一篇博客中有提到过,这里只是简单说明一下

注意点:

  • 发送方IP地址和mac地址(不是源IP地址和mac地址)
  • 接收方IP地址和mac地址(不是目的IP地址和mac地址)

image.png

ARP相关命令

Windows中相关的命令

  • arp -a 查看arp缓存表
  • arp -d 不加ip清除所有