网络层知识点

Table of contents

  1. 1. 网络层知识点
    1. 1.1. IP
      1. 1.1.1. IP基本认识
      2. 1.1.2. IP地址
        1. 1.1.2.1. IP地址的分类
        2. 1.1.2.2. 无分类地址CIDR
          1. 1.1.2.2.1. 子网掩码
        3. 1.1.2.3. 公有IP地址与私有IP地址
        4. 1.1.2.4. IP地址与路由控制

网络层知识点

IP

IP是什么?报文格式是怎样的?

IP地址的分类?

如何进行路由?

参考文章

IP基本认识

网络层的主要作用是实现端到端(主机到主机)之间的通信

IP和MAC的关系

MAC负责实现同一个网络内直连的两台设备之间的通信,而IP负责实现不同网络的两台不相连的设备之间的通信

在数据传输过程中,源IP地址和目标IP地址一般是不会变化的,而源MAC地址和目标MAC地址是一直在变化的。

IP地址

IPv4地址由32位0、1正整数表示

🌰:11000000 10101000 00000001 00000001

32位整数中有一部分充当网络号,另一部分充当主机号,所以可以说IP地址是由网络标识主机标识这两部分构成

为什么要分离网络号和主机号?

因为两台设备在进行通信之前,先判断是否在同一个广播域内,即网络号是否相同,如果是则可以把数据包直接发送到目标主机

为了表示方便,可以将每8位分为一组,每组用十进制表示,用**.**作为组与组之间的分隔符号

🌰:192.168.1.1

IP地址并非以主机为最小配置单位,而是以网卡来配置的。即一台服务器、路由器至少有两个网卡,等价于至少有两个IP地址

image-20240921105702834

IP地址的分类

互联网诞生之初,IP 地址显得很充裕,于是计算机科学家们设计了分类地址

(但是现在IPv4早就不够用哩🤪,于是就有了IPv6)

IPv4地址分为5大类:A、B、C、D、E类,需要重点关注的只有A、B、C这三类IP地址

由前文知,IP地址由网络号和主机号构成,A、B、C三类IP地址的区别就在于主机号的位数,具体如下图:

image-20240921132334887

以C类IP地址为例,虽然C类主机号占有8位,但是C类地址的最大主机个数为:$$ 2^8 - 2 = 254 $$

这里减2是减去两个比较特殊的主机号:

  • 主机号全0
    • 指定某个网络
  • 主机号全1
    • 指定某个网络下的所有主机,用于广播

IP分类的优点就是简单明了、选路(基于网络地址)简单

缺点也是有的😑:

  • 某一类网络下无法再细分IP地址类型,🌰:一个学校使用了B类的IP地址,现有按照不同学院划分地址层次的需求,但是IP分类是无法实现这类需求的,灵活性较差

  • 不能很好的与现实网络匹配:要么IP地址包含的主机数量太多,要么就是太少

无分类地址CIDR

取消对IP地址分类的概念,采用a.b.c.d/x的形式标识一个IP地址。其中前x位属于网络号,这使得IP地址更加灵活

子网掩码

子网掩码可以也可以用于区分网络号和主机号,但是这里的网络号既包含了网络地址又包含了子网网络地址,如下图

image-20240921135312707

  • 未做子网划分的IP地址:网络地址 + 主机地址
  • 做子网划分的IP地址:网络地址 + (子网网络地址 + 子网主机地址)

子网掩码更多是和分类IP地址或无分类IP地址一同使用,用于在某个网段下面细分子网类型

🌰:image-20240921135545704

这里C类IP地址中主机地址原本有8位,现借出2位作为子网网络地址,因此在例子中,共有4个子网,如下图

image-20240921135737594

公有IP地址与私有IP地址

在A、B、C三类IP地址中,实际上分有公有IP地址和私有IP地址

image-20240921140902040

在不同的地域中,私有IP地址可以重复,但公有IP地址在整个互联网范围内是唯一的

IP地址与路由控制

在发送IP包时,首先拿着IP包中的目标地址和本主机(路由器)的路由表进行匹配,找到具有相同网络地址的记录,再根据该记录将IP包转发至下一个路由器或主机。如果匹配过程中发现有多个相同的网络地址,则选择相同位数最多的网络地址,即最长匹配;反之,如果匹配过程中没有一个匹配成功😪,则转发至默认下一跳地址

换回地址不会流向网络

特殊IP地址127.0.0.1被计算机作为环回地址(同localhost)。使用这个IP地址时,数据包是不会流向网络的