Skip to content

网络层知识点

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地址被计算机作为(同localhost)。使用这个IP地址时,数据包是不会流向网络的

上次更新于: