【文档说明】计算机网络-网络层与传输层课件.ppt,共(130)页,3.750 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-77016.html
以下为本文档部分文字说明:
计算机网络网络层与传输层网络层12022/12/1前言迄今为止,本课程的第一单元已经就网络体系结构的传统描述进行了介绍,在分析上述描述的不完备性的基础上定义了计算机网络中“带外信令”的概念并用该观点Internet的体系结构从新进行了描述。本课程第二单
元讨论物理层和数据链路层技术,该两层是现有各种网络中端系统和通信子网(用户平台和信控管理平台)都具备的基本协议层次。本单元将继续用带外信令的观点讲述在Internet现有体系结构中端系统和通信子网都必备网络层以及在端系统必备,在通信子网的信控、管理平台上也必备的传输
层。2022/12/12数据链路层与物理层:端系统与通信子网通用(已在第2单元讨论)网络层:端系统和通信子网传送层:端系统和通信子网的信控、管理平台2022/12/1310.1Internet的网络层协议概述①I
nternet网络层协议的内部层次的划分按照OSI/RM对网络层的功能的界定,网络层涉及的功能如表1所示。Internet的网络层涉及多个协议,包括核心协议IP、与其他层的地址映射相关的各种地址解析协议、与控制相关的Internet控制报文协议(ICMP)、试图解决服务质量而增加的资源预
留协议RSVP,以及后来在IP之上打的安全补丁“安全IP协议”(IPSecurity,IPSec)。Internet网络层的内部结构如图1所示。2022/12/14表1:OSI/RM对网络层功能的界定2022/12/15从图1可以看出:Internet网络层以无连接的IP协议为基础。在通信子网
中,IP之上的增强型子层分别涉及通信子网的信控、管理平台或用户数据平台的需要。本讲的重点是用户数据传输与交换。图1:Internet网络层内部协议层次结构2022/12/169.3IP(InternetProto
col)①特点无连接协议只定义了一个协议数据单元——IP报文,变长。只对报头校验,正文无校验。在各网络节点(路由器)中,根据目的地址查找路径表获得在该节点的输出端口。路径表的获得或更新维护在信控、管理平台上通过应用层的路径信息交换协议和相关的路径算法生成。2022/12/1
7图2:IPv4报文格式②IPv42022/12/18版本字段(Version)——为4比特,IPv4的该字段之值为“4”。RFC1700对版本号的代码做了明确的规定,与此相关的版本号如下:0、15:保留;1~3、10~14:尚未指定;4:
IPv4(RFC791);6:IPv6(RFC2460)(注:代码“6”在RFC1700中,原被指定用于“SimpleInternetProtocol”,现用于IPv6。)报头长度字段(IHL,即InternetHeaderLength)——由于报头中有可选字段,因
而报头长度不固定,此字段之值指明报头为4字节的倍数。此字段的最小值为5,表示只有固定长度部分而无选项,即报头长度为20字节;该4比特字段的最大值为15,故报头最长为60字节。2022/12/19服务类型字节*(TOS,即TypeO
fService)——此8比特字段用于指明用户期望的非量化的服务质量,IPv4对TOS字节中各比特的用途规定如图8.3所示。PrecedenceDTR00图8.3IPv4对服务类型字节的规定D(Delay):D=0,普
通延时;D=1,低延时。T(Throughput):T=0,一般吞吐率;T=1,高吞吐率。R(Reliability):R=0,一般可靠性;R=1,高可靠性。*此处译作“服务类型字节”是为了与后面的标准(RFC1700和RFC1349)中将“Precedence”
后面的4比特重新定义为TOS区别开。2022/12/110报文总长度(TotalLength)——报文字节数指示,长度为16比特,允许IP报文的最大长度为65536字节。但由于实际网络支持的长度可能不同
,IPv4要求支持的最大报文长度至少为576字节,即至少允许存放512字节的用户数据(64+512)。报文标识符(Identification)——16比特字段,在该报文存活期内,在同一对通信目标间的
报文中,此标识符之值必须唯一。因此,在报文“片”(Fragment)重新合成报文时,可用它作为“片”与原报文之间的关联标识符。资源预留时,用作流标识符。2022/12/111标志字段(3比特)——有三位,分别是保留位(值恒
为“0”);(对网关/路由器的)报文是否分为“片”(Fragment)的指示位DF:DF=0,可以分“片”,DF=1,不分“片”;是否有后续“片”指示位MF(MoreFragment):MF=0,最后一
个报文“片”,MF=1,后面还有报文“片”。除最后一“片”外,前面的“片”必须为8字节(64比特)的整数倍。片位移(FragmentOffset)——片位移字段除去前面占用的3比特,还剩13比特。“片”由1个或多个8字节数据块(“片块”,Fr
agmentBlock)组成。每个数据片中的片块数(NFB,即NumberofFragmentBlock)将用作片位移的计数增量。例如:报文的第一“片”的该字段为“0”,若该“片”为512字节(NFB=64),分片后第2个报文的片位移字段内应为“64”,余
类推。由于IP报文的最大长度为65536字节,故最大片位移量为8191。2022/12/112存活期(TimeToLive)*——此8比特字段用于指明报文在Internet内还能够生存的时间(单位秒)。经过一个路由器,处理报头的模块至少对该值减1(即使处理时间不到1秒),当该值减为
0时,该报文被丢弃,以防止报文在Internet内长时间循环。目前推荐使用的存活期(TTL)的缺省初始值为64。(上层)协议(Protocol)——此8比特字段用于标识在IP报文用户数据字段内部装载的上层协议数据使用的协议(如:TCP),RF
C1700对此字*存活期以时间秒为单位进行计算和处理在实践中很难进行,文本中也没说明如何实现。如果以绝对时间为基础进行计算,就要求全网时钟同步或具有某种“时戳”(TimeStamping)系统,而该功能属于选项,并非所有网络都支持。在实践中,最简单的
方法是计算跨过的中间节点数(Hop),许多IPv4协议实现就是这样做的,IPv6已将该字段改为“HopLimit”。2022/12/113图3:IPv6分组格式③IPv62022/12/114IPv6与IP
v4相比具有以下特点:IPv6将IPv4的32比特地址字段扩展为128比特,因此可以支持更灵活的地址结构体系和更大的寻址空间;地址的自动配置也更为简单。由于在地址中增加了(Scope)字段,使组播(Multicast)规模更容易控制;新增加的“任意播地址”(AnycastAddress),使节点
可以向任意组内的任一节点发送分组,大大增加了对数据接收对象指定的灵活性。IPv6报头部分字段有所减少,优化了部分字段,并将不常用字段改为选项(地址以外的分组头固定长从12字节减少到8字节,字段数也从12减少到8)。这种改变的主要优点是简化了中间节点各字段的常规处理,但是
,由于地址字段长度的大幅度增加,IPv6分组的报头固定部分仍然从IPv4的20字节,增加为40字节。2022/12/115选项编码方式使分组的传输的效率更高,对选项长度上的严格限制更少,今后增加新的选项也更容易。新增加
了对“数据流”的标识能力(FlowLabelingCapability),从而为标识特定对象间(一对一,或一对多)连续分组数据的特定服务需求(非缺省服务质量或实时性要求)提供了基本手段,也为IP层之上的资源预留协议(RSVP)这类面向流的协议提供直接的支持。IPv6还扩展了对身份识别
(Authentication)、数据整体性(Integrity)和用户数据保密性的支持。2022/12/116IPv6的分组头各字段内涵:版本(Version)字段——含义和长度与IPv4相同,对IPv6其值为“6”(参见RFC1700)。用户数据等级(TrafficClass)字段——
此8比特字段是IPv4中“TypeofService”字段的替代物,其目的在于为发起节点和中转节点(Router)指明此IPv6分组传输服务级别或优先级别。有关级别的划分和代码将在专门的标准中制订。数据流标签(FlowLabel)字段
——此20比特字段意在为发起节点制定对分组流的处理方式的机制,如非缺省服务质量等级、“实时”数据流等。所谓数据流是在相同的“一对一”或“一对多”(广播或组播)地址间连续分组流。2022/12/117发送方要使用此功能时,在此字段内填入00001[Hex]~FFFFF[
Hex]之间的一个伪随机数,作为该数据流的标识符[2、7](评注:有些象连接标识符,无连接IP协议在处理连续流时,借用了面向连接协议中的连接标识符的概念)。当发送方不使用此功能时,该字段填为全“0”,中间节点将忽略这一字段。有关对此字段详细需求的定义目前仍在研究之中,对不同数据流的处理和控
制需要专门的控制协议来完成,相应的工作也有待进一步的研究。2022/12/118用户数据长度字段(PayloadLength)——此16比特字段取代了IPv4中的报文头长度字段。由于IPv4报头可选部分长度可变,因此
用报头长度字段来定界;IPv6将可选部分放入用户数据(Payload)部分,由分组头中8比特的“下一头(NextHeader)”字段来指明在Payload中紧跟IPv6分组头固定部分之后的扩展分组头的类别。有关编码与IPv4中协议类型(Protocol)字段编
码相同(参见RFC1700)下一分组头类型标识符(NextHeader)——指明紧跟在IPv6分组头后面的IPv6扩展分组头或IP层之上的协议类型,编码规则与IPv4的Protocol字段相同,由RFC1700界定。
跨越节点数限制字段(HopLimit)——此字段是IPv4中“存活期”(TimeToLive)字段的替代物。IPv6用跨越节点数替代IPv4中的在网中存活时间(秒)更具有可操作性。每经过一个中转节点,HopLimit之值被减1;减到0时,该分组被丢弃。2022/12/119源
地址/目的地址(Source/DestinationAddress)——IPv6的地址字段由IPv4的4字节增加为16字节,以解决IPv4的4字节地址的不足。RFC2373(文献[6])对有关地址结构做
了详细的规定,有关问题将在下面单独讨论。IPv6扩展分组头(IPv6ExtensionHeaders)——IPv6提供的扩展分组头是为网络层可选功能,从某种意义上讲也可以看作是IP子层之上的控制/增
强子层的功能。这些字段将置于IPv6固定分组头之后,但在传送层协议数据单元之前。目前的IPv6文本中定义了4种扩展分组头,它们分别是:逐段选项扩展头(Hop-by-HopOptions)、路径选择扩展头(Routing)、分片扩展头(Fragmen
t)和目的地选项扩展头(DestinationOptions);另外,RFC2402定义了身份认证扩展头(Authentication),RFC2406定义了用户安全数据封装扩展头(EncapsulatingSecurityPayloa
d)。有关扩展头格式、功能和编码问题,我们将在后面单独讨论。2022/12/120IPv4与IPv6比较简表2022/12/1216.2.1分类的IP地址1.IP地址及其表示方法•我们把整个因特网看成为一个单一的、抽象的网络。IP地址就是给每个
连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的32bit的标识符。•IP地址现在由因特网名字与号码指派公司ICANN(InternetCorporationforAssignedNamesandNumbers)进行分配2022/12/122IP地址的编址方法•分类的IP地址。这是
最基本的编址方法,在1981年就通过了相应的标准协议。•子网的划分。这是对最基本的编址方法的改进,其标准[RFC950]在1985年通过。•构成超网。这是比较新的无分类编址方法。1993年提出后很快就得到推广应用。2022/12/123分
类IP地址•每一类地址都由两个固定长度的字段组成,其中一个字段是网络号net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号host-id,它标志该主机(或路由器)。•两级的IP地址可以记为:IP地址::=
{<网络号>,<主机号>}(6-1)::=代表“定义为”2022/12/124net-id24bithost-id24bitnet-id16bitnet-id8bitIP地址中的网络号字段和主机号字段0A类地址host-id16bitB类地址C类地址011host-id8bitD类地址11
10多播地址E类地址保留为今后使用1111012022/12/125net-id24bithost-id24bitnet-id16bitnet-id8bitIP地址中的网络号字段和主机号字段0A类地址host-id16bitB类
地址C类地址011host-id8bitD类地址1110多播地址E类地址保留为今后使用111101A类地址的网络号字段net-id为1字节2022/12/126net-id24bithost-id24
bitnet-id16bitnet-id8bitIP地址中的网络号字段和主机号字段0A类地址host-id16bitB类地址C类地址011host-id8bitD类地址1110多播地址E类地址保留为今后使用111101B类地址的网
络号字段net-id为2字节2022/12/127net-id24bithost-id24bitnet-id16bitnet-id8bitIP地址中的网络号字段和主机号字段0A类地址host-id16bitB类地址C类地址011host-id8bitD类地址1110多播地址E类
地址保留为今后使用111101C类地址的网络号字段net-id为3字节2022/12/128net-id24bithost-id24bitnet-id16bitnet-id8bitIP地址中的网络号字段和主机号字段0A类地址h
ost-id16bitB类地址C类地址011host-id8bitD类地址1110多播地址E类地址保留为今后使用111101A类地址的主机号字段host-id为3字节2022/12/129net-id24bithost-id24bitnet-id16bitnet-id8
bitIP地址中的网络号字段和主机号字段0A类地址host-id16bitB类地址C类地址011host-id8bitD类地址1110多播地址E类地址保留为今后使用111101B类地址的主机号字段host-id为2字节2022/
12/130net-id24bithost-id24bitnet-id16bitnet-id8bitIP地址中的网络号字段和主机号字段0A类地址host-id16bitB类地址C类地址011host-id8bitD类地址1110多播地址E类地址保留为今后使用
111101D类地址是多播地址2022/12/131net-id24bithost-id24bitnet-id16bitnet-id8bitIP地址中的网络号字段和主机号字段0A类地址host-id16bitB类地址C类地址011host-id8bitD类地址111
0多播地址E类地址保留为今后使用111101E类地址保留为今后使用2022/12/132路由器转发分组的步骤•先按所要找的IP地址中的网络号net-id把目的网络找到。•当分组到达目的网络后,再利用主机号host-id将数据报
直接交付给目的主机。•按照整数字节划分net-id字段和host-id字段,就可以使路由器在收到一个分组时能够更快地将地址中的网络号提取出来。2022/12/133点分十进制记法10000000000010110000001
100011111机器中存放的IP地址是32bit二进制代码10000000000010110000001100011111每隔8bit插入一个空格能够提高可读性采用点分十进制记法则进一步提高可读性128.11.3.3112811331将每8
bit的二进制数转换为十进制数2022/12/1342.常用的三种类别的IP地址IP地址的使用范围网络最大第一个最后一个每个网络类别网络数可用的可用的中最大的网络号网络号主机数A126(27–2)112616,777,214
B16,384(214)128.0191.25565,534C2,097,152(221)192.0.0223.255.2552542022/12/135IP地址的一些重要特点(1)IP地址是一种分等级的地址结构。分两个等级的好处是:•第一,IP地址管理机构在分配IP地址时只分配
网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了IP地址的管理。•第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从
而减小了路由表所占的存储空间。2022/12/136IP地址的一些重要特点(2)实际上IP地址是标志一个主机(或路由器)和一条链路的接口。•当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的I
P地址,其网络号net-id必须是不同的。这种主机称为多接口主机(multihomedhost)。•由于一个路由器至少应当连接到两个网络(这样它才能将IP数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的IP地址。2022/12/1
37IP地址的一些重要特点(3)用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号net-id。(4)所有分配到网络号net-id的网络,范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。2022/12/138互联网中
的IP地址B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222
.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1
.5.222.1.6.N1LAN2LAN1互联网在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。图中的网络号就是IP地址中的net-id2022/12/139互联网中的IP地址B222.1.
1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.222
2.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网在同一个局域网上的主机或路由器的IP地址中的网
络号必须是一样的。图中的网络号就是IP地址中的net-id2022/12/140互联网中的IP地址B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.422
2.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N
3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。图中的网络号就是IP地址中的net-id2022/12/141互联网中的IP地址B222.1.1.222.1
.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.122
2.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网在同一个局域网上的主机或路由器的IP地址中的网络号必须
是一样的。图中的网络号就是IP地址中的net-id2022/12/142互联网中的IP地址B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2
.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222
.1.6.N1LAN2LAN1互联网路由器总是具有两个或两个以上的IP地址。路由器的每一个接口都有一个不同网络号的IP地址。2022/12/143互联网中的IP地址B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5
222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3
R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网路由器总是具有两个或两个以上的IP地址。路由器的每一个接口都有一个不同网络号的IP地址。2022/
12/144互联网中的IP地址B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5
.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互
联网路由器总是具有两个或两个以上的IP地址。路由器的每一个接口都有一个不同网络号的IP地址。2022/12/145互联网中的IP地址B222.1.1.222.1.1.1222.1.1.2222.1.1.3
222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R
2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网两个路由器直接相连的接口处,可指明也可不指明IP地址。如指明IP地址,则这一段连线就构成了一种只包含一段线路的特殊“
网络”。现在常不指明IP地址。2022/12/1466.2.2IP地址与硬件地址TCP报文IP数据报MAC帧应用层数据首部首部尾部首部链路层及以下使用硬件地址硬件地址网络层及以上使用IP地址IP地址2022/12/147HA1HA5HA4HA3HA6主
机H1主机H2路由器R1硬件地址路由器R2HA2IP1IP2局域网局域网局域网通信的路径H1→经过R1转发→再经过R2转发→H2查找路由表查找路由表2022/12/148HA1HA5HA4HA3HA6主机H1主机H2路由器R1硬件地址路由器R2HA2IP1IP2局域网局域网局域网I
P1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层上的互联网MAC帧IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP2从HA1到HA3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报从协议栈的层次上看数据的流
动2022/12/149HA1HA5HA4HA3HA6主机H1主机H2路由器R1硬件地址路由器R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层
上的互联网MAC帧IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP2从HA1到HA3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报从虚拟的IP层上看IP数据报的流动2022/12/150HA1HA5HA4HA3HA6主机H1主机H2路
由器R1硬件地址路由器R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层上的互联网MAC帧IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP2从HA1到HA3从HA4到HA5从HA6到HA2MA
C帧MAC帧IP数据报在链路上看MAC帧的流动2022/12/151IP1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层上的互联网MAC帧IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP2从HA1到H
A3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报在IP层抽象的互联网上只能看到IP数据报图中的IP1→IP2表示从源地址IP1到目的地址IP2两个路由器的IP地址并不出现在IP数据报的首部
中2022/12/152IP1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层上的互联网MAC帧IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP2从HA1到HA3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报路由器只根
据目的站的IP地址的网络号进行路由选择2022/12/153IP1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层上的互联网IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP
2MAC帧从HA1到HA3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报在具体的物理网络的链路层只能看见MAC帧而看不见IP数据报2022/12/154IP1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层上的互联网IP2IP4IP3IP5路由器R
2IP1→IP2IP1→IP2IP1→IP2MAC帧从HA1到HA3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报IP层抽象的互联网屏蔽了下层很复杂的细节在抽象的网络层上讨论问题,就能够使用统一的、抽象的IP地址研究主机和主机或主
机和路由器之间的通信2022/12/1556.2.3地址解析协议ARP和逆地址解析协议RARP•不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。•每一个主机都设有一个ARP高速缓存(ARPcache),里面有所在的局域网上的各主机和路由器的
IP地址到硬件地址的映射表。•当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC
帧发往此硬件地址。2022/12/156ARP响应AYXBZ主机B向A发送ARP响应分组主机A广播发送ARP请求分组ARP请求ARP请求ARP请求ARP请求209.0.0.5209.0.0.600-00-C0-
15-AD-1808-00-2B-00-EE-0A我是209.0.0.5,硬件地址是00-00-C0-15-AD-18我想知道主机209.0.0.6的硬件地址我是209.0.0.6硬件地址是08-00-2B-00-EE-0AAYXBZ209.0.0.5209.0.0.60
0-00-C0-15-AD-182022/12/157ARP高速缓存的作用•为了减少网络上的通信量,主机A在发送其ARP请求分组时,就将自己的IP地址到硬件地址的映射写入ARP请求分组。•当主机B收到A的ARP请求分组时,就将主机A的这一地址映射写入主机B自己的ARP高速缓存中
。这对主机B以后向A发送数据报时就更方便了。2022/12/158应当注意的问题•ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。•如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器
,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。2022/12/159应当注意的问题•从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。•只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址
解析为链路层所需要的硬件地址。2022/12/160什么我们不直接使用硬件地址进行通信?•由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作
,因此几乎是不可能的事。•连接到因特网的主机都拥有统一的IP地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用ARP来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。2022/12/161逆地址解析协议RARP
•逆地址解析协议RARP使只知道自己硬件地址的主机能够知道其IP地址。•这种主机往往是无盘工作站。因此RARP协议目前已很少使用。2022/12/1626.2.4IP数据报的格式•一个IP数据报由首部和数据两部分组成。•首部的前一部分是固定长度,共20字节,
是所有IP数据报必须具有的。•在首部的固定部分的后面是一些可选字段,其长度是可变的。2022/12/163固定部分可变部分04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特
首部长度01234567DTRC未用优先级数据部分比特数据部分首部传送IP数据报首部2022/12/164可变部分首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特数据
部分首部传送IP数据报固定部分2022/12/165首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特数据部分首部传送IP数据报固定部分可变
部分2022/12/166首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分版本——占4bit,指IP协议的
版本目前的IP协议版本号为4(即IPv4)2022/12/167首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分首部长度——占4bit,可表示的最
大数值是15个单位(一个单位为4字节)因此IP的首部长度的最大值是60字节。2022/12/168首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)
比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分服务类型——占8bit,用来获得更好的服务这个字段以前一直没有被人们使用2022/12/169首部04816192431版本标志生存时间协议标识服务类型总长度片
偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分总长度——占16bit,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节。总长度必须不超过最大传送单
元MTU。2022/12/170首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分标识(identification)占16bit,
它是一个计数器,用来产生数据报的标识。2022/12/171首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定
部分可变部分标识(identification)占16bit,它是一个计数器,用来产生数据报的标识。2022/12/172首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234
567DTRC未用优先级数据部分比特固定部分可变部分片偏移(12bit)指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以8个字节为偏移单位。2022/12/173偏移=0/8=0偏移=0/8=0偏移=1400/8=175偏移=2800/8=3501400280037
99279913993799需分片的数据报数据报片1首部数据部分共3800字节首部1首部2首部3字节0数据报片2数据报片314002800字节0IP数据报分片的举例2022/12/174首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字
段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分生存时间(8bit)记为TTL(TimeToLive)数据报在网络中可通过的路由器数的最大值。2022/12/175首部04816192431版本标志生存时间协议标识服务类型
总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分协议(8bit)字段指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程2
022/12/176运输层网络层首部TCPUDPICMPIGMPOSPF数据部分IP数据报协议字段指出应将数据部分交给哪一个进程2022/12/177首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选
字段(长度可变)比特首部长度01234567DTRC未用优先级数据部分比特固定部分可变部分首部检验和(16bit)字段只检验数据报的首部不包括数据部分。这里不采用CRC检验码而采用简单的计算方法。2022/12/17
8发送端接收端16bit字116bit字2置为全0检验和16bit字n16bit反码算术运算求和……取反码数据报首部IP数据报16bit检验和16bit字116bit字216bit检验和16bit字n16bit反
码算术运算求和16bit结果……取反码数据部分若结果为0,则保留;否则,丢弃该数据报数据部分不参与检验和的计算2022/12/179首部04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)比特首部长
度01234567DTRC未用优先级数据部分比特固定部分可变部分源地址和目的地址都各占4字节2022/12/1802.IP数据报首部的可变部分•IP首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。•
选项字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。•增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。•实际上这些选项很少被使用。2022/12/1
816.2.5IP层转发分组的流程路由器和结点交换机有些区别:•路由器是用来连接不同的网络,而结点交换机只是在一个特定的网络中工作。•路由器是专门用来转发分组的,而结点交换机还可接上许多个主机。•路由器使用统一的IP协议,而结点
交换机使用所在广域网的特定协议。•路由器根据目的网络地址找出下一个路由器,而结点交换机则根据目的站所接入的交换机号找出下一跳(即下一个结点交换机)。2022/12/182网110.0.0.0网440.0.0.0网330.0.0.0网220.0.0
.010.0.0.440.0.0.430.0.0.220.0.0.920.0.0.7目的主机所在的网络下一跳路由器的地址20.0.0.030.0.0.010.0.0.040.0.0.020.0.0.730.0.0.1直接交付,接口
1直接交付,接口0路由器R2的路由表30.0.0.110.0.0.440.0.0.430.0.0.220.0.0.920.0.0.730.0.0.1链路4链路3链路2链路1R2R3R101R2R3R1在路由表中,
对每一条路由,最主要的是(目的网络地址,下一跳地址)2022/12/183特定主机路由•这种路由是为特定的目的主机指明一个路由。•采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特
定主机路由。2022/12/184分组转发算法(1)从数据报的首部提取目的站的IP地址D,得出目的网络地址为N。(2)若网络N与此路由器直接相连,则直接将数据报交付给目的站D;否则是间接交付,执行(3)。(3)
若路由表中有目的地址为D的特定主机路由,则将数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。(4)若路由表中有到达网络N的路由,则将数据报传送给路由表指明的下一跳路由器;否则,执行(5)。(5)若路由表中有一个默认路由,则
将数据报传送给路由表中所指明的默认路由器;否则,执行(6)。(6)报告转发分组出错。2022/12/185必须强调指出•IP数据报的首部中没有地方可以用来指明“下一跳路由器的IP地址”。•当路由器收到待转发的数据报
,不是将下一跳路由器的IP地址填入IP数据报,而是送交下层的网络接口软件。•网络接口软件使用ARP负责将下一跳路由器的IP地址转换成硬件地址,并将此硬件地址放在链路层的MAC帧的首部,然后根据这个硬件地址找到下一跳路由器。2022/12/1866.3划分子网和
构造超网6.3.1划分子网1.从两级IP地址到三级IP地址•在ARPANET的早期,IP地址的设计确实不够合理。–IP地址空间的利用率有时很低。–给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。–两级的IP地址不够灵活。2022/12/187•从1985年起在
IP地址中又增加了一个“子网号字段”,使两级的IP地址变成为三级的IP地址。•这种做法叫作划分子网(subnetting)。划分子网已成为因特网的正式标准协议。三级的IP地址2022/12/188•划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网
的网络。•从主机号借用若干个比特作为子网号subnet-id,而主机号host-id也就相应减少了若干个比特。IP地址::={<网络号>,<子网号>,<主机号>}(6-2)划分子网的基本思路2022/12/189•凡是
从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号net-id,先找到连接在本单位网络上的路由器。•然后此路由器在收到IP数据报后,再按目的网络号net-id和子网号subnet-id找到目的子网。•最后就将IP数据报直
接交付给目的主机。划分子网的基本思路(续)2022/12/190145.13.3.10145.13.3.11145.13.3.101145.13.7.34145.13.7.35145.13.7.56145.13.
21.23145.13.21.9145.13.21.8所有到网络145.13.0.0的分组均到达此路由器我的网络地址是145.13.0.0R1R3R2网络145.13.0.0一个未划分子网的B类网络145.13.0.02022/12/191划分为三个子网后对外仍是一个网络145.13.
3.10145.13.3.11145.13.3.101145.13.7.34145.13.7.35145.13.7.56145.13.21.23145.13.21.9145.13.21.8………子网145.13.21.0子网145.13.3.0子网145.13.7.0所有到达网络145.13.
0.0的分组均到达此路由器网络145.13.0.0R1R3R22022/12/192•当没有划分子网时,IP地址是两级结构,地址的网络号字段也就是IP地址的“因特网部分”,而主机号字段是IP地址的“本地部分”。•划分子网
后IP地址就变成了三级结构。划分子网只是将IP地址的本地部分进行再划分,而不改变IP地址的因特网部分。划分子网后变成了三级结构2022/12/193•从一个IP数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网的划分。•使用子网掩码
(subnetmask)可以找出IP地址中的子网部分。2.子网掩码2022/12/194IP地址的各字段和子网掩码网络号net-id主机号host-id两级IP地址网络号net-idhost-id三级IP地址主
机号subnet-id子网号子网掩码因特网部分本地部分因特网部分本地部分划分子网时的网络地址11111111111111111111111100000000net-idsubnet-idhost-id为全02022/12/195(IP地址)AND(子网掩码)=网络地址网络号ne
t-id主机号host-id两级IP地址网络号三级IP地址主机号net-idhost-idsubnet-id子网号子网掩码因特网部分本地部分因特网部分本地部分划分子网时的网络地址11111111111111111111111100000000ne
t-idsubnet-idhost-id为全0AND2022/12/196net-idnet-idhost-id为全0net-id网络地址A类地址默认子网掩码255.0.0.0网络地址B类地址默认子网掩码255.255.0.0网络地址C类地址默认子网掩码255.255.255.
0111111111111111111111111000000000000000000000000111111111111111100000000000000001111111100000000host-id为全0host-id为全0A类、B类和C类IP地
址的默认子网掩码2022/12/197•在不划分子网的两级IP地址下,从IP地址得出网络地址是个很简单的事。•但在划分子网的情况下,从IP地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。•因此分组转发的算法也必须做相应的改
动。6.3.2使用子网掩码的分组转发过程2022/12/198128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口0接口1R2128.30.
33.13H1子网1:网络地址128.30.33.0子网掩码255.255.255.128128.30.33.130R1的路由表(未给出默认路由器)R11R2子网2:网络地址128.30.33.128子网掩码
255.255.255.128H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址128.30.36.0子网掩码255.255.255.0128.30.36.12划分子网后分组的转发举例2022/1
2/199主机H1要发送分组给H2128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口0接口1R2R1的路由表(未给出默认路由器)128.3
0.33.13H1子网1:网络地址128.30.33.0子网掩码255.255.255.128128.30.33.130R11R2子网2:网络地址128.30.33.128子网掩码255.255.255.128H2128.30.33.13801128.30.33.129H3128.30.3
6.2子网3:网络地址128.30.36.0子网掩码255.255.255.0128.30.36.12要发送的分组的目的IP地址:128.30.33.138请注意:H1并不知道H2连接在哪一个网络上。H1仅仅知道H2的IP地址是128.
30.33.138因此H1首先检查主机128.30.33.138是否连接在本网络上如果是,则直接交付;否则,就送交路由器R1,并逐项查找路由表。2022/12/1100128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.
255.255.128255.255.255.128255.255.255.0接口0接口1R2R1的路由表(未给出默认路由器)H1子网1:网络地址128.30.33.0子网掩码255.255.255.128128.30.33.130R11R2子网2:网络地址128.30.
33.128子网掩码255.255.255.128H2128.30.33.13128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址128.30.36.0子网掩码255.255.255.0128.30.36.121本子网的子网掩码2
55.255.255.128与分组的IP地址128.30.33.138逐比特相“与”(AND操作)255.255.255.128AND128.30.33.138的计算255就是二进制的全1,因此255ANDxyz=xyz,这里只
需计算最后的128AND138即可。128→10000000138→10001010逐比特AND操作后:10000000→128255.255.255.128128.30.33.138255.255.255.128逐比特AND操作H1的网络地址2022/12/1101因此H1必须把分
组传送到路由器R1然后逐项查找路由表128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口0接口1R2R1的路由表(
未给出默认路由器)128.30.33.13H1子网1:网络地址128.30.33.0子网掩码255.255.255.128128.30.33.130R11R2子网2:网络地址128.30.33.128子网掩码255.255.255.128H2128.30.33.13801
128.30.33.129H3128.30.36.2子网3:网络地址128.30.36.0子网掩码255.255.255.0128.30.36.122022/12/1102路由器R1收到分组后就用路由表中第1个项目的子网掩码和128.30.33.138逐比特AND操作
128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口0接口1R2R1的路由表(未给出默认路由器)128.30.33.13H1子网1:网络地址
128.30.33.0子网掩码255.255.255.128128.30.33.130R11R2子网2:网络地址128.30.33.128子网掩码255.255.255.128H2128.30.33.13801128.30.33.129H312
8.30.36.2子网3:网络地址128.30.36.0子网掩码255.255.255.0128.30.36.12255.255.255.128AND128.30.33.138=128.30.33.1
28不匹配!(因为128.30.33.128与路由表中的128.30.33.0不一致)R1收到的分组的目的IP地址:128.30.33.138不一致2022/12/1103路由器R1再用路由表中第2个项目的子网
掩码和128.30.33.138逐比特AND操作128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128
255.255.255.0接口0接口1R2R1的路由表(未给出默认路由器)128.30.33.13H1子网1:网络地址128.30.33.0子网掩码255.255.255.128128.30.33.130R11R2子网2:网络地址128.30.33.128子网掩码255.255
.255.128H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址128.30.36.0子网掩码255.255.255.0128.30.36.12255.255.255.128AND128.3
0.33.138=128.30.33.128匹配!这表明子网2就是收到的分组所要寻找的目的网络R1收到的分组的目的IP地址:128.30.33.138一致!2022/12/1104在划分子网的情况下路由器转发分组的算法(1)从收到的分组的首部提取目
的IP地址D。(2)先用各网络的子网掩码和D逐比特相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接交付,执行(3)。(3)若路由表中有目的地址为D的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行(4
)。(4)对路由表中的每一行的子网掩码和D逐比特相“与”,若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行(5)。(5)若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否
则,执行(6)。2022/12/1105划分子网在一定程度上缓解了因特网在发展中遇到的困难。然而在1992年因特网仍然面临三个必须尽早解决的问题,这就是:•B类地址在1992年已分配了近一半,眼看就要在1994年3月全
部分配完毕!•因特网主干网上的路由表中的项目数急剧增长(从几千个增长到几万个)。•整个IPv4的地址空间最终将全部耗尽。6.3.3无分类编址CIDR1.网络前缀2022/12/1106•1987年,RFC1009就指明了在一个划分子网的网络
中可同时使用几个不同的子网掩码。使用变长子网掩码VLSM(VariableLengthSubnetMask)可进一步提高IP地址资源的利用率。•在VLSM的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择CIDR(
ClasslessInter-DomainRouting)。IP编址问题的演进2022/12/1107•CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间。•CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址
中的网络号和子网号。•IP地址从三级编址(使用子网掩码)又回到了两级编址。CIDR最主要的特点2022/12/1108•无分类的两级编址的记法是:IP地址::={<网络前缀>,<主机号>}(6-3)•CIDR还使用“斜线记法”(s
lashnotation),它又称为CIDR记法,即在IP地址后面加上一个斜线“/”,然后写上网络前缀所占的比特数(这个数值对应于三级编址中子网掩码中比特1的个数)。•CIDR将网络前缀都相同的连续的IP地址组成“C
IDR地址块”。无分类的两级编址2022/12/1109CIDR地址块•128.14.32.0/20表示的地址块共有212个地址(因为斜线后面的20是网络前缀的比特数,所以主机号的比特数是12)。•这个地址块的起始地址是128.14.32.0。•在不需要指出地址块的起
始地址时,也可将这样的地址块简称为“/20地址块”。•128.14.32.0/20地址块的最小地址:128.14.32.0•128.14.32.0/20地址块的最大地址:128.14.32.255•全0和全1的主机号地址一般不使用。2022/12
/1110128.14.32.0/20表示的地址(212个地址)1000000000001110001000000000000010000000000011100010000000000001100000000000111000100000
000000101000000000001110001000000000001110000000000011100010000000000100100000000000111000100000000001
01100000000000111000111111111110111000000000001110001111111111110010000000000011100011111111111101100000000
0001110001111111111111010000000000011100011111111111111所有地址的20bit前缀都是一样的最小地址最大地址2022/12/1111•一个CIDR地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中
的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。•路由聚合也称为构成超网(supernetting)。•CIDR虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)。•对于/20地址块,它的掩码是20
个连续的1。斜线记法中的数字就是掩码中1的个数。路由聚合(routeaggregation)2022/12/1112CIDR记法的其他形式•10.0.0.0/10可简写为10/10,也就是将点分十进制中低位连续的0省略。•10.0.0.0/10隐含地指出
IP地址10.0.0.0的掩码是255.192.0.0。此掩码可表示为1111111111000000000000000000000025519200掩码中有10个连续的02022/12/1113CIDR记法的其他形式•10.0.0.0/10可简写为10/10,也就是将点分十进制中低位
连续的0省略。•10.0.0.0/10相当于指出IP地址10.0.0.0的掩码是255.192.0.0,即11111111110000000000000000000000•网络前缀的后面加一个星号*的表示方法如0000101000*,在星号*之前是网络前缀,而星号*表示IP地址中的主机号,即2
022/12/1114构成超网•前缀长度不超过23bit的CIDR地址块都包含了多个C类地址。•这些C类地址合起来就构成了超网。•CIDR地址块中的地址数一定是2的整数次幂。•网络前缀越短,其地址块所包含的地址数就越多。而在
三级结构的IP地址中,划分子网是使网络前缀变长。2022/12/1115CIDR地址块划分举例因特网206.0.68.0/22206.0.64.0/18ISP大学X一系二系三系四系206.0.71.128/26206.0.71.192/26206.0.68.0
/25206.0.68.128/25206.0.69.0/25206.0.69.128/25206.0.70.0/26206.0.70.64/26206.0.70.128/26206.0.70.192/26206.0.70.0/24206.0.71.0/25206.0.71
.0/26206.0.71.64/26206.0.71.128/25206.0.68.0/23单位地址块二进制表示地址数ISP206.0.64.0/1811001110.00000000.01*16384
大学206.0.68.0/2211001110.00000000.010001*1024一系206.0.68.0/2311001110.00000000.0100010*512二系206.0.70.0/2411001110.00000
000.01000110.*256三系206.0.71.0/2511001110.00000000.01000111.0*128四系206.0.71.128/2511001110.00000000.01000111.1*
1282022/12/1116CIDR地址块划分举例因特网206.0.68.0/22206.0.64.0/18ISP大学X一系二系三系四系206.0.71.128/26206.0.71.192/26206.0.68.0/252
06.0.68.128/25206.0.69.0/25206.0.69.128/25206.0.70.0/26206.0.70.64/26206.0.70.128/26206.0.70.192/26206.0.70.0/24206.0.71.0/25206.0.7
1.0/26206.0.71.64/26206.0.71.128/25206.0.68.0/23这个ISP共有64个C类网络。如果不采用CIDR技术,则在与该ISP的路由器交换路由信息的每一个路由器的路由表中,就需要有64个项目。但采用地址聚合后,只需用路由聚
合后的1个项目206.0.64.0/18就能找到该ISP。2022/12/11172.最长前缀匹配•使用CIDR时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。•应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配(longest
-prefixmatching)。•网络前缀越长,其地址块就越小,因而路由就越具体。•最长前缀匹配又称为最长匹配或最佳匹配。2022/12/1118最长前缀匹配举例收到的分组的目的地址D=206.0.68.0/22路由表中
的项目:206.0.68.0/22(ISP)206.0.71.128/25(四系)查找路由表中的第1个项目ANDD=206.0.01000100.0第1个项目206.0.68.0/22的掩码M有22个连续的1。M=11111111111111111111110000000
000因此只需把D的第3个字节转换成二进制。M=11111111111111111111110000000000206.0.01000100.0与206.0.68.0/22匹配2022/12/1119最长前缀匹配举例收到的分组的目的地址D=206.0.68.0/22路由表中的项
目:206.0.68.0/22(ISP)206.0.71.128/25(四系)再查找路由表中的第2个项目ANDD=206.0.71.10000000第2个项目206.0.71.128/25的掩码M有2
5个连续的1。M=11111111111111111111111110000000因此只需把D的第4个字节转换成二进制。M=11111111111111111111111110000000206.0.71.10000000与206.0.
71.128/25匹配2022/12/1120最长前缀匹配DAND(11111111111111111111110000000000)=206.0.68.0/22匹配DAND(11111111111111111111111110000000)=206.0.71.128/25匹配
•选择两个匹配的地址中更具体的一个,即选择最长前缀的地址。2022/12/11213.使用二叉线索查找路由表•当路由表的项目数很大时,怎样设法减小路由表的查找时间就成为一个非常重要的问题。•为了进行更加有效的查找,通常是将
无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的就是二叉线索(binarytrie)。•IP地址中从左到右的比特值决定了从根结点逐层向下层延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址。
•为了提高二叉线索的查找速度,广泛使用了各种压缩技术。2022/12/11226.4因特网控制报文协议ICMP•为了提高IP数据报交付成功的机会,在网际层使用了因特网控制报文协议ICMP(InternetContro
lMessageProtocol)。•ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。•ICMP不是高层协议,而是IP层的协议。•ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP
数据报发送出去。2022/12/1123ICMP报文的格式首部ICMP报文0数据部分检验和类型代码(这4个字节取决于ICMP报文的类型)81631IP数据报前4个字节都是一样的ICMP的数据部分(长度取决于类型)2022/12
/1124ICMP报文•ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。•ICMP报文的前4个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的4个字节的内容与ICMP的类型有
关。2022/12/1125ICMP差错报告报文共有5种•终点不可达•源站抑制•时间超过•参数问题•改变路由(重定向)2022/12/1126ICMP差错报告报文的数据字段的内容首部IP数据报ICMP的前8字节装入ICMP报文的IP数据报IP数据报首部ICMP差错报告报文8字节收到的IP数据报
IP数据报首部8字节ICMP差错报告报文IP数据报的数据字段2022/12/1127不应发送ICMP差错报告报文的几种情况•对ICMP差错报告报文不再发送ICMP差错报告报文。•对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。•
对具有多播地址的数据报都不发送ICMP差错报告报文。•对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。2022/12/1128ICMP询问报文有四种•回送请求和回答报文•时间戳请求和回答报文•掩码地址请求和回
答报文•路由器询问和通告报文2022/12/1129PING(PacketInterNetGroper)•PING用来测试两个主机之间的连通性。•PING使用了ICMP回送请求与回送回答报文。•PING是应用层
直接使用网络层ICMP的例子,它没有通过运输层的TCP或UDP。2022/12/1130