网卡驱动程序范文
时间:2023-03-21 13:46:25
导语:如何才能写好一篇网卡驱动程序,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
windows nt是一个功能全面的操作系统,具有完全集成式的连网能力,它的网络模型开始于mac子层,网络接口卡(network interface card以后简称网卡或nic)驱动程序驻留在其中。通过相关的网卡把windows nt与网络连接起来,但一直到80年代后期,许多传输协议的实现受限于mac层接口的独特实现,因为mac层定义了协议与网卡之间的转换机制。
1989年,microsoft和3com两公司提出了一个定义mac层与osi模型高层协议驱动程序之间的网络设备接口规范(network device interface specification : ndis),ndis给数据交换提出了一个灵活的环境,它规范了软件接口──称为ndis接口,传输协议可用它与网卡驱动程序进行通信。因此在windows nt环境下开发核心态网卡驱动程序应遵循ndis规范。
对于高速网络fddi(fiber distributed data interface)网卡驱动程序还需要smt(station management)站管理功能的实现,否则将不能作为一个fddi站连入环结构中,只能实现点到点间的数据通信。故有必要将smt软件移植到网卡驱动程序中,这将又导致对miniport nic驱动程序编程框架的破坏,于是有必要形成fddi网卡驱动程序(包含smt)与windows nt操作系统的良好接口──由逻辑网卡的注册和mac层驱动程序的初始化来完成。
所以,本课题旨在深入研究应用microsoft公司的ddk(device driver kit)将smt移植于windows nt的fddi网卡驱动程序过程中如何注册miniport nic驱动程序。即怎样正确注册逻辑网卡和mac驱动程序的初始化。着重讨论与初始化相关的上边缘函数的使用和调用关系以及初始化过程中遇到的各种问题的具体解决。
第一章windows nt环境下fddi网卡驱动程序
总体结构介绍
第一节windows nt网络结构
§1.1.1 windows nt网络体系结构
windows nt的网络体系结构是基于国际标准化(iso)制定的标准模型──开放式系统互连(open system interconnection:osi)参考模型分层建立的,这种方式有利于随时扩展其它功能和服务。
windows nt网络模型开始于mac子层,网卡驱动程序就驻留在其中。它通过相关的网卡把windows nt与网络连接起来,图中的多个网卡表明在一台运行windows nt的计算机上能使用多种网卡。
这一网络体系结构包括两个重要接口──ndis接口与传输驱动
程序接口(tdi)。这两个接口把两个层隔离开来,办法是相邻的部件只允许按单一的标准来写,不允许多重标准。例如一个网卡驱动程序(在ndis接口的下面)就不需要特地按每个传输协议来写它的代码块,恰恰相反,该驱动程序是写给ndis接口的,它通过符合ndis的相应传输协议来请求服务。这些接口包含在windows nt的网络体系结构中,以容纳可移植、可互换的模块。
在两个接口之间,是传输协议。它在网络中起着组织者的作用。一个传输协议规定了数据以何种方式呈递给下一个接收层,以及如何对数据相应地进行打包。它通过ndis把数据传给网卡驱动程序,并通过tdi把数据传给转发程序(redirector)
tdi之上是转发程序,它把本地的网络资源申请转送给网络。
为了能和其他厂商的网络互连,windows nt允许有多个转发程序。对于每一个转发程序windows nt计算机必须也有一个相应的供应者(provider)(由网络厂商提供)。多供应者路由选择程序决定适当的供应者,然后借助于供应者,对应用请求到相应的转发程序做出选择。
§1.1.2 windows nt网络驱动程序
windows nt支持两种类型的网络驱动程序
传输驱动程序
实现数据链路层中的逻辑链路控制子层协议和传输层协议。向 下与ndis接口,向上与tdi接口。
网卡驱动程序
实现对物理层的管理和数据链路层中介质访问控制子层协议,通过ndis向下管理物理网卡,向上与传输驱动程序通信。
§1.1.3 windows nt网卡驱动程序
windows nt环境下的网卡驱动程序也分为两种:
miniport网卡驱动程序:miniport驱动程序只须实现与网络硬件相关的操作(包括发送和接收)。而所有底层网卡驱动程序的通用操作(如同步),一般由ndis接口程序来实现。
full网卡驱动程序:full网卡驱动程序必须实现所有硬件相关和同步、排队等操作。例如full网卡驱动程序为了响应数据接收,需要保持本身的捆绑信息,而miniport就可以由ndis接口库来实现。
在windows nt的早期版本中,full网卡驱动程序要求开发者实现许多底层操作,来处理多处理器的核心问题以及处理器、线程的同步,这样不同的开发者在大量重复着许多相同的工作。
而miniport网卡驱动程序允许开发者仅仅写一些与网络硬件相关的代码即可,而那些通用的函数由ndis接口库来实现,这样开发出来的驱动程序减少了不必要的工作。
第二节miniport驱动程序的结构
ndis接口规范了网卡驱动程序的实现,同时也对tdi驱动程序的实现提出了一定的要求,在nt中,ndis约束下的网卡驱动程序、tdi驱动程序和系统的关系如下图所示:
图2.0 ndis约束下的网卡驱动程序、tdi驱动程序和系统的关系
miniport驱动程序包括驱动程序对象、驱动程序源代码和ndis接口库代码。windows nt ddk提供ndis.h作为miniport驱动程序的主要头文件,定义了miniport驱动程序的入口点、ndis接口库函数和通用数据结构。
上边缘函数的作用是网卡驱动与ndis接口库进行通信,而下边缘函数是tdi协议驱动程序与ndis通信的手段。
§1.2.1 miniport网卡对象
ndis用一个叫做逻辑网卡的软件对象来描述系统中的每块网卡,而逻辑网卡与windows nt设备对象的通信由i/o子系统来管理,描述网卡的设备对象包括相关的网络信息如名字、网络地址和网卡内存基地址等,它还包含与硬件相关的驱动程序状态数据(捆绑数目,捆绑句柄,包过滤数据库等)。ndis分配一个句柄到miniportinitialize这个上边缘函数的一个结构中,然后miniport网卡驱动程序将在以后提供这个句柄来给ndis调用,这个结构一直被ndis保持,并且对miniport驱动程序不透明。
当miniport网卡驱动程序初始化一块网卡时,它创立自己的内部数据结构来描述网卡,记录需要它管理的与设备相关的状态信息。当miniport网卡驱动程序调用ndismsetatttibutes或ndismsetattributesex两ndis库函数时,它传递一个句柄给这数据结构。这样,当调用miniport驱动程序入口点时,它就传递这个句柄来验证驱动程序所对应的网卡的正确性。这个数据结构为miniport网卡驱动程序所拥有并维护。
§1.2.2网络对象标识符
miniport nic驱动程序还需要维护一组对象,这些对象是系统定义的对象标识符(object idetifier:oid)来标识,以描述驱动程序的性能和当前状态信息。为查询这些信息,上层驱动程序调用ndisrequest向ndis接口库指示oid。oid表示了调用所需的信息类型,如miniport驱动程序所支持的lookahead缓冲区大小等。ndis接到上层驱动程序的查询请求,将oid传递给上边缘函数miniportqueryinformation实现对oid的查询,如果上层驱动程序请求改变状态信息则调用miniportsetinformation实现对oid的设置。
§1.2.3 miniport网卡驱动程序代码
典型的miniport nic驱动程序必须有一些函数来通过ndis接口实现上层驱动程序与硬件的通信。这些函数称为上边缘服务函数。
这些上边缘服务函数由驱动程序的开发者根据驱动程序面向的特定低层网络类型和硬件以及相应环境,可以有选择地实现,但必须保证驱动程序最基本的功能,这些基本功能包括初始化、发送、中断处理、重置、参数查询与设置和报文接收。
miniportinitialize:操作系统根据系统配置信息,检测出网卡已安装时,由ndis接口在初始化时调用,主要完成低层网络类型确定,对应于物理网卡的逻辑网卡初始化,中断信息注册,网卡与主机通讯方式的确认。i/o端口的申请与注册,内存映像,mib的初始化,物理网卡的验证与初始化等。
miniportreconfigure:支持网卡参数动态变化,和miniportinitilize一样由ndis接口以初始化级别调度执行(不能屏蔽中断,必须由驱动程序承认并清除在此期间产生的中断),支持即插即用和软配置的网卡在动态改变参数时,必须提供此函数。
miniportqueryinformation:查询网卡的状态以及网卡驱动程序的操作或统计参数,如是否支持组通讯、网卡的物理速率是否支持回环、是否支持直接拷贝等,这些参数以oid方式统一管理。
miniportsetinformation:ndis接口或协议驱动程序通过调用此接口改变驱动程序维护的oid库,一些操作参数的改变也将同时改变驱动程序状态,例如组地址的设置。
miniportreset:包括网卡硬件重置和驱动程序软件重置,软件重置包括驱动程序状态重置,以及一些相关的参数重置,还需考虑有些参数的恢复,重置时不必完成所有正在活跃的外部请求,但必须释放已占用的外部资源。
miniporthalt:挂起网卡并释放该网卡驱动程序占用的所有资源,在此期间不屏蔽中断。
miniportisr:高优先级的中断处理程序,进行的工作包括初始中断处理类型,决定是否进行中断转交,对卡上中断进行处理 等,该服务类型只在以下情况被调用:
ndis接口调用miniportinitialize和miniporthalt两函数时。
.中断处理类型设为每此中断处理过程都调用时。
为使系统能及时响应所有硬件中断,高优先级的硬件中断处理程序应尽可能的减少运行时间,防止长时间的屏蔽低优先级中断,避免造程中断丢失。
miniporthandleinterrupt:由中断延时处理程序在中断延时处理时进行调用。ndis排队所有的延时处理,该服务主要处理发送完成、报文接收、描述符用尽、溢出、网卡异常等中断。
miniportsend:ndis收到上层发送请求时经过若干协议处理再向下调用此服务过程,发送的packet已含有llc和mac头,该服务过程进行边界对齐、packet约束重整、描述符映射和报文发送、以及发送资源和packet缓冲队列管理。
miniporttransferdata:多个已和网卡捆绑的协议驱动程序在接收到报文到达指示后,向网卡驱动程序发出传送请求以拷贝各自所需的报文数据部分,网卡驱动程序根据各协议驱动程序对单个packet是否进行多次拷贝,以决定是否暂存只允许单次拷贝的packet等。
miniportcheckhandle:ndis每秒调用此服务函数一次,驱动程序发现网卡异常时报告给ndis由ndis调用miniportreset进行硬件重恢复。
miniportenableintrrupt:中断使能。
miniportdisableinterrupt:中断屏蔽。
另外,每个网卡驱动程序必须有一个初始化入口点,由driver entry函数实现,它和系统相关,由操作系统在装入驱动程序时调用,主要完成初始化ndis wrapper,再由wrapper初始生成驱动程序管理块并完成相应各种初始化工作,登录网卡驱动程序所有上边缘服务入口点,同时写入ndis版本信息。
§1.2.4 ndis接口库
ndis接口库包括在ndis.sys中,它是一个核态函数库,有一套抽象的函数,无论协议驱动程序还是nic驱动程序都连接到这个库中,以实现上下层之间的操作。
第二章fddi网卡驱动程序的加载和运行
第一节 网卡驱动程序的安装
windows nt网卡驱动程序安装的目的是实现网卡相应硬件信息和驱动程序在windows nt注册库中的注册,使windows nt能够正确识别网卡,了解所必需的软硬件信息并能在windows nt启动时加载相应驱动程序。
网卡驱动程序安装时,首先在主群组的控制面板中选择“网络”,然后添加网卡,指定相应信息文件──oemsetup.inf的路径,以完成以下两个必要的操作:
复制驱动程序到相应的系统目录(windows nt根目录\system32\drivers\)中;
在windows nt注册库中存入相应软硬件信息。
下面主要以fddi网卡为例介绍安装驱动程序所必需的工作:
§2.1.1网卡一般硬件参数
对于fddi网卡,必须在编写其oemsetup.inf文件时确定以下硬件参数:
总线类型:pci(5)……括号中的数字5表示pci总线在ndis中的总线类型代码;
厂商代号:0x5588……系统加载时确定网卡的标记,也是编程时确定pci槽号的标识;
cfid: 0x01;
介质类型:光纤(3) ……括号中的数字表示光纤在ndis中的介质类型代码;
是否支持全双工:支持。
对于其它的硬件信息在此inf配置信息文件中可有可无,如若配置,则可在驱动程序的编写时利用这些信息,方便编程,同时有利于其它应用对其参数的确定和使用。
§2.1.2 fddi网卡加载时需在注册库登录表里做的网络配置
网卡驱动程序的安装通常将创建登录表中的四个不同子键:
software registrion键,对应于驱动程序,存在于hkey_local_machine\software\company\ productname\version中。我们的fddi网卡驱动程序所对应的是hkey_local_machine\software\net612\yhfddi\yhfddi1.0;
网卡的软件登录键,存在于hkey_local_machine\software\microsoft\ windows nt\nt3.51\networkcards\yhfddi1;
驱动程序的服务登录键,存在于hkey_local_machine\system\currentcontrolset\services
网卡的服务登录键,存在于hkey_local_machine\system\currentcontrolset\services
对于每一个网络部件,一个名为netrules的特殊子键在邻近的驱动程序或网卡登录子键里创建,netrules标识网络部件为网络整体的一部分。
fddi网卡驱动程序对应的标准软件登录表项将出现在以下路径:
hkey_local_machine\software\net612\yhfddi\yhfddi1.0;
驱动程序对应的标准项的值为:
description =yhfddi/pci adapter controller
install date =……
……
refcount =0x01
servicename =yhfddi
softwaretype =driver
title =yhfddi/pci adapter controller
而且在yhfddi驱动程序相关的netrules子键下,这些值项为:
bindable =yhfddi driver yhfddi adapter non exclusiver
bindform =“yhfddisys”yes no container
class = reg_multi_sz “yhfddi driver basic”
infname =oemnad1.inf
type =yhfddisys ndisdriver yhfddidriver
use =driver
yhfddi网卡在如下路径的networkcards子键里介绍:
hkey_local_machine\software\microsoft\
windows nt\nt3.51\networkcards\yhfddi1;
网卡的标准项包括以下这些值:
description =yhfddi/pci adapter controller
install date =……
manufacturer =net612
productname =yhfddi
servicename =yhfddi01
title =[01]yhfddi/pci adapter controller
§2.1.3编写inf信息配置文件
gui inf描述语言被windows nt用以书写系统所有部件的配置文件,当然也可以用以书写网络系统各部件的配置文件,该配置文件描述了网络部件安装、配置、删除的执行过程。当网络部件进行初始安装或二次安装(通常通过ncpa进行)时,安装程序读取部件对应的配置文件,进行解释执行。gui inf描述语言由节、命令、逻辑操作、变量规范、流程控制以及一套调用dll或外部程序的机制组成,其中,节是配置文件的主体,节可分为install节(类似于函数),shell节(也类似于函数,但可调用insall和shell节),detect节(不包含命令),一个配置文件一般由若干不同类型的节组成。驱动程序的开发者根据需要可以在配置文件中编写相应代码,使得用户和系统之间能进行交互,并且由用户决定一些配置参数。
nt网卡配置文件有其一套规范,驱动程序开发者必须按规范编写配置文件,一般来说,一个配置文件至少应该提供下面三个节:
安装入口点:[identify]shell节。该节主要功能是给出安装部件的类型名,系统通过它识别该部件属于哪一大类(display,mouse,scsi,network等)中的哪一类(网络adapter,driver,transport,service,network和netprovidor),同时,还需要给出映像文件和配置文件所在的源介质及标识。
[returnoption]shell节。系统执行安装identify节后,执行该节。它主要功能是检查所需安装的部件是否支持的硬件平台和语言,并给出网卡名(有些配置文件支持多类网卡,此时必须让用户进行选择,并获得选择结果)。
[installoption]shell节。该节是配置文件得主体,也是上次安装完后再次进行配置、删除、更新的入口点。主要功能是拷贝映像文件和配置文件,生成配置的各种选项,创建该部件在注册库中对应的各种登录子树并更新重写。
第二节 驱动程序的加载过程
§2.2.1 windows nt的启动过程
篇2
一、
1、右击计算机、管理、设备管理器;
2、点击设备管理器、其他设备、以太网控制器、更新驱动程序软件;
3、选择浏览计算机以查找驱动程序软件,浏览位置直接找到网卡驱动文件路径。
二、
1、用驱动人生备份原驱动:以防止新安装驱动和硬件不兼容,导致电脑运行问题。 进入驱动人生、驱动管理、选择驱动备份,勾中网卡,然后开始备份;
2、用驱动人生还原驱动:当我们发现新驱动还不如原始驱动时,就需要还原驱动;
篇3
1、本地连接未识别的网络,宽带连接已断开解决方法如下:右键点击桌面的计算机图标,选择设备管理器,在设备管理器下方找到网络适配器选项(确保已经安装匹配的网卡驱动程序)。
2、打开网卡驱动列表,找当前网卡驱动右键点击,选择禁用,然后再点击启用(恢复网络默认设置)。
3、还不行,使用疑难解答向导检测、维修即可。
(来源:文章屋网 )
篇4
关键词:计算机;硬盘还原卡;局域网;系统拷贝
中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)04-10960-01
1 问题的提出
计算机实验室常见的系统保护措施可以分为软件保护和硬件保护两种。软件保护通常采用“还原精灵”进行系统恢复,或是采用“GHOST软件”克隆系统[1];硬件保护一般采用还原卡,例如“小哨兵还原卡”、“三茗保护卡”之类的硬件扩展,进行系统恢复。
高校计算机中心、多媒体实验室等局域网络,承担着计算机实验教学和培训、计算机等级考试、以及计算机方面学术研究的多重任务,系统维护工作很频繁,也很繁重。上述保护措施仅能实现单机系统还原和维护,顶多利用“复制硬盘”功能进行两块硬盘之间的对考;却无法对相同配置的机器进行网络拷贝[2]。在机房维护和管理工作中,我们发现普通小哨兵还原卡经过一定设置,也可以实现网络拷贝功能。既可以在局域网内实现一对多网络拷贝,大量减轻系统维护工作量;又无需购买专门的网络拷贝硬件,如“小哨兵网管专家”、“小特工卡”等,可以节约一定资金。
2 小哨兵还原卡的普通功能
小哨兵还原卡是南京小哨兵科技有限公司开发的硬盘保护卡,安装在主板的PCI插槽上。它具有C盘保护、多盘保护、管理员口令设定、备份CMOS数据、更新硬盘数据、驱动软件升级、复制硬盘、移除还原卡、直接启动等功能[3]。启动计算机,在BIOS自检结束时按下CTRL+F10,输入管理员口令(默认口令为:manager),即可进入小哨兵还原卡安装设置界面。
快速安装:仅保护C盘;高级安装(或参数设置):可以设定多盘保护和数据恢复方式;设置管理员口令:初次设置或更改管理员密码;备份CMOS数据:自动分析并备份当前CMOS数据;更新硬盘数据:在没有移除还原卡的情况下,安装新软件后,执行更新数据操作,可以将软件正式安装到硬盘中;软件升级:升级还原卡驱动程序;复制硬盘:可以将硬盘中的数据完全复制到另一个硬盘中,此方法只适用在单机上进行一对一硬盘拷贝,并且要求硬盘磁头数和扇区数相同;直接启动:不调用还原功能,直接启动计算机,系统处于开放状态;移除小哨兵:如果决定不再使用小哨兵,可选择此项。
3 小哨兵还原卡的网络拷贝功能及其运行条件
所谓网络拷贝,就是将局域网内一台安装好的计算机作为发射端,同时向其它作为接收机的数十台甚至上百台电脑发射系统数据。网络拷贝一般可用30-50分钟完成局域网内多台电脑的系统传送,接收端计算机所有参数与发射机完全一样。传送完毕,逐台重启电脑,修改IP地址和计算机名就可以了。
小哨兵还原卡网络拷贝功能的运行环境是MS-DOS系统,网络拷贝的主程序是XSBnet.exe(小哨兵网络拷贝2.0测试版),软件大小为41KB。小哨兵还原卡网络拷贝的辅助程序是网卡驱动程序中的或 等可执行文件。在此,集录各种常见网卡对应的Dos平台下Pack Driver驱动文件,列表如下:
4 网络拷贝的实现
4.1 启动发射端
使用DOS启动盘,将安装好系统软件和应用软件的发射机启动到MS-DOS系统下,运行网卡驱动程序中的DOS驱动文件,加载网卡驱动程序包。例如:对于RealTek8139网卡,其命令语句为C:/> 0x60,如果屏幕显示:
System:[345]86 processor, PCI bus, Two 8259s
Packet driver software interrupt is 0x60
Interrupt number is 0x9
I/O port is 0x6100
My Ethernet address Is 00:0A:E6:11:61:6B等语句行,说明网卡已经识别。
在DOS下运行XSBnet.exe网络拷贝程序,显示小哨兵网络拷贝主界面。选择发送端按钮,回车确认,等待接收端登录到发送机。
4.2 启动接收端
移除小哨兵还原卡,在接收端启动MS-DOS系统,先运行文件,加载网卡驱动程序包,屏幕同样会显示:……My Ethernet address Is 00:0A:E6:11:61:6B等类似语句;然后运行XSBnet.exe文件,选择“接收端”并确认,将接收端连接到发送端。
4.3 数据拷贝
按同样方法,把每一台接收端都与发送端连接起来。这时,发送端将会显示登录成功的所有计算机编号(图1)。点击图1中的“开始发送”按钮,开始向接收端发送数据,并在发射端随机显示数据发送进度。同时,接收端将同步接收发送端传送的数据,并显示接收数据进度。
注意:只能选一台机器作为发送端,如果接收端进度条与发送端进度条不同步,说明该接收端已经掉线。可以等其它接收端接收数据完毕,再单独对此台计算机重新发送。
发送完毕,发送端和接收端将显示网络拷贝完成界面;选择退出按钮,退出网络拷贝程序。
5 结束语
网络拷贝功能硬件配置要求:主机CPU为PⅢ550以上,IDE、SCSI接口硬盘均可,系统盘剩余空间600MB以上,内存64Mb以上,10M/100M自适应网卡。
网络拷贝功能软件配置要求:适于Microsoft Windows 98,Windows 2000,Windows XP多种操作系统的网络拷贝,支持 NTFS、FAT32文件系统格式。若使用多系统开机,必须确认多重开机系统没有使用硬盘的MBR区块;否则可能会破坏操作系统。
进行小哨兵还原卡网络拷贝,要求发送端与接收端必须满足:相同的硬盘参数,主板相同,且主板BIOS版本号相同,并保证网络连接畅通。
建议先重装发送端计算机系统,再进行数据发送;否则,应先执行磁盘碎片整理,然后再发送数据,以加快网络拷贝速度。
若接收端在数据拷贝中途掉线,重启进入系统时发现磁盘容量变小。可在DOS下运行ClrPart.exe恢复磁盘参数(ClrPart.exe是磁盘参数的修复工具,可以在网络拷贝程序中找到);然后重启计算机,进入CMOS检测磁盘参数,并保存CMOS数据的改动。
对于Windows 98操作系统,不必安装小哨兵还原卡驱动程序。如果是Windows 2000或Windows XP操作系统,网络拷贝结束后,必须先以管理员身份登录计算机,安装小哨兵还原卡驱动程序;否则,还原卡起不到系统保护功能。
参考资料:
[1]程玉昆,等. 局域网计算机的Ghost安装[J]. 成都:西南民族大学学报,2005.3.
[2]储德军. 计算机实验室系统维护方法比较[J]. 北京:实验科学与技术,2005.3.
篇5
2、此时可以打开计算机系统属性窗口,点击左侧边栏的“设备管理器”菜单项。
3、这时可以打开电脑的设备管理器窗口,在这里找到“网络适配器”一项。
4、双击网络适配器菜单项后,可以打开该菜单,找到我们的网卡驱动。
5、右键点击网卡驱动程序,然后在弹出菜单中选择“属性”菜单项。
6、这时会打开网卡属性窗口,点击上面的“电源管理”标签。
篇6
3、打开在桌面上我的电脑,双击光驱;4.找到并打开USB网卡客户端程序和驱动程序文件夹;5.加载驱动;
6、安装客户端软件;
7、配置客户端,用无线网卡模拟AP;
8、打开手机设置,打开无线局域网设置,连接模拟AP;
篇7
一、TCP/IP体系结构
TCP/IP协议因简洁、实用而得到了广泛的应用,TCP/IP是由一组通信协议所组成的协议栈,主要由TCP协议(Transport Control Protocol,传输控制协议)、IP协议(Internet Protocol 因特网协议)协议组成。TCP/IP体系结构模型自下向上分别为:网络接口层(NetworkAccess)、互联网层(Internet layer)、传输层(Transport layer)、应用层(application layer)。
四层结构中在实际的网络系统中,有两个明显的分界点,即应用层与传输层是各种操作系统与应用软件的分界点;互联网层与数据链路层是逻辑网络与实际互联网络的分界点。
依靠这样的分层,使TCP/IP协议在全球范围内实现将不同硬件结构、不同操作系统、不同网络系统的互联成为Internet。
二、基于TCP/IP模型的Web服务通信过程
目前,普通高中校园网接入Internet广泛使用Web服务,www服务以Http协议为网络通信服务协议。校园网中的源主机A通过Internet的www服务访问另一台目的主机B上的资源,完成这样一次通信过程抽象模式如图1所示。
图1 www服务通信模型
源主机A在操作系统的支持下通过浏览器启动一个www服务进程A,通过本机的1668端口,向传输层的TCP协议请求;传输层将源端口号(1688)与需要向目标主机请求的www服务端口号(80)连同所要传输的数据一起封装在TCP报文中成为数据段(Segment),向主机A的IP层传输;在主机A的IP层,IP层将传输层的数据段看做数据(Data),与主机A的IP地址(192.168.155.166)和目标主机的IP(192.168.155.168)地址封装成网络层数据包(Packet)传输到下一层。这样,在主机A中,通过端口号(1688)唯一地确定了本机上的一个应用层程序,通过主机A的IP地址(192.168.155.166)唯一地确定了Internet中的一台主机,主机A的服务端口号(1688)与本机的IP地址(192.168.155.166),即TCP/IP模型中的套接字(Socket=IP+端口号)唯一地确定了Internet上的一个应用层程序。通过TCP/IP的网络接口层(在实际网络模型中为DL和PL)传输到主机B。主机B根据对等层通信原则,将下层数据包层层解封装以后,通过本机的端口(80)把主机A请求提交给应用层程序,进而再利用TCP/IP模型对等层的通信原则,将服务提供给主机B,从而完成网络服务。
从TCP/IP通信过程的分析和常见网络通信故障可知道,在实际的网络运行过程中,出现网络故障后,可以根据事实上的网络标准分层排查,确定故障点,进而排除故障,实现良好的网络维护与管理。
三、日常网络维护与管理实践
1.网络接口层维护与管理实践
在TCP/IP体系结构中,对网络接口层没有具体定义,但在实际应用的网络标准中,这层对应于OSI参考模型中的物理层(PL)和数据链路层(DLL)。
物理层(Physical layer)在实际网络层次体系结构中,物理层是在信道上传输透明的比特流,规定了机械的、电气的、功能的、规程的接口,以及相应的传输介质。对于具体物理层实体,例如:普通高中常见的PC机、集线器、交换机、路由器、Modem、光电转换器等设备,通常在保证网络传输介质(注意各种介质的最大传输距离限制)连通的状态下,主要查看各网络实体设备的信号灯,各设备模块的Link(LNK)灯应该是恒亮,Action(ACT)灯呈现闪烁状态。在对物理层设备排错的过程中,主要是确认网络传输介质(线序正确)及介质与设备接口连通良好,通过检查模块信号指示灯确认各个电子集成模块正常工作。
数据链路层(Data Link Layer)定义了将数据组装成正确帧的规程和在网络中传输帧(帧是指一串数据,它是数据在网络中传输的单位)的规程。包含网络接口卡(Internet Interface Card网卡)和各种设备适配卡及相关的驱动程序(目的在使各种底层硬件可以在TCP/IP网络相互联结通信)。在计算机安装的操作系统中,应根据不同的底层网络接口卡配置网卡驱动程序。例如:我们高中教师机和学生机用的Windows Xp Ghost系统,会自带与机器设备相匹配的万能网卡驱动,但对于较早版本的Windows系统,则需要手动安装所需的网卡驱动程序进而确保工作在这层的协议能在相关物理层设备的支持下正常运行。一般采用ping 127.0.0.1来测试loopback是否有响应;来确认是否为网卡驱动的故障。
路由器和交换机网络接口层故障检测,则在管理模式下检测各网络接口线路、带宽、速率、工作模式(双工/半双工)是否相匹配。
篇8
2、我们在电脑的桌面上找到计算机按钮,有的电脑上是显示我的电脑。
3、找到后我们右键点击我们的电脑,然后找到属性按钮。
4、进入到属性设置页面后我们在左边的快捷栏中找到设备管理器按钮,找到不到的看下面的配图。
5、进入到设备管理器页面后我们接着找到声音按钮,点击声音按钮后我们就能够看到声卡驱动了。
6、看到声卡驱动后我们在右键点击声卡驱动,然后点击卸载按钮。
7、等待几秒声卡驱动就能够卸载完成。
8、上面的步骤是卸载声卡驱动,因为要重新安装声卡驱动必须卸载原来已经安装好的驱动程序才能够重新安装,下面小编继续给大家介绍声卡驱动卸载完成后怎么重新安装声卡驱动。
9、我们打开搜索引擎,在搜索引擎的搜索框内输入360驱动大师下载,下载完成并且安装,安装好后打开360驱动大师。
10、打开后驱动大师会自动帮助你扫描电脑上的声卡驱动,包括显卡,网卡驱动程序,扫描完成后我们点击安装声卡驱动按钮。
篇9
引言
S1C33209是EPSON公司推出的RISC结构的32位高性能CMOS微处理器,具有高速、低功耗、低电压操作、精简指令集等特点,提供乘与累加功能,既可用于办公设备,也特别适用于需要高级数据处理的便携设备,可以进行高速运算、灵活的I/O口控制和高效的数据操作。S1C33209具有8KB的内部RAM,其运算速率可达60MHz,加上优化的多数为单时钟周期的指令集,使S1C33209吞吐量大为提高。S1C33209比常规MCU有更快的运算速度及可靠的性能、可重复编程的结构,使得精简的TCP/IP能够在其中可靠运行。
1 硬件平台结构及设计
信息家电远程访问时,通信数据量不大,10M以太网的通信速率即可满足要求;其次信息家电对实时性的要求不高,可定位在秒级。
在这种情况下,构造了家电网络硬件平台服务器S1C-WebServer,其结构如图1所示。S1C33-WebServer主要由三部分组成,即S1C33209微处理器、RTL8019AS全双工以太网控制器(RealTek公司出品,100脚的TQFP封装,最大速率10Mbps,自带16KB的SRAM,工作在Ethernet II和IEEE802.3、10Base5、10Base2、10BasetT下,全双工,支持8位与16位数据总线,与NE2000兼容)、可擦写Flash(采用Intel的E28F320,容量为4MB)。考虑到Flash的擦写在程序调试中不太方便,所以为S1C33209外围扩展512KB的SDRAM。在S1C33209中,运行用户程序和S1C33-Stack。在Flash中,存放S1C-WebServer的各种Web资源信息,综可处理Web页面、图像文件等,与PC机上WebServer中的硬盘可以存储大量的不同页面。Flash的容量决定了WebServer的资源文件的大小。RTL9019AS是Ethernet控制器,负责S1C33209与Ethernet的数据传递。在信息家电已具备RS232或相关标准接口的条件下,使用家庭自动化总线HAB(Home Automation Bus)作为S1C33-WebServer与家庭网络协议SHNP(Simple Home Networks Protocol)。家电通过RS232接口与S1C33-WebServer连接,经由EEthernet接入Internet。
经过分析,S1C33209与RTL8019AS读写时序是兼容的,而且MCU的读写时延比RTL8019AS小得多。MCU与RTL8019AS的连接如图2所示。RTL8019AS的工作电压为5V,而S1C33209的工作电压为3.3V,所以RTL8019AS的数据线输出需要电平的转换。选用2个8位(采用16位数据总线)的具有双向数据传输功能的74HC245来完成,由于S1C33209的输出电平符合RTL8019AS输入电平的要求,所以地址线可以直接相连,而不需电平转换,RTL8019AD中断信号(INT0)为高电平有效,在S1C33209中选用端口中断输入的K60端口与之相连。由于S1C33209的中断有效方式(高、低电平或脉冲)可以根据对寄存器的设置调节),所以不用对INT0作反向或电平转换。
2 精简TCP/IP协议栈的实现
构建的S1C33-Stack运行在以S1C33209嵌入式CPU为基础的硬件平台上,是一组可配置的多种Internet协议的组成。这些协议按照分层协议栈的方式组织,包括应用层的HTTP、DHCP、SMTP,传输层的TCP、UDP,网络层的IP/ICMP、ARP,通过链路层和物理层(如Ethernet)进行数据的交互。S1C33-Stack的结构模型如图3所示。S1C33-Stack利用S1C33的高速处理能力处理TCP/IP数据包,避免了在有限容量的RAM中缓存大量数据,使得控制器可以处理比内部RAM总线更多的数据包。利用嵌入的S1C33-Stack,Webserver能通过Hypertext Transfer Protocol(HTTP)与任何浏览器通信,能够提供各种类型的资源,如HTML、图片文件等。这些资源可以使用一种特殊的文件系统URI,被存放在容量为4MB的Flash中。这种文件系统可包含任意多的目录,对URL的长度也没有限制。
考虑到嵌入式系统的可用资源有限,在此采用经过裁减的TCP/IP协议栈—uIP。uIP协议主要包括TCP/IP协议组中的四个基本的协议:ARP、IP、ICMP、TCP。链路层协议,如PPP,则作为设备驱动在uIP底层实现。应用层协议,如HTTP、FTP、SMTP则作为应用程序在uIP上层实现。
(1)地址解析协议ARP
该协议将IP地址映射成以太网MAC地址。在uIP中,ARP的执行依靠维持一张表来完成IP地址和MAC的地址的映射。当有一个IP数据包要发送到以太网上时,从ARP表中查询相应的MAC地址。如果在ARP表中找不到IP地址则送出相应的ARP请求。当目的主机收到ARP请求报文后,发送ARP REPLY报文将请求的MAC地址送出。当收到ARP REPLY后,ARP表被更新。每隔10s,ARP表就被新新一次,旧的ARP表项将被删除。每个ARP表项的生存周期是20min。
(2)网间协议IP
在uIP中,IP层的代码有两个功能:验证到来的IP报文报头的正确性,并且对TCP和ICMP报文实行分流。因为不考虑IP的分片和重组,uIP中IP层的代码非常的精简。
(3)网间报文控制协议ICMP
在uIP中,仅有一种类型的ICMP信息被实现:ICMP ECHO主要用于应用程序ping,检查网络是否连通。在uIP中,ICMP ECHO通常以一种很简单的方式进行处理;将ICMP类型由“ECHO”改为“REPLY”,同时调整ICMP校验,交换发送方和接收方的IP地址。
(4)传送控制协议TCP
为了减少对内存的使用,在uIP中,TCP并不使用滑动窗口来接收和发送数据,到达的TCP报文并不进行缓冲而是立刻交给应用程序处理。但是应用程序本身可以对要发送的程序本身可以对要发送的数据进行缓冲,因为每次连接中通常有若干的TCP报文要发送。uIP网络通信模块结构如图4所示。
网络通信需要要底层RTL8019AS驱动程序的支持,参考RTL8019AS与S1C33209的资料说明文档,编写出针对此系统的RTL8019AS驱动。
uIP并不缓存到达的数据包,当网络上有数据包(在这里专指出太帧)到达网卡时,网卡驱动程序将暂存在网卡缓存中的数据包,一次一个的以DMA形式传送到目标板上的RAM中。这时将会有一段代码将到达目标板RAM中的数据包复制到全局数组uip_buf[]中,uIP协议栈程序随后对uip_buf[]中的数据进行操作。
当上层应用程序或协议栈程序产生了向网络上发送的数据包时,也将数据包放入uip_buf[]。然后调用网卡驱动程序,将uip_buf[]中的数据读到网卡的缓存中,随后发送到网络中。
在此要说明一下协议栈与网卡驱动程序、应用程序之间的同步机制问题。在系统初始化的时候,通过操作系统提供的系统调用vcre_tsk()创建三个任务:任务一(task1),uIP协议栈;任务二(task2),家电监控程序;任务三(idle_task),空闲任务。而网卡驱动程序则作为硬件中断,由“检测到网络上传过来数据包”事件激发。
整个协议栈程序流程图如图5所示。
任务一的优先级最高,任务二次之,任务三的优先级最低。当系统开始运行时,任务一首先进入RUN状态,在任务一中加入系统调用wai_flg(),由于没有网络请求,任务一随后进入WAIT状态。此时任务二进入RUN状态。当网络上有数据包到达,网卡驱动程序作为硬件中断开始执行。在退出中断前,通过系统调用set_flg(),将任务一期望的标志位置位。当中断返回后,由于任务一的等待条件已经满足,任务一的优先级又高于任务二,因此任务一进入RUN状态,即uIP协议开始处理数据。如果网络上一直有数据包到达,则任务一和中断程序不断的切换。当网络任务完成,返回到任务二的断点处继续向下执行。
由于uIP不缓存网络数据,因此在任务一执行的过程中,即uip_buf[]正在作时,将关闭所有中断。这样可以避免数据包被破坏,缺点是实时性差了一些,但是满足本系统要求。
3 操作系统
本系统使用的操作系统是由EPSON公司提供的ROS33V31。ROS33是为S1C33系列MCU提供的一种嵌入式实时操作系统,符合uITRON 3.0标准。使用ROS33可以迅速、有效地开发针对打印机、PDA以及各类控制设备的嵌入式应用程序。
ROS33具有以下特点:
*支持uITRON 3.0标准——符合该标准的S级*最大任务数为255,采用优先级调度机制,支持9种不同的优先级,提供信号灯、邮箱、消息缓冲等多种通信机制:
*内核优先并紧凑——最小可为1.7K;
*响应快——最快调度响应时间为7.8μS(CPU主频为33MHz,下同),最大中断屏蔽时间为4.3μs ;
*高级语言支持——除汇编语言外,还支持基于ANSI标准的C语言编程。
注释:μITRON将系统功能分成四级。R级(必要级)只提供包括实时、多任务OS所需的基本系统调用;S级(标准级)提供所有标准的系统调用;E级(扩展级)包括附加的和扩展的系统功能;C级(CPU依赖级)的系统功能依赖于具体的CPU和系统实现方式。
ROS33基本内核按功能划分为6大部分:
*任务管理——负责系统中任务状态的变迁;
*任务相关的同步管理——通过睡眠/唤醒、挂起/解挂等操作,处理相关任务及任务之间的同步关系;
*同步与通信——通过信号灯、事件、邮箱等通信机制,实现独立任务之间的同步与通信;
*系统管理——对系统环境的管理;
*时钟管理——日历时钟、定时器、定时任务等的管理;
*中断管理——开/关中断。
图6给出了ROS33内核的概念模型。
4 Web服务器及上层应用程序框架
WEB服务器所采用的方式称为uip_connect,比通常在设计中所使用的Socket套接字更适合于嵌入式系统下面即是WEB服务器的大体框架。
#include<uip.h>
void http_listen_init(void){
uip_listen(80);
} //http listen初始化
void listen_init(void){
http_listen_init();
}
void application(void){
if(uip_connected()) //如果当前的连接状态为connected
switch (uip_conn->lport){
case htons(80):
httpd; //如果80 PORT有数据到达,则调用HTTP处理HTML文件的传送
}
}
首先,服务器与客户机建立连接,再通过侦听端口80,判断是否有客户请求到达,若有则将调用应用程序httpd进行相应处理,否则,继续侦听。Httpd是用于处理HTTP请求的应用程序,具体设计在协议栈uIP中有描述。uip.h是协议uIP的一个头文件。
在应用软件上实现简单WEB服务器功能,其主要由两个模块构成:一是用户登陆模块;二是家电监控模块。用户登陆模块需要解决用户的合法性检查,即接收用户输入的用户名和密码,进行校验,合法则进入家单监控页面,非法则发出警告页面。家电监控模块针对各家电的硬件情况,收集信息家电的状态码,并通过网页形式显示。
在两个模块中,有一部分相似的处理,即对输入的数据进行解析。现在定义数组htmlinputs来存放解析后的信息。对表单输入的数据进行解析后,将其name值和value值分别存放在htmlinput_struct.name和htmlinput_struct.value里,便于以后的处理。变量htmlinputcount存放表单里输入变量的个数。定义如下:
struct htmlinput_struct htmlinputs[100];
int htmlinputcount=0;
除此外,定义函数get_inputs()和translate()对输入的数据进行处理。
Int get_inputs();//将从表单输入的数据分别装到对应的name/value数据队中
Void translate(char*sourcestr);//解读编码URL字符
具体程序代码在此就不再多述。
整个上层应用程序的流程图如图7所示。
篇10
>> 可以损害硬盘的几款软件 卫星数字机的自动搜索功能 附:女巫的黑豆 技术驱动搜索营销 一款实用的桌面端全文搜索工具:FileSearchy 搜索信息与下载文件 实时搜索将成新的搜索战场 软件搜索下载 我要快 专业搜索下载快快快 基于全文搜索的中文自动答疑系统设计实现 搜索营销与SEO 搜索你的成绩 搜索营销的细节 搜索的眼睛 企业搜索的未来 中国的“搜索之王” 《搜索》:时代的镜像 网上的整合搜索 搜索的是爱 妈妈的“搜索雷达” 常见问题解答 当前所在位置:
软件主页:http:///
软件授权:免费版
软件大小:24417KB
驱动精灵利用先进的硬件检测技术,配合驱动之家近十年的驱动数据库积累,能够智能识别你的计算机硬件,匹配相应驱动程序并提供快速的下载与安装。你可以毫不在乎你的计算机硬件配置,彻底扔掉驱动程序光盘,忘记那些你根本也不想去了解的厂商和驱动网站,把驱动程序的安装与升级交给驱动精灵来搞定。驱动精灵正式获得“微软Windows 7徽标计划”认证,兼容性和稳定性全部符合计划要求。
2 超级兔子驱动天使
最新版本:超级兔子驱动天使(完整版)2.75
华军下载:/soft/75575.htm
软件主页:/
软件授权:免费版
软件大小:28687KB
超级兔子驱动天使是一款功能强大的驱动下载安装利器,可以自动识别当前计算机硬件的驱动信息,一键安装所有驱动。安装驱动过程中,你无需任何驱动光盘,不用知道设备型号,它会自动检测设备品牌型号,方便快捷地为你安装设备驱动。它具备全面安全的驱动备份和还原功能,让你无后顾之忧,即使安装错误,也可以轻松恢复。
3 驱动人生
最新版本:驱动人生2.26 build 2030
华军下载:/soft/84181.htm
软件主页:/
软件授权:免费版