9、10章:CIDR和协议的分层 - 用TCP/IP进行网际互连

第9章  无分类和子网地址扩展(CIDR)

       计算机网络中,子网和五分类编址两种技术特别重要。

       在最初的IP编制方案中,每个物理网络都被指派了一个唯一的网络地址;一个网络上的主机的地址都把网络地址作为各个主机地址的前缀。

       把IP地址分为两部分的主要优点在于路由器中所需路由表的大小,路由器不必为每个主机维护一个路由表项,而是为每个网络保留一个路由表项,而且路由器在作出转发决策时,只看目的地址的网络部分。


9.3 使网络数量最小

       在20世纪80年代初期,随着以太网广泛流行,分类编址方案没有足够的网络地址变得显而易见,特别是B类地址前缀。“在不摒弃原有编址方案的情况下,如何让技术能够适应网络增长的需要?”

       设计人员提出几种技术来解决这个问题,但目前保留下的只有三种技术:无编号的点对点链路、代理ARP和子网编址。在每种情况下,基本动机都是相同的:减少使用的网络前缀数量。在因特网发展的后期,一些在子网编址中使用的想法被延伸到网络前缀中,创造了无分类编址概念。


9.4 代理ARP

       指的是把一个网络前缀用于两个物理网络时用到的技术。我们将原来的网络标记为“主网络H1”,把后来添加的网络标记为“隐藏网络H2”。路由器R连接这两个网络,通过配置得知哪个主机在哪个物理网络上。


       由于R运行代理ARP软件,它捕获H1中主机广播的ARP请求(H1广播目的是获得目的主机的物理地址),判断ARP请求所询问的主机是否位于另一个物理网络上,并通过发送路由器R自己的物理地址来响应这个ARP请求(所以H1中的主机获得的H2中的主机的目的物理地址被路由器R给代理了、替换了,因为路由器R返回的是自己的物理地址)。H1收到ARP响应后,把地址映射存放到自己的ARP表中,然后使用这个映射把目的地址站为H4的数据报发送给R。当R接收到数据报时,它搜索一个特殊的路由表,以确定如何转发给数据报。R必须把目的站为H4的数据报转发到隐藏网络上。

       代理ARP的主要优点是,可以把它添加到网络中的单个路由器上,但不会干扰网络中其他主机或者路由器的路由表。因此,代理ARP完全隐藏了物理连接的细节。

       代理ARP的主要缺点是:除非网络使用ARP进行地址解析,否则代理ARP就无法适用于该网络。此外它不能推广到更复杂的网络拓扑。依赖于管理员手工维护机器和地址的表格,容易出错。

 

9.5 子网编址

       可让一个网络地址跨越多个物理网络的第二种技术称为子网编址、子网转发或者划分子网。子网编址是三种技术中应用得最为广泛的一种,因为它是最一般的,而且己经被标准化了。事实上,子网编址是IP编址的一个必需的部分。

各个网点都有修改地址和路由的自由,只要这种修改对其他网点不可见。一个网点可以选择与众不同的方式来分配和使用IP地址,只要:

       * 网带上的所有主机和路由器一致认同该网点的编址方案

       * 因特网的其他网点可以把地址处理为一个网络前缀和一个主机后缀

       理解子网编址的最简单方式是,想像一个网点分配了一个B类IP网络地址,它有两个或更多的物理网络。只有本地路由器知道有多个物理网络,而且知道如何在它们之间路由通信量;其他自治系统中的路由器转发通信量时,感觉这个网点只存在一个物理网络。


       在例子中,网点使用一个B类网络地址128.10,0.0标识两个网络。除了路由器R,互联网上的所有路由器在选路时都仿佛只存在一个物理网络。一旦有分组到达R,它就必须通过正确的物理网络把该分组传输到目的站。为了有效地选择物理地址,本地网点选用地址的第三个八位组区别这两络。管理员给一个物理网络上的机器分配形式为128.10.1.X的地址,给另—个物理网络上的机器分配形式为128.10.2.X的地址,其中X是地址的最后一个八位组,是个用于标识特定主机的小整数。为了选择一个物理网络,R检査目的地址的第三个八位组,并把值为1的数据报发送到网络128.10.1.0,把值为2的数据报发送到网络128.10.2.0。

       在使用子网编址时,我们把一个32比特的IP地址看成有一个互联网部分和一个本地部分,其中互联网部分标志某个网点,该网点可能有多个物理网络,而本地部分则标志了一个物理网络和主机。


       使用分层编址的优点是,他非常适合于处理大量增长的对象,因为这意味着路由器不必像了解本地目的站的情况那样,了解远端目的站的太多细节。它的一个缺点在于很难选择合适的层次结构,而且一旦层次结构建立起来后就很难修改。

 

