a1.概述
任务:将分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。
传输单位:数据报
功能
①路由选择与分组转发
②异构网络互联(通过路由器将手机,电脑,局域网,移动数据网等互联)
③拥塞控制,两种方式:开环控制(静态),闭环控制(动态)
2.交换技术

2.1电路交换
如电话网络,经过建立连接->通信->释放连接三个过程,主要特点为独占整个通信线路,即独占资源。
优点:通信时延小;有序传输;没有冲突;实时性强;适用范围广(适用于模拟信号与数字信号);控制简单
缺点:建立连接时间长;线路使用效率低;灵活性差(某条线路上有一个交换设备失灵,那么两个用户间的通信连接直接崩溃,需要重新连接);无差错控制能力;难以规格化(不同速率,不同规格,不同类型的终端难以进行通信。
2.2报文交换
发送端—->交换设备(暂时存储报文)—->目标,其中不同报文所经过的交换设备数量可以不同,传输的路线也可以不同。
优点:①无需建立连接;②存储转发,动态分配线路;③线路可靠性较高;④线路利用率较高;⑤多目标服务(一个报文可以同时发送给多个目标)
缺点:①存在存储转发时延(接收,检验,排队,发送);②报文大小不一,需要网络节点有较大的缓存空间
2.3分组交换
类似于报文交换,分组交换也是采用存储转发的方式,但是分组转发每次传送的数据块大小有固定上限,把大的数据块划分为小数据块并加上控制信息。
优点:①无需建立连接;②线路利用率较高;③简化了存储管理(相较于报文交换);④加速传输;⑤减少了出错概率和重发时的数据量(分组比报文小,出错的概率也相应减小)
缺点:①存在传输时延(比报文交换小);②需要传输额外的控制信息(增大5%~10%);③可能会出现失序,丢失或重复分组。
分组交换可以进一步分为面向连接虚电路方式(虚电路方式)和无连接数据报方式(数据报方式)。
无连接服务:不会事先确定分组的传输路径,不同分组传输路径可能不同
连接服务:事先为分组确定好传输路径(建立连接),随后沿着该路径传输数据,传输结束后拆除连接
数据报方式:无连接服务,每个分组都携带源地址和目的地址,路由器根据目的地址转发分组(借助转发表),每个分组独立选择线路
当用户发送一个报文时,高层协议会先把报文分割成带有序号的数据单元,并在网络层加上目的地址等控制信息后形成数据报分组(网络层PDU),中间传输结点存储分组的时间很短,找到最佳路由后会尽快转发分组,不同分组可以走不同的路径,因此最终可能会不按顺序地到达目的结点。
虚电路方式:提供连接服务(逻辑连接),路径上的所有结点都要维护这条电路的建立以及一张虚电路表,表中的每一项都记录了一个打开的虚电路的信息(下一结点和上一结点等信息)。
在虚电路方式中,每个分组不仅有分组号,检验和等控制信息,还会携带虚电路号,而非目的地址。端系统每次建立虚电路时,都会选择一个未使用过的虚电路号分配给该电路(便于区分)。
虚电路之所以为虚,是因为这条电路并非是专用的,同一结点可能有多条虚电路经过。
3. IP数据报格式及相关协议
3.1 IP数据报的格式与分片
IP数据报分首部和数据部分,前者又分为固定部分和可变部分,包含有数据报的网络层协议等相关信息,后者是由上层传来的TCP、UDP段等。
IPv4协议结构图
IP首部重要字段含义:
- 版本:指IP协议版本,如4,6
- 首部长度:长度为4位,单位为4字节,最常用的首部长度为20字节,此时不适用任何可选字段
- 总长度:长度为16位,指首部和数据部分的长度和,单位为字节,因此数据报的最大长度为2^16
- 标识:长度为16位,它是数据报的标识符(并不是序号,因为IP协议是无连接服务),由于数据报长度大于MTU时就要分片,因此每个数据报片都复制一次标识号以便重新组装回原来的数据报。每产生一个数据报就加一,并且赋值给标识字段。
- 标志:长度为3位,最低位为MF,MF=1时表示后面还有分片,MF=0表示该数据片为最后一个分片。中间的位为DF,DF=0时才允许分片。
- 片偏移:长度为13位,指分片前该数据片在原分组的相对位置,用于复原数据报。单位为8字节,除了最后一个分片,其余分片长度必为8字节的整数倍。
- 生存时间TLL:长度为8位,指数据报在网络中最多可经过的路由器数量,以确保分组不会在网络中循环。路由器在转发分组前会先把TLL减一,TLL为0时丢弃该分组。
- 协议:长度为8位,指出分组携带的数据所使用的协议,分组的数据部分应该交给哪个传输层协议(6表示TCP,17表示UDP等)
- 首部校验和:长度为16位,IP数据报的首部检验和只检验分组的首部,不包含数据部分。
- 源地址:长度为32位,表示发送方的IP地址
- 目的地址:长度为32位,表示接收方的IP地址
- 可选字段:0~40B,用于实现排错,测量以及安全等功能
- 填充:全0,用于把首部填充为4B的整数倍。
IP数据报的分片
最大传输单元(MTU):一个链路层数据报能承受的最大数据量,不同链路层协议有不同MTU
片:将数据报分割后产生的数据单位(即小数据报)
片在接收端网络层被重新组装,此功能依赖于IP首部的标识,标志和片偏移字段。
IPv4地址
IPv4地址由网络号与主机号组成,根据可接入的设备数量分为A、B、C、D、E五类。其中网络号标志主机或路由器所连接到的网络,一个网络号在整个因特网范围内是唯一的。主机号标志一台主机或路由器,一个主机号在它所处的网络号范围内是唯一的,因此IP地址在整个因特网范围内是唯一的。
A类:1.0.0.1-126.255.255.254,每一个A类地址能支持16777214个不同的 主机地址
B类:128.0.0.0-191.255.255.255,每一个B类地址能支持64534 个惟一的 主机地址
C类:192.0.1.1-223.255.254.254,每一个B类地址能支持254个惟一的 主机地址
D类:224.0.0.1-239.255.255.254
E类:240.0.0.0—-255.255.255.254
C类地址中192.168.0.0和192.168.255.255保留

补充:
①用转发器或网桥连接起来的若干个LAN处于同一个广播域中,因此LAN中所有主机的IP地址的网络号必须相同,主机号必须不同。
②同一个局域网上的主机或路由器的网络号必须是一样的,路由器总是存有两个或以上的IP地址,路由器每个端口都有一个不同网络号的IP地址。
网络地址转换(NAT)
NAT(Network Address Translation)是通过路由器安装NAT软件,将专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址,安装了NAT软件的路由器称为NAT路由器,它至少有一个有效的外部全球IP地址。
作用:当使用本地地址的主机与外界通信时,NAT路由器使用NAT转换表将本地地址与全球地址相互转换。NAT转换表中存放着<本地IP地址:端口,全球IP地址:端口>的映射,使得可以让多个私有IP地址映射道同一全球IP地址。
补充:私有IP地址只能用于LAN,不能用于WAN,私有IP地址不能直接连接因特网,需要NAT把私有IP地址转化为全球地址。私有IP地址可以被LAN重复使用,进而解决IP地址不足的问题。在因特网中的所有路由器,对目的地址是私有地址的数据报一律不转发,因此采用私有IP地址的互联网称为本地互联网。
优点:①减少IP地址的消耗, 整个专用网可以只使用一个IP地址就可以与因特网互联。 ②隐藏了内部网络结构,降低了内部网络受到攻击的风险。
子网划分与子网掩码
出现背景 :两级IP地址的缺点——①IP地址空间利用率有时很低;②两级IP地址不够灵活;③给一个物理网络分配一个网络号会使路由表过大而使得网络性能变差。
子网划分:在IP地址中增加一个“子网号字段”,使得两级IP地址变为三级IP地址。
特点:划分子网属于一个网络号内部的划分,对外仍表现为一个网络;凡是从其他网络发送到本单位某个主机的IP数据报,会先根据IP数据报的目的网络号找到本单位的路由器,随后路由器再按网络号与子网号找到目的子网,最后把IP数据报直接交付给目的主机。
无分类编址CIDR
特点:①消除传统A,B,C类地址以及划分子网的概念。②融合子网地址与子网掩码,方便子网的划分。
传统分类:网络号+主机号
划分子网:网络号+子网号+主机号
CIDR:网络前缀+主机号
记法:IP地址+’ / ‘+网络前缀长度
eg:xxx.xxx.xxx.xxx/20 那么前二十位为网络前缀,后十二位为主机号(地址块)
构成超网(路由聚合):融合多个子网地址与子网掩码,将网络前缀相同的连续IP地址组成”CIDR地址块”,方便子网划分。
使用CIDR时,查找路由表可得出多个匹配结果,此时应选择具有相同最长网络前缀的路由。前缀越长,地址块越小,路由越具体。
地址解析协议ARP
作用:完成IP地址到MAC地址的映射。
背景:无论网络层使用何种协议,在实际网络的链路上传输数据帧时都必须使用硬件地址。
应用:每个主机都设有一个ARP高速缓存,用于存放本局域网中各主机和路由器的IP地址到MAC地址的ARP表,使用ARP协议来动态维护ARP表。
工作流程:
①假设主机A想向本局域网的主机B发送IP数据报,首先A会在其ARP高速缓存中查看有无主机B的IP地址。有,则取出其硬件地址,再将此硬件地址写入MAC帧,随后通过局域网将该MAC发送此硬件地址。无,则将MAC地址设为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,可以使得同一个局域网的所有主机收到ARP请求。
②当主机B收到ARP请求后,会向主机A单播一个ARP响应分组,分组中含有主机B的IP地址及MAC地址的映射关系。
③主机A收到此映射写入ARP缓存中(10-20min更新一次),然后按查询到的硬件地址发送MAC帧。
总结:
1.ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题,IP地址到硬件地址的解析是自动进行的;
2.尽管ARP请求分组是广播发送的,但是ARP响应分组是普通的单播
四种情况:
1.发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用ARP找到目的主机的硬件地址;
2.发送方是主机,要把IP数据报发送到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器来完成;
3.发送方是路由器,要把IP数据报转发到本网络上的一个主机。这时用ARP找到目的主机的硬件地址;
4.发送方是路由器,要把IP数据报转发到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址,剩下的工作由找到的这个路由器完成。
动态主机配直协议DHCP
介绍:基于UDP的应用层协议,使用客户/服务器方式,客户端与服务端通过广播进行交互。
作用:提供即插即用的互联网机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。
工作流程
1.需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文( “DHCP发现”消息),使得DCHP服务器获得一个IP地址,这时该主机就成为DHCP客户机。本地网络上所有主机都能收到此广播报文,但只有DHCP服务器才回答此广播报文。
2.DHCP服务器收到“DHCP发现” 消息后,就向网络中广播 “DHCP提供” 消息,其中包括提供DHCP客户机的IP地址和相关配置信息。
3.DHCP客户机收到 “DHCP提供” 消息,如果接受DHCP服务器所提供的相关参数,则通过广播 “DHCP请求” 消息向DHCP服务器请求提供IP地址。
4.DHCP服务器广播 “DHCP确认” 消息,将IP地址分配给DHCP客户机。
补充:
DHCP服务器会先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP地址池中取一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文。
DHCP协议允许网络上配置多台DHCP服务器,当DHCP客户机发出DHCP请求时,有可能收到多个应答消息。这时,DHCP客户机只会挑选其中一个,通常挑选最先到达的。
DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限的时间内使用这个分配到的IP地址。
网际控制报文协议ICMP
作用:提高IP数据报交付成功的概率,允许主机或路由器报告差错和异常情况。ICMP协议是IP层协议,ICMP报文作为IP层数据报的数据,加上数据报首部,组成IP数据报发送出去。
ICMP报文分为ICMP差错报告报文和ICMP询问报文两种。
差错报文字段
差错报文的五种类型:
①终点不可达:主机或路由器不能向终点交付数据报时会向源点发送终点不可达报文(无法交付)
②源点抑制:路由器或主机由于拥堵而丢弃数据报时,就向源点发送源点抑制报文,使得源点降低数据报的发送速率
③时间超时:由器收到生存时间TTL==0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。除此之外,终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把己收到的数据报片都丢弃,并向源点发送时间超过报文。(TTL==0)
④参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。(首部字段有问题)
⑤改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由) 。
下述情况不应发送ICMP差错报告报文:
1. 对ICMP差错报告报文不再发送ICMP差错报告报文。1. 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。1. 对具有组播地址的数据报都不发送ICMP差错报告报文。1. 对具有特殊地址 (如127.0.0.0或 0.0.0.0) 的数据报不发送ICMP差错报告报文。
询问报文四种类型
①回送请求和回答报文:主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回答报文。试目的站是否可达以及了解其相关状态。
②时间戳请求和回答报文:请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间。
③掩码地址请求和回答报文
④路由器询问和通告报文。
ICMP的应用
PING:测试两个主机之间的连通性,使用ICMP回送请求和回答报文
Traceroute:跟踪一个分组从源点到终点,使用ICMP时间超过过错报告报文
4.路由算法及协议
4.1自治系统(Autonomous System)
背景:许多单位不想让外界知道自己的路由选择协议,但还想连入因特网;互联网规模很大。
概述:由单一技术管理下的一组路由器所组成的系统,对内(路由器之间)都使用同一种AS内部的路由协议,对外(AS)使用一种AS之间的路由协议。
AS内部的路由选择称为域内路由选择,所使用的协议为内部网关协议(Interior Gateway Protocol, IGP),目前使用最多的是RIP协议和OSPF协议。
AS之间的路由选择称为域间路由选择,所使用的协议为外部网关协议(External Gateway Protocol, EGP),目前使用最多的是BGP-4协议
4.2 RIP协议
概述:RIP协议是一种分布式的、基于距离向量的路由选择协议,是因特网的协议标准,最大的优点是简单。
规定:
①从源端口到目的端口所经过的路由器数量称为距离,也成为“跳数”。网络中每个路由器都要维护从它自己到其他每一个目的网络的唯一最佳距离记录,RIP协议要求优先选择距离最短的路径。
②RIP的距离上限为15,距离为16时表示网络不可达,故RIP只适用于小型互联网。同时,距离向量路由可能有环路情况,规定距离上限目的之一就是防止数据报循环于环路上,减少网络拥塞的可能性。
③RIP默认任意两个使用RIP协议的相邻路由器之间每30秒广播一次RIP路由更新信息,以边自动建立并动态维护路由表,若超过180秒没收到邻居路由器的通过,则判定邻居已经断开,并更新自身路由表。
④RIP不支持子网掩码的RIP广播,因此RIP中每个网络的子网掩码必须相同,但在新的RIP2中支持变长子网掩码和CIDR。
特点:
1.仅和相邻路由器交换信息,交换信息时仅交换当前本路由器所致的全部信息,即自身路由表。
2.路由器刚开始工作时,路由表仅记录邻居路由器,随后通过若干次交换信息,所有路由器最终都会知道到达本AS中任意网络的最短距离和下一条的地址,这个过程称为“收敛”。
3.RIP报文最多包括25个路由,如果超过,必须再用一个RIP报文传送。
4.RIP协议选择的路径不一定时间最短,但一定具有最少路由器的路径。
每个路由表项都有3个关键数据:目的网络;距离;下一跳路由器。
当路由器A收到邻居路由器B发来的RIP报文时:
1.修改所有表象:所有距离字段加1,下一跳地址都改为B。
2.对修改后的报文的每一个项目都进行检查,如果原路由表没有的目的网络N时,把该项目添加到路由表中。如果原路由表有目的网络N,若原项目的下一跳地址为B,则把收到的项目替换原项目,如果下一跳不是B,则保留距离最短的项目。
3.如果超过180秒没收到B的RIP报文时,则B的距离设为16(距离16表示不可达)
优点:实现简单,开销小,收敛过程较快。
缺点:
①RIP限制了网络的规模,距离上限只有15,同时路由器之间交换的路由器中的完整路由表,网络规模越大,开销就越大。
②当网络出现故障时,会出现慢收敛现象。
4.3 OSPF协议
概述:
开放最短路径优先OSPF(Open Shortest Path First, OSPF)协议,使用了Dijkstra提出的最短路径算法SPF,最主要的特征是使用分布式的链路状态协议,属于IGP的一种。
交换对象:AS内的所有路由器,通过洪泛法发送信息,即路由器向所有相邻的路由器发送信息,相邻的路由器再重复此过程(广播)。
对比:RIP协议仅向邻居路由器发送信息。
交换内容:本路由器相邻的所有路由器的链路状态,即该路由器与哪些路由器相邻,该链路的度量/代价,费用、距离、时延带宽等。
对比:RIP协议发送的信息是整个路由表
交换时机:当链路状态发生变化时,路由器才会向所有路由器洪泛发送此信息。
对比:RIP协议无论网络拓扑变化与否,都会定时交换路由表信息
通过上述步骤,所有路由器都能建立一个链路状态数据库,即全网拓扑图。
特点:
①OSPF是网络层协议,直接使用IP数据报传送(IP首部的协议字段为89)
②OSPF对不同的链路可根据IP分组的不同服务类型 (TOS) 而设置成不同的代价。因此,OSPF对于不同类型的业务可计算出不同的路 由,因此十分灵活。
③可以实现路径间的负载平衡,即如果到同一目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。
④所有OPSF路由器之间交换的分组都具有鉴别能力,保证了仅在可信赖的路由器之间交换链路状态信息。
⑤支持可变长度的子网划分和CIDR
⑥每一个链路状态都带上一个32位的序号,序号越大,状态越新
⑦每隔30min,要刷新一次数据库中的链路状态
⑧OSPF不存在坏消息传得慢的问题,收敛速度很快
⑨由于路由器的链路状态只涉及与相邻路由器的联通状态,与整个互联网的规模无直接关系,所以当互联网规模很大时,OSPF协议的表现要优于RIP协议。
工作原理
由于各路由器之间频繁交换信息,因此所有路由都有了全网一致的拓扑结构图,然后每个路由器就根据该全网拓扑结构图使用迪杰斯特拉最短路径算法,得出自己到各个目的网络的最优路径,以此建立自身的路由表,但路由表不会存储完整路径,直存储下一跳的路由器。此后,每当链路状态发生变化时,每个路由器都会更新自己的路由表。
OSPF算法初始化过程:
1.每个路由器发现它的邻居结点【hello问候分组】,并了解邻居结点的网络地址。
2.设置到它的每个邻居的成本度量metric
3.构造【DD数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
4.如果DD分组中的摘要自己都有,则邻站不做处理;如果有没有的或者是更新的,则发送【LSR链路状态请求分组】 请求自己没有的和比自己更新的信息。
5.收到邻站的LSR分组后,发送【 LSU链路状态更新分组】进行更新。
6.更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认。
当某个路由器的链路发生改变
泛洪发送【 LSU链路状态更新分组】进行更新。
更新完毕后,向其他站返回一个【LSAck链路状态确认分组】进行确认。
7.使用迪杰斯特拉算法,一句自己的链路状态数据库构造到其他节点的最短路径。
OSPF区域
为了使得OSPF适用于规模很大的网络,OSPF将一个自治系统再划分位若干个更小的范围,称为区域。
这样做使得泛洪法交换信息的范围局限于单个区域中,减少了整个网络上的通信量,在一个区域内部的路由器只知道当前区域的完整网络拓扑,不知道其他区域的网络拓扑情况。
这些区域也分层次,处于上层的域位主干区域,负责连通其他下层的区域,并且还连接其他自治域。
每个区域都有一个32位的区域标识符,区域的容量不易过大,一个区域内的路由器最好不要超过200个。
OSPF分组类型
1.问候分组:用来发现和维持邻站的可达性。通常每隔10秒,每两个相邻路由器要交换一次问候分组,以便知道哪些站可达。
2.数据库描述分组:向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
3.链路状态请求分组:向对方请求发送某些链路状态项目的详细信息。
4.链路状态更新分组:用洪泛法对全网更新链路状态。
5.链路状态确认分组:对链路更新分组的确认。

