夜光:计算机网络笔记(二十七)

版权声明:Genius https://blog.csdn.net/weixin_41987706/article/details/91357657

夜光序言:

 

你眼中有柔情千种,

如脉脉春风,冰雪也消融。

 

 

正文:

•获取一块地址

为了获取一块 IP 地址用于一个单位的子网,网络管理员首先与 ISP 联系,ISP 会从他拥有的地址块中取出一些地址给客户。ICANN 负责全球范围内的 IP 地址分配

•获取主机地址:动态主机配置协议

一个单位一旦获得了一块地址,它就可为该单位内的主机与路由器接口分配独立的 IP 地址。


对于路由器接口地址,通常是由系统管理员手工配置的 IP

对于主机,常使用动态主机配协议来完成 IP 地址的分配。

DHCP 使主机可以自动获取 IP 地址。DHCP 还允许一台主机获取其他信息,如它的子网掩码、第一跳路由器地址(常称为默认网关)与本地 DNS 服务器的地址。


DHCP 是一个客户机/服务器协议。

DHCP 协议是一个 4 个步骤的过程:

DHCP 服务器发现

客户机在 UDP 分组中向端口 67 发送 DHCP 发现消息。使用广播目的地址并且使用“本主机”地址


DHCP 服务器提供

DHCP 服务器收到一个 DHCP 发现消息时,用一个 DHCP 提供消息对客户机做出响应, 仍然使用 IP 广播地址 255.255.255.255。子网中可能有多个 DHCP 服务器,所以该客户机可以选择其中的一个 DHCP 服务器。每个服务器提供消息中含有客户机请求的事务 ID、向客户机推荐的 IP 地址、网络掩码以及 IP 地址租用期


DHCP 请求:新到达的客户机从一个或多个服务器中选择一个,并用一个 DHCP 请求消息对选中的服务器进行响应,回显配置参数。

DHCP 确认:服务器用这个消息对 DHCP 请求消息进行响应,确认所要求的参数。

一旦客户机收到 DHCP ACK 后,交互便完成了,该客户机就能够在租用期内使用 DHCP 分配给它的 IP 地址。

•网络地址转换 NAT


在 IP 地址的 A-B-C 三种主要类型里各保留了三个区域作为私有地址,虽然现在使用 CIDR 技术,但这些地址的用途没有改变,它们分别是

10.0.0.0/24

172.16.0.0/16172.31.0.0/16

192.168.1.0/24192.168.255.0/24

私有地址永远不会被当作公有地址来分配,也就是说这几块地址里面的 IP 地址不会出 现在公共的外部网络中。同时外部网络中的路由器也无法处理以私有地址为目的地的数据

家庭网络中的编址通常就使用私有的网络地址 192.168.1.0/24。地址 192.168.1.0/24 是保留的 3 部分 IP 地址空间之一。

家用的无线路由在连接 ISP 的网络后,ISP 会分配一个公有的 IP 地址。使用私有 IP 地址的设备如果要上网,需要把私有 IP 转换为公有 IP

家用的无线路由具有 NAT 功能。从本质上讲,NAT 使能路由器对外界隐藏了家庭网络的细节。


来自广域网的所有数据报到达 NAT 路由器时都有相同的目的 IP 地址(ISP 会分配一个公有的 IP 地址),那么路由器是怎样将一个给定数据报转发给哪个内部主机的呢? NAT 路由器使 用了一张 NAT 转换表,并且在表项中包含了端口号和 IP 地址,将私有地址转换为公有地址,这个过程中利用端口号作为转换的索引。

假设一个用户坐在家庭网络主机 192.168.1.10 旁,请求 IP 地址为 128.119.40.186 Web 服务器(端口 80 )上的一个 Web 页面。主机 192.168.1.10 为浏览器指派了(任意)源端口号 3345 并将该数据报发送到 LAN 中。

NAT 路由器收到该数据报,为该数据报生成一个新的源端口号 5001,将源 IP 地址改为其广域网一侧接口的 IP 地址 138.76.29.7,且将源端口 3345 更换为新端口号 5001。当生成一个新的源端口号时,NAT 路由器可选择任意一个当前未在 NAT 转换表中使用的源端口号。

路由器也在其 NAT 转换表中增加一表项,表现记录了端口 5001 和源地址 192.168.1.10 的对应关系。

Web 服务器并不知道刚到达的包含 HTTP 请求的数据报已被 NAT 路由器进行了改装,它会发回一个响应数据报,其目的地址是 NAT 路由器的 IP 地址,目的端口是 5001

