IP基本原理

IP协议的概述

由前面内容可知,在网络层,无论是局域网还是广域网的唯一选择就是IP协议
在这里插入图片描述

图中的ICMP、IGMP、ARP、RARP都属于是IP的延伸协议

IP的主要作用

  • 标识节点和链路
    • 用唯一的IP地址标识每一个节点
    • 用唯一的IP网络号标识每一个链路
  • 寻址和转发
    • 确定节点所在的网络位置,进而确定节点所在的位置
    • IP路由器选择适当的路径将IP包转发到目的节点
  • 适应各种数据链路
    • 根据链路的MTU对IP包进行分片和重组
    • 为了通过实际的数据链路传递信息,须建立IP地址到数据链路层的地址映射
      IP寻址是找一个大概范围,MAC寻址才是具体到某个设备

IP网路的结果

在这里插入图片描述

  • IP网路由多个网段构成,每个网段对应一个链路
  • 路由器负责将网段连接起来,适配链路层协议,在网络之间转发数据包

IP头部封装格式

前面已经了解过一个数据在经过不同层的时候会被封装上不同的内容,在网络层就会封装一个IP头部,如下图

在这里插入图片描述

其中Destianation Address是目标地址
Source Address是源地址
整个IP地址的头部大小在20B-60B,之所以是20-60不等是因为除了在图中前20个字节外还有个一个Options的部分
Options的意思是可选项
Version是版本,一般要么是4要么是6
IHL头部长度,因为长度20-60不等,所以要表述清楚头部长度是多少
Type of Service简称tos用来表示数据包的优先级的,用来做QS的流控(QS技术会在H3CSE讲),一般数值从0~63,数字越大越优先
Total Length是数据包的总长度,因为除了前面提到的头部之外,后面还有数据包,一共的长度

下一层的Identification、Flags、Fragment Offset三个东西是用来实现数据包的分片的

MTU最大传输单元,标识接口手法数据支持的单个包的最大长度,以太网接口默认MTU1500Byte,PPPoE默认MTU1492Byte

如果遇到两个路由器连接的接口不一致,假设一个路由器是以太网接口,另一个是PPPoE,然后从第一个路由器发送1500B的数据,此时数据包从以太网口发出就会收不到,所以这里就要用到数据包分片,将数据包分成两个750B的就可以收到了

三者分片原理:

  1. Identification叫做标识符,用于标识该分片石来自于哪个数据包
  2. Flags标志位,取值只有0/1,一般表示某个功能是否开启的状态0关,1开;这一部分有三个标志位,可以理解为有三个数字,意义分别为:保留,标识数据包是否禁止分片(也就是中间为0的话就表示没有启动禁止分片,那就是可以分片),标识是否为最后一个分片;
  3. Fragment Offset表示片偏移,意思是改分片在数据包中所处的位置或顺序(假设1.1、1.2、1.3是数据包的三个分片,那么,每一个小数的整数部分就是标识符,小数部分就是片偏移)

Time to Live简称TTL表示该数据包还能再经过几个路由器,如果最大跳数依旧不能到达目的地,那么这个数据包就会被丢弃(假设初始值设置为64,那么到第二个路由器的时候TTL值已经是63了),他的存在是为了防止路由环路

Protocol是用来描述上层协议的,用来表示该数据包封装所属协议是TCP还是UDP,也就是告诉接收方,当把数据包解封装后是应该交给TCP处理还是UDP处理,或者是其他什么协议处理

HeaderChecksum叫做头部的校验序列,记录加密校验后的值,用于后续对比,确保数据包不会被篡改

Padding叫做填充,数据包的总长度必须是4B的倍数,所以这里用来凑数据包为4B的倍数

IP地址

在这里插入图片描述

定义

网路层地址

格式
  • 32位长度,点分十进制
  • 由网络为+主机位组成
  • 网络为长度和数字完全一致的地址数据同一网段
地址分类
  • A类:1.x.x.x~126.x.x.x
  • B类:128.x.x.x~191.x.x.x
  • C类:192.x.x.x~223.x.x.x
  • D类:224.x.x.x~239.x.x.x
  • E类:240.x.x.x~255.x.x.x

可以通过第一段IP地址直接判断是属于哪一类网络的