OSPF工作流程
1.在路由器刚开始工作时,OSPF让每一个路由器使用数据库描述分组和相邻路由器交换本数据库中己有的链路状态摘要信息。
2.路由器就使用链路状态请求分组,向对方请求发送自己所缺少的某些链路状态项目的详细信息。
3.重复分组交换,全网同步的链路数据库就建立了。
4.4 BGP协议
概述:边界网关协议 (Border Gateway Protocol, BGP) ,用于AS之间交换路由信息的协议,是一种基于TCP的应用层外部网关协议。其路由表包含己知路由器的列表、路由器能够达到的地址以及到达每个路由器的路径的跳数。
内部网关协议的主要目的是使得数据在一个AS中,尽可能有效地从源站送到目的站。与之相比,使用BGP协议的互联网规模巨大,使得AS之间路由选择非常困难,对于AS之间的路由选择,寻找最佳路由是不显示的,同时AS之间的路由选择必须考虑有关策略。因此BGP只能力求寻找一条能够到达目的网络且比较好的路由(不兜圈)。
工作原理
1.每个自治系统的管理员要选择至少一个路由器 (可以有多个) 作为该自治系统的 “BGP发言人”(边界路由器)。
2.一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接。在此连接上交换BGP报文以建立BGP会话,再利用BGP会话交换路由信息。
3.当所有BGP发言人都相互交换网络可达性的信息后,各BGP发言人就可找出到达各个自治系统的比较好的路由。
补充:发言人除了必须运行BGP协议外,还必须运行该AS所使用的内部网关协议。

