文档库 最新最全的文档下载
当前位置:文档库 › 基于SharpPcap的多线程局域网监听技术研究

基于SharpPcap的多线程局域网监听技术研究

基于SharpPcap的多线程局域网监听技术研究
基于SharpPcap的多线程局域网监听技术研究

收稿日期:2011-04-29;修订日期:2011-08-15

作者简介:鲁翠柳(1974-),女,山东莱阳人,讲师,研究方向:计算机网络安全。

0引言

ARP 欺骗攻击作为一种典型的网络欺骗类攻击,通过利用ARP 协议设计本身存在的漏洞,从而构造伪造的ARP Request 包或ARP Reply 包攻击主机。例如,可以通过发送伪造的ARP Reply 包来更新目标主机的ARP 缓存

表,从而使攻击主机伪装成目标主机一个通信对象,然后即可对目标主机实施有效攻击或网络数据包监听。

该文通过详细分析ARP 协议工作原理,利用高性能SharpPcap 开发驱动并引入线程池技术,提出了一种针对局域网的多线程网络监听技术。同时,也将传统的监听方法进行实验测试对比。最后,提出了相应的反监听措施。

1ARP 协议工作原理概述

ARP 协议[1]是“Address Resolution Protocol ”(地址解析协议)的缩写,其属于标准TCP/IP 协议族。在局域网中(该文以Ethernet 为标准),网络中实际传输的是“帧”,Ethernet 帧结构当中包含目标主机的MAC 地址及源主机MAC 地址。以Ethernet 为例,一个主机要和另一个主机进行直接通信,则必须要知道目标主机的MAC 地址。而目标主机的MAC 地址的初次获得,便是通过ARP 协议。以主机A (192.168.1.5)向主机B (192.168.1.8)发送数据为例,如果主机A 的ARP 缓存表中未包含主机B 的MAC 地址,就会在

网络上发送一个ARP Request 广播报文(即目的MAC 地址为"FF-FF-FF-FF-FF-FF"),而广播内容为:"192.168.1.8的MAC 地址是什么?"局域网内非目标主机不响应该ARP 询问,只有主机B 接收到这个数据帧时,才向主机A 做出回应:"192.168.1.8的MAC 地址是00-0B-DB-47-70-24"。之后,主机A 便了解主机B 的MAC 地址,因此即可以和主机B 进行通信了。同时主机A 还更新了自己的ARP 缓存表,以便下次再向主机B 发送数据时,可以直接从ARP 缓存表里查找[2]。

此外,如果源主机没有发送ARP Request 包而收到其他主机的ARP Reply 数据包,源主机也会在本地ARP 缓存表中记录该主机物理地址与IP 地址的对应关系,因为,ARP 设计是假设局域网中各主机之间的通信是建立在完全信任的基础上。当然,也正因为ARP 这种无状态性,导致了大量的ARP 欺骗攻击。

2基于SharpPcap 的多线程监听技术

2.1SharpPcap 简介

文中利用SharpPcap 是.Net 平台下一个免费、公共的网络访问系统,简单的说它利用.Net Framework 下的平台调用服务将WinPcap 底层网络访问驱动进行统一封装,同时对其进行了扩展支持。提供了基于CLR 的托管方法和属性。SharpPcap 可以枚举并显示Windows 操作系统中的物

理网络接口的细节,通过指定的网络适配器接口捕获或发

第30卷第12期2011年12期

煤炭技术

Coal Technology

Vol.30,No.12December,2011

基于SharpPcap 的多线程局域网监听技术研究

鲁翠柳

(盐城机电高等职业技术学校信息工程系,江苏盐城224005)

摘要:通过分析ARP 协议存在的漏洞及局域网基本工作原理,提出了基于SharpPcap 平台的多线程网络监听技术。该技术通过向被监听主机发送ARP REQUEST 包来实现任意两台局域网主机间的通信监听,同时利用线程池技术,避免了频繁创建、销毁线程的开销,实现了非阻塞通信,有效改善了算法性能。实验结果显示,监听分析过程稳定,数据包捕获率高。

关键词:ARP 欺骗;多线程;SharpPcap ;网络监听

中图分类号:TP39

文献标识码:A 文章编号:1008-8725(2011)12-0151-02Research of Multi-Threading LAN Monitoring Based on SharpPcap

LU Cui-liu

(Information Engineering Depaetment of Yancheng Electromechanical Vocational and Technical School,Yancheng 224005,China )

Abstract:By analyzing the ARP protocol leak and LAN basic working principle of the platform based on multi -threaded SharpPcap network monitoring technology.The technology to be monitored by the host sends ARP REQUEST packets to the LAN hosts to achieve any communication between the two hosts,while using thread pool,to avoid the frequent creation,destruction of the overhead of thread to achieve a non -blocking communications,effectively improved the performance of the algorithm.The results showed that monitoring of the process is stable and high data packet capture rate.

Key words:ARP spoofing;multi-threading;SharpPcap;network monitoring

欢迎订阅煤炭技术

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

!!!!!!!!"

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

!!!!!!!!"

图1

算法中监听流程

送底层网络数据包,并可分析解析常用协议,处理(读取和写入)离线数据包捕获文件及通信数据统计分析。文中所介绍的网络监听方法就是基于SharpPcap 实现的[3]。2.2非阻塞通信

所谓非阻塞通信是针对阻塞通信而言,简单概括就是指当线程执行监听方法时,如果操作还没有完成,并不会继续等待,而是在函数调用栈中立即返回上一层,文中介绍的方法便是利用非阻塞通信技术来提高算法的并发性。具体在.Net 开发框架下,可以通过委托进行方法的异步调用来完成相关操作,就是说程序异步调用相关函数,从而本身并不会因为方法的调用而中断,取而代之是从线程池中抓取一个线程去执行该方法,本身线程(主线程)在完成抓取线程这一过程之后,继续执行下面的代码,这样就实现了代码的并行执行。使用线程池的好处就是避免了频繁进行异步调用时创建、销毁线程的开销。在数据包捕获这个模块中,如果采用同步方法,程序会一直阻塞在数据包捕获这个状态下,直到用户发出停止指令或者是捕获了指定数目的数据包。采用了异步方法后,主线程可以在数据包捕获的同时进行其他操作,如果有数据包捕获,则调用之前注册的数据包捕获事件处理方法,这个过程即是异步回调,它极大地提高了算法整体的并行操作能力[4]。

2.3核心方法概述