D类地址是组播地址,不可用于配置为主机地址
E类地址是科研地址,不对外公开
A类地址前8位为网络位,后24位为主机位
B类地址前16位为网络位,后16位为主机位
C类地址前24位为网络位,后8位为主机位

IP地址的分类是用来分划不同的网络规模,因为主机位的大小,确定了同一网段主机的个数,不同规模的网络需要不同的主机数量

特殊的网络地址

  • 本地环回地址
    在上述的地址范围中A到B地址中间范围少了一个127.x.x.x地址,只要是127开头,后面不管是如何排列,都是

  • 主机位为全为0的地址
    叫做网络地址,用来标识整个网段,比如192.168.1.1那么他的主机位是后八位,则全0就是192.168.1.0所以可以称192.168.1.1为192.168.1.0网段的

  • 主机位权威1的地址
    叫做本网段的广播地址,仅限于对本网段进行广播发送消息的地址

  • 255.255.255.255地址
    叫做全网广播地址,是用来给全网段广播发包的地址

  • 0.0.0.0地址
    叫做任意IP地址,一般用作条件匹配用的,可以代表任何一个地址

公私网地址

公网地址:
可以在互联网上寻址的地址,全球唯一,需要运营商分配

私网地址:

  • 本地随意使用,无法在互联网上寻址
  • 地址范围:

在这里插入图片描述

其中自动私有地址比较少见,eg:如果给自己网卡设置为自动获取IP地址,但是网络中没有DHCP服务器,导致根本获取不到地址,于是这个网卡在找不到地址的情况下,会给自己设置一个169.254开头的网址,但是他和别的私有地址不同的是他甚至不能跨本网段通信

运营商专用私有地址
范围是:100.64.X.X-100.127.X.X
因为物联网啊等新兴设备的出现,导致公网地址更加的紧张,所以又给运营商划分了一些公网地址来使用

ARP协议

定义

地址解析协议,把IP地址解析为Mac地址(一般来说,当两台pc连接在同一交换机上,并且在同一网段,如下图,可以直接ping通,但是本身ping的是一个ip地址,但是交换机是二层设备,没法根据ip地址寻址,所以需要一个转换协议再来寻址)
在这里插入图片描述

工作原理

在最开始的时候,pc2是不知道pc3的mac地址的,这个时候pc2就会在交换机中广播发包去寻找自己ping的ip地址所对应的mac地址是谁的,这个时候pc3收到消息,知道是自己的,会单播发包给pc2告诉他自己的mac地址,然后pc2把pc3的ip地址和mac地址映射关系写入ARP缓存表

相关命令

查询arp缓存:arp -a
清空arp缓存:arp -d

上述命令是用在pc上的
在这里插入图片描述

RARP协议(简单了解)

叫做逆向ARP/反向ARP协议

作用:用于根据本机自己的MAC地址,查询本机自己的IP地址

ICMP协议

互联网控制消息协议
在这里插入图片描述

路由跟踪的作用是用来常看一个包抵达目的地是经过哪些路由器的

一般提到ICMP就想到这两个协议就可以了
前置命令:

ip ttl-expires enable

ip unreachables enable

IP数据转发原理

如果数据包完成了三层封装后,即将进行二层封装前,会做一个判断:

  • 如果目的的IP和本机IP属于同一网段,会直接查询目的IP的Mac地址,并进行封装
  • 如果目的IP和本机IP不属于同一网段,会查询网关IP地址的Mac地址,并进行封装

下图中是一个数据包的转发流程,因为两边pc不处于同一网段,经过三层封装后,因为要先经过二层设备转发,所以封装一道物理地址,因为在发送前检查发现不是同一网段,所以目的mac地址就是网关的mac地址,交由网关处理;网关收到后发现目的mac地址是自己就会解包,向上层传递,然后发现目标ip不是自己,于是会广播发包建立arp表,然后找到目标设备的mac地址后进行二次封装到数据链路层,然后再进行寻址,找到目标pc后,目标pc发现是包中封装的目标地址是自己后再进行解封装,发现目标ip也是自己,于是就可以获得数据包
在这里插入图片描述

网关

Gateway,是本网段出口的IP地址,一般是距离PC最近路由器的直连接口IP,如下图,PC5的网关地址就该设置为路由3的g0/0口的IP地址,同理,PC6的网关地址就是路由2的g0/0口
在这里插入图片描述

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