特点:
①支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
②BGP刚运行时,BGP的邻站是交换整个的BGP路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。
③每个AS的BGP发言人 的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。
BGP-4的四种报文
1.打开报文(Open):用来与相邻的另一个BGP发言人建立关系,并认证发送方。
2.更新报文(Update):通告新路径或撤销原路径。
3.保活报文(KeepAlive):在无update时,周期性证实邻站的连通性;也作为open的确认。
4.通知报文(Notification):报告先前报文的差错;也被用于关闭连接。
RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息。
OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议 (如UDP或TCP),而是直接采用IP。
BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP。
5.IP组播
概述:一种基于UDP的点对多传输方式,发送者仅发送一次数据,借助组播路由协议位组播数据包建立组播分发树,被传输的数据通过复制和分发,使得组内所有主机都能正确接收。
实现方式:用户主机使用一个称为IGMP的协议加入组播组,通过该协议通知本地网络上的路由器接收发送给某个组播组的分组的愿望,然后再通过扩展路由器的路由选择和转发功能,最终在许多路由器互联的支持硬件组播的网络上实现因特网组播。组播需要路由器的支持才能实现,能够运行组播协议的路由器也成为组播路由器。
优点:提高数据传播效率,减少主干网出现拥塞的可能性,同时组播组的主机可以来自不同的物理网络。

