因特网基础网络互连.ppt
第8章 因特网基础与网络互联,主讲人:周云艳,Internet,Internet是指主要通过TCP/IP协议将世界各地网络连接起来,实现资源共享、提供各种应用服务的全球性计算机网络,国内一般称因特网或国际互联网。Internet使用路由器将分布在世界各地数以千计的规模不一的计算机网络互连起来,成为一个超大型国际网,屏蔽了物理网络连接的细节,使用户感觉使用的是一个单一网络,可以没有区别地访问Internet上任何主机。,本章要点,了解网络互联的基本概念、互联层次知道因特网的接入技术及数据链路层ppp协议掌握网络层IP协议及其地址划分方法理解网络层ARP、RARP、ICMP协议工作原理了解IPv6协议掌握传输层TCP、UDP协议的工作原理,8.1 网络互连的基本概念,网络互联是指把各种物理网络(不同的或相同的,局域网或广域网)通过某种技术连接起来,形成一个覆盖范围更大的、对用户透明的网络。,网络互联的动力:更大范围的资源共享网络互联:HOST-LAN、LANLAN/WAN1.网络互联层次:物理层 数据链路层 网络层 网络层以上,物理层:中继器/集线器 在电缆段之间复制比特流。没有地址概念,因此从本质上不能算是网络互连。,网络层,数据链路层,物理层,传输层,应用层,网络层,数据链路层,物理层,传输层,应用层,物理层 物理层,中继器集线器,电缆段2,电缆段1,物理层,数据链路层:网桥/交换机 在网段之间转发数据帧。根据数据帧中的信息(MAC地址)进行转发。,网络层,数据链路层,物理层,传输层,应用层,网络层,数据链路层,物理层,传输层,应用层,物理层,网桥交换机,数据链路层,网段1,网段2,链路层,物理层,网络层:路由器 在网络之间转发报文分组。根据分组中的逻辑地址(IP地址)进行转发。,网络层,数据链路层,物理层,传输层,应用层,网络层,数据链路层,物理层,传输层,应用层,物理层,路由器,链路层,网络层,网络2,网络1,传输层及应用层:网关 连接不同体系结构的网络,使用端口号或其他特定标识寻址。,网络层,数据链路层,物理层,应用层/传输层,网络层,数据链路层,物理层,应用层/传输层,物理层,网关,链路层,网络层,网络1,应用层/传输层,物理层,链路层,网络层,网络2,2.LAN的互联,本地互联 特点:范围有限、主干(Backbone)采用局域网技术,如FDDI、Ethernet、Token Ring 互联层次:链路层(网络层)互联设备:网桥、交换机(有时可采用路由器)远程互联 特点:范围大、主干采用广域网技术,如ISDN、X.25、DDN、ATM、FR、ADSL等 互联层次:网络层或更高层(链路层)互联设备:路由器、网关(有时可采用远程网桥),LAN1,LAN2,中继器或HUB,LAN1,LAN2,网桥或交换机,LAN1,LAN2,路由器,LAN1,路由器,LAN2,路由器,WAN,本地,远程,8.2因特网的体系结构TCP/IP,8.3 因特网的接入技术,用户计算机和用户网络接入Internet所采用的技术和接入方式的结构,统称为Internet接入技术,其发生在连接网络与用户的最后一段路程,是网络中技术最复杂、实施最困难、影响面最广的一部分。,住宅接入:点对点访问,拨号访问与路由器的连接速率可达56kb/sISDN(一线通):与路由器的连接为128kb/s的全数字化连接 ADSL(非对称用户线路):asymmetric digital subscriber line上行可达1Mb/s:home-to-router下行可达8Mb/s:router-to-homeADSL的应用:已经普及,住宅接入:线缆调制解调器,HFC:hybrid fiber coax(光纤同轴电缆混合网络)非对称:下行可达10Mb/s,上行为1Mb/sHFC将家庭用户连接到 ISP的路由器若干个家庭用户共享10Mb/s访问带宽;关注点:拥塞,规模控制问题。应用:在国内的个别地区试点。,住宅接入:线缆调制解调器,Diagram:http:/,机构接入:局域网,机构的局域网(LAN)将端系统连接到边界路由器。以太网(Ethernet):共享或专线电缆将端系统连接至端接路由器;10Mb/s,100Mb/s,1Gb/s应用:企事业单位、网吧、学校、公司,因特网,R,移动网络接入,共享的无线访问网络把端系统连接到路由器无线LAN使用无线频谱替代有线介质e.g,802.11a/b/g11Mb/s、54Mb/s广域无线访问CDPD:通过蜂窝式网络无线访问ISP路由器,因特网,8.4 因特网的链路层与网络层,因特网的链路层协议包括:SLIP、PPP、HDLC相关的议题还包括:通过局域网接入因特网时ARP与IP的交互问题。因特网的网络层协议主要包括:互联网络协议IP网络控制信息协议ICMP路由协议组播协议IGMP,8.4.1 点对点的数据链路协议,PPP提供差错检验、支持多种协议、允许动态分配IP地址、支持认证等。PPP帧格式,8.4.2 因特网的网络层与IP协议,因特网的网络层功能:,传输层:TCP,UDP,数据链路层,物理层,网络层,网络层协议组成,因特网的网络层协议分成四部分:网际协议(IP)、路由选择协议、网络控制信息协议(ICMP)和组播协议(IGMP)。网际协议:决定了网络层的编址机制,数据报的格式(网络层的PDU),各节点根据数据报的字段所应采取的动作。IP协议有两个版本,IPv4 RFC 791和IPv6 RFC 2373,RFC 2460。路由选择协议:决定数据报在发送过程中由信源到信宿所经过的路由器。网络控制信息协议:可以为用户提供网络中的各种运行信息。组播协议:由于数据报的发送无须建立过程和响应信息,因此可以支持因特网上的多点同时传送,但由于网络层协议设计上的限制,多点传送解决起来比较复杂。,网际协议IPInternet Protocol,IP是因特网的网络层中最重要的协议提供数据报(Datagram)的投递服务(主机到主机)在不同的数据链路层上进行数据转发操作IP的数据报投递服务是非连接的,不可靠的非连接数据报之间没有相互的依赖关系;不能保证报文的有序投递。不可靠数据报的投递没有任何品质保证(QoS),数据报可能被正确投递,可能被丢弃。,1.IPv4地址及子网,IP地址:32bit的逻辑地址,用来标识主机或路由器的网络接口;网络接口:用于连接主机与路由器之间的物理链路:路由器有多个接口主机可能有一个,也可能有多个接口IP地址只与设备的网络接口有关IP地址书写方法:32bit划分为4个字节写成点分的4个十进制数,IP地址的表示方法,IP地址的分类,IP地址包括2个部分:网络地址(网络号)主机地址(主机号)网络是什么?(从 IP 地址的视角)具有相同网络地址的设备接口,或不经过路由器就可以物理上相互通达的设备,由3个IP网络组成的互连网(对于以223开头的IP地址,前24位为网络地址),LAN,IP地址的分类,最高位为0,接下来的7位为网络ID,共有27-2=126个网络,网络号是1126,127专用。,剩余的24位代表主机ID。每个网络224-2=16777214个主机地址。,高位为10,接下来的14位为网络ID,共有214=16384个网络,首个域值为128191。,高位为110,接下来的21位为网络ID,共有221=2097152个网络,首个域值为192223,D类地址的高位为1110,其余28位为组播地址,第一个域值为224239。,E类地址的高位为11110,其余27位目前保留,第一个域值为224239。,剩余的16位代表主机ID。每个网络有216-2=65534个主机地址。,剩余的8位代表主机ID。每个网络有28-2=254个主机地址。,每个客户机可以参加特定组,只有注册了多播地址的主机才能收到数据包,有效的主机ID和网络ID不能为0或255;网络ID不能为127;IP地址全球唯一性;使用便于记忆的格式:如:,在 中:由 1 到 126 开头的 IP 是 A Class 由 128 到 191开头的 IP是 B Class 由 192 到 223 开头的则为 C Class 当我们知道IP 的类型之后,我们就可以知道 IP 的 Net_ID 和 Host_ID:B Class:BBB.BBB.HHH.HHH C Class:CCC.CCC.CCC.HHH 例如:10.129.216.168 NetID:10 HostID 131.248.122.1 NetID:131.248 HostID:122.1 202.103.96.168 NetID:202.103.96 HostID:168专用地址:RFC1597,为那些没有连接到Internet或者安装了防火墙的组织,预留了一系列专用网络地址。包括:A类 B类 C类,保留的IP地址,一般来说,主机号部分为全“1”的IP地址保留用作广播地址;主机号部分为全“0”的IP地址保留用作网络地址。,用来测试软件,分组永远都不会离开主机,而是简单地返回到协议软件。,路由器使用这种地址将一个分组发送到一个特定网络上的所有主机。,某主机可以使用这种广播地址向该网络中的所有主机发送报文;,某主机运行引导程序又不知道自己的IP地址时,使用这样的地址向引导服务器发送IP数据报以便发现自己的IP地址。,某主机向同一网络中其它主机发送分组时使用,子网划分,从主机号借用若干个比特作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个比特。IP地址=,当没有划分子网时,IP 地址是两级结构,地址的网络号字段也就是 IP 地址的“因特网部分”,而主机号字段是 IP 地址的“本地部分”。划分子网后 IP 地址就变成了三级结构。划分子网只是将 IP 地址的本地部分进行再划分,而不改变 IP 地址的因特网部分。三级层次:网点(site)、子网(subnet-id)、主机(host-id),C类网络的子网划分,将主机标识位划分出若干位作为子网标识,子网标识位可由子网掩码确定。,子网划分子网掩码,子网掩码的作用使网络内的计算机了解子网划分的结构使边缘路由器了解子网划分的结构子网掩码的格式子网掩码也是32bit长的二进制数,由一串连续的1后跟一串连续的0组成;前面的1与网络号和子网号对应,后面的0与主机号对应。,子网划分子网掩码,网络号 net-id,主机号 host-id,两级 IP 地址,网络号,net-id,host-id,三级 IP 地址,主机号,子网掩码,互联网部分,本地部分,互联网部分,本地部分,划分子网时的网络地址,net-id,subnet-id,host-id 为全 0,不划分子网时,各类IP地址默认的子网掩码为:A类:B类:C类:已知IP地址和子网掩码,如何计算子网地址?用子网掩码和IP地址“相与”(AND操作),结果就是子网地址。例如:IP地址,子网掩码。则可计算出的子网地址为 00001010 00000101 01100000 00000001AND)11111111 11111111 11000000 00000000 00001010 00000101 01000000 00000000(=10.5.64.0),推论:若两个IP地址具有完全相同的子网地址,则它们在同一子网中。,例1:对于B类,把B类网络的Mask从改为:255.255.224.0,即将原来的Host ID中的3Bit作为子网ID,可以组成 8 个子网号:000 到 111,再加上原来的 Net ID:10001011.10101111.00000000.00000000,各子网的实际 Net ID 就成了:10001011.10101111.00000000.00000000(139.175.0.0)10001011.10101111.00100000.00000000(139.175.32.0)10001011.10101111.01000000.00000000(139.175.64.0)10001011.10101111.01100000.00000000(139.175.96.0)10001011.10101111.10000000.00000000(139.175.128.0)10001011.10101111.10100000.00000000(139.175.160.0)10001011.10101111.11000000.00000000(139.175.192.0)10001011.10101111.11100000.00000000(139.175.224.0),本来是 16 个 bit 的 Host ID 只剩下 13 个 bit 了,也就是说:在每个子网络里面,最多只能有 2 13-2=8,190 台主机,有效的主机ID为:xxx00000.00000001 到 xxx11111.11111110 之间。在 Sub-net ID 001 之下的主机号码,将会是从 00100000.00000001 到00111111.11111110 之间,亦即是:从 32.1 到 63.254 之间,则整个 IP 地址为:从 139.175.32.1 到 139.175.63.254 之间。同样的,在 Sub-net ID 100 之下的主机号码,是从10000000.00000001 到10011111.11111110 之间,亦即是:从 128.1 到 159.254 之间,整个IP位址则是:从 139.175.128.1 到 139.175.159.254 之间。请你自己动手算算在 110 这个 Sub-net ID 之下的主机号码范围是多少?139.175.192.1 到,已知某主机地址210.222.5.121,子网掩码为255.255.255.248 求:该主机所在子网的子网地址?该子网可用的主机地址范围?该子网的子网广播地址?解答:子网掩码 248-11111000,主机号121-01111001,因此可判断:子网网络号为,可用地址0111100101111110(121126)子网广播01111111(210.222.5.127),Q.如何在网络拓扑图中找出所有的网络?拿掉路由器;整个网络形成了若干个“被隔离的网络孤岛”;每个“孤岛”就是一个网络。Q:右图中1)包含了几个网络?2)每个网络的子网地址分别是什么?(假定网络掩码为255.255.255.0),超网构造,采用将多个C类地址合并为一个大的地址范围的方式,即构成一个超网。分配地址块 利用合并的C类地址块构成一个超网,使每一个路由器的路由表中只有一个项目。选择地址块规则:规则1,地址块数必须是2的整数次方 规则2,这些地址块在地址空间上必须是连续的 规则3,超块的第一个地址的第三个字节必须能够被块数均匀地分割开,即如果块数为N,则第三个字节必须能够被N整除。例:第一组:第二组:第三组:第四组:,超网掩码,几个地址块组合成的超块,必须有它的第一个地址和超网掩码才能知道所构成的超网使用了多少个C类地址。,超网地址:第一个地址、超网掩码,IP无分类编址:CIDR,分类编址:地址空间的利用率低,地址空间面临耗尽;e.g.,一个B类网址可以容纳65K台主机,但可能被一个只有2K台主机的企业占据。CIDR:Classless InterDomain Routing地址的网络部分长度任意,不再分为固定的几种类型;地址格式:,x为地址中网络部分的位数,表示该块中的地址最左边x个比特相同,最右边32-x个比特彼此不同。CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号,即x。IP地址:=,表示的地址块共有212个地址(因为斜线后面的20是网络前缀的比特数,所以主机号的比特数是 12)。这个地址块的起始地址是。在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20 地址块”。地址块的最小地址:地址块的最大地址:全 0 和全 1 的主机号地址一般不使用。,表示的地址(212 个地址),10000000 00001110 00100000 0000000010000000 00001110 00100000 0000000110000000 00001110 00100000 0000001010000000 00001110 00100000 0000001110000000 00001110 00100000 0000010010000000 00001110 00100000 0000010110000000 00001110 00101111 1111101110000000 00001110 00101111 1111110010000000 00001110 00101111 1111110110000000 00001110 00101111 1111111010000000 00001110 00101111 11111111,所有地址的 20 bit前缀都是一样的,CIDR 地址块划分举例,因特网,ISP,大学 X,一系,二系,三系,四系,单位 地址块 二进制表示 地址数 ISP 206.0.64.0/18 11001110.00000000.01*16384 大学 206.0.68.0/22 11001110.00000000.010001*1024 一系 206.0.68.0/23 11001110.00000000.0100010*512 二系 206.0.70.0/24 11001110.00000000.01000110.*256 三系 206.0.71.0/25 11001110.00000000.01000111.0*128 四系 206.0.71.128/25 11001110.00000000.01000111.1*128,CIDR 地址块划分举例,因特网,ISP,大学 X,一系,二系,三系,四系,这个 ISP 共有 64(=224-18)个 C 类网络。如果不采用 CIDR 技术,则在与该 ISP 的路由器交换路由信息的每一个路由器的路由表中,就需要有 64 个项目。但采用地址聚合后,只需用路由聚合后的 1 个项目 就能找到该 ISP。,2.IP数据报格式,协议(Protocol):8bit,表示使用iP层服务的高层协议。IP选项(IP Options)140字节,用于支持纠错、测量及安全等措施。同时增加了路由器的处理IP数据的开销,在IPv6中IP数据报的首部规定为固定的。,复制子域:1-选项必须复制到所有分片中,0-选项必须仅仅复制到第一个分片中类子域:00-选项用作数据报控制,10-选项用作纠错和管理,数子域:1)无操作(代码为1):1字节,不需要长度和数据域,用作选项之间的填充符。2)选项结束(代码为0):1字节3)记录路由(代码为7):记录处理IP数据报的互联网路由其,最多可以列出9个路由器的IP抵制。4)严格源路由(代码为137):要求报文严格按给定的路由传送。5)不严格源路由(代码为131):要求报文必须按次序经过给定的路由器。6)时间戳(代码为68):记录IP包经过每一个路由器的时间,用于网络吞吐量、拥塞的分析。,服务类型,服务类型(Type of Service)TOS比特:其中的每一个比特都可以是0或1,但就每一个数据报而言,它们中最多只能有一个比特是1。不同应用程序可以请求特定的服务类型,一些常见的服务类型如下表:,C-Minimize Cost,最小费用R-Maximize Reliability,最高可靠性T-Maximize Through-put,高大吞吐量D-Minimize Delay,最小延迟,数据服务类型和优先级TOS,RFC 0791,版本号,值=4,IP 报头长度,4Byte为单位,值:5-15,服务类型:PPPDTR00PPP:优先级D=1:低延时T=1:高吞吐R=1:高可靠,IP 报文长度,含报头和数据,值:0-65536 即 64KB,IP 报文编号标识,判断分段属于哪一个IP报,高层协议标示TCP/UDP,跳步数,64-255,包含选项的IP包头CheckSum,每经过一个路由器需重新计算。,分段偏移,说明本段在当前IP包中的位置,以8Byte为单位。,DF=1:未分段DF=0:分段MF=1:中间段MF=0:最后段,因特网的IP路由技术,为分组选择一条从源主机到目的主机的最佳路径。可选路径不止一条路径可能要跨越多个网络网络中实现路由选择功能的设备是路由器。对每一个接收到的分组,路由器必须确定从哪条路径将其转发出去。路由器根据其内部保存的一张路由表转发分组。路由表中存放了到达其他网络的路由信息。目的网络地址 下一跳(路由器)地址(Next Hop)其他(各种标志、子网掩码、接口、),路由表的基本内容,R1,R2,R1的路由表,.1,.1,.2,.1,s0,s1,如何根据路由表进行路由选择,路由选择:根据路由表找到一条到达目的网络的路径(实际上是查找输出接口)。路由选择的基本方法:取出收到的分组中的目的IP地址,并提取出目的网络地址;用目的网络地址在路由表中查找:若目的网络与路由器直接相连,则“直接交付”;如果找到匹配的表项,则将分组发送到该表项指定的下一跳路由器;如果未找到,则搜索路由表中有无“default”的表项:如果有,就将将分组发送到该表项指定的下一跳路由器;如果没有,则发送一个“主机不可达”或“网络不可达”的出错信息给发出该分组的计算机。,例:设某一路由器建立了如图所示的转发表:,此路由器可以直接从接口0和接口1转发分组,也可通过相邻的路由器R2、R3和R4进行转发。现共收到5个分组,其目的站IP地址分别为:;162.105.153.90.试分别计算下一跳。,IP路由协议的层次,因特网被划分为许多自治系统(Autonomous System,AS),每个AS都是一个互联网络。AS的特点:它有权自主地决定在本系统内采用何种路由选择协议。一个AS内的所有网络都属于一个组织或机构管辖并在本AS内是连通的。根据路由协议是为AS内部的路由优化还是为AS之间的路由优化,因特网把路由协议分为两大类:内部网关协议(IGP):如RIP、OSPF等;外部网关协议(EGP):如BGP(边界网关协议)。因特网的早期RFC文档中使用“网关”这一词,“网关”即“路由器”,路由表的维护,路由表如何建立?如何根据网络的变化进行更新?静态路由:由网络管理员设置并随时更新网络管理员的工作负担重,容易出错,适应性差;简单、开销小,只适用于小型网络。动态路由:路由器运行过程中根据网络情况动态地维护减轻了网络管理员的工作负担重;实时性好,适应性好;能够满足大型网络的需要;因要搜集网络运行状态,网络开销有所增加,实现也比较复杂。因特网中的路由器采用的都是动态路由。,动态路由的实现,动态路由(建立、维护、更新)需要借助路由协议实现,路由协议有两大类:全局路由协议局部路由协议,全局路由协议,依据完整的网络全局拓扑信息计算到达各个网络的最佳路径。因为本协议需要了解每条网络链路的状态,故也称其为链路状态路由协议(Link State Routing Protocol,L-S)。路由计算在所有路由器中完成,运行L-S协议的每个路由器都要向所有路由器发送与自己相邻的路由器的链路状态信息,内容包括:路由器所连接的网络链路;该链路的状态:连通性、开销、速度、距离、时延等信息。通过互相通告链路状态,每个路由器最终都可以建立一个关于整个网络拓扑结构的数据库,再使用Dijkstra算法即可计算出到达各网络的最佳路径。典型的链路状态路由协议是OSPF(Open Shortest Path First)。,Dijkstra算法是一种计算连通图中的最短路径的方法。,工作过程发现邻居结点每个路由器启动后向其邻居发Hello packet,通过邻居的回应报文从而使双方互相了解;测量线路开销 每个路由器通过向其邻居发ECHO packet,可以计算出之间的线路传输时延,L-S 算法示例,例如:假设某时刻B收到了其他路由器的LS-报文,则B可构造全网的TOP图,且计算出从B到其他各路由器的代价和输出端口如下表示:,加权TOP 图 LS-报文,某时刻B路由表:,每个路由器动态计算并维护一张距离向量表,表中包含从本节点能到达的所有网络的最佳路径的代价和输出接口;每个路由器开始只知道与其直接相连的链路的信息。通过与相邻路由器的通信和一系列反复的计算,路由器可以逐渐获得到达某些网络的最佳路径信息。因为需要了解每条链路的距离,故也称其为距离矢量路由协议(Distance Vector Routing Protocol,D-V)。距离矢量协议计算网络中链路的距离矢量,然后根据计算结果构造路由表。每一个路由器工作时会定期向相邻路由器发送消息,消息的内容就是自己的整个路由表,其中包括:目的网络的地址;到达目的网络的下一跳路由器地址;到达目的网络所经过的距离。运行距离矢量协议的路由器会根据相邻路由器发送过来的信息,更新自己的路由表。典型的距离矢量路由协议是RIP(Routing Information Protocol)。,局部路由协议,V-D算法示例,假设某时刻网络连接图如下所示:J 到邻接节点的代价分别为:JA=8,JI=10,JH=12,JK=6;J从每个邻接节点上收到一张路由信息表如所示;J根据上述路由信息和到邻接接点的代价可以算出到每一个接点的最优代价和出口,并据此进行IP包转发。,J从邻居A/I/H/K得到的路由信息,路由器J的向量表,RIP协议操作,每个路由器每隔30s相相邻路由器(连接在同一个网络上的路由器)广播自己的路由表。路由表信息:目的网络,到某网络的距离及应经过的下一站,间接交付,间接交付,间接交付,A,B,C,直接交付,直接交付,直接交付不需要使用路由器间接交付必须使用路由器,直接交付和间接交付,8.4.4 ARP协议和RARP协议,在因特网中,数据分组传输使用的是IP地址(逻辑地址);而在局域网中,传输数据时需要使用物理地址(MAC地址)。许多因特网的主机位于局域网中,当数据分组到达局域网时,需要把IP地址转换成MAC地址,然后把分组封装在局域网链路层的帧中,才能发送到该主机。ARP协议和RARP协议用以实现从IP地址与硬件地址的动态映射(只有这样的映射才能最终在物理链路上传输数据帧)。即用于IP地址与数据链路层的硬件地址的转换。IP地址 硬件地址,ARP,RARP,ARP协议的工作过程,主机或路由器需要向本局域网的某个主机或路由器发送IP分组:(1)在自己的ARP调整缓存中查询目的端的IP地址,查询到目的地址,即将该硬件地址写入MAC帧,通过局域网将该MAC帧发往目的端(2)若缓存中没有目的端IP地址,源端即运行ARP,发出ARP请求分组,广播查询目的端IP地址。网络上所有的主机或路由器都能接收到该ARP请求分组。(3)预期的接收者在ARP请求分组中见到自己的IP地址,即向源端单播ARP响应分组。ARP响应分组中包含接收者的IP地址和硬件地址。(4)同时在自己的ARP高速缓存中写入目的端IP地址和硬件地址的映射,以备后用。(5)源端接收到目的端的ARP响应分组后,在自己的ARP高速缓存中写入目的端IP地址和硬件地址的映射,以备后用。为了能及时准确地反映网络的动态变化,ARP为所保存在高速缓存中的每一个地址映射表项设置了生存时间(一般为1020min)。凡超过生存时间的地址映射表项将从高速缓存中删除。ARP只能用于具有广播能力的网络。,A,Y,X,B,Z,主机 B 向 A 发送ARP 响应分组,主机 A 广播发送ARP 请求分组,ARP 请求,ARP 请求,ARP 请求,00-00-C0-15-AD-18,08-00-2B-00-EE-0A,我是,硬件地址是 00-00-C0-15-AD-18我想知道主机 209.0.0.6 的硬件地址,我是 硬件地址是 08-00-2B-00-EE-0A,A,Y,X,B,Z,00-00-C0-15-AD-18,ARP分组的格式,RARP协议,RARP的工作过程在网络上设置一个RARP/DHCP服务器;工作站/主机启动时,向网络上广播RARP包“我的物理地址为,有谁知道我的IP地址请告诉我”。RARP/DHCP服务器收到RARP广播包后,根据IP地址当时的使用情况为该工作站/主机分配一个IP地址,并通过RARP包返回给,8.4.5 ARP与IP的交互,例子:由R对A到B的数据包进行路由的过程,A,R,B,假设主机要发送一个数据报到主机。发送主机的链路层协议必需指出该目的主机的MAC地址。那么发送主机会使用哪个MAC地址?,是的MAC地址49-BD-D2-C7-56-2A吗?,目的MAC地址为49-BD-D2-C7-56-2A的帧能穿越路由器吗?,实际上,发送主机在发送分组之前,就已经知道目的主机不在本地LAN上(只要比较目的主机和发送主机的IP地址中的网络地址部分便可得知),所以必须将分组发送给路由器,由路由器进行转发。路由器的IP地址(Windows中称为缺省网关)在发送主机中已经预先设置(在本例中为)。现在的问题是:发送主机如何得到路由器接口的MAC地址呢?当然是使用ARP协议!一旦发送主机获得了路由器接口的MAC地址,就可以生成一个数据帧,发送给路由器。LAN1上的路由器接口收到了发给它的数据帧后,将封装在其中的分组提交给网络层。这样,分组就成功地从主机发送到了路由器上!,接下来,路由器还必须将分组发送到目的地。路由器首先需要选择适当的接口来转发,这项工作路由器可以通过查询路由表来完成。路由表告诉路由器:“需要通过接口转发该分组”。于是,路由器把分组送到该接口。最后,接口将分组传送给其适配器,组成新的数据帧,并广播到LAN2中。这时,数据帧的目的MAC地址才是真正的最终目的主机的MAC地址。路由器又是如何知道最终目的主机的MAC地址呢?还是使用ARP协议!路由器通过数据报中的目的IP地址和ARP协议来得到目的主机的MAC地址。,8.4.6 IP地址的获取分配?,主机的IP地址有两种分配策略:由网络管理员手工分配(静态分配);动态分配:DHCP协议(Dynamic Host Configuration Protocol)网络中需设置一台DHCP服务器;网络管理员在DHCP服务器中预先定义一个IP地址池。分配过程:需要申请IP地址的主机在网络中广播“DHCP discover”报文网络中的DHCP服务器用“DHCP offer”报文响应主机发送IP地址请求:“DHCP request”报文DHCP服务器从地址池中取出一个未分配的IP地址发送给请求者:“DHCP ack”报文,8.4.7 ICMP协议,网际控制报文协议(Internet control message protocol,ICMP)主要用于发送网络故障消息及进行网络检测的一些控制消息。ICMP是网络层协议,但它的报文先要封装成IP数据报,再传递给下一层。其报文有差错报告报文和查询报文两大类。ICMP 不是高层协议,而是 IP 层的协议。ICMP报文通过IP协议来传输,当路由器要发送ICMP报文时,它会创建一个IP数据报并将ICMP报文封装到IP报文的数据区中,然后这个数据报象普通的IP报文一样通过Internet。,ICMP的报文格式,Type Code description 0 0 echo reply(ping)3 0 work unreachable 3 1 dest.host unreachable 3 2 dest.protocol unreachable 3 3 dest.port unreachable 3 6 work unknown 3 7 dest.host unknown 4 0 source quench(congestion control-not used)8 0 echo request(ping)9 0 route advertisement 10 0 router discovery 11 0 TTL expired 12 0 bad IP header,最常用的是“目的地无法到达”和“回声”消息。,A,B,广域网,到Z的数据,路由器R用ICMP消息通知目的地“不可达”,R,A,B,用PING命令产生的回声请求及回声应答,网络层协议,ICMP,IGMP,IPv4,ARP,RARP,8.4.8 IPv6,初始的动机:IPv4的32-bit地址空间预计在2008年将全部分配完毕。IPv6的地址多达2128(340万亿亿亿亿),地球上每平方米可分配0.668亿亿亿个IP地址。其他动机:改革首部格式帮助加速处理和加速转发;改革首部,以实现 QoS;新型“任意播-Anycast”地址的实现:实现在若干备份服务器中寻求“最佳”路由。IPv6 分组格式:固定长度的40 byte首部;不支持分组的分割。,可以使地球表面每粒沙子都有一个IP地址。,IPv6 首部,Priority(Traffic class):确定数据流中各分组的优先级。Flow Label:标识不同“flow”中的分组,以便按各自的“需求”进行处理。Next header:后面的附加报头(如果有的话)的类型;对于最后一个报头,则用来说明传送数据的上层协议是什么。,其他不同于IPv4的修改,Checksum:完全取消,以减少每个步跳上的处理时间Options:允许使用,但不再是首部的内容,而是由“Next Header”字段说明ICMPv6:ICMP的新版本新增报文类型,e.g.“Packet Too Big”组播管理功能,IPv6地址,IPv6地址形式是x:x:x:x:x:x:x:x,由8个16比特的数组组成,每个组为4位的16进制数。如:FECC:109F:7894:0BC0:7766:1230:EFCD:3344 地址每个区中前面的“0”不必写,但每个区中至少应有1个数值。地址中有长串的连续的16比特的“0”,这可以用重叠冒号“:”来代替。不过,“:”在1个地址中只能出现1次。此外,“:”还可以用来代替地址中开头和末尾的连续的“0”位。如:1080:0:0:0:8:800:200C:417A 可写成 1080:8:800:200C:417A 0:0:0:0:0:0:0:1可写成:1在IPv6和IPv4混合的节点环境中,则采用的地址格式。其中“x”是16进制数值,用于地址高位的6个16比特位,“d”是10进制数值,用于地址低位的4个8比特位。例如可写成 可写成,IPv6地址前缀的表示方法 类似于CIDR中IPv4的地址前缀表示法,为:IPv6地址/前缀长度 IPv6地址是任一种表示法表示的IPv6地址,前缀长度是一个十进制数值,用于指定组成前缀的比特数的位数。如,对60bit 的前缀52AB00000000CD3,以下表示为合法:52AB:0000:0000:CD30:0000:0000:0000:0000/60 52AB:CD30:0:0:0:0/60 52AB:0:0:CD30:/60以下表示为非法:52AB:0:0:CD3/60;52AB:CD30/60;52AB:CD3/60当需要同时写出该节点的节点地址和前缀时,可通过如下方式将二者合一:节点地址:52AB:0:0:CD30:123:4567:89AB:CDEF 子网号:52AB:0:0:CD30:/60 可简写为:52AB:0:0:CD30:123:4567:89AB:CDEF/60,截止到2004年6月,全球已分配的606个IPv6地址块中,中国只占有11块,申请的地址数量仅占全球已申请数的1.8%,且都为缺省的/32(“/32”相当于2128-32,即296个IPv6地址)。而美国、日本、德国、荷兰、英国5个国家所分配到的地址总数已占全球已申请数的一半,约为48%。,8.4.9 从IPv4向IPv6迁移,并不是所有的路由器都能够在同一时刻升级不能采用“易帜日”的办法;但是网络如何能够在IPv4和IPv6路由器共存的情况下运行