网络层知识点
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地址
IP地址的分类
互联网诞生之初,IP 地址显得很充裕,于是计算机科学家们设计了分类地址。
(但是现在IPv4早就不够用哩🤪,于是就有了IPv6)
IPv4地址分为5大类:A、B、C、D、E类,需要重点关注的只有A、B、C这三类IP地址
由前文知,IP地址由网络号和主机号构成,A、B、C三类IP地址的区别就在于主机号的位数,具体如下图:
以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地址更加灵活
子网掩码
子网掩码可以也可以用于区分网络号和主机号,但是这里的网络号既包含了网络地址又包含了子网网络地址,如下图
- 未做子网划分的IP地址:网络地址 + 主机地址
- 做子网划分的IP地址:网络地址 + (子网网络地址 + 子网主机地址)
子网掩码更多是和分类IP地址或无分类IP地址一同使用,用于在某个网段下面细分子网类型
🌰:
这里C类IP地址中主机地址原本有8位,现借出2位作为子网网络地址,因此在例子中,共有4个子网,如下图
公有IP地址与私有IP地址
在A、B、C三类IP地址中,实际上分有公有IP地址和私有IP地址
在不同的地域中,私有IP地址可以重复,但公有IP地址在整个互联网范围内是唯一的
IP地址与路由控制
在发送IP包时,首先拿着IP包中的目标地址和本主机(路由器)的路由表进行匹配,找到具有相同网络地址的记录,再根据该记录将IP包转发至下一个路由器或主机。如果匹配过程中发现有多个相同的网络地址,则选择相同位数最多的网络地址,即最长匹配;反之,如果匹配过程中没有一个匹配成功😪,则转发至默认下一跳地址
换回地址不会流向网络
特殊IP地址被计算机作为(同localhost
)。使用这个IP地址时,数据包是不会流向网络的