网络层
IP 协议
1. 地址管理
2. 路由选择
IP 协议内置了拆包组包功能
这个过程是 操作系统 内核实现的
次数 32 / 64 / 128 整数
每次经过一个路由器转发,TTL -= 1
TTL为0了,可以被丢弃了
通常情况下,这几个取值是足够的
进行 IP 数据报转发的时候,必然要根据目的 IP,进行转发~~
万一数据报中的目的 IP 是错误的
此时这个数据包是不可能到达对方的……
也不应该在网路中被“无限的转发”
TCP OR UDP
描述的是当前的IP数据报,载荷部分,使用的是哪个传输层协议
协议类型
接收的时候,分用的时候,就需要知道当前数据包载荷部分是使用哪种协议。
传输层的协议中,“目的端口”就解决了这个问题(解决了 传输层的数据包载荷,交给应用层的哪个协议(应用程序)来处理)
网络层的协议中,“8位协议”区分载荷交给传输层的哪个协议来处理
计算校验和,本身都是需要有开销的。
IP 协议只关系 IP 报头自身是否出现传输错误
载荷部分的传输层数据,自然有 TCP/UDP 负责校验
223.112.31.88
IP 地址,标识了网络上某个设备所处的位置
点分十进制的标识。
通过 三个点,把一个 IP 地址分成四个部分
每个部分 1 个字节,每个部分的取值 0-255
站在计算机的角度,识别/存储 IP 地址,直接使用 32 位 的整数进行
IP 地址不够用咋办呢?
1. 动态分配 IP 地址(上网再分配,不上网就先不分配)
早期,IP 地址不是很紧张的时候,是可行的
后来 IP 地址紧张程度进一步提升了....
2. NAT 机制(网络地址映射)【核心方案】
把所有的 IP 分成两个大类
1) 外网 IP / 公网 IP
其余的都是外网 IP
2) 内网 IP / 私网 IP
a) 10.*
b) 172.16-172.31.*
c) 192.168.*
192.168.100.98
家用级路由器,一般都是 192.168 开头的内网 IP
局域网内部使用的
(保证内网 IP 在一个局域网中不重复即可)
不再是每个设备都有唯一的 IP 地址了
允许不同局域网中,设备的 IP 地址相同
在 NAT 机制下网络转发的情况
有两个设备 A, B
1) 如果 A 和 B 都在同一个局域网中
直接按照 IP 地址转发即可(同一个局域网,即使是内网 IP,也不会重复)
2) 如果 A 和 B 是在两个不同的局域网中
禁止直接进行传输
3) 如果 A 是内网 IP 的设备,B 是外网 IP 的设备
A 主动访问 B 是 OK
B 不能主动访问 A 的
(但是如果 A 已经主动访问过 B 了,此时 B 沿着原路返回找到 A)
外网 IP 仍然是唯一的。
4) 如果 A 是外网 IP,B 也是外网 IP
也不涉及 NAT 直接转发即可
NAT 相当于把网络传输分成两个阶段
1) 局域网内部的转发(使用局域网 IP 进行)
2) 公网上的转发(使用公网 IP 进行)
192. 168. 100. 98 我真实的 IP
113. 132. 222. 29 这个则是我这边接入的运营商路由器的 IP
NAT 解决 IP 地址不够用的问题
这样的替换,本质上是让一个局域网内部的所有设备,共用同一个 外网 IP
本来是一个外网 IP 代表一个设备
现在是一个外网 IP 代表数以千计个设备了。
比如我现在在访问CSDN的服务器.
其他同学也在访问 MDD
我们是在同一个局域网中的
共用同一个外网IP (运营商路由器)CSDN 的服务器,如何区分,收到的数据,是我这边的客户端的数据,还是旁边同学的客户端数据 返回响应的时候,运营商路由器,怎么进行区分,把正确的包转发给正确的设备?
解决上述问题的方案,引入端口号作为区分。
之前端口号用来区分同一个主机上的不同程序。
也可以让端口号来区分不同主机上的不同程序。
这个引入端口号辅助映射的过程,称为 NAPT,NAT 补充
NAT 主要出现在内网设备和外网设备交互过程中
必须内网设备(客户端)主动访问外网设备(服务器)
其实也是有办法,让外网设备,主动访问内网设备(内网设备是服务器,外网设备是客户端)
内网穿透&打洞 但这个并不在我们的讨论范围之内
NAT 还有一个副作用(褒义词)
加强普通用户的网络安全性
你的设备,已经被保护到局域网里了。
你主动访问别的服务器,人家服务器才能给你响应。
如果你不主动,外面的设备无法访问到你。(让黑客没法对你展开攻击了)
对于大家来说,你的电脑如果想被入侵/中病毒
除非你自己主动访问一些“奇奇怪怪”的网站
08 年左右的时候,每个电脑上都必须要安装杀毒软件
现在,电脑基本不需要杀毒软件
1) windows 自带的杀毒很强了
2) NAT 把你保护的很好了
一个设备有外网IP 相当于 家的大门开在马路上
尤其是当前的网络环境(危机四伏) NAT机制下,普通用户的设备 相当于在一个带有门禁的小区里 (门禁,运营商路由器,运营商手里,作为运营商,必然会对设备的安全性进行周全的保护措施)
NAT 机制不是从根本上把 IP 地址变多了,而是提高了 IP 地址的利用率
3. IPv6 从根本上解决 IP 不够用的问题的
IPv4 使用 4 个字节,表示 IP 地址
IPv6 使用 16 个字节,表示 IP 地址
地址范围扩大的倍数,天文数字
2^32
2^32 * 2^32 * 2^32 * 2^32 * 2^32
199x 的时候,IPv6 提出了。
这个概念和 NAT 提出的时间差不多的
但是互联网的现状:
NAT 为主
IPv6 普及程度在全世界范围内非常非常低的
(但是在国内,IPv6 普及程度,达到 80% +)
IPv6 和 IPv4 不兼容
IPv6 并没有真正开启。
目前访问大部分的网站/app 都是以 IPv4 的方式进行的
IPv6 报文结构和 IPv4 差别比较大
网段划分
这个知识主要是支持进行组网。
把一个 IP 地址,分成 2 个部分
网络号 和 主机号
192.168.100.98
约定:同一个局域网下,所有设备的网络号,必须相同,主机号必须不同
对于两个相邻的局域网(同一个路由器连接),网络号必须不同。