IP组播地址
IP组播地址让源设备能够将分组发送给一组设备,属于多播组的设备将被分配一个组播组IP地址,作为一群有共同需求的主机的标识。
IP组播使用D类地址格式。D类地址的前四位是1110,每一个D类IP地址标志一个组播组。
组播数据报和一般的IP数据报的区别在于它使用D类IP地址仅作为目的地址,源地址总为单播地址,并且首部中的协议字段为2,表明使用IGMP协议。
特点:
①组播数据报也是尽最大努力交付,不提供可靠交付,应用于UDP
②对组播数据报不产生ICMP差错报文
③并非所有D类地址都可以作为组播地址。
④组播地址只能用于目的地址,不能作为源地址
硬件组播
IP组播可以分为两种:① 只在本局域网上进行硬件组播;② 在因特网的范围内进行组播。在因特网上进行组播的最后阶段,还是要把组播数据报在局域网上用硬件组播交付给组播组的所有成员,即使用相应的组播MAC地址在本地网络中实际传送帧。
TCP/IP协议使用的以太网多播地址的范围是 从01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF。由于组播MAC地址以十六进制值01-00-5E打头,余下的6个十六进制位是根据IP组播组地址的最后23位转换得到的,所以在每一个地址中,只有23位可用作组播,和D类IP地址中的23位是一一对应关系。
由于组播IP地址与以太网硬件地址的映射关系不是唯一的,因此收到组播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃 。
IGMP协议与组播路由算法
IGMP作用:让路由器知道组播成员的信息,知道本局域网上是否有主机 (的进程) 参加或退出了某个组播组。
连接在局域网上的组播路由器还必须和因特网上的其他组播路由器协同工作,以便把组播数据报用最小代价传送给所有的组成员,这就需要使用组播路由选择协议。
与ICMP类似,IGMP也是使用IP数据报来传递报文。
IGMP工作的两个阶段:
①某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声明自己要称为该组的成员。 本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。
②本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。 只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的;如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上的没有此组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器。组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员。
组播路由选择协议
目的是找出以源主机为根节点的组播转发树,避免分组在路由器之间兜圈子,每个分组在各链路上只传送一次,使得转发树上的路由器不会收到重复的组播数据报。对于不同的组播组对应不同的组播转发树,对于同一个组播组,不用源点也会有不同的多播转发树。
相关路由算法有:
1.基于链路状态的路由选择;
2.基于距离-向量的路由选择;
3.建立在任何路由协议之上,因此称作协议无关的组播(PIM)