在上文中,知道ARP 协议是无状态协议。因此,即便某台主机未广播获得某目的主机的ARP Request 包,而收到一个来自于另1台主机的ARP Reply 包也会根据报文内容来更新本机的ARP 缓存表。所以,如果主机A 和主机B 在进行正常通信的时候,主机C 可以向主机A 发送一个伪

造ARP Reply 包,即伪造主机B 的IP 地址的MAC 地址为主机C 的地址,使得主机A 将主机B 的MAC 地址更新为主机C 的,同理主机C 也对主机B 进行类似的欺骗操作。最后,主机A 和主机B 的单向通信被篡改,所有数据包都途径主机C ,进而可以进行数据监听。然而,最新版Win -dows 或者Linux 操作系统已经修补了该漏洞,对于类似的ARP Reply 包,主机直接丢包,防止被篡改[5]。

不过,ARP 协议设计当初,为了考虑降低不必要的网络通信量,在某台主机广播ARP Request 包时会将自己的IP 地址和MAC 地址映射信息填入报文,从而当某台主机收到ARP Request 包后,即便不需要发送ARP Reply 包,也会根据请求报文中源MAC 和源IP 地址映射信息来更新自己ARP 缓存表。而这一点正是该文所述的新监听方法的切入点。例如主机A 和主机B 进行正常通信时,监听主机C 则分别对主机A 和B ,发送伪造的ARP Request 包。对于主机A 发送的请求报文,将源MAC 填充为主机C 的MAC 地址,源IP 则篡改为主机B 的IP 。因此,主机A 会将主机B 的MAC 地址误更新为主机C 的,同时理应发给主机B 响应报文也发给了主机C 。同理,发给主机B 的请求报文将源IP 篡改为主机A 的IP 。这样逻辑上的主机A 与主机B 的双向通信已经在中途夹杂了监听主机C 。

具体的算法实现,利用SharpPcap 开发包完成,流程如下:(略)。

3结论

通过实验分析,以校园网络为基本测试环境。选定网段10.64.10.*,对比传统ARP 监听方法与文中提出的新方法。被监听主机操作系统为Windows 7Enterprise ,在未启用任何防火墙情况下。传统方法成功率为0%,文中提出的新方法成功率达到87.76%,2种方法实验次数均为10000次。同时由于采用多线程监听,算法稳定性强,并发程度高,以Windows 7作为监听主机操作系统,程序运行时,CPU 占有率为8%,线程数19,内存总占用1340KB ,分页大小为128KB 。由此,该监听方法总体优于传统监听方法[6]。

参考文献:

[1]吴功宜.计算机网络高级教程[M].北京:清华大学出版社,2007.[2]谭思亮.监听与隐藏-网络侦听与数据保护技术[M].北京:人民邮电出版社,2002.

[3]谢希仁.计算机网络[M].第5版.北京:电子工业出版社,2008.[4]刘文涛.网络安全开发包详解[M].北京:电子工业出版社,2005.

[5]W .Richard Stevens .TCP/IP 详解卷1:协议[M].北京:机械工业版社,2009.

[6]

郑明雄,李辉,蒋朝根.基于NDIS 中间层的包截获及分析处理[J].现代计算机,2004,20(3):65-66.

(责任编辑

吕瑶)

煤炭技术第30卷

·152

·

多核与多线程技术的区别到底在哪里

多核与多线程技术的区别到底在哪里? 【导读】:毫无疑问的,“多核”、“多线程”此二词已快成为当今处理器架构设计中的两大显学,如同历史战国时代以“儒”、“墨”两大派的显学,只不过当年两大治世思想学派是争得你死我亡,而多核、多线程则是相互兼容并蓄,今日几乎任何处理器都朝同时具有多核多线程的路线发展迈进。毫无疑问的,“多核”、“多线程”此二词已快成为当今处理器架构设计中的两大显学,如同历史战国时代以“儒”、“墨”两大派的显学,只不过当年两大治世思想学派是争得你死我亡,而多核、多线程则是相互兼容并蓄,今日几乎任何处理器都朝同时具有多核多线程的路线发展迈进。 虽然两词到处可见,但可有人知此二者的实际差异?在执行设计时又是以何者为重?到底是该多核优先还是多线程提前?关于此似乎大家都想进一步了解,本文以下试图对此进行个中差异的解说,并尽可能在不涉及实际复杂细节的情形下,让各位对两者的机制观念与差别性有所理解。 行程早于线程 若依据信息技术的发展历程,在软件程序执行时的再细分、再切割的小型化单位上,先是有行程(Process),之后才有线程(Thread),线程的单位比行程更小,一个行程内可以有多个线程,在一个行程下的各线程,都是共享同一个行程所建立的内存寻址资源及内存管理机制,包括执行权阶、内存空间、堆栈位置等,除此之外各个线程自身仅拥有少许因为执行之需的变量自属性,其余都依据与遵行行程所设立的规定。 相对的,程序与程序之间所用的就是不同的内存设定,包括分页、分段等起始地址的不同,执行权阶的不同,堆栈深度的不同等,一颗处理器若执行了A行程后要改去执行B行程,对此必须进行内存管理组态的搬迁、变更,而这个搬迁若是在处理器内还好,若是在高速缓存甚至是系统主存储器时,此种切换、转移程序对执行效能的损伤就非常大,因为完成搬迁、切换程序的相同时间,处理器早就可以执行数十到上千个指令。 两种路线的加速思维 所以,想避免此种切换的效率损耗,可以从两种角度去思考,第一种思考就是扩大到整体运算系统的层面来解决,在一部计算机内设计、配置更多颗的处理器,然后由同一个操作系统同时掌控及管理多颗处理器,并将要执行的程序的各个程序,一个程序喂(也称:发派)给一颗处理器去执行,如此多颗同时执行,每颗处理器执行一个程序,如此就可以加快整体的执行效率。 当然!这种加速方式必须有一个先决条件,即是操作系统在编译时就必须能管控、发挥及运用多行程技术,倘若以单行程的系统组态来编译,那么操作系统就无法管控服务器内一颗以上的处理器,如此就不用去谈论由操作系统负责让应用程序的程序进行同时的多颗同时性的执行派送。 即便操作系统支持多程序,而应用程序若依旧只支持单程序,那情形一样是白搭,操作

局域网监听软件的设计实现分析

毕业设计(论文) 设计(论文)题目:局域网监听软件的设计与实现 学院名称:电子与信息工程学院 专业:计算机科学与技术 班级:10计科(2) 姓名:XXXX 学号XXXXXXXX 指导教师:XXXX 职称教授 定稿日期:2014年4月30日