9.7 变长子网

       变长子网划分的主要优势是灵活性:一个单位能够混合拥有大型和小型网络,并且能够更高效地利用地址空间。但是,变长子网划分有几点严重不足。最重要的是,必须仔细分配子网的值,以避免地址二义性,这种情况下会根据不同的物理网络得到不同的地址解释。

       例如,一个地址可能与两个不同的子网匹配,结果是,无效的变长子网可能造成所有主机对无法通信。路由器不能解决这样的二义性问题,这意味着无效的分配只能靠重新编号来修复。因此,不鼓励网络管理员使用变长划分子网。

 

9.8 带掩码的子网的实现

       使用子网编址的网点必须为每个网络选择一个32位的子网掩码(subnet mask)。来标识出IP地址的网络部分。将网络部分对应的位,设置为1。通过IP地址与子网掩码的“与操作”,就可以得出该IP地址的网络部分。

       11111111 11111111 11111111 00000000

表示的是,前3个八位组标志网络,第4个八位组标志主机。推荐网点使用连续相邻的子网掩码,并且在所有共享同一IP地址的物理网络集合中使用相同的掩码。

 

9.11 子网转发算法

       标准IP转发算法必须进行修改,才能适用于子网地址。传统的路由表的表项如下:

(网络地址,下一跳地址)

       其中网络地址是目的网络的IP地址(网络前缀),下一跳地址字段指明了一个直接相连的路由器的物理地址。标准算法知道地址是如何划分成网络部分和本地部分的。因为前3个比特对地址类型个格式进行了编码(即类型A,B,C,D)。使用子网编址时,但从地址上不可能判断出哪些比特对应网络部分,哪些比特对应主机部分。因此,修改过的用于子网的算法要在路由表中维护一些附加信息,每个表项都包括一个附加的字段,指明该表项中的网络所使用的地址掩码:

(地址掩码,网络地址,下一跳地址)

       在路由选择时,修改过的算法使用地址掩码(address mask)提取目的地址的一些比特,与表项中的相应字段进行比较。若相等,则把数据报转发到该表项中下一跳地址字段指明的地址(路由器或目的主机)。

 

9.12 统一的转发算法


       事实上,大多数实现方法都去掉了对直接相连的网络上的目的站的显示测试,为了进行显示测试,必须为表中每个直接相连的网络添加一个表项。与其他表项类似,每个直接相连网络对应的表项都包含一个掩码,掩码表明前缀中的比特数。

 

9.16 无分类编址和构造超网

       无分类编址,扩展了子网编址中所用的网络,允许网络前缀具有任意长度。除了一种新的编址模型外,设计人员还发明了新的转发和路由传播技术。由此形成的技术整体称为无分类域间路由选择(Classless Inter-Domain Routing,简称CIDR)

要理解CIDR,需要先明白三个事实:

1)分类编址方案没有把网络地址分成相同大小的三类,B类网络号只有2^14个,但C类网络号有2^21个。

2)因为C类前缀足够小型网络使用,并且不怎么受划分子网的影响,C类前缀的需求比B类前缀的需求少得多。

3)B类前缀很快就会用完。

 

9.21 最长匹配转发算法

       路由掩码最长匹配原则是指IP网络中当路由表中有多条条目可以匹配目的ip时,一般就采用掩码最长的一条作为匹配项并确定下一跳。(也叫最长前缀匹配,是路由器在查找路由表进行选路的算法)

例如,考虑下面这个IPV4的路由表:

192.168.20.16/28e0

192.168.0.0/16s0

在要查找地址192.168.20.19时,不难发现上述两条都“匹配”,即这两条都包含要查找的目的地址。此时就应该根据最长掩码匹配原则,选择第一条进行匹配(更明确),所以数据包将通过e0发送出去。


再来看一个例子:

ip route10.1.0.0 255.255.255.0 192.168.2.2

ip route10.1.0.0 255.255.0.0     192.168.3.3

ip route0.0.0.0 0.0.0.0 192.168.1.1

对于三条目标地址10.1.0.14 ,10.1.4.6 ,10.2.1.3

10.1.0.14有两条路由都符合,根据最常掩码匹配原则,下一跳地址应该是192.168.2.2

10.1.4.6 只与第二条路由网段匹配,所以下一跳地址 192.168.3.3

10.2.1.3与那条都不匹配所以扔到默认路由 下一跳192.168.1.1

 

