socket编程复习(6)-网络通信


一、

      主机之间“一对一”的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。如果10个客户机需要


据,则服务器需要逐一传送,重复10次相同的工作。网络中的路由器和交换机根据其目标地址选择传径,IP


数据传送到其指定的目的地。


二、单播的特点


  优点:

  1.  服务器及时响应客户机的请求

  2.  服务器针对每个客户不同的请求发送不同的数据,容易实现个性化服务。

  缺点:     

  1. 服务器针对每个客户机发送数据流,服务器流量=客户机数量×客户机流量;在客户数量大、每个客户机流量大的

     流媒体应用中服务器不堪重负。

 2. 现有的网络带宽是金字塔结构,城际省际主干带宽仅仅相当于其所有用户带宽之和的5%。如果全部使用单播协
     议,将造成网络主干不堪重负。
三、广播


 (1)主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都
          可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。
 (2有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还
          原成画面。
 (3)在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止
          广播数据影响大面积的主机。
四、广播的特点
   优点:  
   1. 网络设备简单,维护简单,布网成本低廉
   2. 由于服务器不用向每个客户机单独发送数据,所以服务器流量负载极低。
  缺点:
  1.不管主机是否有程序接收广播消息,广播消息一定会被网卡收到并提交给操作系统去处理,所以会造成网络
     上流量增大,对不接收广播消息的主机造成一定的负担。 
  2. 网络允许服务器提供数据的带宽有限,客户端的最大带宽=服务总带宽。
  3. 广播禁止在Internet宽带网上传输。
五、广播实现
(1)Linux下使用数据报socket实现广播,只需要在发送数据前调用setsockopt函数,指定广播有效即可。
(2)setsockopt用于设置与某个套接字关联的选项。

六、errno
       setsockopt函数执行若失败,不但会返回-1,还会把errno设置成下列之一:

七、level
      level指定控制套接字的层次,其取值如下:

八、getsockopt函数
      getsockopt函数用于获取与某个套接字关联的选项,用法与setsockopt函数类似:

九、组播
  •   主机之间“一对一组”的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换
       机和路由器只向有需求者复制并转发其所需数据。
  •    主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据
       传输给那些加入组的主机。这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需
       要(未加入组)的主机的其他通讯。
十、组播的特点
   优点:
        1. 需要相同数据流的客户端加入相同的组共享一条数据流,节省了服务器的负载。具备广播所具备的优点。
        2. 由于组播协议是根据接受者的需要对数据流进行复制转发,所以服务端的服务总带宽不受客户接入端带宽的限
            制。IP协议允许有2亿6千多万个(268435456)组播,所以其提供的服务可以非常丰富。
        3. 此协议和单播协议一样允许在Internet宽带网上传输。
   缺点:
        1.与单播协议相比没有纠错机制,发生丢包错包后难以弥补,但可以通过一定的容错机制和QOS加以弥补。
        2.现行网络虽然都支持组播的传输,但在客户认证、QOS等方面还需要完善,这些缺点在理论上都有成熟的
             决方案,只是需要逐步推广应用到现存网络当中。
十一、组播实现
•  客户端:

   远程地址设置为组播地址(224.0.0.0-239.255.255.255),而非实际IP

•  服务器:

  1.通知Linux内核,将指定的socket加入组播IP组。

  2.为了方便在本机调试,可以考虑在socket上设置选项,允许端口复用。

  3 .为了方便在本机调试,可以考虑bind以后,设定允许socket广播到同一台计算机。


                                                                                 2013.11.21




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ccwRadar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值