文章目录
- 网络层
- `IP`协议
- `IP`协议报头
- 32位源`IP`地址和目的`IP`地址:
- 为了解决`IP`地址不够用的情况
- `IP`地址管理
- 子网掩码
- 特殊`IP`
- 路由选择(简介)
网络层
网络层主要负责地址管理和路由选择.代表协议就是IP
协议.
IP
协议
IP
协议报头
4位版本: 4: 表示
IPv4
; 6: 表示IPv6
4位首部长度: 描述
IP
报头有多长,4字节为基本单位,剩下都是选项的长度…8位服务类型: 说是8位其实只有4位有效.这四位只有一位是1,其他都是0.
4位表示
IP
协议的四种形态/四种工作类型,IP
的四种形态之间互相切换达到最优效果.
- 最小延时
- 最大吞吐量
- 最高可靠性
- 最小成本
16位总长度: 描述了
IP
数据包(报头+数据载荷)的长度.
总长度减去前面的
IP
报头长度,得到的就是由传输层传下来的完整的tcp/udp
数据报长度.16位总长度是否意味着一个
IP
数据报,最大只能支持64KB
?确实有这个限制,但是
IP
自身就支持对包的拆分和组装,分成多次不就可以了嘛.分成多个数据包,然后分别添加报头组装,然后将两个数据都交给数据链路层,由以太网封装为两个数据帧.接收方在数据链路层针对两个数据帧进行分用,得到两个ip
数据报,交给网络层,网络层在进行重新拼接.16位标识: 同一个数据拆分为多个包,标识是一样的.
13位片偏移: 标识了多个包的先后顺序
3位标志位: 结束标志.看是否是所有包的最后一位.
8位生存时间(
TTL
): 一个数据报在网络上能够传输的最大时间限制.不是秒,而是次数,代表在物理上两个节点上传输,每经过一个路由器转发,TTL -1
.如果一直减少到0,就认为这个包可以丢弃了.8位协议: 描述了当前载荷部分内容是属于哪个协议的,是
TCP
的还是UDP
的.16位首部校验和: 只需要针对首部进行校验,载荷部分自身已经有校验和.
32位源IP
地址和目的IP
地址:
使用三个点把32位,4字节的数字给分隔开,分成四部分,每个部分使用0-255十进制整数表示.就叫做点分十进制.
地址: 期望每个设备都互不相同,但是32位无符号整数表示是有范围的,42亿9千万.但是期望使用这个表示各种联网设备肯定是不够用的.
为了解决IP
地址不够用的情况
-
动态分配
IP
的技术(DHCP
)并没有从根本上增加
IP
地址,只是提高了IP
地址的利用率但是并没有从根本上增加IP
地址的数量.DHCP
的分配方式自动分配: 分配一个
IP
地址后永久使用手动分配: 由
DHCP
服务器管理员专门指定IP
地址动态分配: 使用完后释放该IP,供其他客户机使用
-
NAT
网络地址转换.本质上是使用一个
IP
代替一批设备,大大提高了IP
地址的利用率.比如在学校中网上购物之后,商家发快递的时候无需精确到某一个学生的具体位置,只需要使用学校的位置代称,然后使用学生的某些信息进行区分即可,比如可以使用端口号的方式区分一批局域网设备中的具体哪个设备进行标识区分即可.NAT技术把
IP
地址分为两个大类- 内网
IP
(私有IP
):10.*; 172.16.*-172.31.*; 192.168.*
- 外网
IP
(共有IP
): 剩下的都是公网IP
NAT设备要求,公网
IP
必须是唯一的,私网IP
可以在不同的局域网中重复出现.-
局域网中的
IP
:win+cmd
: 输入ipconfig
查看自己主机IP
,假设就是192.168.24.1
-
运营商提供的
运营商IP
: 可以浏览器搜索IP
,获取自己设备运营商安排的公网IP
,比如202.43.23.11
.
如果某个私网中的设备想要访问公网中的设备,就需要对应的
NAT
设备(路由器)进行映射,比如都替换为局域网入口设备的公网IP
,从而完成网络访问. 反之,当数据从公网设备发送回来时,入口设备进行接收,然后根据记录的表中
<key,val>
形式的映射<x设备目标公网IP
,port
>,找到局域网中的设备然后将数据中的目标IP
替换为局域网中x设备的私网IP
,然后进行定向发送即可. 所以,
NAT
技术下不知道具体x设备的私有IP
,只知道路由器的IP
公网的设备是无法直接访问私网的设备的. - 内网
-
IPv6
从根本上解决了IP
地址不够用的问题.使用16字节128位
进行表示.那么得到的IP
地址数字就达到了42亿的4次方
,是一个很大的数字.地球上的沙子每个安排一个
IP
地址都是足够的,计算机首先是由好多类似沙子的东西做的,所以现在来看肯定是足够的.IPv6
太贵了,并且和IPv4
并不兼容.
IP
地址管理
IP
地址分为两部分,划分的目的就是为了组网.
- 网络号:标识网段,局域网.保证互相相连的两个网段具有不同的标识.
- 主机号:标识主机.同一个网段内,主机之间具有相同的网络号,但是必须有不通的主机号.
路由器: 都是有两个IP
分别属于不通的网段,功能就是将两个局域网连接起来.都有WAN
口和LAN
口.
局域网场景如下:
子网掩码
通过子网掩码可以区分出网络号和主机号.网络号不一定是前三个字节,是可以变化的,最常见的就是255.255.255.0
IP & 子网掩码 => 网络号
在有子网掩码之前,网段划分是写死的,如下图:
特殊IP
- 将
IP
地址中的主机地址全部设置为1,就成为了广播地址.比如192.168.1.255
127.*
的IP
地址用于本机环回,通常是127.0.0.1
- 主机号为1的,比如
192.168.0.1
通常是网关IP
,局域网入口出口的位置. - 将
IP
地址的主机地址全部设置为0,就成为了网络号,代表这个局域网.
路由选择(简介)
用处就是规划路径,相当于地图中的导航功能,应该怎么走.由于网络环境很复杂,任何一个节点都是无法感知到网络环境的全貌的,只认识邻居这一小部分网络的情况.如果要进行长路径转发,需要一边走,一边问路的方式规划.
路由选择核心就是问路,每个路由器中都有一个记录周边信息的路由表,每次有一个IP
数据经过路由器的时候就会看看表中是否有匹配信息,看看接下来怎么走,如果有就走,如果没有,就会有一个默认路径,大致方向是对的,沿着这个方向到达下一个路由器再问问…
每次问一个路由器,TTL--
,到0的时候这个IP
数据包就会被丢弃.正常情况下TTL
足以到达. 通过六个人就能找到世界上的任何人.