网络层
OSPF内部网关协议
基本特点
名字叫开放最短路径优先OSPF(open shortest path first), 但RIP路由选择协议也是最短路径的,只是OSPF采用了Dijkstra提出的最短路径优先算法SPF。实际上所有的路由选择协议都是要找最短路径的。
最主要的特征是采用了链路状态协议(link state protocol) ,而不是像RIP一样的距离向量协议。
OSPF的特点:
-
向所有的路由器发送信息采用的是洪泛法( flooding ) ,也就是一个路由器通过所有输出端口给相邻的路由器发送信息,相邻的再向除了发入信息的路由器以外的其他路由器发送,最终整个区域的路由器都能收到此信息。
假如有N个路由器,那他发送除了自己之外的就要发送N-1条,那么整个自治系统就会产生 N×(N-1) 条通信信息。而对于RIP协议来说,只是向自己相邻的几个路由器发送信息。
-
发送的信息就是本路由器相邻的所有路由器的链路状态。
链路状态就是这个路由器和哪些路由器相邻,以及链路的“度量”。度量(代价) 指的是费用、距离、时延、带宽等,是由网管人员决定的。而路由器发送的信息是到所有网络的距离和下一跳的路由器。
-
当链路的状态变化,或者每隔一段时间(如30min)时,路由器就采用洪泛法发送链路信息。
可以看出,最终路由器可以建立链路状态数据库,实际上就是全网的拓扑结构图,大家的拓扑图都是一样的,这个操作叫链路状态数据库的同步。每一个路由器都可以通过这个数据库构造出自己的路由表。而对于RIP每一个路由器只知道自己下一跳要去哪里,是不知道全网的拓扑图的。
OSPF的链路状态数据库可以快速更新,更新过程收敛快。其可以适用于规模很大的网络,采用层次结构的区域划分。OSPF将一个自治系统划分成若干更小的范围,称为区域。每一个区域有32位的标识符。一个区域的内部只知道本区域的完整网络拓扑图。这可以使得内部路由信息交换的通信量大大减小。(主机数不超过200个)
OSPF还具有的特点:
- 允许给每条路由器指派不同的代价,对于不同类型的业务计算出不同的路由,更加灵活。比如说,高带宽卫星在非实时业务和时延敏感的业务上的代价是不同的。
- 如果具有相同的代价,可以采用负载均衡,在代价相同的多条路径分配通信量。对于RIP来说,只能找到网络中的一条路径。
- 具有鉴别的功能,保证了仅在可信赖的路由器之间交换链路状态信息。
补充:可以对OSPF报文进行身份验证。这样可以防止未经授权的设备发送虚假的OSPF报文,从而保护网络的安全性。
-
支持可变长的子网划分和无分类的编制CIDR。
-
每一个链路状态带上32位序号,序号越大表示越新。
OSPF的5种分组类型:
-
问候分组(hello):用来发现和维持邻站的可达性,用来检测是否连通
-
数据库描述分组(database description):向邻站给出自己的链路状态数据库的所有链路状态项目的摘要
-
链路状态请求分组(link state request):向对方请求发送某些链路项目的详细信息
-
链路状态更新分组(link state update):用洪泛法对全网更新链路状态。
-
链路状态确认分组(link state acknowledge):对链路分组更新的确认。
链路分组是通过IP数据报的数据部分传来的,不用UDP而是直接IP数据报传送,协议为89。数据报很短,就不用分片,如果分片丢失,就要全部重传。
每两个相邻的路由器每隔10s就要发送一次hello分组,就能确定邻站哪些是可达的,如果40s没有收到hello问候分组,则认为不可达,要修改链路状态数据库,并重新计算路由表。其他的分组是用来链路状态数据库的同步,两个同步的路由器的链路状态数据库是一样的,叫做完全邻接的路由器。不完全邻接的说明其物理上相邻但是链路状态数据库不一样。
如果全网广播自己的本地链路状态信息,代价太大了。
于是,我们先发送hello分组判别哪些是可达的,还可以得知数据发送的代价。然后,OSPF让每一个路由器用数据库描述分组和相邻路由器交换本数据库中已有的链路状态摘要信息,其中就包括了哪些路由器的链路状态信息写入了数据库。那只需要用链路状态请求分组请求自己缺少的某些链路状态详细信息就可以了。
只要一个路由器的链路状态发生变化,就要使用链路状态更新分组,采用泛洪法。OSPF采用可靠的泛洪法。分组。第一次先发给相邻的三个路由器。这三个路由器将收到的分组再进行转发时,要将其上游路由器除外。可靠的洪泛法是在收到更新分组后要发送确认要发送一次确认(重复的更新分组只需)。图中的空心箭头表示确认分组。
OSPF每隔30分钟,要刷新一次数据库中的链路信息。
采用指定路由器DR和BDR
例题:
边界网关协议BGP
用于自治系统之间得路由选择协议,用统一的代价作为度量来寻找路由选择是不可行的。
-
自治系统之间的路由选择协议应当允许使用多种路由选择策略。这些策略包括政治、经济、安全等,它们都是由网络管理人员对每一个路由器进行设置的。但这些策略并不是自治系统之间的路由选择协议本身。
-
- 所以找的是能够到达目的网络较好的路由(不兜圈子),而不是最短路由。 - 在配置BGP时,每个AS的管理员要选择至少一个路由器作为该AS的“BGP发言人” - 一般来说,两个BGP发言人都是通过一个共享网络连接在一起的,而BGP发言人往往就是BGP边界路由器。
- 建立TCP连接,端口号179
- 交换BGP报文,建立BGP会话,交换完信息后依旧保持连接状态,半永久性连接
- BGP发言人除了允许BGP协议,还要允许内部网关协议,比如RIP或OSPF
- BGP发言人交换网络可达性的信息,也就是要到达某个网络所要经过的一系列自治系统
- 交换了可达性之后,各BGP发言人就根据所采用的策略,从收到的路由信息中找到各自自治系统的较好的路由,也就是构造出不存在环路的自治系统连通图
边界路由器之间的连接叫做eBGP连接,边界和内部的叫做iBGP连接
边界路由器通过eBGP向对等端发送BGP路由,“X,AS1,R1”,然后还要转发给R2区域内部的路由器——由此可见,BGP协议是运行在AS之间和AS内部的
-
AS内部所有的iBGP都是全连通的,尽管物理上不连通。
- eBGP和iBGP不是同一个协议,eBGP是在两个不同的AS对等端之间的BGP连接,而iBGP是同一个AS的两个对等端之间的BGP连接。从iBGP对等端收到的BGP不能转告给同一个AS的iBGP对等端
- BGP路由=“终点,自治系统路径,下一跳”
- 当R4收到“X,AS1,R1”,要先将R1变成R2,因为R2不在自治系统AS2里面,变成R2->R1->X,从R4到R2要运行内部网关协议,找到最佳路由。
-
适用于多级结构的因特网,
-
四种报文
- 打开open:用来与相邻的另一个BGP发言人建立关系,使通信初始化,
- 更新 update:用来通告某一条路由的信息,以及列出要撤销的多条路由
- 保活keepalive:用来周期性地证实邻站的连通性
- 通知 notification:用来发送检测到的差错。
路由器工作原理
- 多个输出和多个输入的端口,任务是转发分组
-
由路由选择即控制层面和分组转发即数据层面组成
-
路由选择
- 核心是路由选择处理机
- 根据选定的路由选择协议周期性或者定期地和相邻地路由器交换路由信息而不断的更新和维护路由表
-
分组转发
- 核心是交换结构、输入端口和输出端口
- 从左往右,物理层将信号转化成比特流后,向上交付给数据链路层,数据链路层从比特流中识别出帧,去掉帧头和帧尾之后,向上交付给网络层处理,如果给网络层的分组是数据分组,识别目的地址,进行查表转发,如果找不到转发条目则丢弃,如果找到了按照对应端口转发
- 网络层更新数据分组首部中某些字段的值,比如ttl-1,交给数据链路层,给物理层,物理层将帧看作比特流,将数据发送出去
- 如果是带有路由报文的路由分组,就给路由选择处理机处理,根据内容更新路由表,路由表只有目的网络到下一跳的映射,路由表要对网络拓扑计算最优化,而转发表是通过路由表的出来的,应该使得查找过程最优化。
- 周期新给其他分组转发自己知道的路由信息
- 输入缓冲区用来存储新进入路由器,但还来不及处理的分组,输出缓存暂存已经处理完毕,但是没有发送的分组
- 交换结构的速率对于路由器的性能是至关重要的。因此,人们对交换结构进行了大量研究,以提高路由器的转发速率:通过存储器、通过总线以及通过互连网络。
ICMP网际控制报文协议
为了更有效的转发IP数据报,TCP/IP体系结构的网际层使用网际控制报文协议(internet control message protocol),主机和路由器都利用ICMP来传输差错报告报文和询问报文。 ICMP报文被封装在IP数据报中传送。
差错报告报文:用来向主机或路由器报告差错情况。
终点不可达: 当路由器和主机中不能交付数据报时,就向源点发送终点不可达报文。
时间超过报文: 当路由器收到生存时间为0,丢弃该数据报,向源点发送时间超过报文。 当终点在预定时间内不能收到一个数据报的全部数据报片时,就把已经收到的数据报片丢掉,并向源点发送时间超过报文。
参数问题: 当路由器或目的主机收到IP数据报后,根据其首部中的检验和字段的值发现首部在传送过程中出现了误码,就丢弃该数据报,并向发送该数据报的源点发送参数问题报文。
改变路由报文: 路由器把改变路由报文发送给主机,让主机知道下次应将IP数据报发送给另外的路由器,这样可以通过更好的路由到达目的主机。(找到了更好的路由)
改变路由报文:主机要发送数据时,首先查看自己的转发表,由于效率的考虑,主机是不会定期和路由器交换路由信息的,刚开始工作时,转发表都设置了默认路由,这个默认路由知道每一个目的网络的最佳路由,当默认路由发现到某个目的主机要经过另一个路由器时,就会用改变路由报文将这个情况告诉主机,主机在转发表增加一个项目:到某某目的地址要经过这个路由器。
所有的差错报文都具有相同的格式,把需要进行差错报告的IP数据报的首部和数据字段前8个字节(为了得到运输层的端口号和运输层报文的发送序号)提取出来,作为数据字段,再加上ICMP差错报文前8个字节。
不发送ICMP差错报告报文的情况:
-
对ICMP差错报告报文不再发送ICMP差错报告报文。
-
对第一个分片的IP数据报片的所有后续数据报片都不发送ICMP差错报告报文。
-
对具有多播地址的IP数据报都不发送ICMP差错报告报文。
-
对具有特殊地址(例如127.0.0.0或0.0.0.0)的IP数据报不发送ICMP差错报告报文。
询问报文:用来向主机或路由器询问情况。
回送请求报文: 由主机或路由器向一个特定的目的主机或路由器发出,收到此报文的主机或路由器必须给发送该报文的源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。
时间戳请求和回答: 用来请求某个主机或路由器回答当前的日期和时间,在ICMP时间截回答报文中有一个32比特的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒。这种询间报文用来进行时钟同步和测量时间。
ICMP应用
-
Ping用来测试主机或路由器之间的连通性
- PING是TCPIIP体系结构的应用层直接使用网际层ICMP的一个例子,它并不使用运输层的TCP或UDP。
- PING应用所使用的ICMP报文类型为回送请求和回答。
-
跟踪路由traceroute
-
跟踪路由应用traceroute,用于探测IP数据报从源主机到达目的主机要经过哪些路由器。在不同操作系统中,traceroute应用的命令和实现机制有所不同:
-
在UNIX版本中,具体命令为“traceroute”,其在运输层使用UDP协议,在网络层使用ICMP报文类型只有差错报告报文。
-
在Windows版本中,具体命令为“tracert",其应用层直接使用网际层的ICMP协议,所使用的ICMP报文类型有回送请求和回答报文以及差错报告报文。
-
用tracert来跟踪一个分组从源到终点的路径:H1想知道要到达H2要经过哪些路由器
- 首先,发送ICMP回送请求,设TTL字段为1,到达第一个路由器后-1为0,返回时间超过报文。
- 源主机发送下一个回送请求,设置TTL为2,到达第二个路由器后为0,返回时间超过报文。
- 当最后一个数据报刚好到达目的主机时,TTL为1,主机不转发数据报,也不减一。IP数据报封装的是无法交付的运输层的UDP用户数据报,所以目的主机返回ICMP终点不可达。
虚拟专用网VPN和网络地址转换NAT
首先了解一些术语:
仅在本地机构中有效的IP地址称为本地地址,不需要向互联网的管理机构申请。向互联网的管理机构申请的地址叫全球地址。
只能用于一个机构内部通信的叫专用地址,不能用于和互联网的主机通信。专用IP地址也叫可重用地址。
所以专用地址只能用于本地地址,不能用于全球地址。在互联网上的路由器,对目的地址是专用地址的数据报一律不转发。
虚拟专用网
两个专用网的通信有两种形式:
①是租用电信公司的通信线路作为本机构专用,但租金太高。
②是利用公用的互联网作为本机各专用网之间的数据载体,这个专用网就叫虚拟专用网。
定义: 利用公用的因特网作为本机构各专用网之间的通信载体。
出于安全考虑,专用网内的各主机并不应该直接“暴露”于公用的因特网上。因此,给专用网内各主机配置的IP地址应使各主机在专用网内可以相互通信,而不能直接与公用的因特网通信。所有通过互联网传送的数据必须加密。
专用地址:
IP隧道技术
刚开始封装的是各地的专用地址,交给R1后,发现其要经过互联网。就会对其数据进行加密,添加一个首部,首部中的源地址和目的地址和合法的全球地址,原地址是r1的地址。当R2收到数据报后,对其数据部分进行解密,恢复原来的内部数据报,找到原本的本地地址,交付给对应的主机。
R1到R2要经过很多的路由器,但是从逻辑上看,就好像是一条点对点的链路,即隧道的含义。
本例所示的是同一机构内不同部门的内部网络所构成的VPN,又称为内联网VPN。需要某些外部机构(通常是合作伙伴)参加进来,就称为外联网VPN。
在外地工作的员工需要访问公司内部的专用网时,只要在任何地点接入因特网,运行驻留在员工PC中的VPN软件,在员工的PC和公司的主机之间建立VPN隧道,就可以访问专用网中的资源,这种虚拟专用网又称为远程接入VPN。
网络地址转换
-
NET路由器
NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源。
需要安装NET软件,装有NET软件的路由器叫做NET路由器,至少拥有一个有效的全球IP地址。
NET路由器收到专用网内部的主机A发往互联网的主机B的IP数据报时,首先通过NET转换表将源IP地址转化为全球的IP地址,改写数据报首部。主机B收到后,返回应答,源IP就是B的IP,目的IP是全球IP,路由器收到后,进行一次IP地址的转换,还是通过NET转换表,修改目的地址,最后发给A。
注意,B不知道A的是专用地址,即使知道了也不能进行通信,因为路由器不能转发目的地址是任何专用地址的IP地址。
-
网络地址和端口号转换方法
可以使得专用网使用专用地址的大量主机,共用NET路由器的1个全球IP地址。
将NAT和运输层端口号结合使用,称为网络地址与端口号转换(NetworkAddress and Port Translation,NAPT)
现在很多家用路由器将家中各种智能设备(手机、平板、笔记本电脑、台式电脑、物联网设备等)接入因特网,这种路由器实际上就是一个NAPT路由器,但往往并不运行路由选择协议。
端口号仅在本主机中才有一样,NAPT路由器会动态分配端口号。并将对应关系存储在NAPT转发表中。
- NAT路由器在转发IP数据报时,一定要更换其IP地址。
- 普通路由器是运行在网络层的,但是NAT路由器还要查看转换运输层的端口号。
NET重要的特点就是通信必须由专用网内部发起,因此拥有内部专用地址的主机不能直接充当因特网的服务器。对于目前P2P这类外网主机主动与内网主机通信的网络运用,需要用到内网穿透技术来解决。
IP多播技术概念
多播(Multicast,也称为组播)是一种实现“一对多”通信的技术,与传统单播“一对一”通信相比,多播可以极大地节省网络资源。在因特网上进行的多播,称为IP多播。
当多播组的成员数量很大时,采用多播方式可以显著地减少网络中各种资源的消耗。
解决方法:IP多播数据报的寻址、多播路由选择协议
IP多播地址和多播组
- D类地址224-239
- 最小224.0.0.0-239.255.255.255
多播组成员可以随时变动,多播组成员数量不受所在地理位置限制,一台主机可以属于多个多播地址
非多播组成员也可以向多播组发送IP多播数据报,最大努力交付
分为:局域网硬件多播,因特网多播
在局域网上进行硬件多播
由于MAC地址(也称为硬件地址)有多播MAC地址这种类型,因此只要把IPv4多播地址映射成多播MAC地址。
即可将IP多播数据报封装在局域网的MAC帧中,而MAC帧首部中的目的MAC地址字段的值,就设置为由IPv4多播地址映射成的多播MAC地址。
硬件多播:
申请MAC地址块用于映射IPv4多播地址,多播地址左起25位相同,23位任意变化。(mac帧有48位)
第一个字节的最后一个bit为1,表示IPv4的多播地址。
由于D类的是广播地址,一共有32-4=28位,比23多5位,所以Ipv4只能映射到广播的后23位。
IP多播地址与多播的MAC地址的映射关系不是一一对应的。当多播地址中只有中间5位不一样的时候,多播MAC地址就重复了。
由于IP多播地址与多播MAC地址的映射关系不是唯一的,因此收到IP多播数据报的主机还要在网际层利用软件进行过滤,把不是主机要接收的IP多播数据报丢弃。
总的来说就是会先最MAC帧的目的MAC进行判断是不是自己的多播地址,如果MAC帧是,还要向上交付给网络层判断IP地址是不是对于的目的IP地址,不是的话要进行丢弃。
IP多播需要的协议:网际组管理协议IGMP和多播路由选择协议
要在因特网上进行IP 多播,就必须要考虑IP多播数据报经过多个多播路由器进行转发的问题。多播路由器必须根据IP多播数据报首部中的IP多播地址,将其转发到有该多播组成员的局域网。
路由器要知道自己的各个接口中是否存在某个多播组的成员,就用到网际组管理协议****IGMP。
仅使用IGMP并不能在因特网上进行IP多播。连接在局域网上的多播路由器还必须和因特网上的其他多播路由器协同工作,以便把IP多播数据报用最小的代价传送给所有的多播组成员,这就需要使用多播路由选择协议 。
多播路由选择协议的主要任务是:在多播路由器之间为每个多播组建立一个多播转发树。多播转发树连接多播源和所有拥有该多播组成员的路由器。
只要沿着多播转发树进行洪泛,就能传送到拥有该多播组成员的多播路由器。多播路由器进行硬件多播。
针对不同的多播组需要维护不同的多播转发树,而且必须动态地适应多播组成员的变化,但此时网络拓扑并不一定发生变化,因此多播路由选择协议要比单播路由选择协议(例如RIP、OSPF等)复杂得多。
即使某个主机不是任何多播组的成员,它也可以向任何多播组发送多播数据报。
为了覆盖多播组的所有成员,多播转发树可能要经过一些没有多播组成员的路由器(例如图中的R2)
网际组管理协议IGMP
网际组管理协议(Internet Group Management Protocol,IGMP)是TCP/IP体系结构网际层中的协议,其作用是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(实际上是主机中的某个进程)加入或退出了某个多播组。
只在本网络有效,IGMP不知道多播组的成员数量,也不知道多播组的成员分布。
IGMP被封装在IP数据报中传,IP首部协议字段为2。目的地址字段是IP多播地址,TTL值为1。不将IGMP看作是一个单独的协议,只是网际协议IP的一个组成部分。
TTL最大值为255
加入多播组:
首先一个局域网中,已经有了C属于某个多播组,该多播组号在多播组列表中。
现在A和C想要加入多播组。C首先发送IGMP成员报告报文,该报文封装在IP数据报中,IP多播数据报封装在以太网多播帧中。IGMP成员报告报文内容是希望加入的多播地址;IP多播数据报的目的地址是希望加入的多播地址;以太网多播帧目的地址是多播MAC地址。
C发送的IGMP成员报告报文在局域网中进行广播。不在任何多播组的丢弃;多播组MAC地址不同的丢弃;MAC地址相同的判断IP地址是否相同,若相同表示他们要发的成员报告报文是一样的,则取消发送。当路由器收到这个成员报告时,提取IGMP成员报告报文,解析报文后知道自己的直连网络中有一个新的IP多播组,则加入多播组列表中。
监视多播组成员变化:
多播路由器每隔125s就向其直连路由器发送IGMP成员查询报文的IP多播数据报。当某一个主机是该多播地址的就返回成员报告报文。随机选一个时间延迟发送,为的就是防止重复发送,如果收到了相同的成员报告返回报文,则取消本次的发送。
-
同一网络中的多播路由器可能不止一个,但没有必要每个多播路由器都周期性地发送
-
IGMP成员查询报文,只要在这些多播路由器中选择一个作为查询路由器由查询路由器发送IGMP成员查询报文,而其他的多播路由器仅被动接收响应并更新自己的多播组列表即可。选择查询路由器的方法:
-
每个多播路由器若监听到源IP地址比自己的IP地址小的IGMP成员查询报文则退出选举。最后,网络中只有IP地址最小的多播路由器成为查询路由器
退出多播组:
可主动发送个离开组报文而不必等待多播路由器的查询。这样可使多播路由器能够更快地发现某个组有成员离开。还要判断这个广播组有没有别的主机,才可以删掉。
多播路由选择协议
在多播路由器之间为每个多播组建立一个多播转发树。
基于源树多播路由选择:
先放着。
移动IP技术概述
移动主机在网络漫游时IP地址不发生改变。
概念:
归属网络: 每个移动主机都有一个默认连接的网络或初始申请接入的网络,称为归属网络(Home Network)。
归属地址: 移动主机在归属网络中的IP地址在其整个移动通信过程中是始终不变的,因此称为永久地址(PermanentAddress)或归属地址(HomeAddress)。
归属代理: 在归属网络中,代表移动主机执行移动管理功能的实体称为归属代理(HomeAgent)。归属代理通常就是连接在归属网络上的路由器,然而它作为代理的特定功能则是在网络层完成的。
外地网络: 移动主机当前漫游所在的网络称为外地网络(ForeignNetwork)或被访网络(VisitedNetwork)
外地代理: 在外地网络中,帮助移动主机执行移动管理功能的实体称为外地代理(ForeignAgent)。
转交地址: 外地代理通常就是连接在外地网络上的路由器。外地代理会为移动主机提供一个临时使用的属于外地网络的转交地址(Care-ofAddress)
书本理解:
在移动IP中,每个移动站都有一个原始地址,也就是永久地址(归属地址),移动站原始连接的网络就叫归属网络,归属网络上的服务器叫归属代理。代理的功能在应用层完成。
当移动站移动,被访问的外地网络使用的代理叫外地代理,是连接外地网络的服务器。外地代理有两个功能:① 给移动站创建临时地址,也就是转交地址。②及时把转交地址发送给归属代理。
转交地址是给移动站、归属代理和外地代理使用的。
工作原理
代理发现与注册:
首先移动主机A通过自己的代理发现协议与外地代理建立联系,并从外地代理获得一个属于该外地网络的转交地址,同时向外地代理注册自己的永久地址和归属代理地址。
外地代理会把归属地址记录在自己的注册表中,并向移动主机的归属代理注册该移动主机的转交地址。
归属代理会把主机A的转交地址记录下来,此后归属代理代替移动主机接收发给移动主机的IP数据报,利用IP隧道技术将数据报转发给外地网络的移动主机。
当移动主机不在归属网络时,归属代理会以自己的MAC地址应答所有对该移动主机的ARP 请求,即归属代理采用ARP代理技术:为了使归属网络中其他各主机和路由器能够尽快更新各自的ARP高速缓存,归属代理还会主动发送ARP广播,并声称自己是该移动主机。这样,所有发送给该移动主机的IP数据报都会发送给归属代理。
- 移动站A在归属网络采用TCP/IP协议
- 漫游后,向外地代理登记获得临时转交地址,外地代理向A的归属代理登记A的转交地址
- 归属代理知道A的转交地址后,会构建通向转交地址的隧道,将截获的数据重新封装,通过隧道发送给被访网络的外地代理
- 外地代理对IP分组进行拆封,然后发给A,A就能在被访网络收到这些IP分组
- A在被访网络发送IP分组时,用的还是永久地址,不用归属代理,直接外部代理、
- A再次移动后,新的转交地址告诉归属代理,不管怎么样,A收到的IP分组都是归属代理通过隧道发过来的
- A回到归属网络,归属代理注销转交地址
IPv6
特点
-
更大的地址空间,由原来的32到128位
-
扩展地址层次结构
-
灵活的首部格式,有很多可选字段
-
改进的选项,首部固定,选项放在有效载荷中,长度可变
-
允许协议继续扩充
-
即插即用,不用DHCP(动态主机配置协议)
-
资源预分配,实时音视频保证一定带宽和时延
-
源主机才可以分片
-
固定首部固定40B,IPv4长度可变(4B整数倍)
-
安全性,身份鉴别和保密功能
基本首部和扩展首部
IP数据报:基本首部+有效载荷
扩展首部不属于基本首部。
基本首部为8个字段,也就是只分成了8个部分。但是地址长度扩展到了128bit,也就是源地址和目的地址扩展到128bit,256+64 = 320bit = 40B;而IPv4固定首部为20字节,可变长最长为40字节。IPv6就是固定首部。
版本: 6
通信量类: 8位,区分不同IPv6的类别或优先级
流标号: 20位,用于资源分配。对实时数据有用,对特定源点到终点的一系列数据报的流标号是一致的。
有效载荷长度: 16位,包括扩展首部和数据部分。最大65535
下一个首部: 协议字段或可选字段。有扩展首部表示扩展首部的类型,没有扩展首部时表示数据时哪种协议的。
跳数限制: 8bit
源地址和目的地址: 128位,IP地址
IPv6地址
每个地址占128bit。
冒号十六进制法:
- “左侧零”省略是指两个冒号间的十六进制数中最前面的一串0可以省略不写
- “连续零”压缩是指一连串连续的0可以用一对冒号取代
IPv6数据报分类:
- 单播:点对点
- 多播:一点对多点
- 任播:终点一组计算机,但只交付一个
IPv6地址分类:
- 未指明地址:128个全0,缩写为两个冒号 ::,不能用于目的地址,::/128
- 环回地址,最低为1,其他全0,只有一个00000.....1; ::1/128
- 多播地址:最高8bit为全1,1111 1111 ,占地址空间的256分之1(2的120次方除以2的128次方,为2的8次方),FF00::/128
- 本地链路单播地址:私有地址,FE80::/10
- 全球单播地址:三级结构
IPv6和IPv4地址转换
双协议栈:
隧道技术:
ICMPv6
- 下一个首部设置为58