9.23 小结

       最初的IP编址方法给每个物理网络分配惟一前缀。本章研究了四种用来扩展IP编址方法的技术。第一种技术称为代理ARP,即安排一个本地路由替其他物理网络上的计算机, 代表这些计算机回答人ARP请求,代理ARP只有在使用ARP来进行地址转换的网络上才有用,而且只对那些不抱怨多个IP地址被映射到同一硬件地址的ARP实现才有用。第二种技术是一个TCP/IP标准,成为子网掩码,允许一个网店的多个主机共享一个IP网络地址。在划分子网的网络上连接的所有主机和路由器必须使用修改过的转发算法,其中路由表的每个表项都包含一个子网掩码。修改后的算法可以看成是原来转发算法的一般化,因为它处理了类似默认路由或特定主机路由等特殊情况。第三种技术允许点对点连接不编号(即没有IP前缀)。

       第四种技术称为无类型编址(CIDR),代表了IP技术中的一次大转变。无类型编址不再坚持最初的网络分类,而是允许在任意比特界限划分前缀和后缀。CIDR允许地址空间划分成若干块,其中每个块的大小是2的幕。与最初的分类地址不同,无类型编址不是自标识的,CIDR需要对主机和路由器上的IP软件使用的算法和数据结构进行重要修改, 以便存储和查找路由。

 

第10章 协议的分层

10.3 协议软件的概念分层

       可以把每台计算机上的系恶意软件模型想象成垂直堆叠的多层结构


       报文通过发送方机器上的协议软件层逐层向下传送,再通过网络转发报文,然后通过接受机器方的协议软件层逐层向上传送。

       每层都要对报文的正确性进行判断,并根据报文类型或目的地址选择采取合适的动作。例如,接收方机器上的一个协议层必须决定是否保留报文,或把它转发给另一台机器。另一层必须判断哪个应用应接收这个报文。


       图中显示路由器中的网络接口层和网络协议层,因为接收、查找下一跳和发送数据报只需要这两层。虽然概念分层图显示每个机器上只有一个网络接口层,但我们知道,任何与两个机器必须有两个网络接口模块。



10.5 TCP/IP的四层参考模型

TCP/IP是一组用于实现网络互连的通信协议。Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,它们分别是:网络访问层、网际互联层、传输层(主机到主机)、和应用层。

1. 应用层

       应用层对应于OSI参考模型的高层,为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等.

2. 传输层

       传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP)。TCP协议提供的是一种可靠的、通过“三次握手”来连接的数据传输服务;而UDP协议提供的则是不保证可靠的(并不是不可靠)、无连接的数据传输服务.

3. 网际互联层

       网际互联层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。注重重新赋予主机一个IP地址来完成对主机的寻址,它还负责数据包在多种网络中的路由。该层有三个主要协议:网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。

       IP协议是网际互联层最重要的协议,它提供的是一个可靠、无连接的数据报传递服务。

4. 网络接口层(即主机-网络层)

       网络接入层与OSI参考模型中的物理层和数据链路层相对应。它负责监视数据在主机和网络之间的交换。事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接入层进行连接。地址解析协议(ARP)工作在此层,即OSI参考模型的数据链路层。

 

10.7 协议分层的原理

       设计分层协议是为了让目的站上的第n层接收到的正是源站第n层所发送的对象。


 

10.7 TCP/IP互联网中的分层



10.9 TCP/IP模型中的两条重要分界线

       概念上的协议分层包括两条可能不太明显的分界线:一条是分割高级和低级寻址的协议地址分界线,另一条分割系统和应用程序的操作体统分界线。


10.10 分层的缺点

       严格按照分层将使运输层不能优化传输过程,通常,协议软件的实现者在摆那些软件时会将严格的分层方案适当放宽,允许下层把诸如路由选择和网络MTU之类的信息向上层传输。高层协议软件模块在申请分配缓冲区时,为较低层的模块将要添加的首部预留了空间;而较低层模块把收到的帧上传给较高层协议时,保留了该帧的首部。这类优化措施使软件效率得到了很大提高,同时还保留了基本的分层结构。


10.11 复用和分用的基本思想




10.12 小结

        协议就是对数据在机器之间传输时的表示方法进行定义和描述的标准。协议规定了如何进行传输、如何检测错误以及如何传输确认信息。为了简化协议的设计和实现,通信问题被划分为若干可以独立解决的子问题。每个子问题都对应一个协议。

        分层的思想是基本的思路,它为协议的设计提供了概念性的框架。在分层模型中,各层分别处理一部分通信问题且通常都对应于一个协议。协议也遵从分层原则,这个原则的含义是在接收方的第n层协议软件接收到的正是发送方的第n层软件发送出的数据。

        在实际应用中,协议软件使用复用和分用技术在指定的层次中区分多种协议,使得协议软件比层次模型中设想的更为复杂。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值