局域网的点对点通信.docx
- 文档编号:4666764
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:12
- 大小:27.87KB
局域网的点对点通信.docx
《局域网的点对点通信.docx》由会员分享,可在线阅读,更多相关《局域网的点对点通信.docx(12页珍藏版)》请在冰豆网上搜索。
局域网的点对点通信
整理旧文档,发现了这篇很陈旧的论文,这是我十年前写的第一篇论文,也是我第一篇在杂志上发表的论文,同时也是我大学的毕业设计论文。
十年前,我写毕业设计论文的时候,为了写这篇论文也花费了我不少的时间和精力,整天都泡在图书馆里。
今天再看这篇文章,竟然感觉如同隔世的感觉,那时候什么是网络呢?
Windows95刚刚发布,WindowsNT和Windows2000都没有普及,网络在那时还是一个神秘而高深的技术,那时我们建立局域网用的一律都是Novell系统,没有图形环境,设置非常繁琐复杂。
而现在,这些东西完全都过时了,那时候先进的TCP/IP现在面临其协议不安全、有漏洞的指责,NETBIOS和IPX就早已失传了,十年时间,竟然整个网络技术发生了如此天翻地覆的变化,慨叹,自己都已经快跟不上这个时代了。
这篇文章还是重新发布一下,以做纪念。
局域网上的点对点通信
摘要:
本文讨论了在局域网络环境下,实现工作站之间的实时通信的三种方法.重点介绍了基于NetBIOS及TCP/IP协议实现工作站之间的点对点通信(PeertoPeer),并给出了设计的应用程序实例.
关键词:
局域网点对点通信NetBIOSTCP/IPIPX/SPX
一 引言
在信息化社会里,人们都希望以快速简的方法获取信息,计算机网络的出现,使人们的这个想法得以实现.通过计算机网络,人们可以方便地实现通讯和共享资源:
计算机网络使信息传播和信息处理加工的设备和工具空前紧密地结合在一起,这种技术的进步和发展对提高人类社会信息化水平有着巨大的推动作用.
但在实际的计算机网络中,往往需要互连来自不同厂家的机器,要具备异种机的互联能力.由于各厂家的机器有其各自的总线结构,文件系统,输入输出系统和采用的字符集等,因而使这种互联成为一件十分困难的事情.
另外,从局域网的运行情况来看,以NovellNetware网络为例,文件服务器是网络的核心,其上运行Netware操作系统软件,为网上工作站提供共享资源与服务.因此,文件服务器的好坏对网络的性能极其重要.随着网络的扩大,连接的工作站增多,服务请求也迅速增加,服务器的负载也相应加重,服务器有可能成为网络工作的"瓶茎".
针对上述情况,本文利用网络上的点点通信思想,在不使用服务器的情况下实现不同工作站之间的文件传输和共享打印.
二 局域网概述
随着微型计算机技术的迅猛发展和日益成熟,微型计算机的价格在不断下降,因此人们有条件的将十几台微机,外设依网络通信协议连接起来,形成局域网(LocalAreaNetwork).它具有以下几个特点:
1)采用基带传输,传输速度较高.
2)网络覆盖地域较小,可不用调制解调器.
3)传输误码率低.
局域网的功能概括起来可归为以下几点:
1)资源共享.包括大容量硬盘,高速打印机,数据及软件.
2)电子邮件系统.
3)使用分布处理实现负载均衡.
机算机网络中对于各种约定做了如下定义:
将机算机网络同等层间的通信约定称为网络协议.将不同层的通信约定称为接口.到目前为止最有代表性的网络分层模型有两种.其一为国际标准化组织(ISO)所提出的开放系统互连(OSI)七层协议参考模型,其二为美国电气与电子工程师学会(IEEE)802委员会所提出的参考模型.
(一)ISO/OSI七层协议及参考模型
OSI参考模型的七层分层结构如图1所示.该模型是按逻辑组合功能来分层的,上一层是建立在下一层的基础上,较高层向较低层提供服务请求,而较低层为较高层提供服务.所谓开放系统是指按照这种模型所构成的网络是可以互连的,是彼此开放的,从而便于世界各地的网络互连.
OSI模型各层定义如下:
应用层 网中的网络应用软件在此层运行.
表示层 辅助用户执行诸如文间传送,程序运行等任务.
会话层 管理低层与用户之间的连接,是用户到网络的接口.
传输层 检查网络数据的完整性,必要时将数据分组调整到正确的位 置.设置分组题头,以便将数据组发送到目的地.
网络层 以分组形式,选择路径发送数据.各分组要穿过两个低层到达目的地.
数据链路层 管理网络接口处的输入/输出.对原始数据进行组织和检察.
物理层 定义在网络电缆连接及接线中用的规则与协议.包括例行联络处理及传输规范,还定义了使用的电缆类型及连接器.
(二)IEEE802标准局域网络参考模型
IEEE802标准遵循ISO/OSI参考模型的原则,解决了最低两层----物理层和数据链路层的功能以及与网络层的接口服务,网际互连有关的高层功能,IEEE802LAN参考模型与ISO/OSI参考模型的对应关系如图3所示.
1IEEE802的五个标准文件
IEEE(InstituteofElecticalandElectronicsEngincers),即电气和电子工程师学会,它是一个专业性质的学会.它对OSI模型的低两层即物理层及数据链路层的协议标准进行了大量的研究.IEEE802标准制定目的是为了在不同的厂商所制造的设备间具有兼容性,从而为使用该网络的用户和设备制造者在付出较小的代价后就能顺利地在这些设备间进行通信.该学会在经过多年的研究和修订,于1984年正式提出了局域网标准的五个标准文件.
IEEE802.1 它阐述了802方案与ISO互连参考模型间的关系.
IEEE802.2 逻辑链路控制标准.
IEEE802.3 采用CSMA/CD访问的总线结构标准.
IEEE802.4 采用令牌访问方法的总线结构标准.
IEEE802各标准间的关系如图2所示.
2IEEE802LAN标准局域络参考模型
从对ISO参考模型的讨论中以然清楚的了解到物理层,数据链路层及网络层共同完成了报文分组的传输功能,因此物理层,数据链路层是必不可少的.但考虑到局域网络的特点,IEEE802对OSI参考模型作了修正.IEEE802将数据链路层分为两个子层,即逻辑链路子层(LLC)和介质访问控制子层(MAC).在MAC子层中CSMA/CD,令牌总线(TokenBus),令牌环(TokenRing)等几种介质访问控制方式.在数据链路层同网络层的接口设置了服务访问点(SAP).
三 网络通信及实例
(一)进程通信
进程,指程序的一次执行.进程通信指各进程之间共享资源,相互进行数据传输的信息交换方式.OSI的传输层为进程通信提供了服务.
进程通信的实现方法:
1)建立和拆除进程间的连接
2)信息传递与控制
(二)点对点通信
从OSI参考模型的应用层来看,可认为网络是由工作站和服务器组成的,但从传输层和网络层的角度看,工作站和服务器没有本质的区别,它们都是连接到网络上的一台机器,都可以用网络地址或名称来代替.它们之间的通信,就是所谓的点对点通信,也叫对等通信.在局域网上,点点通信意味着两个工作站可以直接对话而不用经过文件服务器中转.
(三)实例:
Windows95的点对点网络通信功能:
Windows95操作系统的NetworkNeighborhood(网络邻居)的三个重要的部分是:
Netware的客户服务,点对点对等服务,Internet或/TCP/IP服务.
在Windows95内建的点对点对等网络功能,可以很容易地在一个小工作组内共享文间和打印机,而不用文件服务器.Windows95比Windowsforworkgroup3.11最具特色的功能之一是:
它有一个大大改进的安全方案,每个用户即可以在用户级又可以在资源级共享文件和打印机等资源.
在Windows95下,点对点的对等网络具有更大的灵活性,因为它可在Netware多用户(运行于IPX/SPX或TCP/IP协议下)之间建立点对点对等连接.Windows95能做Windowsforworkgroup客户能做的每件事,还可以做得更好.
无论用户选用什么样的平台,他们都可以利用NetworkNeighborhood非常方便地浏览网络资源.用户选中工作台面上的一个图标即可直接进入NetworkNeiborhood工作窗口,此后,用户不关心网络连接,驱动器映像,打印机队列等工作,即可连接到任意类型的网络服务器,浏览服务器中的文件或其它共享资源.
安装对等网络服务功能具体是这样的,从ControlPanel中打开Network对话窗口,移动其中的Configuration标签,点中add按扭后,在弹出窗口中选择Client.此后,会弹出一个SelectNetworkClient(选择网络客户)的对话窗口,选中其中的ClientforMicrosoftNetwork后,点OK按扭.重新启动机器后,在NetworkNeighbourhood中将显示同一工作组中共享文件的所有客户.同时,在NetworkNeighborhood中也列出了网络中的Microsoft,WarpConnect以及IBMLANServer域名,Microsoft工作组和Netware通过使用全局命名规则(UniversalNamingConvention,UNC)而不是通过驱动器映射到的Netware网络服务器.
文件共享在Configuration标签中设置FileandPrintSharing(文件与打印共享)选择项,然后在AccessControl(访问控制)标签中选中ShareLevelAccessControl项,为了配置共享选择项,必须返回到Desktop或Explorer中,用鼠标右键在准备共享资源(如键盘,光驱)上点一下.此后,会弹出一共享设置Sharing对话框.如使用Netware网络,那么结果是:
要么网络中其他用户都可以访问你的共享文件,要么无人可访问.
四 点对点通信的实现
局域网中工作站之间的通信程序的开发一般通过四种途径:
第一种是通过改造网络原有通信软件来实现.但这种改造必须以对该软件充分了解为基础,否则改造后很难保证不影响网络的整体性能,甚至会造成系统运行不可靠,而改造后的通信质量不一定理想.第二种是利用Novell网本身的网络协议IPX/SPX来实现,由于这种方法开发比较麻烦,采用的并不多.第三种是通过NetBIOS功能调用来实现,NetBIOS是PCLAN的通信接口标准,广泛适用于多种微机网络,使得以它为基础的设计和应用开发可移植性好.它不依赖于任何网络硬件,是一个介于网络硬件和用户应用程序之间的接口协议.其通信原理是:
两个要进行通信的工作站通过名字建立一个虚电路,然后向相应的虚电路号发送或接收信息,这样通过虚电路实现了两个工作站之间的对等通信.利用NetBIOS实现工作站之间的实时通信,功能比较强,编程实现比较容易,所以应用比较广泛.第四种是通过TCP/IP协议来实现.下面我们将详细讨论各种技术的实现.
(一)基于IPX/SPX的实现技术
由于IPX/SPX不能支持多协议之间的通信,因此本文略之.
(二)基于NetBIOS的编程接口
NetBIOS是NetworkBasicInput/OutputSystem的缩写,即网络基本输入输出系统,它是一种应用程序的接口.用户可以调用各种NetBIOS功能,而无需涉及到各种最低层的通信协议,从而实现数据源地与数据目的地之间的信息交换.
1NetBIOS概述
NetBIOS是IBM公司于1984年首次推出的.它可以支持各种著名的通信协议,如TCP/IP,MAP/TOP,XNS,IEEE和OSI等,不仅适用于DOS环境,还可以用在UNIX,OS/2,WINDOWS环境.
NetBIOS作为一种网络支撑软件,在ISO的开放系统互联(OSI)模型中的位置如图3所示.
2NetBIOS的基本概念
命令
NetBIOS的功能是由执行一系列命令来完成的.有Wait和No_wait两种形式.
名字
NetBIOS是一种按名字工作的系统,每一网络工作站和服务器都有一个(或几个)名字,每个节点还有一个永久节点名,它是在网络适配卡上的6字节网络地址前面再添上10个字节0构成.
数据报和会话
数据报是一种无连接的服务,即各个数据报之间互相独立,单独传送.在网络上任意两个名字之间可以建立一个会话,或多个会话.
网络控制块(NCB)
应用程序调用NetBIOS命令,必须先构造一块网络控制块(NCB),然后执行一次5CH中断.
信息帧
在网络中传递的信息是以帧的形式组织的.NetBIOS根据用户的命令,NCB以及它所知道的有关会话和名字的情况自动生成和管理信息帧,用户不必直接过问.
服务器报文块
3NetBIOS设计要点
在设计两个或多个工作站之间对话的时候,要注意处理好以下几个问题:
1)选择通信方式
网络中的通信可以采用数据报方式,也可以采用会话方式.
会话方式的特点是由通信协议保证每一报文能够正确地送到目的地.如果报文在传送过程中发生了差错,则通信协议会自动地进行重发,加以改正.而且,如果你发出的报文不止一个,那么通信协议还能够保证接收到的报文次序和发送时的次序一致.这些保证都是对用户应用程序透明地进行的,用户完全不需操心.但是,会话方式的主要缺点是过程比较复杂,在发送报文之前先要建立会话,送完报文之后又要撤除会话.因此,会话方式比较适合于点到点的多次往复式的对话.
数据报的特点正相反.它是把每一个报文作为一个独立的数据报处理,从而免除了建立和撤除会话的麻烦.但正因如此,它不能保证接收到的报文次序和发送次序一致,甚至不能保证每一个报文都能够正确无误地达到收方.在报文丢失或发生错误时,系统不向发送方提供出错信息.如果你所设计的对话环境由一系列互不相关的报文组成,或者每次对话都很简单,那么采用数据报传送可以大大加快对话的速度.另外,如果用数据报传送比较重要的报文,为了防止差错和丢失,可以在应用程序中为报文加上查错和序号功能.
2)选择命令返回方法
执行NetBIOS命令可以采用等待方式和非等待方式.对于非等待方式,又可以有两种不同的做法:
一种是轮询方法,即循环检查网络控制块(NCB)中的最终返回代码字段,当它的值从0xFF变为其它值时,表示该命令执行完毕.另一种是异步事件处理方法,即告诉NetBIOS,在当前命令执行完毕后存放在NCB的POST程序地址字段中的程序指针,继续执行一个指定的程序段.需要指出的是,这两种做法虽然难易程度不同,但都是在后台进行.对于前后操作,都是立即返回用户程序,不必等待命令完成.它们的主要差别在于对网络负荷的影响.比如,一个工作站发出一条命令,要求另一个工作站执行一项比较费时的任务.如果这个工作站采用轮询方式,持续不断地询问对方是否完成,就会极大地增加网络的负荷.这时,尽管轮询比较容易编程,那也不是一种好的选择.
4NetBIOS基本程序
1)调用NetBIOS
要调用一NetBIOS功能,需要做以下三件事:
(1)构造一个NCB,包含所有需要告诉NetBIOS的信息.
#defineUSGCunsignedchar
#defineUSGIunsignedint
#defineUSGLunsignedlong
structNCB {
USGCNcbCommand;
USGCNcbRetCode;
USGCNcbLsn;
USGCNcbNum;
char*NcbBufferOffset;
USGINcbBufferSegment;
USGINcbLength;
charNcbCallName[16];
charNcbName[16];
USGCNcbRto;
USGCNcbSto;
char*NcbPostRtnOffset;
USGINcbPostRtnSegment;
USGCNcbLanaNum;
USGCNcbCmdCplt;
charNcbReseredArea[14];
}ZeroNcb;
(2)把网络控制块地址写入ES:
BX寄存器,作为指向该NCB的远程地址指针.
(3)执行5CH中断.执行中断时,NetBIOS自动进入ES:
BX寄存器指定的地址,读出网络控制块,得知一切有关该操作的信息.下面是设置指针和执行中断的程序段:
voidNETBIOS (structNCB*NcbPtrNear)
{
unionREGSInRegs,OutRegs;
structNCBfar*NcbPtrFar=(structNCBfar*)NcbPtrNear;
segread(&SegRegs);
SegRegs.es=FP_SEG(NcbPtrFar);
InRegs.x.bx=FP_OFF(NcbPtrFar);
int86x(NetbiosInt5c,&InRegs,&OutRegs,&SegRegs);
}
2)定义NetBIOS命令
在程序段中还包括对所有NetBIOS命令(包括WAIT和NO_WAIT)
3)POST程序
在执行非等待命令时,可以把一个POST程序的地址告诉NetBIOS,然后直接返回前台操作.当后台命令完成时,它会自动转去执行POST程序.从这段描述可以看出,我们必须把POST程序编成一个中断处理程序.
unsigned es_reg,bx_reg,msg_received_flag;
NCBfar*posted_ncb_ptr;
voidinterruptPOST(void)
{
es_reg=_ES;
bx_reg=_BX;
posted_ncb_ptr=MK_FP(es_reg,bx_reg);
msg_received_flag=TRUE;
}
4)数据报服务
假定A工作站和B工作站之间以数据报方式通信,其主要步骤如下:
工作站A 工作站B
增加名字A 增加名字B
发送报文给B -----------> 收到一个报文
收到一个报文 <------------ 发送报文给A
删除名字A 删除名字B
5)会话服务
A工作站和B工作站之间以会话方式通信步骤如下:
工作站A 工作站B
增加名字A 增加名字B
Listen Call A站
发送报文给B -----------> 收到一个报文
收到一个报文 <------------ 发送报文给A
Hangup B站 Hangup A站
删除名字A 删除名字B
5Windows通信程序的特点
在Windows中,由于它是非抢先多任务,所以NetBIOS最好用异步方式(非等待式),CPU发出NetBIOS调用后,处理其他消息,当NetBIOS完成后会自动执行后置例程POST,POST通过PostMessage把一条用户定义的消息放到合适的队列中.Windows应用程序接到该消息后再处理接收到的网络数据.
其次,由于Windows的代码段和数据段可移动,这对异步NetBIOS是致命的,当异步NetBIOS命令发出后,如果代码段或数据段移动,命令完成后,NCB所指示的缓冲区已发生变化.解决的方法是使代码段和数据段不可移动.在DEF文件中定义如下:
CODE PRELOAD FIXED
DATA PRELOAD FIXED SINGLE
6点对点通信程序源代码.(基于NetBIOS)
完整的源程序见附录.
(三)基于TCP/IP协议的编程接口
1TCP/IP简介
TCP/IP的历史要追溯到70年代中期,当时ARPA为了实现异种网之间的互连(interconnection)与互通(intercommunication),大力资助网间网技术的研究和开发,于1977年到1979年推出目前形式的TCP/IP体系结构和协议规范.到今天,TCP/IP技术以及Internet网间网已经为广大计算机工作者,机算机厂商和机算机用户所接受.据统计,到1990年,Internet以包含遍布欧美的五千个活动网络,超过三十万台机算机.作为一种事实上的工标准,TCP/IP技术方兴未艾.
2TCP/IP的网络分层结构
对TCP/IP协议来说,TCP提供传输层服务,IP提供网络层服务.TCP/IP协议组(或Internet协议组)的分层结构及其与OSI模型的对应关系如图4所示.图中有关协议的名称及其基本含义如下:
(1)TCP. 为传输控制协议(TransmissionControlProtocol).它是提供给用户进程的一个可靠的全双工字节流的面向连接的协议.大多数Internet应用程序使用TCP.因为TCP使用IP,所以整个Internet协议组也常称为TCP/IP协议组.
(2)UDP.为用户数据报协议(UserDatagramProtocol).
(3)ICMP.为网间报文控制协议(InternetControlMessageProtocol).
(4)IP.网间协议(InternetProtocol).IP协议是为TCP,UDP和ICMP提供分组发送服务协议.
(5)ARP.地址转换协议.
(6)RARP.反向地址转换协议.
3Socket编程界面
(1)Socket原理
Socket编程界面由4BSDUNIX首先提出,目的是解决网间网进程通信问题.Socket接口为进程间通信提供了一种新的手段,它不但能用于同一机器中的进程之间的通信,而且支持网络通信功能.Socket具有类型,反应了对用户透明的通信特性.
一个完整的Socket连接用一个相关描述:
{协议,本地地址,本地端口,远地地址,远地端口}
Socket是面向客户-服务器模型而设计的,针对客户和服务器程序提供不同的Socket系统调用.
(2)Socket系统调用
不管Socket内部机制如何,它提供给应用程序员的最终界
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 局域网 点对点 通信
![提示](https://static.bdocx.com/images/bang_tan.gif)