Chinaunix首页 | 论坛 | 博客
  • 博客访问: 468159
  • 博文数量: 41
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2015-02-05 14:08
个人简介

c++ programmer

文章分类

全部博文(41)

文章存档

2020年(2)

2018年(3)

2017年(23)

2016年(13)

我的朋友

分类: C/C++

2016-12-27 15:43:45

UDP 单播,广播,多播 数据报传输处理


1. 单播


  ① 简介
    主机之间一对一的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同的工作。但由于其能够针对每个客户的及时响应,所以现在的网页浏览全部都是采用单播模式,具体的说就是IP单播协议。网络中的路由器和交换机根据其目标地址选择传输路径,将IP单播数据传送到其指定的目的地。

    单播的优点:
     1)服务器及时响应客户机的请求
     2)服务器针对每个客户不通的请求发送不通的数据,容易实现个性化服务。

    单播的缺点:
     1)服务器针对每个客户机发送数据流,服务器流量=客户机数量×客户机流量;在客户数量大、每个客户机流量大的流媒体应用中服务器不堪重负。
     2)现有的网络带宽是金字塔结构,城际省际主干带宽仅仅相当于其所有用户带宽之和的5%。如果全部使用单播协议,将造成网络主干不堪重负。现在的P2P应用就已经使主干经常阻塞。而将主干扩展20倍几乎是不可能。

 ② IPv4 映射 以太网地址
    1)当服务器和客户端主机位于同一子网时,映射的以太网地址为目的IP主机的实际以太网地址(通过arp获知)。
    2)当服务器和客户端主机位于不同子网是,映射的以太网地址为源IP主机所在子网的网关设备的以太网地址(路由器等)。
 
 ③ 数据报传输处理
    1)源IP主机将单播目的IP映射为一个单播以太网地址,并将以太网首部,IP首部,UDP首部,UDP数据组成一个UDP数据报,以以太网帧的形式发送到其所在子网中。
    2)子网中的其他主机的以太网接口接收到该以太网帧时,先对比帧中的目的以太网地址与自己的以太网地址对比,如果相同,则读入整个帧并传入IP层继续处理,如果不同,则忽略该以太帧网帧。
    3)在IP层处理该分组,比较该分组的目的IP地址和自己所有的IP地址是否存在相同的,如果存在,则继续传入到UDP层处理,如果不存在,则丢弃该分组。
    4)在UDP层处理该分组,比较该分组的目的端口和自己所有绑定的端口是否存在相同的,如果存在,则继续传入到绑定进程处理,如果不存在,则丢弃该分组。
     

2. 广播


  ① 简介
    主机之间一对所有的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。
    广播的优点:
     1)网络设备简单,维护简单,布网成本低廉
     2)由于服务器不用向每个客户机单独发送数据,所以服务器流量负载极低。

    广播的缺点:
     1)无法针对每个客户的要求和时间及时提供个性化服务。
     2)网络允许服务器提供数据的带宽有限,客户端的最大带宽=服务总带宽。例如有线电视的客户端的线路支持100个频道(如果采用数字压缩技术,理论上可以提供500个频道),即使服务商有更大的财力配置更多的发送设备、改成光纤主干,也无法超过此极限。也就是说无法向众多客户提供更多样化、更加个性化的服务。
     3)广播禁止允许在Internet宽带网上传输。

 ② IPv4 映射 以太网地址
    1)因为目的IP地址为子网的广播地址,所以映射的以太网地址为48位全为1的以太网地址:ff:ff:ff:ff:ff:ff
 
 ③ 数据报传输处理
    1)源IP主机将广播目的IP映射为一个广播以太网地址(ff:ff:ff:ff:ff:ff),并将以太网首部,IP首部,UDP首部,UDP数据组成一个UDP数据报,以以太网帧的形式发送到其所在子网中。
    2)子网中其他主机的以太网接口接收到该以太网帧时,先将帧中的目的以太网地址与自己的以太网地址对比,因为每个以太网接口都接收目的以太网地址为ff:ff:ff:ff:ff:ff地址的以太网帧,所以读入整个帧并传入到IP层继续处理。
    3)在IP层处理该分组,比较该分组的目的IP地址和主机所有的IP地址是否存在相同的,因为子网主机必包含子网广播IP地址,所以一定存在,继续传入到UDP层处理。
    4)在UDP层处理该分组,比较该分组的目的端口和主机所有绑定的端口是否存在相同的,如果存在,则继续传入到绑定进程处理,如果不存在,则丢弃该分组。
   

④ 特殊的广播地址
    1)255.255.255.255: 受限广播地址。路由器从不转发目的地址为255.255.255.255的IP数据报。


3. 多播(组播)


  ① 简介
    主机之间一对一组的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯。
    组播的优点:
     1)需要相同数据流的客户端加入相同的组共享一条数据流,节省了服务器的负载。具备广播所具备的优点。
     2)由于组播协议是根据接受者的需要对数据流进行复制转发,所以服务端的服务总带宽不受客户接入端带宽的限制。IP协议允许有2亿6千多万个组播,所以其提供的服务可以非常丰富。
     3)此协议和单播协议一样允许在Internet宽带网上传输。

    组播的缺点:
     1)与单播协议相比没有纠错机制,发生丢包错包后难以弥补,但可以通过一定的容错机制和QOS加以弥补。
     2)现行网络虽然都支持组播的传输,但在客户认证、QOS等方面还需要完善,这些缺点在理论上都有成熟的解决方案,只是需要逐步推广应用到现存网络当中。

 ② IPv4 映射 以太网地址
    1)以太网地址的高24总是为:01:00:5e
    2)下一位(高序第25位/第低序24位)总是为:0
    3)低序23位复制多播组IP的低序23位

    值得注意的是:因为多播组IP的高序5为在映射以太网地址时被忽略,所以32个多播地址将被映射为同一个以太网地址,映射关系不是一对一

 
 ③ 数据报传输处理
    1)源IP主机将多播目的IP映射为一个多播以太网地址,并将以太网首部,IP首部,UDP首部,UDP数据组成一个UDP数据报,以以太网帧的形式发送到其所在子网中。
    2)子网中的其他主机的以太网接口接收到该以太网帧时,先将该以太网帧中的目的以太网地址与自己的以太网地址对比,如果之前加入了某一多播组,以太网接口将标识接收目的以太网地址为该多播组IP映射的以太网地址的以太网帧,对比时将存在相同的以太网地址,继而读入整个帧并传入到IP层继续处理;如果没有加入,则不存在,忽略该以太帧网帧
    3)在IP层处理该分组,比较该分组的目的IP地址和主机所有的IP地址是否存在相同的,如果之前加入了某一多播组,IP层将标识接收该多播组的数据分组,对比时将存在相同的IP地址继续传入到UDP层处理。如果没有加入,则不存在,将丢弃该分组
    4)在UDP层处理该分组,比较该分组的目的端口和主机所有的绑定的端口是否存在相同的,如果存在,则继续传入到绑定进程处理,如果不存在,则丢弃该分组。
     

④ 特殊的多播组IP
    1)224.0.0.1: 所有主机组。子网上所有具有多播能力的节点(主机,路由器,打印机等)必须在所有具有多播能力的接口上加入改组。
    2)224.0.0.2: 所有路由组。子网上所有多播路由器必须在所有具有多播能力的接口上加入改组。

阅读(3148) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~