计算机网络4——网络层(中)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yaocong1993/article/details/83895022

目录

四、CIDR与路由聚合          五、DHCP协议          六、网络地址转换(NAT)

七、ICMP协议                    八、IPv6协议简介

四、CIDR与路由聚合

无类域间路由(CIDR,Classless InterDomain Routing),消除传统的A、B、C类地址界限,NetID+SubID→Network Prefix(简称Prefix)可以任意长度,融合子网地址与子网掩码,方便子网划分。无类地址格式a.b.c.d/x,其中x为前缀长度。例如11001000 00010111 00010000 00000000,200.23.16.0/23,将两个C类地址融合在一起200.23.16.0和200.23.17.0。子网201.2.3.64,255.255.255.192→201.2.3.64/26。

CIDR提高IPv4 地址空间分配效率;提高路由效率,将多个子网聚合为一个较大的子网,构造超网(supernetting),在路由转发表可以面向更大的子网记录路由转发信息(路由聚合route aggregation),使路由表减小。

五、DHCP协议

一个主机如何获得IP地址?“硬编码”,每个主机从网络管理员获取IP地址,通过静态配置完成地址信息获取;动态地址配置,动态主机配置协议(DHCP,Dynamic Host Configuration Protocol),从服务器动态获取IP地址、子网掩码、默认网关地址(当该子网中的数据报要离开子网时进行转发的接口)、DNS服务器名称与IP地址。DHCP“即插即用”、允许地址重用、支持在用地址续租、支持移动用户加入网络。

如果在一个网络中配置了DHCP服务器,网络地址是223.1.2.5,端口号67。当新接入的用户期望通过动态方式获取IP地址相关信息,通过客户主机上运行的DHCP客户端,基于DHCP协议与DHCP服务器进行报文交换完成地址的申请和分配。

a. 主机广播“DHCP discover”(发现报文)

b. DHCP服务器利用“DHCP offer”(提供报文)进行响应

c. 主机请求IP地址“DHCP request”(请求报文)

d. DHCP服务器分配IP地址“DHCP ack”(确认报文)

DHCP协议在应用层实现,通过应用进程按照客户-服务器的方式实现。请求报文封装到UDP数据报中,到链路层的数据帧,IP广播,通常映射为链路层广播(如以太网广播)。到达服务器后还原到应用层DHCP协议,DHCP服务器构造ACK报文,包括分配给客户的IP地址、子网掩码、默认网关、DNS服务器地址。

六、网络地址转换(NAT)

IPv4地址耗尽,一个内部网络只需/能从ISP申请一个IP地址,其中的主机使用私有地址,与公共互联网通信时,需将私有地址更替。本地网络设备IP地址的变更,无需通告外界网络。变更ISP时,无需修改内部网络设备IP地址。内部网络设备对外界网络不可见,即不可直接寻址(安全)。

“替换-记录-替换”。利用(NAT IP地址,新端口号)替换每个外出IP数据报的(源IP地址,源端口号);将每对(NAT IP地址,新端口号)与(源IP地址,源端口号)的替换信息存储到NAT转换表中;根据NAT转换表,利用(源IP地址,源端口号)替换每个进入内网IP数据报的(NAT IP地址,新端口号)。

16-bit端口号字段,可以同时支持60,000多并行连接!NAT主要争议:路由器应该只处理第3层功能;违背端到端通信原则,应用开发者必须考虑到NAT的存在,如P2P应用;地址短缺问题应该由IPv6来解决。

NAT穿透问题,客户期望连接内网地址为10.0.0.1的服务器,却不能直接利用地址10.0.0.1直接访问服务器,对外唯一可见的地址是NAT地址138.76.29.7。解决方案(1)静态配置NAT,将特定端口的连接请求转发给服务器,如138.76.29.7,2500总是转发给10.0.0.1,25000;(2)利用UPnP(Universal Plug and Play)互联网网关设备协议(IGD-Internet Gateway Device)自动配置,内部服务器自动获取或学习到NAT公共IP地址(138.76.29.7),在NAT转换表中,增删端口映射;(3)中继(如Skype),NAT内部的客户与中继服务器建立连接,外部客户也与中继服务器建立连接,中继服务器桥接两个连接的分组。

  

七、ICMP协议

互联网控制报文协议(ICMP,Internet Control Message Protocol)支持主机或路由器完成差错(或异常)报告、网络探询。两类ICMP 报文:差错报告报文(5种)和网络探询报文(2组)。

