1、IPV6
IPV6:
更多的地址,更好的安全性和扩展性。
但
IPV4
和
IPV6
不能兼容。所以不但要我们电脑、⼿机之类的设备⽀持,还需要⽹络运营商对现有的设备进⾏升级, 所以这可能是 IPv6
普及率⽐较慢的⼀个原因。
(1)IPV6的亮点
可分配地址变多
IPv6
可⾃动配置,即使没有
DHCP
服务器也可以实现⾃动分配
IP
地址,真是便捷到即插即⽤啊。 IPv6 包头包⾸部⻓度采⽤固定的值
40
字节,去掉了包头校验和,简化了⾸部结构,减轻了路由器负荷,⼤⼤提⾼ 了传输的性能。
IPv6
有应对伪造
IP
地址的⽹络安全功能以及防⽌线路窃听的功能,⼤⼤提升了安全性。
(2)IPV6地址的标识⽅法
IPv4
地址⻓度共
32
位,是以每
8
位作为⼀组,并⽤点分⼗进制的表示⽅式。
IPv6
地址⻓度是
128
位,是以每
16
位作为⼀组,每组⽤冒号 「
:
」 隔开。
如果出现连续的
0
时还可以将这些
0
省略,并⽤两个冒号 「
::
」隔开。但是,⼀个
IP
地址中只允许出现⼀次两个连续的冒号。
![](https://i-blog.csdnimg.cn/direct/04775eb9f4284f0ebe902b475f6079d6.png)
(3)IPV6地址的结构
IPv6
类似
IPv4
,也是通过
IP
地址的前⼏位标识
IP
地址的种类。
IPv6
的地址主要有以下类型地址:
单播地址:⽤于⼀对⼀的通信;
组播地址:⽤于⼀对多的通信;
任播地址:⽤于通信最近的节点,最近的节点是由路由协议决定;
没有⼴播地址。
![](https://i-blog.csdnimg.cn/direct/c01bc92bdda745fcafdddff88269e943.png)
IPV6
单播地址类型:
对于⼀对⼀通信的
IPv6
地址,主要划分了三类单播地址,每类地址的有效范围都不同。
在同⼀链路单播通信,不经过路由器,可以使⽤链路本地单播地址,
IPv4
没有此类型
在内⽹⾥单播通信,可以使⽤唯⼀本地地址,相当于
IPv4
的私有
IP
在互联⽹通信,可以使⽤全局单播地址,相当于
IPv4
的公有
IP
![](https://i-blog.csdnimg.cn/direct/01f1d0a95c6044b4a1bd7c74d096ef8e.png)
IPV4⾸部与IPV6⾸部
IPv4
⾸部与
IPv6
⾸部
IPv4
⾸部与
IPv6
⾸部的差异如下图:
IPV6
相⽐
IPV4
的⾸部改进
取消了⾸部校验和字段:
因为在数据链路层和传输层都会校验,因此
IPv6
直接取消了
IP
的校验。
取消了分⽚
/
重新组装相关字段:
分⽚与重组是耗时的过程,
IPv6
不允许在中间路由器进⾏分⽚与重组,这 种操作只能在源与⽬标主机,这将⼤⼤提⾼了路由器转发的速度。
取消选项字段:
选项字段不再是标准
IP
⾸部的⼀部分了,但它并没有消失,⽽是可能出现在
IPv6
⾸部中的 「下⼀个⾸部」指出的位置上。删除该选项字段使的 IPv6
的⾸部成为固定⻓度的
40
字节。
MAC地址和IP地址的区别:
- MAC地址是一个48位的物理地址,用于在局域网内唯一标识网络设备,通常由硬件制造商预先设置,不能修改;IP地址是一个32位或128位的逻辑地址,用于在互联网上唯一标识网络设备的位置,可以被更换。
- MAC地址是数据链路层协议使用的地址,而IP地址是网络层协议使用的地址。
- MAC地址只能被局域网内的设备所识别,而IP地址则可以跨越网络进行通信。
- MAC地址用于在局域网中直接寻址和传输数据包,而IP地址则用于在互联网中寻址和路由数据包。
2、ARP与RARP协议
(
1
)
ARP
协议
在传输⼀个
IP
数据报的时候,确定了源
IP
地址和⽬标
IP
地址后,就会通过主机「路由表」确定
IP
数据包下⼀跳。然⽽,⽹络层的下⼀层是数据链路层,所以我们还要知道「下⼀跳」的 MAC
地址。由于主机的路由表中可以找到下⼀跳的 IP
地址,所以可以通过
ARP
协议(
Address Resolution Protocol
,地址解析协议),求得下⼀跳的 MAC
地址。
ARP
是如何知道对⽅的
MAC
地址的呢?
ARP
是借助
ARP
请求与
ARP
响应两种类型的包确定
MAC
地址的。
主机会通过⼴播发送
ARP
请求,这个包中包含了想要知道的
MAC
地址的主机
IP
地址。
当同个链路中的所有设备收到
ARP
请求时,会去拆开
ARP
请求包⾥的内容,如果
ARP
请求包中的⽬标
IP
地址与⾃⼰的 IP
地址⼀致,那么这个设备就将⾃⼰的
MAC
地址塞⼊
ARP
响应包返回给主机。
操作系统通常会把第⼀次通过
ARP
获取的
MAC
地址缓存起来,以便下次直接从缓存中找到对应
IP
地址的
MAC
地址。 不过,MAC
地址的缓存是有⼀定期限的,超过这个期限,缓存的内容将被清除。
(
2
)
RARP
协议
ARP
协议是已知
IP
地址求
MAC
地址,那
RARP
协议正好相反,它是已知
MAC
地址求
IP
地址。
例如将打印机服务器等⼩型嵌⼊式设备接⼊到⽹络时就经常会⽤得到。通常这需要架设⼀台
RARP
服务器,在这个服务器上注册设备的 MAC
地址及其
IP
地址。然后再将这个设备接⼊到⽹络
![](https://i-blog.csdnimg.cn/direct/7c9ad55ba7634cb2a45cd01b02360f73.png)
3、DHCP动态获取IP地址
DHCP(Dynamic Host Configuration Protocol,
动态主机配置协议
)
。我们的电脑通常都是通过
DHCP
动态获取
IP地址,⼤⼤省去了配 IP
信息繁琐的过程。
接下来,我们来看看我们的电脑是如何通过
4
个步骤的过程,获取到
IP
的:
![](https://i-blog.csdnimg.cn/direct/1e1ccc208f064784b225e2a56e376848.png)
说明:
DHCP
客户端进程监听的是
68
端⼝号,
DHCP
服务端进程监听的是
67
端⼝号。
如果租约的
DHCP IP
地址快期后,客户端会向服务器发送
DHCP
请求报⽂:
服务器如果同意继续租⽤:
则⽤
DHCP ACK
报⽂进⾏应答,客户端就会延⻓租期。
服务器如果不同意继续租⽤:
则⽤
DHCP NACK
报⽂,客户端就要停⽌使⽤租约的
IP
地址。 可以发现,
DHCP
交互中,全程都是使⽤
UDP
⼴播通信。
问题
DHCP
服务器和客户端⽤的是⼴播,那如果 DHCP
服务器和客户端不是在同⼀个局域⽹内,路由器⼜不会转发⼴播包,那不是每个⽹络 都要配⼀个 DHCP
服务器?
为了解决这⼀问题,就出现了
DHCP
中继代理。有了
DHCP
中继代理以后,对不同⽹段的
IP
地址分配也 可以由⼀个 DHCP
服务器统⼀进⾏管理。
DHCP
客户端会向
DHCP
中继代理发送
DHCP
请求包,⽽
DHCP
中继代理在收到这个⼴播包以后,再以单播的形式发给 DHCP
服务器。
服务器端收到该包以后再向
DHCP
中继代理返回应答,并由
DHCP
中继代理将此包⼴播给
DHCP
客户端 。
因此,
DHCP
服务器即使不在同⼀个链路上也可以实现统⼀分配和管理
IP
地址。
4、NAT( Network Address Translation, ⽹络地址转换)
IPv4
的地址是⾮常紧缺的,在前⾯我们也提到可以通过⽆分类地址来减缓
IPv4
地址耗尽的速度,但是互联⽹的⽤户增速是⾮常惊⼈的,所以 IPv4
地址依然有被耗尽的危险。
于是,提出了⼀种⽹络地址转换
NAT
的⽅法,再次缓解了
IPv4
地址耗尽的问题。 简单的来说
NAT
就是同个公司、家庭、教室内的主机对外部通信时,把私有 IP
地址转换成公有
IP
地址。
图中有两个客户端
192.168.1.10
和
192.168.1.11
同时与服务器
183.232.231.172
进⾏通信,并且这两个客户端的本地端⼝都是 1025
。 此时,两个私有
IP
地址都转换
IP
地址为公有地址
120.229.175.121
,但是以不同的端⼝号作为区分。
于是,⽣成⼀个
NAPT
路由器的转换表,就可以正确地转换地址跟端⼝的组合,令客户端
A
、
B
能同时与服务器之间进⾏通信。 这种转换表在 NAT
路由器上⾃动⽣成。例如,在
TCP
的情况下,建⽴
TCP
连接⾸次握⼿时的
SYN 包⼀经发出, 就会⽣成这个表。⽽后⼜随着收到关闭连接时发出 FIN
包的确认应答从表中被删除。
(1)NAT有缺点吗?
由于
NAT/NAPT
都依赖于⾃⼰的转换表,因此会有以下的问题:
外部⽆法主动与
NAT
内部服务器建⽴连接,因为
NAPT
转换表没有转换记录。
转换表的⽣成与转换操作都会产⽣性能开销。
通信过程中,如果
NAT
路由器重启了,所有的
TCP
连接都将被重置。
(2)如何解决NAT潜在的问题呢?
改⽤
IPV6
:
IPv6
可⽤范围⾮常⼤,以⾄于每台设备都可以配置⼀个公有
IP
地址,就不搞那么多花⾥胡哨的地址转换了,但是
IPv6
普及速度还需要⼀些时间。
NAT
穿透技术:
NAT
穿越技术能够让⽹络应⽤程序主动发现⾃⼰位于
NAT
设备之后,并且会主动获得
NAT
设备的公有
IP
,并为⾃⼰建⽴端⼝映射条⽬,注意这些都是 NAT
设备后的应⽤程序⾃动完成的。 也就是说,客户端主动从
NAT
设备获取公有 IP
地址,然后⾃⼰建⽴端⼝映射条⽬,然后⽤这个条⽬对外通信, 就不需要
NAT
设备来进⾏转换了