当该数据报到达 NAT 路由器时,路由器使用目的 IP 地址与目的端口号从 NAT 转换表中检索出家庭网络浏览器使用的正确 IP 地址 192.168.1.10 和目的端口号 3345。然后,路由器改写该数据报的目的 IP 地址与目的端口号,并向家庭网络转发该数据报。

NAT 穿越正越来越多地使用即插即用 UPnP 协议,UPnP 是一种允许主机发现并配置邻近 NAT 的协议。大部分家用路由都支持 UPnP 协议。


3 ICMP:互联网控制报文协议

ICMP 用于主机和路由器彼此交互网络层信息。ICMP 最典型的用途是差错报告。

ICMP 通常被认为是 IP 的一部分,但从体系结构上讲它是位于 IP 之上,因为 ICMP 报文 是承载在 IP 分组中的。

ICMP 报文有一个类型字段和一个编码字段,并且包含引起该 ICMP 报文首次生成的 IP 数据报(以便发送方能确定引发该差错的数据报)的首部和前 8 字节内容。

大家熟悉的 Ping 程序发送一个 ICMP 类型 8、编码 0 的消息到指定主机。看到该 echo 请求的目的主机发回一个类型 0、编码 0 的 echo 响应。


之前~~ 我们介绍了 Traceroute 程序,该程序允许用户跟踪从一台主机到世界上任意一台 其他主机之间的路由,也是 ICMP 报文来实现的。

为了判断源和目的之间所有路由器的名字和地址,源主机中的 Traceroute 向目的主机发送一系列普通的 IP 数据报.这些数据报中的每个都携带了一个具有不可达 UDP 端口号的 UDP 报文段。


第一个数据报的 TTL 1,第二个数据报的 TTL 2,第三个数据报的 TTL 3,以 此类推。该源主机也为每个数据报启动定时器。当第 n 个数据报到达第 n 台路由器时,第 n 台路由器观察到这个数据报的 TTL 正好终止。根据 IP 协议规则,路由器将丢弃该数据报并 发送一个 ICMP 告警消息给源主机(类型 11 编码 0)。该告警报文包含有路由器的名字与 IP 地址。当该 IP 报文到达源主机时,源主机从定时器得到往返时延,从 ICMP 消息中得到第 n 台路由器的名字与 IP 地址。


源主机为它发送的每个报文段的 TTL 字段加 1。因此,这些数据报之一将最终沿着这条路到达目的主机。因为该数据报包含了一个具有不可达端口号的 UDP 报文段,所以该目的主机将向源主机发送一个端口不可达的 ICMP 消息。当源主机收到这个特别的 ICMP 消息时, 它便知道了它不需要再发送另外的探测分组。


4 IPv6


20 世纪 90 年代早期,因特网工程师就开始开发一种替代 IPv4 的协议,原因是 32 比特 的 IP 地址空间即将用尽。


IPv6 数据报格式

IPv6 将 IP 地址长度从 32 比特增加到 128 比特,这就确保再也不会用尽地址。

IPV6 还引入了一种称为任播地址(anycast address)的新型地址,使用这种地址,理论上一个数据报能交付给一组主机中的任意一个。


以下是 IPv6 中定义的字段:

·版本号。这 4 比特字段用于标识 IP 版本号。 IPv6 将该字段值设为 6

·流量类型。

·流标签。 该 20 比特字段用于标识一个数据报的流。

·有效载荷长度。 给出了 IPv6 数据报中跟在定长的 40 字节数据报首部后面的字节数量。

·下一个首部。该字段标识该数据报中的内容(数据字段)需要交付给哪个协议(TCP 或 UDP)该字段使用与 IPv4 首部中协议字段相同的值。

·跳限制。转发数据报的每台路由器将对该字段内容减 1。如果跳限制计数到达 0,则 该数据报将被丢弃。

·源和目的地址。

·数据。

几个字段在 IPv6 数据报中已废弃:

·分片相关字段。IPv6 不允许在中间路由器上进行分片与重新组装。

·首部校验和。

·选项字段。

IPv4 IPv6 迁移

最直接的引人IPv6节点的方法可能是双栈技术,即让IPv4节点也具有完整的Ipv6实现。

RFC421 中也讨论另一种双栈方法,叫做隧道。假定两个节点要使用 IPv6 数据报进行交 互,但它们是经由中间 IPv4 路由器而互连的。那么将两台路由器之间 IPv4 路由器的集合称为一个隧道。IPv6 数据通过这个隧道时封装在 IPv4 数据报中传输。

猜你喜欢

转载自blog.csdn.net/weixin_41987706/article/details/91357657