差错报告报文:IP数据报在传输过程中出现差错或异常,把数据报丢弃,向主机发送ICMP差错报告报文。目的不可达,到达或已经到达目的主机,无法成功交付;源抑制(Source Quench),路由器缓存已满,希望源主机降低发送报文的速度,但现实未使用该方式进行拥塞控制;超时/超期,TTL减为0,路由器不再转发IP数据报;参数问题,头部字段有问题;重定向(Redirect),一个路由器认为该IP数据报不应该由该路由器进行转发,应该由该网络的另一个网关进行转发。

网络探询报文:由主机或路由器主动发送的ICMP报文,接收响应,对网络进行探寻。回声(Echo)请求与应答报文(Reply);时间戳请求与应答报文。

ICMP报文

类型(Type)

编码(Code)

description

0

0

回声应答(ping)

3

0

目的网络不可达

3

1

目的主机不可达

3

2

目的协议不可达

3

3

目的端口不可达

3

6

目的网络未知

3

7

目的主机未知

4

0

源抑制(拥塞控制)

8

0

回声请求(ping)

9

0

路由通告

10

0

路由发现

11

0

TTL超期

12

0

IP首部错误

几种不发送 ICMP差错报告报文的特殊情况:ICMP差错报告报文出错;除第1个IP数据报分片外的所有后续分片;所有多播IP数据报;对具有特殊地址(如127.0.0.0或0.0.0.0)的IP数据报。几种ICMP报文已不再使用:信息请求与应答报文、子网掩码请求和应答报文、路由器询问和通告报文。

ICMP报文的格式:ICMP报文封装到IP数据报中传输。ICMP差错报告报文的数据部分包括UDP或TCP头部的8个字节,包括源和目的端口号等。

    

ICMP的应用举例Traceroute工具,用于网络路径跟踪(经过的路由器等)。源主机向目的主机发送一系列UDP数据报,第1组IP数据报TTL =1,第2组IP数据报TTL=2, etc,目的端口号为不可能使用的端口号(>30000)。当第n组数据报(TTL=n)到达第n个路由器时,路由器丢弃数据报,向源主机发送ICMP报文(type=11,code=0),ICMP报文携带路由器名称和IP地址信息。当ICMP报文返回到源主机时,记录RTT。停止准则,UDP数据报最终到达目的主机,目的主机返回“目的端口不可达”ICMP报文(type=3,code=3),源主机停止。

八、IPv6协议简介

32位IPv4地址空间已分配殆尽;改进首部格式,实现快速处理/转发数据报,支持QoS。

IPv6数据报格式:固定长度的40字节基本首部,路由器主要处理基本首部,便于快速处理数据报;可通过多个扩展首部支持不同的选项,选项首部大部分情况下不需要路由器处理;不允许分片,如果需要由源主机分。

优先级(priority),标识数据报的优先级。流标签(flow Label),标识同一“流”(从特定主机到特定目的)中的数据报。下一个首部(next header),标识下一个选项首部或上层协议首部(如TCP首部)。

      

其它改变vs IPv4:校验和(checksum),彻底移除,以减少每跳处理时间。选项(options),允许,但是从基本首部移出,定义多个选项首部,通过“下一个首部”字段指示。ICMPv6,新版ICMP,附加报文类型e.g.“Packet Too Big”,多播组管理功能。

IPv6地址表示形式:

一般形式1080:0:FF:0:8:800:200C:417A

压缩形式FF01:0:0:0:0:0:0:43→FF01::43(::只能使用一次,代表多个连续的0)

IPv4-嵌入形式0:0:0:0:0:FFFF:13.1.68.3或::FFFF:13.1.68.3

地址前缀2002:43c:476b::/48(注:IPv6不再使用掩码!)

URLs:http://[3FFE::1:800:200C:417A]:8000(用[]括住IPv6地址避免歧义)

IPv6基本地址类型:单播(unicast),一对一通信;多播(multicast),一对多通信;任意播(anycast),一对一组之一(最近一个)通信。

IPv4向IPv6过渡,不可能在某个时刻所有路由器同时被更新为IPv6,IPv4和IPv6路由器共存的网络如何运行?隧道(tunneling),IPv6数据报作为IPv4数据报的载荷进行封装,穿越IPv4网络。

    

 

例题

  

猜你喜欢

转载自blog.csdn.net/yaocong1993/article/details/83895022