局域网监听软件的设计与实现 摘要 互联网给我们的社会和个人带来了太多的便利和益处。社会运作包括公共设施及其服务、政府运作和个人生活,已经越来越离不开电脑和互联网了。这使得互联网安全这一潜在威胁迅速、悄然但又爆炸式地产生了。公民个人的隐私、通讯和表达自由受到直接冲击。从邮件、电话到电子文档和其他资料,乃至行踪、消费记录等,我们似乎可以变成透明。最近沸沸扬扬的棱镜门和Heartbleed漏洞更是为世人敲响了网络安全的警钟。对局域网内数据监听系统的研究,对于维护网络的稳定性和解决网络安全问题有着重要的意义,它可以用来帮助诊断网络中的路由设备,其他的网络连接设备,查看网络上数据报的传送情况,利于网络管理员的管理与维护。 本局域网监听软件主要采用WinPCap开发工具和C++语言在VisualStudio2008编译器下进行开发。软件实现了对局域网内的数据进行捕获以及过滤,并分析出每一协议层的传输数据的主要字段和内容。之后再将其显示,同时进行动态更新。经过长时间的使用,证明该软件运行可靠稳定,捕获数据准确,易于使用。 关键词:互联网安全,局域网监听,WinPCap,多协议分析

DESIGN AND IMPLEMENTATION OF LAN MONITORING SOFTWARE ABSTRACT Internet has brought much convenience and benefits to our everyday life.Social functioning, including public facilities and services, government operations and personal life has become increasingly dependent on computers and the Internet. This makes the potential threat to Internet security quickly, quietly but explosively generated. The privacy of individual citizens, freedom of communication and expression direct impact. From e-mail, telephone to electronic documents and other information, as well as the whereabouts of consumer records, it seems that we can become transparent. Recent uproar the US surveillance program PRISM and Heartbleed loophole is for the world sounded the alarm for network security. Research on data monitoring system in LAN, plays an important role in maintainingthe stability of the network and solve the problem of network security, it can be used to help diagnose routing equipment in the network, the other network connection device, check the transmission of the data on the network,management and maintenance to the network

组建域模式局域网讲解

实验名称:组建域模式局域网 实现功能:1、客户端计算机能够加入到活动目录,访问域中资源并接受域的管理。 2、服务器端能够向客户提供域名解析、动态IP地址分配、信息浏览、文件下载和 电子邮件等服务。 实验目的:1、理解活动目录的概念,能够安装、配置活动目录,提供局域网内的活动目录服务。 2、理解DNS、DHCP、Web、FTP、邮件服务等概念,能够配置相 关成员服务器,提供相关应用服务。 【实验内容与步骤】 一、准备工作 1、规划服务器的IP、域名 角色IP 域名 域控制器192.168.1.11 https://www.wendangku.net/doc/cf9524504.html, DNS服务器192.168.1.11 https://www.wendangku.net/doc/cf9524504.html, Web服务器192.168.1.12 https://www.wendangku.net/doc/cf9524504.html, FTP服务器192.168.1.13 https://www.wendangku.net/doc/cf9524504.html, 邮件服务器192.168.1.14 https://www.wendangku.net/doc/cf9524504.html, 在服务器端打开“Internet协议(TCP/IP)属性”,设置分配给域控制器和DNS 服务器的IP地址。

单击“高级”按钮,在“IP地址”列分别添加两个IP地址,分配给Web服务器、FTP 服务器和邮件服务器。 2、创建测试文件 分别创建两个文件“index.html”和“ftp下载.txt”,用于测试DNS服务器和FTP 服务器是否可行。 二、域控制器的安装与配置

1、单击“开始管理工具配置您的服务器向导”,启动向导程序,开始安装活动目录。 2、根据安装向导提示,多次单击“下一步”直至弹出如下对话框。 3、选择“自定义配置”,在弹出的对话框中单击“域控制器(Active Directory)”。

Java多线程技术及案例

Java多线程技术及案例 进程和线程: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。 线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止。 多进程是指操作系统能同时运行多个任务(程序)。 多线程是指在同一程序中有多个顺序流在执行。 Java中多线程的多种实现方式 Java中有多种多线程实现方法,主要是继承https://www.wendangku.net/doc/cf9524504.html,ng.Thread类的方法和 https://www.wendangku.net/doc/cf9524504.html,ng.Runnable接口的方法。 继承Thread类 Thread是https://www.wendangku.net/doc/cf9524504.html,ng包中的一个类,从这个类中实例化的对象代表线程,启动一个新线程需要建立一个Thread实例。 使用Thread类启动新的线程的步骤如下: 1.实例化Thread对象 2.调用start()方法启动线程 构造方法:

public Thread(String threadName); public Thread(); 例程: publicclass Thread1extends Thread{//定义一个类继承Thread privateint count=1000; publicvoid run(){//重写run方法 while(true){ System.out.print(count+" "); if(--count==0){ return; } } } publicstaticvoid main(String[] args){ Thread1 th1=new Thread1();//实例化继承了Thread的类 Thread1 th2=new Thread1(); th1.start();//调用start()方法, th2.start(); for(int i=0;i<1000;i++){ System.out.print("A "); } }

局域网监控系统通用方案

☆☆局域网监控系统通用方案☆☆ ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆一、概述 网络视频监控产品是最近几年面世的第三代全数字化远程视频集中监控设备,利用它可以将传统摄像机捕捉的图像进行数字化编码压缩处理后,通过局域网、广域网、无线网络、Internet或其它网络方式传送到网络所延伸到的任何地方,千里之外的网络终端用户通过普通电脑就可以对远程图像进行实时的监控、录像、管理,不受时间与地域的限制。 在本系统规划调研阶段,我们对现在主流的监控模式进行了全方位的分析比较: 1、传统的模拟监控模式:需要在各分点与监控中心之间架设模拟图像传输的视频线、控制线。大型企事业单位,通常占地面积很大,铺设这些线路费时、费力、费钱。 2、基于网络视频服务器、网络摄像机的网络监控模式:通过在各分点配备网络视频服务器、网络摄像机,将本地监控摄像机拍摄的模拟图像进行数字化压缩处理后,利用企业原有的局域网上传到监控中心集中管理、录像、远程回放和对讲,联网的客户端电脑可以实时监控相关图像,也可以随时访问录像主机调用历史录像数据回放显示。

二、设计原则 1、基本情况介绍 根据我们对监控行业的了解和丰富的工程经验,认为其需求主要体现在以下几个方面: 视频监控覆盖各个监控需求的地方,对其进行24小时实时视频监控,有必要时还可以进行实时音视频监听; 在监控中心及局域网中的计算机上,可以远程控制各个监控点的摄像机云台、镜头,实现转动、变焦、变光圈、聚焦等控制; 在监控中心及局域网中的计算机上,能够实时接收前端传统报警装置传送的报警信息,实时监听报警点的音视频情况; 能够对以上所有视频信号进行长时间的音视频录像,局域网中的计算机能够随时调看历史录像资料; 具备完善的安全级别控制,实现完善的安全策略管理; 支持在监控中心将所有视频图像输出到电视墙显示,具备视频矩阵功能,支持大容量的系统扩容; 2、方案设计原则 根据项目的要求和国家有关法规的要求,我们经过认真研究、分析设计本系统方案。该系统具有性能先进、质量可靠、经济实用等特点,而且该系统具有方便扩展、与其它信息系统实现无缝连接的能力。为实现安防系统的可视化管理奠定了基础。 依据、参考的相关规范包括:

多线程编程的原则及要点

2.4多线程编程的原则及要点: 随着多核CPU的出世,多核编程方面的问题将摆上了程序员的日程,有许多老的程序员以为早就有多CPU的机器,业界在多CPU机器上的编程已经积累了很多经验,多核CPU上的编程应该差不多,只要借鉴以前的多任务编程、并行编程和并行算法方面的经验就足够了。 但是,多核机器和以前的多CPU机器有很大的不同,以前的多CPU机器都是用在特定领域,比如服务器,或者一些可以进行大型并行计算的领域,这些领域很容易发挥出多CPU的优势,而现在多核机器则是应用到普通用户的各个层面,特别是客户端机器要使用多核CPU,而很多客户端软件要想发挥出多核的并行优势恐怕没有服务器和可以进行大型并行计算的特定领域简单。 多核CPU中,要很好地发挥出多个CPU的性能的话,必须保证分配到各个CPU上的任务有一个很好的负载平衡。否则一些CPU在运行,另外一些CPU处于空闲,无法发挥出多核CPU 的优势来。 要实现一个好的负载平衡通常有两种方案,一种是静态负载平衡,另外一种是动态负载平衡。 1、静态负载平衡 静态负载平衡中,需要人工将程序分割成多个可并行执行的部分,并且要保证分割成的各个部分能够均衡地分布到各个CPU上运行,也就是说工作量要在多个任务间进行均匀的分配,使得达到高的加速系数。 2、动态负载平衡 动态负载平衡是在程序的运行过程中来进行任务的分配达到负载平衡的目的。实际情况中存在许多不能由静态负载平衡解决的问题,比如一个大的循环中,循环的次数是由外部输入的,事先并不知道循环的次数,此时采用静态负载平衡划分策略就很难实现负载平衡。 动态负载平衡中对任务的调度一般是由系统来实现的,程序员通常只能选择动态平衡的调度策略,不能修改调度策略,由于实际任务中存在很多的不确定因素,调度算法无法做得很优,因此动态负载平衡有时可能达不到既定的负载平衡要求。 3、负载平衡的难题在那里? 负载平衡的难题并不在于负载平衡的程度要达到多少,因为即使在各个CPU上分配的任务执行时间存在一些差距,但是随着CPU核数的增多总能让总的执行时间下降,从而使加速系数随CPU核数的增加而增加。 负载平衡的困难之处在于程序中的可并行执行块很多要靠程序员来划分,当然CPU核数较少时,比如双核或4核,这种划分并不是很困难。但随着核数的增加,划分的粒度将变得越来越细,到了16核以上时,估计程序员要为如何划分任务而抓狂。比如一段顺序执行的代码,放到128核的CPU上运行,要手工划分成128 个任务,其划分的难度可想而知。

多线程技术在数据通信中的应用

多线程技术在数据通信中的应用 发表时间:2016-12-14T09:50:36.467Z 来源:《基层建设》2016年22期作者:黄华[导读] 摘要:随着信息科学技术的突飞猛进,人们社会已经进入“信息化时代”,大量先进的信息科学技术被人们广泛地应用到各行各业中,并转化为先进的生产力。 身份证号:45032519860724**** 广西南宁 530000 摘要:随着信息科学技术的突飞猛进,人们社会已经进入“信息化时代”,大量先进的信息科学技术被人们广泛地应用到各行各业中,并转化为先进的生产力。尤其,数据通信中多线程技术的应用既能进一步提升数据通信的应用效果,又能很好的满足人类对数据通信的需求。文章介绍了多线程技术相关知识,探讨了多线程技术在数据通信中的实际应用,希望对数据通信有所帮助。 关键词:多线程技术;数据通信;应用 一、绪论 一般情况下,相关技术人员在设计数据通信软件系统的过程当中,它的硬件设施绝大部分均需要与远程设备进行通信处理,而这种通信处理重点通过通信信道自一端往另外一端发出指令进而实现数据信息的有效传输。值得注意的是,这些数据信息在传输的过程当中需要一定时间的延迟。所以,技术人员在设计数据通信软件系统的过程当中,需在整个通信软件系统内部设计出一个循环系统,尽可能地克服延时现象,进而确保整个通信软件系统的正常、高效运转。多线程技术在数据通信中的应用正好能有效的解决这些难题,能够有效的提升数据通信的安全性与高效性。 二、多线程技术及适用场合 多线程技术的实质为在整个通信系统程序当中具有三个或三个以上的线程来共同负责用户信息的输入。多线程技术在数据通信的实际应用当中非常重要,尤其需要特别注意多线程技术的适用场合,不可盲目,为此,需要在设计多线程技术模型的过程当中,重点考虑下边三个问题:一是必需有一个能够等候用户输入信息的主循环程序;二是必需有一个能够为整个通信系统提供用户输入信息处理的模块;三是必需有一条规范的保证数据通信运行正常的机制,以确保用户在数据信息的输入过程当中,通过数据通信系统内部的主循环程序确保工作的正常使用与高效运转。 为此,在数据通信系统正常运转的过程当中,倘若处理的数据信息程序较为繁杂,则可应用多线程技术来实现繁杂数据通信的高效处理,尤其能够同时处理用户输入的大量数据信息,极大的提高了处理的效率,也大大的缩短了用户输入数据信息的延迟时间。此外,多线程技术应用在数据通信过程当中,如果一个用户在输入信息的过程中自身并没有一个相应的模块,那么该系统也会通过整个系统的自动检索为用户提供其他用户相似的处理方式,通过数据通信系统最为关键的主程序循环系统进行全面的调度,帮助用户实现数据信息处理的优先性。 三、数据通信与多线程技术系统 通常情况下,在“OSI开放系统互连”栈式结构中具有一组协议,该组协议中物理层处于最低层,其主要承担数据的传输。而该组协议中的应用层为顶层,其功能主要是负责与用户的对接工作。例如,在一台电子计算机中,低层的物理层承担着将一端的数据信息传送到另外一端的链条上,从而确保数据信息能够从一端传输到另外一端的对等上。当数据信息传送完成以后,低层的物理层则处在待命状态,等待其他对等面的数据信息的传输。需要注意的是,低层的物理层并不会由于正在运行指令而而拒绝另外一个指令。为此,低层物理层的运转正是与多线程技术相吻合的。 四、多线程技术在数据通信中的应用 (一)多线程技术应用于数据通信的编程要素。 在数据通信系统当中应用多线程技术进行编程设计,必须熟练、准确掌握多线程技术有关技术要素:一是主循环。主循环也被称为主事件循环,其主要负责传送与接收事件,与此同时,主循环还承担着调度功能。二是向主循环通知事件,也就是为主循环产生事件模块。三是主事件循环通知它所发生的事件,也就是接收通知模块,接收通知模块也被人们叫做数据处理器。四是使主事件循环能够知道所有它需要监控的事件的机制。为此,每一个Eventhandler则能够及时通知主事件循环其需哪些事件。 (二)多线程技术应用于数据通信的编程设计 多线程技术在数据通信中的有效运用主要是通过编程设计去实现,具体的设计主要包括以下两个方面: 1.设计框。设计框包括主循环的编程设计、事件处理程序的编程设计以及事件处理程序子类的编程设计等方面。 2.主要操作。多线程技术应用于数据通信的主要操作程序如下表所示: 以上操作程序根据国际有关标准执行,不仅提升数据通信系统的准确性,而且保证了数据通信的安全性,与此同时,还大大的降低了数据通信系统维护的难度,操作性非常强,极大的提高了工作效率。 五、小结 在管理数据通信系统过程当中,为了进一步提高网络管理成效,保证其正常、高效的运转,尽量克服延时现象,人们可以应用多线程技术进而有效的确保数据通信的正常、高效运行。尤其,在数据通信中应用多线程技术,需要了解多线程技术及适用场合,并且熟练掌握多线程技术应用于数据通信的编程要素、编程设计等,从而有效的解决编程设计在数据通信实际应用过程中存在的有关问题。参考文献 [1]费翔林.多线程技术的研究与应用[J].计算机研究与发展.2000(04) [2]周兴铭.多线程技术的现状与前景展望[J].计算机工程与科学.2009(08) [3]刘爽.基于TCP/IP协议和多线程的通信软件的设计与实现[J].计算机工程与设计.2010(04) [4]伍光胜.多线程技术及其应用的研究[J].计算机应用研究.2010(01)

操作系统对多核处理器的支持方法

随着多核处理器的发展,对软件开发有非常大的影响,而且核心的瓶颈在软件上。软件开发在多核环境下的核心是多线程开发。这个多线程不仅代表了软件实现上多线程,要求在硬件上也采用多线程技术。可以说多核提供了可以大幅提升性能的机制,多核软件就是可以真正利用这一特点的策略。只有与多核硬件相适应的软件,才能真正地发挥多核的性能。多核对软件的要求包括对多核操作系统的要求和对应用软件的要求。 多核操作系统的关注点在于进程的分配和调度。进程的分配将进程分配到合理的物理核上,因为不同的核在共享性和历史运行情况都是不同的。有的物理核能够共享二级cache,而有的却是独立的。如果将有数据共享的进程分配给有共享二级cache的核上,将大大提升性能;反之,就有可能影响性能。进程调度会涉及到比较广泛的问题,比如负载均衡、实时性等。 面向多核体系结构的操作系统调度目前多核软件的一个热点,其中研究的热点主要有下面几方面:程序的并行研究;多进程的时间相关性研究;任务的分配与调度;缓存的错误共享;一致性访问研究;进程间通信;多处理器核内部资源竞争等等。这些探讨相互独立又相互依赖。考虑一个系统的性能时必须将其中的几点同时加以考虑,有时候对一些点的优化会造成另一些点的性能下降,需要用程序进行性能优化评测,所以合适的多核系统软件方案正在形成过程中。 任务的分配是多核时代提出的新概念。在单核时代,没有核的任务分配的问题,一共只有一个核的资源可被使用。而在多核体系下,有多个核可以被使用。如果系统中有几个进程需要分配,是将他们均匀地分配到各个处理器核,还是一起分配到一个处理器核,或是按照一定的算法进行分配。并且这个分配还受底层系统结构的影响,系统是SMP构架还是CMP构架,在CMP构架中会共享二级缓存的核的数量,这是影响分配算法的因子。任务分配结束后,需要考虑任务调度。对于不同的核,每个处理器核可以有自己独立的调度算法来执行不同的任务(实时任务或者交互性任务),也可以使用一致的调度算法。此外,还可以考虑一个进程上一个时间运行在一个核上,下一个时间片是选择继续运行在这个核上,还是进行线程迁移;怎样直接调度实时任务和普通任务;系统的核资源是否要进行负载均衡等等。任务调度是目前研究的热点之一。 在单核处理器中,常见的调度策略有先到先服务(FCFS),最短作业调度(SJF),优先级调度(Priority-scheduling algorithm),轮转法调度(round-robin RR),多级队列调度(multilevel queue-schedule algorithm)等。例如在Linux操作系统中对实时任务采取FCFS和RR两种调度,普通任务调度采取优先级调度。 对于多核处理器系统的调度,目前还没有明确的标准与规范。由于系统有多个处理器核可用,必须进行负载分配,有可能为每个处理器核提供单独的队列。在这种情况下,一个具有空队列的处理器就会空闲,而另一个处理器会很忙。所以如何处理好负载均衡问题是这种调度策略的关键问题所在。为了解决这种情况,可以考虑共同就绪队列,所有处理器公用一个就绪队列。但是这无疑对进程上下文切换、锁的转换增加了执行时间,降低了性能。另外一种想法就是选择一个处理器来为其他处理器调度,因而创建了主从结构。有的系统将主从结构作进一步扩

1基于线程的编程技术

实验一基于线程的编程技术 一.实验内容: 熟悉基于多线程的编程技术,编程实现简单的多线程编程实例。 题目可以选取教材或习题中的多线程编程实例。 二.实验目的和要求 1)掌握使用一门语言进行多线程编程 2)编写程序将多线程的执行过程动态的演示出来。 三.实验方法和步骤 线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。 多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。 多个线程的执行是并发的,多线程和传统的单线程在程序设计上最大的区别在于,由于各个线程的控制流彼此独立,使得各个线程之间的代码是乱序执行的,由此带来的线程调度,同步等问题。 1.实验方法 1)使用流程图描述演示程序的设计思想; 2)选取C++、JA V A等计算机语言,编程调试,最终给出运行正确的程序。 2.程序设计 方法一:继承Thread实现线程 public class MyThread extends Thread { int count= 1, number; public MyThread(int num) { number = num; System.out.println ("创建线程" + number); }

public void run() { while(true) { System.out.println ("线程" + number + ":计数" + count); if(++count== 6) return; } } public static void main(String args[]) { for(int i = 0;i 〈5; i++) new MyThread(i+1).start(); } } 方法二:实现Runnable 接口 public class MyThread implements Runnable { int count= 1, number; public MyThread(int num) { number = num; System.out.println("创建线程" + number); } public void run() { while(true) { System.out.println ("线程" + number + ":计数" + count); if(++count== 6) return; }

自考“局域网技术与组网工程”模拟题(1)及答案讲课教案

精品文档 精品文档 自考“局域网技术与组网工程”模拟题(1)及答案 一、单项选择题 1、在计算机局域网的构件中,本质上与中继器相同的是( )A 、网络适配器 B 、集线器 C 、网卡 D 、传输介质 2、IEEE802工程标准中的802.5协议是( ) A 、局域网的载波侦听多路访问标准 B 、局域网的令牌环网标准 C 、局域网的令牌总线标准 D 、局域网的互联标准 3、以太网帧首定界符是( ) A 、11010111 B 、10101011 C 、01010100 D 、11000101 4、下列属于10Base-T 中网卡与集线器之间双绞线接法的是( )A 、1-1,2-2,3-3,6-6 B 、1-3,2-6,3-1,6-2 C 、1-2,2-1,3-6,6-3 D 、1-6,2-3,3-2,6-1 5、10Mb/s 和100Mb/s 自适应系统是指( ) A 、既可工作在10Mb/s ,也可工作在100Mb/s B 、既工作在10Mb/s ,同时也工作在100Mb/s C 、端口之间10Mb/s 和100Mb/s 传输率的自动匹配功能 D 、以上都是 6、在双绞线媒体情况下,跨距可达( ) A 、100m B 、185m C 、200m D 、205m 7、交换型以太网可以( )A 、不受CSMA/CD 的约束 B 、增加带宽 C 、提高系统的安全性 D 、以上都是 8、交换型以太网( )A 、受到CSMA/CD 的约束 B 、站点数越多,平均带宽越小 C 、覆盖范围受到碰撞域的限制 D 、各独立网段是被隔离的 9、IEEE802.5协议定义的帧格式中,64bit 源地址字段中的第二个bit 置成“1”表示( )A 、一组地址 B 、广播地址 C 、全局管理地址 D 、局部管理地址 10、FDDI 中副环的主要功能是( ) A 、副环和主环交替工作 B 、主环忙时,副环帮助传输数据 C 、主环发生故障,副环代替主环工作 D 、主环发生故障,主环和副环构成一个新环 11、路由就是网间互联,其功能是发生在OSI 参考模型的(A 、物理层 B 、数据链路层 C 、网络层 D 、以上都是 12、在RIP 中有三个重要的时钟,其中路由无效时钟一般设为( )A 、30秒 B 、90秒 C 、270秒 D 、不确定 13、3Com 公司的FastIP 实现了主机到主机模式的NHRP 协议,这样可以( ) A 、隔离广播风暴 B 、可以进行流量控制 C 、减少中间的路由环节,从而提高网络性能 D 、提高交换速度 14、FastIP 的技术设计思想是( ) A 、用ASIC 硬件以线速来实现路由器的路由/转发等功能 B 、主要提高路由器的处理器速度 C 、把路由功能转换成基于端口的转发功能 D 、提高交换速度 15、VLAN 互联,基本上有边界路由、“独臂”路由器、路由服务器/路由客户机、A TM 上的多协议(MPOA )路由和( )A 、中心路由 B 、核心路由 C 、多层路由 D 、第三层交换 16、下列不属于第三层交换技术和协议的是( ) A 、IP 组播地址确定 B 、IGMP C 、ICMP D 、DVMRP 17、A TM 的物理层功能相当于OSI 七层参考模型中的( ) A 、物理层 B 、物理层和数据链路层 C 、数据链路层 D 、数据链路层和网络层 18、下面说法错误的是( ) A 、ATM 采用虚拟通道模式,通信通道用一个逻辑号标识 B 、通道的标识符是VPI 和VCI C 、每个VP 可以用复用方式容纳多达65535个VC D 、A TM 对信元在网络中传送期间出现的一切问题要进行相关处理 19、下列不属于系统安全的是( ) A 、防火墙 B 、加密狗 C 、认证 D 、防病毒 20、下列不属于设备间应防止气体的是( ) A 、SO2 B 、CO2 C 、NH3 D 、NO2 二、填空题(本大题共10个空,每空1分,共10分) 1、在系统设计时,必须按照以下五个方面进行,即建设目标、________、主要技术路线、方案设计原则和设备选型原则。 2、ATM 中的联接有两级:虚通路联接和_________. 3、建立虚拟局域网的交换技术一般包括端口交换、帧交换、_________三种方式。 4、FastIP 是基于局域网的_____________解决方案,它不是要替代路由,而是把交换和路由很好地结合在一起。或者说在路由是既成事实的情况下,设法对路由进行补充。 5、RIP 采用主动发送和被动接收的机制来实现路由信息的交换、RIP 有一个路由更新时钟,一般设置为_____________. 6、令牌环网是由令牌环网网卡、环路插入器、插入器电缆以及_________组成。 7、以太网交换器中,箱体模块式架构的交换器具有维修方便、_______和系统集成与配置灵活的优点。 8、千兆位以太网的PHY 层中包含了________、收发器以及媒体三个主要模块。

浅谈多核CPU、多线程与并行计算

0.前言 最近发觉自己博客转帖的太多,于是决定自己写一个原创的。笔者用过MPI 和C#线程池,参加过比赛,有所感受,将近一年来,对多线程编程兴趣一直不减,一直有所关注,决定写篇文章,算是对知识的总结吧。有说的不对的地方,欢迎各位大哥们指正:) 1.CPU发展趋势 核心数目依旧会越来越多,依据摩尔定律,由于单个核心性能提升有着严重的瓶颈问题,普通的桌面PC有望在2017年末2018年初达到24核心(或者16核32线程),我们如何来面对这突如其来的核心数目的增加?编程也要与时俱进。笔者斗胆预测,CPU各个核心之间的片内总线将会采用4路组相连:),因为全相连太过复杂,单总线又不够给力。而且应该是非对称多核处理器,可能其中会混杂几个DSP处理器或流处理器。 2.多线程与并行计算的区别 (1)多线程的作用不只是用作并行计算,他还有很多很有益的作用。 还在单核时代,多线程就有很广泛的应用,这时候多线程大多用于降低阻塞(意思是类似于 while(1) { if(flag==1) break;

sleep(1); } 这样的代码)带来的CPU资源闲置,注意这里没有浪费CPU资源,去掉sleep(1)就是纯浪费了。 阻塞在什么时候发生呢?一般是等待IO操作(磁盘,数据库,网络等等)。此时如果单线程,CPU会干转不干实事(与本程序无关的事情都算不干实事,因为执行其他程序对我来说没意义),效率低下(针对这个程序而言),例如一个IO操作要耗时10毫秒,CPU就会被阻塞接近10毫秒,这是何等的浪费啊!要知道CPU是数着纳秒过日子的。 所以这种耗时的IO操作就用一个线程Thread去代为执行,创建这个线程的函数(代码)部分不会被IO操作阻塞,继续干这个程序中其他的事情,而不是干等待(或者去执行其他程序)。 同样在这个单核时代,多线程的这个消除阻塞的作用还可以叫做“并发”,这和并行是有着本质的不同的。并发是“伪并行”,看似并行,而实际上还是一个CPU在执行一切事物,只是切换的太快,我们没法察觉罢了。例如基于UI 的程序(俗话说就是图形界面),如果你点一个按钮触发的事件需要执行10秒钟,那么这个程序就会假死,因为程序在忙着执行,没空搭理用户的其他操作;而如果你把这个按钮触发的函数赋给一个线程,然后启动线程去执行,那么程序就不会假死,继续响应用户的其他操作。但是,随之而来的就是线程的互斥和同步、死锁等问题,详细见有关文献。 现在是多核时代了,这种线程的互斥和同步问题是更加严峻的,单核时代大都算并发,多核时代真的就大为不同,为什么呢?具体细节请参考有关文献。我

同步多线程-(SMT)-技术基础

同步多线程(SMT) 技术基础 介绍 微处理器设计的发展和我们对速度的需求,诞生了很多新技术并使它们迅速发展,也使现在的以及下一代的处理器的效率和性能都有了提升。一定的体系结构下,在提高性能、降低开销和指令级并行性(ILP之间)加以平衡,可以降低平均CPI。 同步多线程技术(SMT)是一种体系结构模型,其目的是在现有硬件条件下,通过提高计算能力来提高处理器的性能。因此,同步多线程技术结合了多重启动处理器(超标量和VLIW)和多线程处理器的思想来增加并行度,进而提高性能。 多重启动处理器可以在一个周期内执行多条(2,4甚至8条)指令,而多线程和多处理器(SMP和CMP)结构可以同时或者在很少的延迟内执行来自不同线程的指令。SMT结构中,不仅在一周期内启动多条指令,而且也能在同一周期内启动来自相互独立的线程(或上下文)的指令。在理论上,这种改进运用了指令级并行性(ILP)和线程级并行性(TLP)技术来提高执行功能单元的效率。 同步多线程技术之前的研究 多重启动处理器(Multiple Issue Processors) 运用在超标量和VLIW上的多重启动处理器,其目的是为了降低平均CPI,通过在一个周期内启动多条指令,充分利用处理器的功能单元。要想有效利用多重启动处理器资源的关键就是在运行的程序中,发现足够的指令级并行性,通常这种并行性是由硬件决定的。超长指令字(VLIW)处理器每周期启动固定数目的操作,而这些操作是由编译器决定的。 超标量处理器通常是指“动态调度”(dynamically scheduled)的多重启动处理器,因为他们是通过硬件来发现代码中的并行性。不同的是,VLIW处理器通常是“静态调度”(statically scheduled)的,因为他们依靠编译器来发现并优化指令级并行性。 无论是动态或是静态调度,如何有效利用多重启动处理器,依赖于发现并利用指令级并行性。指令级并行性来自同一个上下文环境、程序或线程。CPU和编译器重新安排和启动指令,以此来最大限度的利用资源而不改变应用程序的完整性。在多重启动处理器中,如果不能发现足够的并行指令来填满发射槽(issue slot),那么资源就被浪费了。 超标量处理器现在大致有DEC/Compaq 21164, PowerPC, MIPS R10000, Sun UltraSparc 和 Hewlett Packard PA-8000。而VLIW处理器则包括Intel IA-64 (Itanium) 和Transmeta Crusoe。对多重启动处理器和使用记分牌(scoreboarding)和Tomasulo算法的动态调度已经有了很多研究,我将不再花费时间分析他们。 多线程处理器(Multithreaded Processors) 多线程处理器主要通过降低操作延迟以提高处理器的效率,比如说cache失效和需要长执行周期的指令。一个多线程处理器通过分配给每个线程独立的PC(program counter)和寄存器来保持线程间相互独立的状态。由于每个处理器在切换上下文时几乎没有延迟,所以每个周期可以启动来自不同线程的指令。如果处理器在每个周期切换上下文,这就叫做细颗粒(fine-grained)的多线程或交叉(interleaving)。粗颗粒(Course grain)的多线程处理器则是在某一线程出现长延迟时,才切换线程,以保证指令的持续启动。正是由于存在分离的、独立的上下文和指令资源,多线程体系结构才能利用线程级并行性(TLP),从而提高处理器的效率。多线程处理器通过比传统处理器更精细地共享处理器资源,从而

局域网监控系统概要设计说明书

软件工程 实验报告 实验名称:概要设计说明书 学号: 姓名:

实验2软件设计说明书 1引言 1.1背景 待开发软件系统的名称:局域网监控系统 开发者:宋钊 用户:需要对局域网内主机的活动监测的企事业单位 1.2编写目的 帮助用户和系统开发人员及测试人员了解本系统。 对系统进行功能分析,解释与确认。 作为开发人员详细设计和测试人员测试的标准。 本文档预期读者为实验室项目组成员,用户和测试人员。 1.3定义 在下面的说明中,我们用LANManager代表本产品名称“局域网监控与管理系统”。 Monitor为被监控端。 Manager为监控端。 1.4参考资料 【1】《Windows网络编程》清华大学出版社[美]Anthony Jones, Jim Ohlund著【2】《VC技术内幕》清华大学出版社潘爱民、王国印译 【3】《深入浅出MFC》华中科技大学出版社侯俊杰著 【4】《深入浅出Windows注册表》国防工业出版社李永编著 【5】《TCP/IP详解》电子书Stevens 著

2总体设计 2.1需求规定 本系统属于小型的局域网监控系统,主要可以实现对某一台甚至多台计算机进行屏幕监控。 本系统的主要输入项目: 1.监控端登录时需要的账号与密码; 2.监控端设定的监控目标 本系统的主要输出项目: 被监控端的屏幕信息。 2.2运行环境 2.3基本设计概念和处理流程 LANManager 系统是一种用于局域网下的C/S 模式的软件管理和监测系统。它包括客户端(Manager )和服务端(Monitor),服务端软件主要作用是监测本主机的活动,并响应客户端的请求返回本主机的活动信息。客户端接收到服务端返回的信息后在主界面显示出具体的信息供管理者察看,以达到监控局域网主机及方便管理计算机的功能。 2.4结构 系统的功能结构框图如下图所示; 其中Manager 端提供较大权限,以达到监控局域网的目的; Monitor 端则赋予一定的交流权限功能,以辅助局域网内联络交流功能的实现。系统总体提供监控主机软件配置、文件系统、注册表、进程信息、消息记录、IE 浏览记录、用户操作日志、数据包监控、屏幕 硬件 软件 最低配置 推荐配置 Windows 2000/XP Office XP/2003 CPU :1.5GHz 内存:128MB 网卡 CPU :2.0GHz 内存:512MB 百兆网卡

局域网监听原理与实现

浅析局域网的监听原理与实现 摘要:局域网的监听检测软件可以监视网络的状态,并利用这些信息来分析网络性能等。由于监听工具能有效的截获网络上的数据,所以它也对网络信息安全造成极大威胁。还必须采用各种反监听的检测措施以保护网络信息安全。软件设计包括用户界面部分、数据包的捕获与过滤部分、监听检测部分、数据解码部分。 关键字:网络安全;信息安全;监听;检测。 计算机局域网和Internet的发展给个人、企事业单位带来了革命性的改革和发展。同时又要面对网络开放带来的数据安全的新挑战和新危险:网络的安全访问、黑客的攻击等。一旦网络安全问题发生,通常会造成严重的后果,1994年曾发生过黑客在众多的主机和骨干网络设备上安装了网络监听软件,利用它对美国骨干互联网和军方网窃取了超过100000个有效的用户名和口令。所以必须加强网络安全意识,并及早发现防范。特别是企业更应该加强网络的安全控制。计算机网络监听和检测软件就是在这种情况下而产生发展起来。 一.监听原理 1.什么是网络监听网络监听是黑客们常用的一种方法。 当成功地登录进一台网络上的主机,并取得了这台主机的超级用户的权限之后,往往要扩大战果,尝试登录或者夺取网络中其他主机的控制友。而网络监听则是一种最简单而且最有效的方法,它常常能轻易地获得用其他方法很难获得的信息。在网络上,监听效果最好的地方是在网关、路由器、防火墙一类的设备处,通常由网络管理员来操作。使用最方便的是在一个以太网中的任何一台上网的主机上,这是大多数黑客的做法。 2.局域网监听的基本原理

根据IEEE的描述,局域网技术是"把分散在一个建筑物或相邻几个建筑物中的计算机、终端、大容量存储器的外围设备、控制器、显示器、以及为连接其它网络而使用的网络连接器等相互连接起来,以很高的速度进行通讯的手段。局域网具有设备共享、信息共享、可进行高速数据通讯和多媒体信息通信、分布式处理、具有较高的兼容性和安全性等基本功能和特点。目前局域网主要用于办公室自动化和校园教学及管理,一般可根据具体情况采用总线形、环形、树形及星形的拓扑结构。对于目前很流行的以太网协议,其手段。 起的所有主机,包中包含着应该接收数据包主机的正确地址,只有与数据包中目标地址一致的那台主机才能接收。但是,当主机工作监听模式下,无论数据包中的目标地址是什么,主机都将接收(当然只能监听经过自己网络接口的那些包)。在因特网上有很多使用以太网协议的局域网,许多主机通过电缆、集线器连在一起。当同一网络中的两台主机通信的时候,源主机将写有目的的主机地址的数据包直接发向目的主机。但这种数据包不能在IP层直接发送,必须从TCP/IP协议的IP层交给网络接口,也就是数据链路层,而网络接口是不会识别IP地址的,因此在网络接口数据包又增加了一部分以太帧头的信息。在帧头中有两个域,分别为只有网络接口才能识别的源主机和目的主机的物理地址,这是一个与IP地址相对应的48位的地址。传输数据时,包含物理地址的帧从网络接口(网卡)发送到物理的线路上,如果局域网是由一条粗缆或细缆连接而成,则数字信号在电缆上传输,能够到达线路上的每一台主机。当使用集线器时,由集线器再发向连接在集线器上的每一条线路,数字信号也能到达连接在集线器上的每一台主机。当数字信号到达一台主机的网络接口时,正常情况下,网络接口读入数据帧,进行检查,如果数据帧中携带的物理地址是自己的或者是广播地址,则将数据帧交给上层协议软件,也就是IP层软件,否则就将这个帧丢弃。对于每一个到达网络接口的数据帧,都要进行这个过程。然而,当主机工作在监听模式下,所有的数据帧都将被交给上层协议软件处理。而且,当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网时,如果一台主机处于监听模式下,它还能接收到发向与自己不在同一子网(使用了不同的掩码、IP地址和网关)的主机的数据包。也就是说,在同一条物理信道上传输的所有信息都可以被接收到。另外,现在网络中使用的大部分

相关文档