《基于win10环境下的高速网络接收和发送处理系统.docx》由会员分享,可在线阅读,更多相关《基于win10环境下的高速网络接收和发送处理系统.docx(32页珍藏版)》请在课桌文档上搜索。
1、基于WINlO环境下的高速网络接收和发送处理系统摘要Windows10操作系统在2015年被微软推出,以其高数据处理性能、高程序兼容性、良好的人机交互界面及其丰富的个性化设置得到了人们的广泛认可。与此同时,随着工业技术的高速发展,传统WinCe嵌入式操作系统已经很难满足人们的需求,特别是在高速网络接受和发送处理系统中,WinCe更是捉襟见肘,难以满足人们的需要。因此,本文先介绍了并分析了传统的wince系统的不足和传统网络收发中断机制的局限,并针对网络化高速数据采集应用,提出采用轮询的方法收取网络报文,对WincIOWSlO下的收发报文的驱动进行改进。关键词:windows10;中断机制;网络
2、传输;操作系统HighspeednetworkreceptionandtransmissionprocessingsystembasedonWINlOenvironmentAbstractWindows10operatingsystemwasintroducedin2015byMicrosoft,withitshighdataprocessingperformance,highprogramcompatibility,goodhuman-computerinteractioninterfaceanditsrichpersonalizedsettingshavebeenwidelyrecogni
3、zed.Atthesametime,withtherapiddevelopmentofindustrialtechnology,traditionalwinCEembeddedoperatingsystemhasbeendifficulttomeetpeoplesneeds,especiallyinthehigh-speednetworkforreceivingandtransmittingandprocessingsystem,winCEisstretched,itisdifficulttomeetthepeoplesneeds.Therefore,thisarticlefirstintro
4、ducedandtheshortageofthetraditionalwincesystemareanalyzedandthelimitationsoftraditionalnetworktosendandreceiveinterruptmechanism,andaimsatsuchhighspeeddatacollectionapplications,pollingmethodisproposedfornetworkpacket,toimprovethetextdriverunderWindows10.Keywords:Windows10;interruptmechanism;network
5、transmission;operatingsystem目录摘要IAbstractIl第一章1LI概述11.2 WinCE系统简介11.3 WinCE系统弊端分析2I .3.1网络能力2II 3.2人机界面功能支持3III .3WINCE应用平台上的缺点3L4WinlO系统及其在工业控制中的优势31.4 .1网络能力41.4.2 在人机界面、3D及个性化上的支持41.4.3 WinlO数据处理能力5第二章72.1 windowsOS架构72.2 windows网络子程序架构82.2.1 TDI规范82.2.2 NDlS规范82.2.3 windows网络架构91.1 WinlO驱动的过程112
6、.4 WinlO中断与任务NIC调度112.4.1 WinlO中断简介112.4.2 异步过程调用(APC)中断122.5 以太网/IP的介绍132.5.1 以太网简介132.5.2 IP介绍14第三章网络中断机制及开发163.1 以往的网络报文接受模式-一中断方式163.1.1 简单介绍中断机制163.1.2 中断机制在高速网络下的弊端173.2 轮询机制简介183.2.1 轮询接收对高速采样报文的必要性和轮询机制说明193.2.2 Win10基于轮询机制的接收报文驱动的设计验证193.3 基于轮询机制的高速网络在Win10平台上的验证193.3.1 WinlO系统开发环境及介绍203.2.
7、2 关键代码分析223.2.3 WinlO上验证结果23总结25参考文献26第一章1.1概述自20世纪以来,工业生产及设计制作技术高速发展,人们对工业技术的需求越来越高。从早期的蒸汽时代,到简单工业自动控制,再到如今的大数据及系统控制,人们需要高速的互联网络以及完善和高性能的操作系统,以提高生产技术和水平。早期乃至现今的工业控制系统依旧是WinCe,wince操作系统虽然已经在工业控制上被广泛采用,并且服役多年,但随着生产技术特别是新型行业,精密仪器,精密制造,3D打印等技术的发展,WinCe已经很难满足高端产业的需求,因此,微软推出了全新的操作系统Winl0,在图形处理,用户界面,高速网络传
8、输,数据处理等方面都拥有非常良好的性能。1.2WinCE系统简介WindowsCE(WindowsEmbeddedCompact)是Windows操作系统家族的一员,专门为掌上电脑(HPCS)和计算机环境中的嵌入式设备的使用。这样的操作系统,实现了移动技术与现有的窗口桌面的结合。MyDeviceRemoteDesktop.WRecycleBinInternetExplorerMustPlayerWindowsEmbeddedCompact70FtoVeWerMcrosoftVideoPlayer图LIWinCe操作系统用户界面WindOWSCE可以通过设计一个在硬件层和内核代码之间构建硬件平台
9、,对比其他的微软视窗操作系统,wince并不代表一个标准的兼容所有平台相同的软件。为了能够灵活地满足各种产品的需要,它采用标准的方式。这意味着它可以通过一系列的软件模型来进行选择,使产品可以定制。此外,一些可以使用的模式也可以作为它的一部分,这意味着这些模式可以通过从一组选择可用的组件,从而成为标准模型,通过选择,以达到最低系统要求的模式,这样的方法可以减少存储的脚本和操作系统运行。wince主要由两大部分组成,一个是wince中运行的采集端软件。另一个是wince硬件设备。他们主要由以下两部构成。1)硬件部分在生产现场,由于空间的限制,一般情况下不方便放置常规的工控主机,同时也基于成本的考虑
10、,所以采用工业级的嵌入式主机是一个比较好的解决方案,一般在数据采集仪上配备有两个串口,仪器或设备可直接通过串口线与之相连,同时用户可在数据采集仪中设置产品相关的信息。2)软件部分采集软件安装在数据采集仪中,用户通过采集软件进行数据的自动采集,并进行相关的处理,对于生产线的实时数据,由于一般只是输出数据,没有输出相应的参数值,规格值等,所以此时可在软件中设置相应的产品信息参数,然后由用户选择相应的产品信息,班次信息,批次信息等。这将很利于生产速率、工作效率的提高。OEM层WindowsCE构建的嵌入式系统大致可以分为4个层次,如右图所示,从上往下依次是:硬件层、OEM层、操作系统层及应用层。一般
11、来说,不同厂商提供不同层次的设备或软件,硬件层和OEM层由硬件OEM厂商提供;微软公司提供操作系统层;独立软件开发商提供应用层。每个层由不同的模块组成,每个模块由不同的组件组成。从硬件和软件、操作系统和应用程序的层次结构中,可以方便地实现系统的硬件、软件、操作系统、应用等方面的发展,对劳动分工并行发展。1.3WinCE系统弊端分析硬件层图 1.2 WinCE系统构造虽然WinCe目前发展已经较为成熟,但是WinCe欠缺的兼容性,图形处理能力等功能已经很难满足现代工业的需求。尽管Windows操作系统是一个通用型计算机平台,为实现统一的体验而设计,设备制造商可以使用WindowsEmbedded
12、CE6.0,为不同的非桌面设备构建定制化的操作系统映像,这增加了开发者开发的难度。因此,在程序兼容性和通用性上Winee做得并不出色。1.3.1网络能力随着社会的进步和发展,人类已经步入了互联网时代。高速的网络传输能力标志着操作系统的主要性能之一。在WinCe上,由于硬件的限制,系统对基于ADSL、Wi-FiLTE等网络的支持不尽人意。高速和兼容性等良好的体验很难在WinCe上得以实现。1.3.2人机界面功能支持另外,WinCe由于屏幕尺寸和支持分辨率的限制,很难实现诸如WinlO能够随意支持多个高清显示器,同时处理数个流媒体那样的能力。随着工业的发展,人们渴求一种能够依靠手势就能操作的控制方
13、式,它拥有很有好的人机交互界面,在手臂上安装数个传感器,甚至只是佩戴一些特殊颜色的线条,计算机就能得知人们要做什么,从而对控制系统进行操作和控制。1.3.3WlNCE应用平台上的缺点wince上并没有完整支持windows该系统,很多数学或者电路软件都无法正常的在WirICE上运行,例如matlab、MathernatiCa等软件,这让现代制造业的设计和分析工作产生了不便,人们很期望机器上运行的软件对设计或者控制人员自身使用的WindoWS系统是全兼容的,这样便不会花很大力气去研究代码的移植,系统的迁移等。因此,wince已经很难满足现代工业的需求,一种更受人们欢迎的操作系统被人们渴求。1.4
14、WinIO系统及其在工业控制中的优势2015年10月,微软公司发布了旗下下一代跨平台及设备应用的操作系统WinlOo其桌面如下图所示。图1.3Win10桌面界面WinIO一推出,便受到了人们的高度认可。在WinlO系统中,兼容性更强,丰富的个性化设置,人机界面功能的高度支持,3D显示,以及强大的数据处理能力,以及对各种仿真软件的支持,例如matalb,mathematice等。这将非常有利于现代工业控制及更多系统级应用,WinlO从4英寸的屏幕到40英寸的屏幕,都得到了全线的兼容,多显示器更是随意扩展,无疑给人机交互、信息的显示带来了方便。1.4. 1网络能力图1.4便携Wi-Fi接入模块图1
15、.52.4G扩展模块WinIO已经几乎能够全线兼容几乎所有流行的有线和无线网络。以无线网络为例,表中列出了常用的无线网络传输协议。从WinlO的角度来讲,即便出厂的系统硬件未含有某种协议的硬件部分,我们也能很方便的购买到批量生产并且廉价的扩展接口。协议频宽最大传输宰802.11a5.8GHz54Mbits802.11b2.4GHzUMbit/s802.11g2.4GH5.8GHz2254MbitZSHomeRF2.4GHz10MbitsHiperLAN25GHz54MbitsIrDA1.5MHz9.6kbits4MbitsBluetooch2.4GHz72Okbit/sIMbit/s802.1
16、62.66GHz2Mbits155Mbit/sWi-Fi2.4GHzUMbit/s图1.6主要通信协议及性能指标WinIO支持的常见的接口主要包含VGA、HDMI视频结构、USB扩展接口、PQ网卡接口、ATA/133、PQEXPreSS硬盘接口等等。他们能够对外进行有线或者无线网络额扩展。而IEEE802.11ac以及现代LTE接口更是为计算机系统提供了高速的网络通信能力。如表所示,多种网络通信均可达到100M以上带宽。1.4.2在人机界面、3D及个性化上的支持WinIO中,人机交互界面变得更加友好,不管是从电脑获取信息,还是传送图像等信息到WinlO,这都将变得十分容易。WinlO提供了高效
17、的多桌面、多任务、多窗口交互界面。例如:1)通过分屏多窗口功能增强,现在你可以在屏幕中同时摆放四个窗口,WinlO还会在单独窗口内显示正在运行的其他应用程序。同时,WinlO还会智能给出分屏建议。2)通过多桌面,现在你可以根据不同的目的和需要来创建多个虚拟桌面,切换也十分方便。点击加号即可添加一个新的虚拟桌面。3)win10自带的3Dbuilder是一款创建模型和3D打印的工具,它提供了你所需的一切,可以让你打印任何3D内容。使用多种材料直接打印到支持的3D打印机上,或者通过3D系统Cubify服务订购模型。使用文字或图像对任何模型制作浮雕效果。彼此合并、相交或减少对象或将这些对象切分为多片等
18、。图1.7Win10自带3D绘图功能4)微软在WindOwS10侧边新加入了一个SnapAssist”按钮,通过它可以将多个不同桌面的应用展示在此,并和其他应用自由组合成多任务模式。1.4.3WinlO数据处理能力各种仿真软件的支持,例如matlab等。这些强大的软件对WinCE来讲很难成功运行。matlab的顺利运行,需要多方面的系统环境和组建的配合。MicrosoftVisualC+.NETFramework3.0/3.5,DirectX9.29和VC+2005200820102012等程序基本都是必要的。从下图可以看出,相同电脑配置上,WinlO在HTML5的测试结果比wi7还高出近30
19、%,其数据处理能力可见一斑。HTML5testhttp/Zwwwexpreviewcom(07/22/2015)Higherisbetter图L8Win10HTML数据处理能力综上所述,WinIO由于系统的先进性,相比其他操作系统,特别是WinCE等操作系统,在数据处理上优势明显。第二章2.1 windowsOS架构对Windows基本OS构架的认识是对其操作系统的认知。Windows采用的是Vsta的内核,使用的是NT架构。windows总体结构中的关键系统组件如下图所示:图2.1Win关键系统组件横线上下将用户模式和内核模式分开成了两部分。横线之上是用户模式的进程,之下是内核模式的系统服务
20、。其中,这4种用户模式下的进程分别是:1) FiXeel系统是支持进程的,比如登陆进程和SeSSion管理器,它们都不是WinCIOWS服务(不是通过SCM即服务控制管理器启动的)。2)服务进程,比如任务调度器和打印机服务,这些服务一般都需要用户登陆才可以运行。很多服务应用程序,比如SqlSerVer和CXChangeSerVer都以服务的方式运行。3)用户程序,可以是WindowS32位或64位,WindOwS3.116位,MSfOS16位,或者POSIX32位或64位,注意16位程序只能运行在32位系统上。4)环境子系统服务器进程,实现了部分支持操作系统的环境,也可以说是展现给用户或者开发
21、者的个性化界面。WindowsNT最初发布时带有WincIOws,POSIX,OS/2个子系统,Windows2000是最后带有POSIX和OS/2的子系统,旗舰版和企业版的Windows也支持一个加强版的POSIX子系统,叫做SUA(基于UNlX的应用)。以上系统构成了windows系统的基本架构。2.2 windows网络子程序架构在介绍windows网络子程序(驱动)架构之前,我们先介绍两种Windows中的重要编程规范。2.2.1TDI规范TDl英文全称为TransportDriverInterfaCe,意思是传输驱动程序接口,位于WindOwsSystem32DriversTdi.s
22、ys中。在实现网络APl驱动程序时,因为牵涉到很多不同的协议,会用到不同协议驱动提供的接口。这将使开发的工作变得复杂。为解决这个问题,微软在网络APl驱动程序和协议驱动之间加了TDl接口。TDI接口只是一种将“将网络请求格式化成IRP,以及申请网络地址和数据通信”的做法规范化的接口技术。遵从TDl标准的传输协议向他们的客户(如SoCketemUlator,NetbiOSemUIatOr等)导出了TDl接口,采用以下两种措施会有比较大的好处。图2.2WindOWS网络子程序(驱动)架构1)直接使用TDl提供的统一接口,TDI上层的网络API驱动程序没有必要使用所有协议子程序提供的那些接口。2)至
23、于下层协议驱动程序,是用TDITransportPrOVider传输器,直接由TDI接口来发出请求,然后调用。在WindoWSVISTA版本之后,TDl就不再使用了,取而代之的是WinCIoWSfilterplatform以及WinSoCkkernel)2.2.2NDIS规范NDlS(NetworkDriverInterfaceSpecification),即网络驱动程序接口规范,位于Wind0wsSystem32DriversNDIS.sys当一个协议驱动程序想要按照其协议的格式解析网上读写的数据时.,这些数据必须通过网络适配器才能取得。这些协议很难区别网络上众多的网络适配器。所以,MiCr
24、oSO代、3Com联合开发了NDIS,使得协议驱动程序可以以一种与设备无关的方式,从而与网络适配器驱动程序进行通信。NDIS规范与TDI标准基本实现了类似的功能,很大程度上提高了Windows操作系统的可扩展性、兼容性,他们都是将复杂的下层调用规范化、标准化。我们将以以下两个方面对其进行阐述:1)从下层来讲,设备驱动程序(NdiSminiPortdriVer)往往都是网络适配器制造商自己开发的。这些驱动直接利用NDIS提供的接口发送指令,NDlS负责对这些格式化的指令进行解析,做进一步处理。2)对于上层,多个协议驱动程序与下层驱动之间的通信,也都是通过统一的NDIS接口,通过NidsAIIoc
25、atePacket,NdisSend等函数来收发数据。2.2.3windows网络架构下面我们将来介绍WindoWS网络架构,如下图所示。ICPWPOther PrototeWindowns网络框架从上到下主要由网络应用层、TDIClients层、NDIS层以及NICdevice层构成。如图2.2所示。网络应用层(NetworkappIicantion),应用程序调用Windows操作系统的网络APh其主要包括WindoWS套接字(WinSe)Ck),远程过程调用RPC,Web访问API,命名管道和邮件槽,以及其他API。传输驱动程序接口客户层(TDIClients),是内核模式的设备驱动程序
26、,用于实现网络APl的内核部分。将APl的请求转换成IRP,通过TDI标准格式化后,发送给下层的协议驱动(TDl传输器)。SOCketSemUIator的架构图显示,TDlCIientS的实现由用户态的部分以及内核态的部分构成。AFD辅助驱动程序向协议驱动程序发送TDIIRP来执行网络套接字操作,例如发送和接受消息。AFD本身不知道使用哪一个协议驱动,而是上层通知其要使用的协议名称,然后AFD去打开相应协议的设备对象。1图 2.4 sockets emulator 架构图Socket ap(MaucnNetbKlS plkatk一厂Netuork ApplKlintMWl _ UTDITran
27、sportProvidersTDl传输器、NDIS协议驱动程序、协议驱动程序,在后文中统一称其为协议驱动程序。这个部分即某个协议的具体实现部分。协议意思就是双方协商好的一套通信的规则,进而在这套规则下工作。以IP协议为例,实际上就是对网络数据的一种处理方式,根据网络数据包的解析结构,做出相应的处理。Windows的tcpip.sys就实现了多个协议,比如说ip、tep、udparpicmpigmp协议NDIS,NetworkDriverInterfaceSpecification,网络协议接口标准。从图中我们可以看到包裹在其中的两个驱动程序,一个是中间层驱动程序(NDISintermediat
28、edriver),另一个是小端口驱动程序(NDlSminportdriver)。下面简单介绍一下这两个驱动程序:中间层驱动程序(NDlS),对于上层的PrOtOColdriVer,它充当minportdriver的作用,对于下层的minportdriver它充当protocoldriver的作用,所以在驱动程序DriverEntry中就注册NDIS_PROTOCOL_CHARACTERISTICS和NDIS_MINIPORT_CHARACTERISTICS,使用protocolcharacteristics中NDISAPL从miniportdriver取得数据包,再用miniportchara
29、cteristics的NDISAPI向上层的protocoldriver发送数据包。Nidsintermediatedriver最大的优势就是所有miniportdriver的数据包都要通过它这里转发给PrOte)Coldriver,这也就是网络防火墙所使用的方法,网络防火墙一般都使用NDISintermediatedriver做数据包的过滤和拦截工作,过滤的规则设置到MPSendPackets,PTReceive,PTReceiveRacket这三个函数上。以此降低计算机被感染的几率。2.3 WinlO驱动的过程在ConSoIe控制台下,使用入口函数main函数;在WindOWS图形界面平台
30、下,可以使用另一个入口函数Winmain函数。我们只要在这入口函数里面调用其他相关的函数,程序就会按照我们的意愿执行。当使用IDE开发的时候,在新建工程的时候,IDE会帮我们把编译器(ComPiIer)以及连接器(Linker)的相关参数设置好,在正式编程的时候,只要按照规定的框架编程就行了。同样,在驱动程序中一般也有一个入口函数DriVerEntry函数,这是微软默认的、推荐使用的。在我们配置开发环境的时候我们有机会指定入口函数,这是链接器的参数/entry:”DriVerEntry”。比如说,入口函数的声明代码:NtstatusDriverEntry(PDRIVER_OBJECTpDriv
31、erObject,PUNICODE-STRINGpRegistryPath)其中,DriVerEntry主要是对驱动程序进行初始化工作,它由系统进程(System)创建,系统启动的时候SyStem系统进程即被创建。加载的时候,系统进程将会创建新的线程,然后调用执行体组件中的对象管理器,创建一个驱动对象(DRIVER.OBJECT)。另外,系统进程还得调用执行体组件中的配置管理程序,查询此驱动程序在注册表中对应项。系统进程在调用驱动程序的DriVerEntry的时候就会将这两个值传到PDriverObject和PRegiStryPath。以此驱动软件或者硬件。2.4 winl0中断与任务NIC调
32、度2.4.1WinlO中断简介中断指当程序执行过程中有更重要的事情需要实时处理时,比如说当串口中有数据到达,不及时处理数据会丢失,因此为了数据不丢失便会要求系统产生中断来处理数据。处理器暂时暂停当前运行的程序,转移到中断处理程序中;当中断处理程序处理完毕后,通过iret指令回到之前被打断的程序中继续执行。IDT图2. 5从IDT到VXD中断处理函数的途径VPICD中断和异步事件随时可能发生,来自I/O等的事件可能带来中断。与中断对应的还有异常事件。硬件异常或中断产生时,为了保持中断前的所有状态,WindoWS会在内核栈上创建一个陷阱帧。中断里面要分中断请求级别(IRQL),在x86中分0-31
33、,x64中是0T5,后者减少了设备,并且把前者中一些中断给合并了。虽然APlC中有自己的优先级方案,Windows依旧采用本身的优先级方案(这其实是微软公司的传统作风)。高的优先级请求会提升处理器的IRQL,这样使得低于该优先级的IRQL无法执行,执行后,再把处理器的IRQL降回原来的状态。软中断可以当作硬中断处理,也可以直接调用处理中断的函数。而设备中断,会把控制权交给设备驱动的中断服务例程(ISR)处理。处理器的IRQL的值不会因为用户模式线程模式的改变而改变,连接一个中断对象是指ISR与某个特定的中断级别关联起来的操作,将一个ISR与IDT项断开关联成为断开一个中断对象,分发或者延迟过程
34、调用(DPC)中断。也就是说某个线程不能继续运行,但需要当前中断执行完之后立刻执行。存放在DPC队列中的DPC对象是一种内核对象,DPC分低,中,高三种优先级,默认是高级。只有当DPC队列抽干之后,才会降低IRQL的等级。2. 4.2异步过程调用(APC)中断APC是低于DPC的软件中断,主要是针对线程的,而且操作的只是特定的线程。两种模式的APC,内核模式不需要目标线程许可,用户模式需要得到许可。“基于帧”是指将一个异常处理器与一个特定的过程激活动作关联起来。当一个过程被调用时,代表该过程激活动作的一个“栈帧”被压到栈中,一个栈帧可以关联多个异常处理器,当一个异常发生时,内核会查找与这个栈帧
35、相关的某个异常处理器。然后CPU硬件将控制权传递给内核陷阱处理器,内核陷阱处理器又创建一个陷阱帧。异常被解决以后,系统可以从他停止的地方恢复运行。所有的Windows异常都有一个异常处理器,它位于栈顶上,该异常处理器是在Windows内部的进程启动函数或者线程启动函数中声明的。如果一个异常没有被处理,WindowS会根据注册表中的键值调用默认的调试器,默认的调试器为DnMtSn32.exe(也称Dr.Watson),实际上它不是调试器,而是事后分析工具,将程序的崩溃状态记录在日志文件Drwtsn32.Iog和进程崩溃转储文件User,dmp中。2.5以太网/IP的介绍2.5.1以太网简介以太网
36、(Ethernet)是由XerOX(施乐)创建,英特尔和DEC联合开发的基带局域网规范,是目前已有的局域网通信协议标准的最常见的用途。采用以太网的CSMA/CD(载波侦听多路访问和冲突检测)技术,和10Ms的速度运行在多种类型的电缆上。以太网与IEEE802.3系列标准相类似。包括标准的以太网(IOMbits)、快速以太网(100Mbits)和IOG(IoGbits)以太网。以太网组建之初,以太网速度都较慢。随着网络的发展,传统标准的以太网技术已难以满足日益增长的网络数据流量速度需求。在1993年10月以前,对于要求IOMbps以上数据流量的LAN应用,只有光纤分布式数据接口(FDDI)可供选
37、择,但它是一种价格非常昂贵的、基于IooMPbS光缆的LANo1993年10月,GrandJunction公司推出了世界上第一台快速以太网集线器FastchlO/lOO和网络接口卡FaStNlCloo,标志着快速以太网技术得以应用。随后Intel.SynOpticsX3C0MBayNetworks等公司也相继推出了自己的快速以太网装置。与此同时,IEEE802工程组对100Mbps以太网各种标准,包括100BASETX、IOoBASE-T4、Mil、中继器、全双工等标准进行了研究。1995年3月,花宣布了死802.3111001效5一丁快速以太网标准(FaStEthernet),就这样开始了快
38、速以太网的时代。千兆以太网技术作为新的高速以太网,给用户提供了核心网络有效的解决方案,这种解决方案的最大优点是继承了传统以太网技术的优势,也就是价格便宜。千兆技术仍然是以太网技术,它使用相同的帧格式,帧结构,网络协议,全/半双工模式下,流量控制方式和布线系统的IOM以太网。因为该技术不改变传统以太网桌面应用程序,操作系统,从而能够用IOM或IoOM以太网工作良好。升级到千兆以太网不必改变网络应用,网络管理组件和网络操作系统,最大限度地保护投资。此外,IEEE标准将支持550米多模光纤的最大距离、70公里单模光纤的最大距离和100米的铜电缆的最大距离。千兆以太网填补了802.3以太网/快速以太网
39、标准的不足。车间缴总线 储环时间 VKXM)m、总线 微环时间 00mPnbu-PA万兆以太网规范包含在IEEE802.3标准的补充标准IEEE802.3ae中,它扩展了IEEE802.3协议的MAC层规范,这使它能够支持10Gbs的传输速率。此外,通过广域网接口层(WIS:广域网接口子层)和10千兆以太网,也可以调整到较低的传输速率,如9.584640Gb/s(0C-192),它允许10个千兆以太网设备与同步光纤网(SONET)STS-兼容192c传输格式。现埼级总线循环时间图2.6综合自动化网络的典型体系结构2. 5.2IP介绍网络协议IP(InternetProtocol)之间的互联,中
40、文简写为“网络协议北设计的计算机在网络互连,在网络协议下进行通信。在互联网上,它是连接到因特网网络的所有计算机相互通信实现的一组规则,该计算机的规定到互联网应遵守的规则上进行通信。任何计算机系统制造商,只要你可以观察IP协议和互联网的互联互通。如今的IP网络使用的是32位地址,也就是IPV4规范,以点分十进制形式表示,如192.168.1.1o随着信息技术的发展,电子设备的爆炸式增长,IPv在某些场合已经不能满足用户需求,因此,新的IP协议IPv6被推出。IPv6是InternetProtocolVersion6的缩写,也被称作下一代互联网协议,它是由IETF小组(Internet工程任务组I
41、nternetEngineeringTaskForce)设计的用来替代现行的IPv4(现行的IP)协议的一种新的更高级的IP协议。我们知道,Internet的主机都有一个唯一的IP地址,IP地址用一个32位二进制的数,来表示一个主机号码,但32位地址资源有限,已经不能满足用户的需求了,因此Internet研究组织发布新的主机标识方法,即IPv6协议。每个整数用四个十六进制位表示,整数之间用冒号(:)隔开,例如:3ffg:3881:1401:0231:c8ff:90ef:39bd:1994,即为一个完整的IPv6地址。IP分组的分片示例:分片偏移32)2三Date5.511B(长度1044B_y
42、际识符9999)分片偏移64)Date2.767B总长度276B)弋际识符9999)Flag(MFO)分片儡移96)76Date8.1O23B总长度(276B)标识符(9999)图2.8IP子网与基于子网地址分配第三章网络中断机制及开发3.1以往的网络报文接受模式-中断方式服务器WlNlO不仅支持了多个网络传输协议,并且继续支持以往的网络报文接受模式-中断方式。如下图所示。进程分网卡高长1操作系统内核度内存4 遍历 OUt_of_order 取出 S3S4 放入 recei ve 队列K 文 S1S2U ZS2-S33接收报文S2-S3插入receive队列?技 ZS3-S45调用recv接收
43、阻塞SOCkereceive 队列prequeue 厂L 队列为空VLJ10复制到93制到用国,应“用服务器进程backlog I 队列为空ILJ12已经拷贝的字节数超过最低接收阀值, 而口backlog队列为空1接收报文S1-S2插入receiv驱列OUtjJf_Order队 |.、列WM2接收到失序的S3S4,插入out_of_orde11题;星制到用户态态7处理receive队列中已排序的报文13 recv方法返ISI己经拷贝的S4-S1字节数6 tcp_recvmsg图3.1网络报文接受模式-中断方式3. Ll简单介绍中断机制中断指当出现需要时,中央处理器暂停执行当前程序有利于新形势的
44、执行和实施过程。该程序正在运行时,系统出现了一种情况,必须立即由中央处理器,这一次,中央处理器暂停执行程序的一个新的进程,处理这种情况方式被称为中断。中断在WindOWS运行中常常发生,例如,电脑正在加载网页的时候,用户忽然插入了USB外设,系统将检测找到这一中断,进而根据系统默认或者用户设定的优先级进行处理,判断是打开U盘自动播放里面的媒体文件或者继续加载网页,将U盘的操作命令暂时放到系统缓存中,等待后继处理。主要中断如图3.2所示,他们的详细介绍如下:1)程序中断:在程序执行过程中,中断程序被发现,或出现了某些错误的性质。如浮点溢出,用户模式使用特权指令,内存过线,跟踪等。2)外中断:在一
45、个中央处理单元,其外部类型设备的时间发生称为一个中断引起的外部中断。例如,时钟中断,中断操作员控制台,多处理器系统的处理器,以中断的处理器之间的通信。3)输入输出中断:当外部设备或信道或误动作正常地结束时会发生什么它被中断。例如:打印机打印完成,缺纸,阅读相应的磁盘驱动器,没有磁盘。4)硬件故障中断:当发生故障时,机器被称为硬件故障中断中断。例如,电源故障,存储器单元奇偶校验错误。5)访管中断:中断所做发生的一些请求操作系统。此示例创建一个过程,I/O传输,打开文件,关闭文件,文件的读写系统调用。输入输出中断:它是当外部设备或通道操作正常结束或发生错误时所发生的中断。例如:打印机打印完成、缺纸
46、,读磁盘时相应驱动器中没有磁盘等。软硬中断类型浮点溢出、异常 程序性中断用户态下使用了特权指令、至中断一;内存越界里、访管中断外中断理钟中断、操作员控制台中断硬件中断输入输出中断打印完成、缺纸硬件故障中断同步可预见发生时刻异步不可预见非屏蔽中断屏蔽,可屏蔽中断电源故障、内存单元奇偶校验错图3.2中断类型3 .1.2中断机制在高速网络下的弊端当数据从网络到达网卡时,网卡就会发出中断请求,产生中断,随后通知CPU处理中断,在win系统处理这一中断时,为了避免导致嵌套问题,系统会禁用其他的中断,当处理器能力不够强或者速度不够快时,系统就会变慢。在报文数据量较大,中断频发,CPU资源耗费非常大的情况下,这种中断机制将使整系统不能正常运转。虽然操作系统在引入中断时一定程度上加强了数据的写入和读取,但是当数据量骤增的时候,频繁中断被唤醒,会导致数据传输特别慢,甚至导致卡顿。介于中断机制在高速网络下的弊端,一种称为轮询的机制被提出。4 .2轮询机制简介客户端通过浏览器发出一个请求,从而进行W