IP多播技术在Linux平台下电子教室中的应用与研究

时间:2022-03-13 03:13:21

IP多播技术在Linux平台下电子教室中的应用与研究

摘要:传统的一对一的通讯方式不能满足电子教室将一台机器的屏幕广播到多台机器的应用要求,为此设计了基于IP多播技术的Linux下的通讯方式,不但减少了网络带宽的占用,而且提高了传输效率。发送端和接收端均采用Python实现,运输层使用UDP协议,完成了较大规模的测试,弥补了Linux下没有电子教室应用的空白,具有一定的实用和推广价值。

Abstract: Traditional point-to-point communication fails to meet the screen broadcast in electronic classroom, as there is many receivers. An IP multicast technology based communication is introduced in the Linux electronic classroom. It is, not only saved network band width, moreover is high efficiency. Sender and receivers, which are implemented by Python, are tested. This electronic classroom fills gaps in Linux, and has a great practical value.

关键词: 多播;Linux;电子教室

Key words: IP Multicast;Linux;electronic classroom

中图分类号:TP31 文献标识码:A 文章编号:1006-4311(2013)11-0192-02

――――――――――――

作者简介:熊飞(1984-),男,云南昆明人,西南林业大学助教,主要从事计算机网络、Linux的教学和研究;孙永科(1973-),男,云南昆明人,西南林业大学讲师,主要从事计算机网络的研究、安卓手机开发。

0 引言

在网络技术高速发展和普及的今天,出现了各种网络应用,如WWW、IM、E-mail等。这些传统的Internet应用都是主要基于一对一的IP通讯,也就是数据的发送方只能有一个接收方。然而许多新兴的业务都希望实现多播通讯,希望计算机网络提供类似于传统电台广播方式多点通讯能力。多播技术针对这个问题给出了一种传输方式。它允许一个发送方有多个接收方,发送方只需发送一次数据,所有的接收方都可以收到这个数据。如果采用单播的通讯方式,会造成大量网络带宽的占用。相比于广播方式,多播的出现减少了对应用不感兴趣主机的处理负荷。而且多播可以在同一个网络能同时有多个多播组,如同多个电台同时在空中广播。

Linux不断的普及和广泛应用,使得越来越多的高校在计算机专业课程中引入了Linux教学,例如西南林业大学计算机与信息学院的《计算机编程导论》和《操作系统原理》两门课程就是完全基于Linux教学的。在实验教学中,常常需要将教师在计算机上的演示广播给学生。而Linux下缺乏相应的电子教室软件,一定程度上影响了教学结果。本文主要阐述了西南林业大学计算机与信息学院开发的Linux平台下电子教室软件的核心构成,探索IP多播技术在以太网中大数据量传输的方式方法。

1 IP多播的概念

1.1 基本原理 多播技术允许一个发送者或多个发送者发送单一的数据到多个接收者的通讯方式,而且只有感兴趣的接收者才会向上层应用程序提交数据。这些感兴趣的接收者就形成了一个多播组,并且这些接收者可以随时加入或离开多播组。

1.2 多播地址 多播通讯使用D类IP地址空间,范围从224.0.0.0到239.255.255.255,其二进制格式如下:

最高4bit是固定的1110,剩余的28bit是多播ID。在这些地址空间中,IANA(Internet Assigned Numbers Authority)确定了一些众所周知的地址,例如224.0.0.1代表“该子网内的所有系统组”,224.0.0. 2代表“该子网内的所有路由器组”。

在多播通讯模型中,除了IP多播地址,还需要以太网的多播地址,因为IP数据包是封装在以太网数据帧内传输的。在将32位IP多播地址与48位以太网硬件组播地址的映射时,IP组播地址的低23位被简单地代换成特定以太网地址01:00:5E:00:00:00(16进制)中的低23位。IANA也确定了IP多播相对应的以太网地址范围从01:00:5E:00:00:00到01:00:5E:7F:FF:FF。

2 系统设计要点

2.1 电子教室应用层协议设计 在多播通讯中,传输层的TCP协议是面向连接的,只有使用UDP协议来完成电子教室的屏幕广播功能。本系统中主要定义了3种协议数据单元(PDU)来完成屏幕广播和控制接收端功能。每种PDU的功能由第一个操作码标示,具体如表1所示。

这3种协议数据单元中,最重要的是图像片段。一般的视频格式每秒帧数都在24帧以上,这样人眼才不会感到图像的闪烁。在实际测试中,我们发现截屏次数在每秒24次时,对系统性能消耗十分大,而且每次传输会占用大量带宽,经常会出现图像错乱的情况。经过多次测试,最终屏次数确定在每秒20次,虽然会有图像闪烁问题,但是足以满足讲课需要。

实际中还发现,图像幅的传输也会造成大规模的丢包,甚至接收端收不到相对完整的图像。所以图像片段PDU的格式为“img:序号:图像数据”,其中序号确定了图像拼接的次序。当接收端收到图像数据时,按照数据拼接出整幅图像。为了弥补UDP丢包造成数据丢失的情况,所以接收端拼接图像时,出现数据丢失,就用空白图像填充,尽量保证接收端看到大部分图像。

由于鼠标移动较快,本系统单独设计了传送鼠标位置格式的数据单元,格式为“mse:序号:位置数据”。这样避免了一些重复数据的传输。控制信号采用简单的“ctl:命令”这样的格式,接收端解析到控制命令时,执行相应的命令,如关闭客户端,锁屏等功能。

2.2 电子教室程序实现描述 本系统采用Pyhton开发,图形界面部分采用Python的wxPython库。系统分为发送端和接收端,主要工作流程如图1所示。其中,发送端主要是教师使用,广播教师操作电脑的屏幕。因为每秒钟截屏的次数比较大,系统没有将图像作压缩处理,这样造成减少接收端图像卡顿的现象。学生主要使用接收端,接收端中采用双线程设计:主线程负责刷新屏幕显示,接收线程负责接收组装图像数据。主线程和接收线程都会使用一个图像的缓冲区,所以为了避免竞争操作,采用加锁的方式保证缓冲区的数据同时只有一个线程操作。

3 测试

本系统的测试环境为Ubuntu 10.4的操作系统,酷睿双核2.0G的CPU,2G内存。其中一台安装发送端程序,分别使用10台、30台、50台机器作接收端。测试中还加入了TCP通讯方式的对比测试。最终测试结果如表2所示。

4 结论

通过在实际教学中使用和测试,可以看出基于IP多播技术的Linux电子教室达到了预期的效果,也满足了实际的使用。同时在测试中发现TCP的平均延时会随着机器的增多而加大,这主要是因为TCP是面向连接的通讯,数据必须循环写入每一个socket,造成了发送端的较重的负担,从而提高了平均延时。

参考文献:

[1]谢希仁.计算机网络(第5版)[M].北京:电子工业出版社,2008.

[2]姜海东,裘正定.多播技术在Internet上的应用[J].通讯世界,1999,(10).

[3]王孝礼,陈松山,岳朝阳.多点广播与多点广播路由的研究与实现[J].计算机应用研究,2001,(01).

[4]甘育裕,曾春娥.以太网交换机中组播技术的实现[J].中国有线电视,2003,(23).

上一篇:大学课程介绍的语篇体裁研究 下一篇:以培养工程能力为目标的互换性与技术测量课程...