802.11协议在Linux内核中的实现
网络安全管理员考试题含参考答案
![网络安全管理员考试题含参考答案](https://img.taocdn.com/s3/m/a645d6bdf9c75fbfc77da26925c52cc58bd690fc.png)
网络安全管理员考试题含参考答案一、单选题(共30题,每题1分,共30分)1、小李在维护信息系统过程中,不小心把操作系统的系统文件删了,这种不安全行为属于()A、损坏B、物理损坏C、泄漏D、意外失误正确答案:D2、以下能有效预防计算机病毒的方法是()。
A、把重要文件压缩处理B、及时清理系统垃圾文件C、及时升级防病毒软件D、尽可能多的做磁盘碎片整理正确答案:C3、做渗透测试的第一步是:A、拒绝服务攻击B、漏洞分析与目标选定C、尝试漏洞利用D、信息收集正确答案:D4、在 window 系统中用于显示本机各网络端口详细情况的命令是:A、ipconfigB、netstatC、netviewD、netshow正确答案:B5、变更经理全面负责变更管理流程所有具体活动执行,保障所有变更依照预定流程顺利执行。
下面不是变更经理职责的是()。
A、确保变更请求得到有效评估,授权和实施B、确保具体的变更活动得以有效、正确的执行C、帮助变更主管协调必要的变更时间、人员等工作D、将工作任务具体分派到每个工作人员正确答案:D6、由于信息系统分为五个安全保护等级,其安全保护能力是()。
A、逐级递减B、与等级无关C、逐级增加D、与安全技术和安全管理相关正确答案:C7、下列不是操作系统安全配置的是()。
A、系统所有用户的密码都必须符合一定的复杂度B、当前在用的操作系统没有已知的安全漏洞C、为了方便用户使用,应启动FTP服务D、禁止启动不用的服务,例如Telnet、SMTP等正确答案:C8、传输层的主要功能是实现主机与目的主机对等实体之间的()。
A、物理连接B、端-端连接C、点-点连接D、网络连接正确答案:B9、2012年6月6日,著名的社交网站LinkedIn公司发生了一次安全事件,包含650万条记录包含哈希的密码被上载到一个俄罗斯的论坛上。
据报道,已有30多万个密码被破解,密码破解的原因是使用了哈希算法SHAI。
从上述案例中可以得出LinkedIn公司存在()安全漏洞。
Linux中Wi-Fi无线网络和AP无线热点的配置教程
![Linux中Wi-Fi无线网络和AP无线热点的配置教程](https://img.taocdn.com/s3/m/6739f5c7b8f3f90f76c66137ee06eff9aef8491a.png)
Linux中Wi-Fi⽆线⽹络和AP⽆线热点的配置教程0.Linux下的Wi-Fi配置⽆线⽹络飞速发展的今天,许多设备都提供了连接⽆线⽹络的功能。
那么Linux下的wifi到底该怎么配置、连接呢??开始配置之前,我们要说说iw家族。
iw是linux下常⽤的wifi配置⼯具,⽹上有相应的库和源码。
全名为wirelessTools。
配置wifi模块,并连接相应的⽆线⽹络过程:主要使⽤iwpriv命令(1)扫描可⽤的⽆线⽹络:复制代码代码如下:iwlist wifi-name scanning其中wifi-name为⽆线⽹卡的名字,⽐如⽹卡eth0就是系统默认的⽹卡名字, wifi-name可以⽤ifconfig查看,⼀般为ra0。
(2)看扫描到的⽹络信息,按要连接的⽹络类型进⾏配置。
以下为扫描到的⽹络:复制代码代码如下:iwlist ra0 scanning===>rt_ioctl_giwscan. 11(11) BSS returned, data->length = 1427ra0 Scan completed :Cell 01 - Address: C4:CA:D9:1D:9E:A0Protocol:802.11b/g/nESSID:""Mode:ManagedFrequency:2.412 GHz (Channel 1)Quality=7/100 Signal level=-87 dBm Noise level=-82 dBmEncryption key:offBit Rates:54 Mb/sCell 02 - Address: FC:75:16:A1:A9:16Protocol:802.11b/g/nESSID:"jxj_rd"Mode:ManagedFrequency:2.452 GHz (Channel 9)Quality=94/100 Signal level=-53 dBm Noise level=-92 dBmEncryption key:onBit Rates:54 Mb/sIE: WPA Version 1Group Cipher : TKIPPairwise Ciphers (2) : TKIP CCMPAuthentication Suites (1) : PSKIE: IEEE 802.11i/WPA2 Version 1Group Cipher : TKIPPairwise Ciphers (2) : TKIP CCMPAuthentication Suites (1) : PSKCell 03 - Address: C4:CA:D9:02:2A:70Protocol:802.11b/g/nESSID:""Mode:ManagedFrequency:2.462 GHz (Channel 11)Quality=83/100 Signal level=-57 dBm Noise level=-92 dBmEncryption key:offBit Rates:54 Mb/sCell 04 - Address: 14:D6:4D:75:CA:9CProtocol:802.11b/g/nESSID:"liangym"Mode:ManagedFrequency:2.472 GHz (Channel 13)Quality=100/100 Signal level=-27 dBm Noise level=-92 dBmEncryption key:onBit Rates:54 Mb/sIE: WPA Version 1Group Cipher : CCMPPairwise Ciphers (1) : CCMPAuthentication Suites (1) : PSKIE: IEEE 802.11i/WPA2 Version 1Group Cipher : CCMPPairwise Ciphers (1) : CCMPAuthentication Suites (1) : PSK如上:ESSID项的值即为⽆线⽹络的名字,如上的“jxj_rd”等。
网络与信息安全管理员习题含答案
![网络与信息安全管理员习题含答案](https://img.taocdn.com/s3/m/ffab237f4a73f242336c1eb91a37f111f0850d7c.png)
网络与信息安全管理员习题含答案一、单选题(共100题,每题1分,共100分)1、如果在具有层次结构的一组元素中,存在着一对一的关系,我们可以认为这样的数据的逻辑类型就是()。
A、集合B、线性结构C、树型结构D、图型结构正确答案:B2、"在配置账户加入本地组,可以右击某用户,在弹出的快捷菜单中选择"属性",打开用户的属性对话框,在该对话框中找到()选项卡添加进组。
"A、环境B、常规C、隶属于D、拨入正确答案:C3、密码策略中,关于密码复杂性的说法不正确的是()。
A、要求密码有最小的长度,如六个字符B、密码复杂性要求在创建新密码或更改密码时强制执行C、建议使用大小写字母、数字和特殊字符组成密码D、复杂密码可以长期使用正确答案:D4、链路聚合端口成员应保证,除了()。
A、端口成员速率一致B、端口成员同属一个VLANC、端口成员所用传输介质相同D、端口成员协商模式一致正确答案:D5、由于操作系统是绝大多数攻击的目标,因此操作系统官方公司不断推出()包以保证系统的安全性。
A、补丁B、兼容C、卸载D、容错正确答案:A6、利用各种通信手段,把地理上分散的计算机有机的连在一起,达到相互通信而且共享硬件、软件和数据等系统属于 ( ) 。
A、分布式计算机系统B、计算机网络C、终端分时系统D、多机系统正确答案:B7、以太网使用的介质控制协议是( )。
A、CSMB/CAB、CSMD/ACC、CSMA/CDD、CSMC/CA正确答案:C8、路径是指从目录中的某个目录层次到达一文件或子目录的描述,以()为分隔符。
A、\B、,C、/D、.正确答案:C9、根据《广东省计算机信息系统安全保护条例》规定,计算机信息系统的运营、使用单位没有向地级市以上人民政府公安机关备案的,由公安机关处以( )。
A、警告B、罚款1500元C、拘留15D、警告或者停机整顿正确答案:D10、关于跨交换机VLAN概念正确的是()。
linux 80211 认证过程
![linux 80211 认证过程](https://img.taocdn.com/s3/m/52d34ab4c9d376eeaeaad1f34693daef5ff7137e.png)
linux 80211 认证过程802.11是无线局域网的标准之一,定义了无线网络中设备之间的通信协议和认证过程。
在Linux系统中,认证过程分为四个阶段,即关联(Association),认证(Authentication),授权(Authorization)和密钥交换(Key Exchange)。
下面将详细介绍Linux上的802.11认证过程。
1.关联(Association):关联是客户设备与接入点(Access Point)建立连接的过程。
客户设备扫描附近的无线网络,并查找信号强度最好的接入点。
然后,客户设备向接入点发送关联请求,并提供自己的身份信息,如MAC地址、支持的安全机制等。
接入点验证这些信息,并决定是否与客户设备建立连接。
2.认证(Authentication):认证是指客户设备通过验证自己的身份合法性来获得接入网络的权限。
认证过程有两种方式:开放系统认证和共享密钥认证。
-开放系统认证:客户设备向接入点发送认证请求,接入点无条件通过认证请求。
这种方式不提供任何安全性,任何设备都可以连接到网络。
在Linux系统中,可以通过设置认证方式为“open”的参数来实现开放系统认证。
-共享密钥认证:客户设备向接入点发送认证请求,并提供预共享密钥(Pre-Shared Key,PSK)。
接入点使用相同的PSK对请求进行验证。
如果PSK匹配,认证成功;否则,认证失败。
在Linux系统中,可以通过设置认证方式为“wpa-psk”和提供正确的PSK来实现共享密钥认证。
3.授权(Authorization):授权是指接入点验证客户设备的身份合法性,并为其分配访问网络的权限。
在认证过程中,接入点会根据客户设备的身份信息来决定是否授权。
如果认证和授权都成功,客户设备可以继续后续操作,例如IP地址获取、DNS解析等。
4.密钥交换(Key Exchange):密钥交换是为了保证在接下来的通信过程中数据的加密和解密。
linux 中cfg80211_ops的调用关系
![linux 中cfg80211_ops的调用关系](https://img.taocdn.com/s3/m/b4280e53876fb84ae45c3b3567ec102de2bddff3.png)
cfg80211 是Linux 内核中用于处理无线局域网(WLAN)配置的子系统。
cfg80211_ops 是这个子系统中的一个关键结构体,它包含了一系列的操作函数指针,用于实现不同的无线功能。
这些操作函数通常会被设备驱动程序实现,并通过cfg80211_ops 结构体注册到cfg80211 子系统中。
下面是cfg80211_ops 中一些重要操作函数的调用关系:add_virtual_intf: 当需要添加虚拟接口时,cfg80211 子系统会调用此函数。
这通常发生在创建新的无线网络接口(如wlan0、wlan1 等)时。
del_virtual_intf: 当需要删除虚拟接口时,cfg80211 子系统会调用此函数。
change_virtual_intf: 当需要修改虚拟接口的属性时,cfg80211 子系统会调用此函数。
add_key 和del_key: 当需要添加或删除加密密钥时,cfg80211 子系统会调用这些函数。
get_station: 当需要获取与某个站点相关的信息时,cfg80211 子系统会调用此函数。
dump_station: 用于导出与站点相关的信息,通常用于调试或诊断目的。
set_wiphy_params: 当需要设置无线硬件参数时,cfg80211 子系统会调用此函数。
set_tx_power: 用于设置发射功率。
get_tx_power: 用于获取当前的发射功率。
set_rts_threshold: 设置RTS 阈值。
set_frag_threshold: 设置分片阈值。
此外,还有许多其他的操作函数,用于处理不同的无线功能和事件,如扫描、连接、断开连接、认证、关联等。
设备驱动程序在实现这些操作函数时,通常会与硬件进行交互,以实现相应的功能。
一旦驱动程序注册了cfg80211_ops 结构体,cfg80211 子系统就可以在需要时调用这些操作函数。
需要注意的是,具体的调用关系可能会因不同的设备和驱动程序而有所差异。
FUSION LINUX软件介绍
![FUSION LINUX软件介绍](https://img.taocdn.com/s3/m/4a8135c5b14e852458fb5761.png)
LINUX下WIFI驱动和配置接口介绍1.概要 (2)2.WIFI驱动程序架构 (2)2.1.驱动架构概要 (2)2.2.底层MAC (3)2.2.1.HAL (3)2.2.2.ATH (3)2.2.3.Rate Control(速率控制) (3)2.2.4.Packet Logging (数据包日志打印) (4)2.2.5.DFS(动态频率选择) (4)2.3.上层MAC (4)2.3.1.802.11层 (4)2.3.2.Shim层 (4)2.4.WBUF (5)3.用户配置接口 (5)3.1.出厂默认配置 (5)3.2.WEB配置 (6)3.2.1.Web服务器设计 (6)3.2.1.1变量名称 (6)3.2.1.2文件标签 (6)3.2.1.3WEB服务器应用 (8)3.2.1.4cfg命令的使用 (10)3.2.1.4.1添加/修改配置参数 (10)3.2.1.4.2删除配置 (10)3.2.1.4.3保存配置 (10)3.2.1.4.4翻译文件 (10)3.2.1.4.5输出配置 (10)3.2.1.4.6重置出厂配置 (10)3.2.2.环境变量 (11)3.2.3.WEB页面接口 (11)3.2.3.1Network页面 (11)3.2.3.2Radio配置页面 (13)3.2.3.3VAP(虚拟AP)配置页面 (15)3.2.3.4状态显示页面 (18)3.2.3.5通道信息页面 (19)3.2.3.6统计信息页面 (19)3.2.4.命令行配置接口 (20)缩写RSN(Robust Security Network)1.概要本文主要是基于PB44 damo板上的LINUX FUSION软件版本,对ATHEROS 的WIFI驱动程序架构和用户配置接口进行详细的描述(着重在用户配置接口)。
2.WIFI驱动程序架构2.1.驱动架构概要FUSION版本下的WIFI驱动使用了ATHTEROS 通用驱动程序框架,该程序适用于多种操作系统平台(如:LINUX,WINDOWS,VXWORKS等)。
nl80211 程序 例子
![nl80211 程序 例子](https://img.taocdn.com/s3/m/15985ebf951ea76e58fafab069dc5022aaea46f8.png)
nl80211是一个用于与Linux 内核的nl80211 驱动交互的库。
它允许用户空间程序与无线网卡进行交互,例如扫描无线网络、连接到网络等。
以下是一个简单的nl80211程序示例,该程序扫描可用的无线网络并打印其详细信息:c复制代码#include<stdio.h>#include<stdlib.h>#include<nl80211.h>#include<netlink/netlink.h>#include<netlink/socket.h>#include<netlink/attr.h>int main(void) {struct nl_sock *sk;struct nl_msg *msg;int err;int seq = 1;int flags = NLM_F_DUMP | NLM_F_REQUEST;struct nlattr *nest;struct nlattr *tb[NL80211_ATTR_MAX + 1];struct nl_msg *req;char buf[1024];struct nl_parser *parser;struct nl_cache *cache;int ifindex = 0; // 使用默认的无线网络接口sk = nl_socket_alloc();if (!sk) {fprintf(stderr, "Failed to allocate netlink socket.\n");exit(EXIT_FAILURE);}if (genl_connect(sk) < 0) {fprintf(stderr, "Failed to connect to generic netlink.\n");exit(EXIT_FAILURE);}req = nlmsg_alloc();if (!req) {fprintf(stderr, "Failed to allocate netlink message.\n");exit(EXIT_FAILURE);}nl_msg_put_header(req, sk, &seq, flags, NL80211_CMD_GET_WIPHY);nest = nla_nest_start(req, NL80211_ATTR_WIPHY);nla_put_u32(req, NL80211_WIPHY_INDEX, ifindex);nla_nest_end(req, nest);if ((err = nl_send_auto_complete(sk, req)) < 0) {fprintf(stderr, "Failed to send netlink message: %s.\n", strerror(-err));exit(EXIT_FAILURE);}parser = nl_parser_alloc();if (!parser) {fprintf(stderr, "Failed to allocate netlink parser.\n");exit(EXIT_FAILURE);}if ((err = nl_parser_start(parser, sk)) < 0) {fprintf(stderr, "Failed to start netlink parser: %s.\n", strerror(-err));exit(EXIT_FAILURE);}while (nl_recvmsgs(sk, buf, sizeof buf) > 0) {if ((err = nl_parser_next(parser)) < 0) {fprintf(stderr, "Failed to parse netlink message: %s.\n", strerror(-err));exit(EXIT_FAILURE);} else if (nl_msg_parse(parser, tb) < 0) {fprintf(stderr, "Failed to parse netlink attributes.\n");exit(EXIT_FAILURE);} else if (tb[NL80211_ATTR_WIPHY]) {struct wiphy *wiphy = nla_data(tb[NL80211_ATTR_WIPHY]);struct wiphy_info info;wiphy_info(*wiphy, &info); // 获取 wiphy 的信息并存储在 info 中,这里仅打印 wiphy 的名称和 wiphy 的频率范围。
mac80211分析报告
![mac80211分析报告](https://img.taocdn.com/s3/m/e6b683820c22590102029df2.png)
mac80211源码分析1.概述2.体系结构3.代码结构4.数据结构5.主要流程6.切换点7.主要函数8.速率控制1.1概述•mac80211:是一个Linux内核子系统,是驱动开发者可用于为SoftMAC无线设备写驱动的框架。
mac80211在内核空间实现STA模式,在用户空间实现AP模式(hostapd)。
•cfg80211:用于对无线设备进行配置管理,与FullMAC,mac80211和nl80211一起工作。
•nl80211:用于对无线设备进行配置管理,它是一个基本Netlink的用户态协议。
•MLME:即MAC (Media Access Control) Layer Management Entity,它管理物理层MAC状态机。
•SoftMAC:其MLME由软件实现,mac80211为SoftMAC实现提供了一个API。
即:SoftMAC设备允许对硬件执行更好地控制,允许用软件实现对802.11的帧管理,包括解析和产生802.11无线帧。
目前大多数802.11设备为SoftMAC,而FullMAC设备较少。
•FullMAC:其MLME由硬件管理,当写FullMAC无线驱动时,不需要使用mac80211。
•wpa_supplicant:是用户空间一个应用程序,主要发起MLME命令,然后处理相关结果。
•hostpad:是用户空间一个应用程序,主要实现station接入认证管理。
1.2体系结构HOSTAPD:WPAD:图2-1 系统框架1.3代码结构(/net/mac80211/)•ieee80211_i.h(主要数据结构)•main.c(主函数入口)•iface.c(虚拟接口处理)•key.c,key.h(密钥管理)•sta_info.c,sta_info.h(用户管理)•pm.c(功率管理)•rate.c,rate.h(速率控制函数)•rc80211*(速率控制算法)•rx.c(帧接收路径代码)•tx.c(帧发送路径代码)•scan.c(软件扫描代码)•mlme.c(station/managed模式MLME)•ibss.c(IBSS MLME)•cfg.c,cfg.h,wext.c(配置入口代码)•aes*,tkip*,wep*,michael*,wpa*(WPA/RSN/WEP代码)•wme.c,wme.h(QoS代码)•util.c(公共函数)1.4数据结构ieee80211_local/ieee80211_hw•每个数据结构代表一个无线设备(ieee80211_hw嵌入到ieee80211_local)•ieee80211_hw是ieee80211_local在驱动中的可见部分•包含无线设备的所有操作信息sta_info/ieee80211_sta•代表每一个station•可能是mesh,IBSS,AP,WDS•ieee80211_sta是驱动可见部分ieee80211_conf•硬件配置•当前信道是最重要的字段•硬件特殊参数ieee80211_bss_conf•BSS配置•多BSSes类型(IBSS/AP/managed)•包含比如基础速率位图•per BSS parameters in case hardware supports creating/associating with multiple B SSesieee80211_key/ieee80211_key_conf•代表加密/解密密钥•ieee80211_key_conf提供给驱动用于硬件加速•ieee80211_key包含book-keeping和软件解密状态ieee80211_tx_info•大部分复杂数据结构•skb内部控制缓冲区(cb)•经历三个阶段:1、由mac80211初始化;2、由驱动使用;3、由发送状态通告使用ieee80211_rx_status•包含接收帧状态•驱动通过接收帧传给mac80211ieee80211_sub_if_data/ieee80211_vif•包含每个虚拟接口信息•ieee80211_vif is passed to driver for those virtual interfaces the driver knows about (no monitor,VLAN)•包含的sub-structures取决于模式1.5主要流程配置•所有发起来自用户空间(wext或者nl80211)•managed和IBSS模式:触发状态机(基于workqueue)•有些操作或多或少直接通过驱动传递(比如信道设置)接收路径•ieee80211_tasklet_handler,响应中断,在下半部tasklet处理数据,•通过函数ieee80211_rx()接收帧•调用ieee80211_rx_monitor()拷贝帧传递给所有监听接口•调用invoke_rx_handlers()处理帧•如果是数据帧,转换成802.3帧格式,传递给上层协议栈ieee80211_deliver_skb( rx.c中) netif_receive_skb上送网络。
网络与信息安全管理员考试模拟题(附参考答案)
![网络与信息安全管理员考试模拟题(附参考答案)](https://img.taocdn.com/s3/m/059d1b8477eeaeaad1f34693daef5ef7ba0d12e9.png)
网络与信息安全管理员考试模拟题(附参考答案)一、单选题(共100题,每题1分,共100分)1、Linux中哪些无关账号需锁定()A、lpB、nobodyC、uucpD、以上都是正确答案:D2、职业道德是指从事一定职业劳动的人们,在特定的工作和劳动中以其()和特殊社会手段来维系的,以善恶进行评价的心理意识、行为原则和行为规范的总和。
A、理想目标B、内心信念C、评价标准D、纪律约束正确答案:B3、为规范了实现跨交换机VLAN,IEEE组织制定了()标准。
A、ISLB、VLTC、802.1qD、802.1x正确答案:C4、交换机如何知道将帧转发到哪个端口()。
A、读取源ARP地址B、用ARP地址表C、用MAC地址表D、读取源MAC地正确答案:C5、以下不可以配置操作系统的ip地址的方式是()?A、netstatB、vi /etc/config/networkC、ifconfigD、ipconfig正确答案:A6、运行OSPF协议的两台路由器无法正常建立邻居,不可能是以下那种因素()。
A、区域设置不一致B、设备型号不一致C、接口掩码不一致D、MTU不一致正确答案:B7、()主要指利用连接后台数据库中的Web应用程序漏洞,插入恶意SQL 语句,以实现对数据库的攻击。
A、SQL注入攻击B、跨站脚本攻击C、暴力破解攻击D、文件上传漏洞攻击正确答案:A8、Telnet协议引入了(),用于屏蔽不同计算机系统对键盘输入解释的差异。
A、NVTB、SQLC、PPPD、AAA正确答案:A9、面向个人免费、面向商业收费的形式,不仅扫描Web网站漏洞,同时还会发现Web服务器、服务器操作系统等漏洞它是一款Web网站形式的漏洞扫描工具()。
A、OWASP ZedB、NessusC、AWVSD、Nikto正确答案:B10、凡是在本地登录的用户,都隶属于()特殊组。
A、InteractiveB、EveryoneC、NetworkD、Anonymous Logon正确答案:A11、当网络设备配置错误导致了网络故障的时候,可以用()进行检查。
基于Linux的802.11b无线网络MAC层切换的分析和实现
![基于Linux的802.11b无线网络MAC层切换的分析和实现](https://img.taocdn.com/s3/m/baf3958f83d049649b6658e9.png)
第 5卷 第 3期 20 07年 6月
福建工 程 学院 学报
Ju a o ui nvrt o eh o g or l f j nU i s y f c nl y n F a e i T o
V0 . . 】5 No 3
Jn 07 u .2 0
0 引 言
继 有线 网络 的 蓬勃 发 展 之 后 , 无线 网络 也 在 强大 的需 求 推动 下 迅 速发 展 , 且 已经 提 出 了宽 并 带、 无线 、 动 的更 高需 求 。然而 无线 网络移 动性 移 却 带来 了新 的技 术 难题 : 换 。 如何 提高 8 2 1 切 0.1
摘要 :切换过程对无线移动 网络质量有重大的影响 , 而现 阶段 的 8 2 1b g对切换 的支持 并 不理 想。 0 . 1/
文章从理论 上分析 了8 2 1 b 线网络 MA 0. 1 无 C层切换 原理和 过程 , 根据 造成切换 延迟 和丢 包的 因素 , 提 出了切换 算法的改进策略 , 并且基 于 Lnx系统和 开源代码 对该 算法 完成 了软件 实现。 实验 结 果 iu
文章编号 :6 2— 3 8 20 )3— 26—0 17 4 4 (0 7 0 0 6 4
基 于 Ln x的 8 2 1 线 网络 MA iu 0 . l b无 C层 切 换 的
分 析 和 实 现
谭淼赕 ,蒋新 华 一,邹复 民 ,王桐森
(.中南大学信息科学与工程学院 , 1 湖南 长沙 408 ; .福建工程学院下一代互联网中心, 103 2 福建 福州 30 1) 504
h n o r c s r n lz d B s d o h n l ss a mp o e lo t m s p e e t d wi a d f p o e s a e a ay e . a e n t e a ay i , n i r v d a g r h i r s n e t i h r fr n e t e f cos w ih c u e t e ltn y a d p c e s .A d e n p o r m o i ag r m ee e c o t a t r h c a s e c n a k tl s a mo r g a f r h s lo t h h a o t i h i a c mp ih d o i u t p n s u c o i g h e u t h w t a e i r v d ag rtm a s c o l e n L n x wi o e o r e c d n .T er s l s o t h mp o e l o h c n s h s h t i
嵌入式Linux下基于802.11b的无线终端设计
![嵌入式Linux下基于802.11b的无线终端设计](https://img.taocdn.com/s3/m/9e7822d050e2524de5187e74.png)
P weQUI C家族 中 ,被广泛 使 的通 讯处理器 。它是嵌入 o r C 式处理器 内核 ( mb d e o eP oe e e d dP w rC c r)和通讯处理器模块
i 引言
过 去 的 卜 中 ,嵌入 式系 统的 开发 发 生 了很 大 的变化 。 年 以前嵌入式设备往往是一个孤 屯的、资源有 限的系统 ,它们追 求的足在有限的价格 I 满足一定的功能性耍求 。通常它们采
—
的设备链表来集体管理所有网络 设备,该没备链表 中的何个元
素代表 …个 网络设备接 L 。数 结十 e— e iel彳 很 多供系 ‘ J 句n td vc l 丁 l “
统 访
h r sa t ad tr
— —
件 设备只足 个 备文件 ,应用程序可 以像操作 普通义件 . } 对碰 什设 备进行操作 。设 备驱动程 序足 内核的… 部分 ,它完
那些功 能并不强大 的 C U。而今天人 f 对 嵌入式 设备在智能 P 『 J
( P )的双处 理器 的结构 ,片 内的数捌 和指令 c c e / CM a h ,I0
脚 的数 目,一个实时 时钟 ,低功耗特性和 ‘ 个增强的存储 控制
器 ,性 能远胜 丁 6 3 0QuI c。 86 c
卜 [
三 二]
2 无线 终端 的醺件 系统 没计
无线终端设 备的硬件模 块如 1 所 。
・ P weP o r C与 Fah AM 组成最小运行 系统 ,提供无 ls ,R
线终端设 备软件运行的环境 。P w rC还提供 一 以太网端 o eP 个 和一个 R 一3 S2 2串行 口,用于程序的 渊试、修改、编评及烧写。
} i亘二二二] 匣蒌 L曼 [二 二二
linux无线网络配置无线网卡驱动安装与wlan802.11配置
![linux无线网络配置无线网卡驱动安装与wlan802.11配置](https://img.taocdn.com/s3/m/8d26386aa417866fb84a8e2f.png)
Linux无线网络配置——无线网卡驱动安装与WLAN 802.11配置Linux无线网络配置——无线网卡驱动安装与WLAN 802.11配置2008-05-10 18:2720739人阅读评论(5)收藏举报Linux无线网络配置——无线网卡驱动安装与WLAN 802.11配置WLAN (Wireless Local Area Network)类似于有线以太网,WLAN 的802.11a 标准使用5 GHz 频段,支持的最大速度为54 Mbps,而802.11b 和802.11g 标准使用2.4 GHz 频段,分别支持最大11 Mbps 和54 Mbps 的速度。
使用Windows操作系统,WLAN配置很简单。
无线网卡厂商将Windows下的驱动随网卡一起销售。
而Linux新兴的操作系统,这方面的驱动不多。
以前购买无线网卡时也没考虑Linux下的驱动程序,于是需要编译驱动程序源码。
现在市场上大部分的无线网卡都是对于Atheros芯片的。
如TP—LINK的310G、350G、510G、550G、650G。
对于Atheros芯片的网卡,可以到网站上找到驱动程序,根据源代码包里面的README和INSTALL文件来获得足够的安装信息。
最新驱动源码包(0.9.2版本)下载地址/madwifi/madwifi-0.9.2.tar .bz2?modtime=1154005765&big_mirror=0下面详细介绍无线网卡驱动程序的安装和WLAN的配置。
操作步骤:下载驱动源码包存放在/root/downloads目录下步骤一、解压源码压缩包1). 进入文件所在目录cd /root/downloads2). 解压.bz2格式的压缩包bunzip2 madwifi-0.9.2.tar.bz2生成.tar格式压缩包3). 解压.tar格式的压缩包tar xvf madwifi-0.9.2.tar步骤二、编译安装驱动4). 进入解压后的目录cd madwifi-0.9.25). 编译驱动程序make查看编译信息,没有error,编译成功,继续安装驱动6). 安装驱动make install步骤三、驱动模块配置7). 插入扫描模块modprobe ath_pci8). 扫描访问接入点modprobe wlan_scan_sta9). 启动无线网卡ath0ifconfig ath0 up获取网卡信息10). wlanconfig ath0 list scan网卡信息如下,default是所在无线局域网的名称,00:d0:f8:e0:a8:88 是无线路由器的物理地址,54M是带宽为54M网卡。
基于Linux的802.11协议与驱动研究
![基于Linux的802.11协议与驱动研究](https://img.taocdn.com/s3/m/f62fe7a7d1f34693daef3ecb.png)
【 6 】 班 藤 ,顾 小 峰 等 一 种 基 于 I E E E 8 0 2 . 1 1【 R 】标 准 的
S 0F T MAC 实现 方 法
图 7 无 线网 卡驱动 程序 流程 图
【 7 】 罗训 ,赵 利 译 , 《 下一 代 无 线局 域 网》 ,[ M】 北 京人
首先加 载模块 ,US B 无线 网卡进行设备 的探测 。如果 探测 到设 备, 进行网络设备所需资源的初始化以及相关 的配 置,然后打开设备 ,判断是否有数据 的发送和接收。当不再 需要该设备时,可 以卸载设备驱动程序。
Mi c r o c o mp u t e r A p p l i c a t i o n s V o 1 . 2 9 , N o . 4 , 2 0 1 3
研 究与设 计
微 型 电脑 应用
2 0 1 3 年第 2 9卷第 4期
以有 色 金 属 板 块 为 例 ,如 图 4所 示
一
法。
参考 文献 :
[ 1 ] Vi p i n M A n a l y s i s o f O p e n S o u r c e Dr i v e r s f o r[ J ]
I EE E8 0 2 . 1 1 W L A 金 属 板 块 的 投 资 时 钟 数 据 显 示 该 板 块 是 一 个 过 热
期的投 资品种 ,该板块在过热期的因子值最高可达 2 . 5 ,具 备相当高的投 资价值 ,而对比有色金属板块指数和沪深 3 0 0 指数 的实际走势 , 有色金属板块在过热期较全市场确实呈现
出 明 显 的超 额 收 益 。
中 国股 市 ,通 过 构 造 金 融数 据 库 , 将 板 块 中上 市 公 司 的财 务
linux下wifi编程(基于netlink和nl80211.h)
![linux下wifi编程(基于netlink和nl80211.h)](https://img.taocdn.com/s3/m/c9cf1434bc64783e0912a21614791711cc7979db.png)
linux下wifi编程(基于netlink和nl80211.h)写用户空间程序时,现在官方推荐的唯一编程方式就是基于netlink的nl80211.h编程。
netlink是一种linux下的用户空间和内核空间通信的方式,传输的都是一个个的帧。
用户空间程序通过生成预定义好的结构帧,与内核达到传递消息的目的。
nl80211.h是一个头文件,也是用户空间调用内核wifi相关功能的接口。
其中定义了所有暴露给用户空间的API函数索引(不是函数本身),以及这些函数采用的参数的格式和定义。
用户程序通过netlink机制,将这些API函数索引和对应的参数封装到netlink的帧中,发送给内核,内核解析netlink帧后,读取帧中的内容,就知道用户需要调用哪个函数,以及该函数的参数,完成内核功能调用。
说实话,这么折腾还不如直接调用API。
鬼让人家定义了这个唯一框架,就这么样吧。
先主要说一下netlink:有人已经写的很详细了:这里面没有提到调用nl80211.h用到的libnl-genl。
这是libnl的一个高层扩展,就是说libnl也可以直接完成这个库的功能。
由于libnl 的帧种类越来越多,所以就有必要给这些帧种类分类,所以出现了好多个protocol family。
为了能统一不同的协议族,定义了libnl-genl这么个通用接口。
其实代码量很小,只是小小封装了一下。
由于iw(linux下的wifi配置程序)用的这个库,所以有必要提一下。
libgl的使用流程方法见源文件:netlink各个模块的函数和结构体参考见:再说一下nl80211.h的使用:不得不说,此部分的文档烂的出奇,或者说是根本没有文档。
作为给出的唯一接口,你的文档仅限于代码注释,你好意思嚒。
这里有个2006年的文档,已经过时,但是可以略知一二。
看看没坏处。
想要两节nl80211.h的调用方法,推荐看一下iw的源代码。
大体流程如下:(只是逻辑关系,从iw源代码中抽取)nl_socket_alloc(); //生成netlink的socket(netlink相关内容参考上文给出的介绍)nl_socket_set_buffer_size(state->nl_sock, 8192, 8192); //调整缓存大小genl_connect(state->nl_sock) //socket和内核连接(注意,这里用的genl的函数封装,具体可查参考(上文给出的地址))genl_ctrl_resolve(state->nl_sock,"nl80211"); //genl的概念,向内核查询一下协议族的标志msg = nlmsg_alloc(); //生成要发送往内核的帧(还没有填充内容)cb = nl_cb_alloc(iw_debug ? NL_CB_DEBUG : NL_CB_DEFAULT); //生成回调函数,回调函数相关,见第一篇netlink的文档genlmsg_put(msg, 0, 0, state->nl80211_id, 0, //往刚生成的帧中填充头部信息cmd->nl_msg_flags, cmd->cmd, 0);NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, devidx); //向刚生成的帧内部添加一个属性值nl_socket_set_cb(state->nl_sock,s_cb); //设置回调函数nl_send_auto_complete(state->nl_sock,msg); //发送刚生成的帧给内核。
SM3算法及在Linux内核IPSEC协议栈的实现
![SM3算法及在Linux内核IPSEC协议栈的实现](https://img.taocdn.com/s3/m/b02671e459f5f61fb7360b4c2e3f5727a5e924a1.png)
SM3算法及在Linux内核IPSEC协议栈的实现
吴瑕
【期刊名称】《宜宾学院学报》
【年(卷),期】2015(15)6
【摘要】基于国家密码管理局发布的SM3密码杂凑算法,实现一种嵌入Linux内核的符合Linux内核算法框架的HAMC算法,用于IPSEC协议栈对数据报文的验证算法,使得SM3算法能够在网络层对通信双方的加密数据进行完整性校验.【总页数】5页(P89-92,102)
【作者】吴瑕
【作者单位】四川职业技术学院计算机科学系,四川遂宁 629000
【正文语种】中文
【中图分类】TP39
【相关文献】
1.Linux内核80
2.11无线网络协议栈的设计与实现 [J], 朱轶;赵洁
2.一种IPv6环境下面向Linux内核包过滤机制的混合模式IPSec-VPN实现 [J], 沈燕然;张青山;王新;薛向阳
3.Linux内核中IPSec网关的设计与实现 [J], 郭艺辉
4.一种基于Linux内核的IPsec协议栈设计 [J], 阮俊杰
5.基于Linux内核的用户态网络协议栈的实现 [J], 周丹;陈楚康;蔡万强;郭文浩因版权原因,仅展示原文概要,查看原文内容请购买。
mac80211分析
![mac80211分析](https://img.taocdn.com/s3/m/a807558fb7360b4c2f3f6486.png)
mac80211源码分析1.概述2.体系结构3.代码结构4.数据结构5.主要流程6.切换点7.主要函数8.速率控制1.1 概述•mac80211:是一个Linux内核子系统,是驱动开发者可用于为SoftMAC无线设备写驱动的框架。
mac80211在内核空间实现STA模式,在用户空间实现AP模式(hostapd)。
•cfg80211:用于对无线设备进行配置管理,与FullMAC,mac80211和nl80211一起工作。
•nl80211:用于对无线设备进行配置管理,它是一个基本Netlink的用户态协议。
•MLME:即MAC (Media Access Control) Layer Management Entity,它管理物理层MAC状态机。
•SoftMAC:其MLME由软件实现,mac80211为SoftMAC实现提供了一个API。
即:SoftMAC设备允许对硬件执行更好地控制,允许用软件实现对 802.11的帧管理,包括解析和产生802.11无线帧。
目前大多数802.11设备为SoftMAC,而FullMAC设备较少。
•FullMAC:其MLME由硬件管理,当写FullMAC无线驱动时,不需要使用mac80211。
•wpa_supplicant:是用户空间一个应用程序,主要发起MLME命令,然后处理相关结果。
•hostpad:是用户空间一个应用程序,主要实现station接入认证管理。
1.2体系结构HOSTAPD:WPAD:图2-1 系统框架1.3 代码结构(/net/mac80211/)•ieee80211_i.h(主要数据结构)•main.c(主函数入口)•iface.c(虚拟接口处理)•key.c,key.h(密钥管理)•sta_info.c,sta_info.h(用户管理)•pm.c(功率管理)•rate.c,rate.h(速率控制函数)•rc80211*(速率控制算法)•rx.c(帧接收路径代码)•tx.c(帧发送路径代码)•scan.c(软件扫描代码)•mlme.c(station/managed模式MLME)•ibss.c(IBSS MLME)•cfg.c,cfg.h,wext.c(配置入口代码)•aes*,tkip*,wep*,michael*,wpa*(WPA/RSN/WEP代码)•wme.c,wme.h(QoS代码)•util.c(公共函数)1.4 数据结构ieee80211_local/ieee80211_hw•每个数据结构代表一个无线设备(ieee80211_hw嵌入到ieee80211_local)•ieee80211_hw是ieee80211_local在驱动中的可见部分•包含无线设备的所有操作信息sta_info/ieee80211_sta•代表每一个station•可能是mesh,IBSS,AP,WDS•ieee80211_sta是驱动可见部分ieee80211_conf•硬件配置•当前信道是最重要的字段•硬件特殊参数ieee80211_bss_conf•BSS配置•多BSSes类型(IBSS/AP/managed)•包含比如基础速率位图•per BSS parameters in case hardware supports creating/associ ating with multiple BSSesieee80211_key/ieee80211_key_conf•代表加密/解密密钥•ieee80211_key_conf提供给驱动用于硬件加速•ieee80211_key包含book-keeping和软件解密状态ieee80211_tx_info•大部分复杂数据结构•skb内部控制缓冲区(cb)•经历三个阶段:1、由mac80211初始化;2、由驱动使用;3、由发送状态通告使用ieee80211_rx_status•包含接收帧状态•驱动通过接收帧传给mac80211ieee80211_sub_if_data/ieee80211_vif•包含每个虚拟接口信息•ieee80211_vif is passed to driver for those virtual interfa ces the driver knows about (no monitor,VLAN)•包含的sub-structures取决于模式1.5 主要流程配置•所有发起来自用户空间(wext或者nl80211)•managed和IBSS模式:触发状态机(基于workqueue)•有些操作或多或少直接通过驱动传递(比如信道设置)接收路径•ieee80211_tasklet_handler,响应中断,在下半部tasklet处理数据,•通过函数ieee80211_rx()接收帧•调用ieee80211_rx_monitor()拷贝帧传递给所有监听接口•调用invoke_rx_handlers()处理帧•如果是数据帧,转换成802.3帧格式,传递给上层协议栈ieee80211_deliver_skb( rx.c中) netif_receive_skb上送网络。
基于Linux 环境的IEEE802.1x认证与客户端编程
![基于Linux 环境的IEEE802.1x认证与客户端编程](https://img.taocdn.com/s3/m/1c874915de80d4d8d15a4fea.png)
基于Linux 环境的IEEE802.1x认证与客户端编程【摘要】IEEE802.1x是基于端口的网络接入控制协议,它提供了一个可靠的用户认证和密钥分发框架,与上层的EAP配合实现认证,并能与后台Radius 认证服务器进行通讯,更有效实现有线城域网AAA(Authentication认证、Authorization授权、Accounting计费)策略;并且802.1x协议起源于802.11协议,主要用于解决无线局域网用户的接入认证鉴权问题,而Wi_Fi联盟公布的WPA(Wi-Fi Protected Access)是IEEE802.11i标准的一个子集,其核心就是IEEE802.1X和TKIP文章主要解决802.11和802x协议的结合,并对有线无线混合或单一形态的网络安全认证提出应用方案,并在Linux环境下使用Libpcap和Libnet库函数编程实现客户认证机制,有效地阻止非法用户的入侵。
【关键词】无线局域网;802.1x;AAA认证;扩展身份验证协议】1.无线局域网的安全与认证演变IEEE802.11(IEEE标准)无线局域网的安全一般采用业务组标识符(SSID)和物理地址(MAC)过滤。
对于802.11业务组标识符(SSID),接入点AP可以用一个服务集标识SSID(Service Set Identifier)或ESSID(Extensible Service Set Identifier)来配置,与接入点有关的网卡必须知道SSID以便在网络中发送和接收数据,这是一个非常脆弱的安全手段,因为SSID通过明文在大气中传送,甚至被接入点广播,所有的网卡和接入点都知道SSID。
物理地址(MAC)过滤属于硬件认证,而不是用户认证。
这种方式要求AP中的MAC地址列表必需随时更新,目前都是手工操作,扩展能力差,因此只适合小型网络规模。
TKIP(Temporal Key Integrity Protocol)是新一代的加密技术,对现有的WEP 进行了改进,在IEEE 802.11i规范中,动态密钥完整性协议(TKIP)负责处理无线安全问题的加密部分。
Linux内核802.11无线网络协议栈的设计与实现
![Linux内核802.11无线网络协议栈的设计与实现](https://img.taocdn.com/s3/m/0a8f719edd88d0d233d46a6b.png)
近十几年来 ,Ln x iu …以其开放源代 码的特点伴随着互联 网的飞速发展取得 了前所未有 的成功。 .版 本的 Ln x内核 26 iu
() 6完成 8 21 协议 中加密和解密 的软件实现 。 0 .1 J
2 E E 0 . 协议栈的适用范围 I E 82 1 1
I E 821 作为 Ln x内核标准的无线 网络协议栈 ,可 E E 0 .1 iu 以支持工作在 B S I S S ,B S和 Moi r nt 模式( s r o Mat 模式 ,即无 e
进行很好的支持 。其 中最突出的问题就表现在内核中没有一 个用于处理 I E 0 .1报文 的通用的无线 网络协议栈。为 E E 8 21
了解决 以上 问题 以便为 Ln x下无线网卡驱动程序的开发提 iu
种: 1F l C将所有的功能实现放入硬件 或固件种完成 ; ()ul MA
()ot C 将所有实现放 入到主机 中的驱动程序和 操作系 2S f MA
供方便 , 笔者以及相关人员设计并实现 了名为 IE 8 21 的 E E 0 .1 无线网络协议栈(t :I E 821. . t。 ht /E E 0 .1 f e)经过半年左右时问 p/ sn
的调试 和完善 ,Ln sT ra s iu ovl 最终将其加入到 Ln x261 d iu .. 4
03_wireless网络系统
![03_wireless网络系统](https://img.taocdn.com/s3/m/7312a96358fafab069dc021c.png)
linux无线网络系统Cfg80211参考:/en/developers/Documentation/cfg80211关键数据结构:头文件:Cfg80211.h (include\net):cfg80211 is the configuration API for 802.11 devices in Linux. It bridges userspace and drivers, and offers some utility functionality associated with 802.11Core.h (net\wireless):Wireless configuration interface internals.Nl80211.h (include\linux):定义的netlink接口函数(接收netlink命令,发送netlink事件)Regulatory.h (include\net):regulatory support structures。
数据结构:struct cfg80211_registered_device :设备注册的时用,包含注册的struct cfg80211_ops,供上层应用通过nl80211_ops供上层应用调用.包含了struct wiphy结构实体。
struct net_device :The DEVICE structure,网络设备结构,网卡名,包含了共享内核资源,中断号,网卡操作函数接口:(struct net_device_ops *netdev_ops,struct ethtool_ops *ethtool_ops,),设备地址,广播地址,net__namespace, sys文件结构,协议相关设备(struct wireless_dev,struct in_device,struct inet6_dev)。
等等struct wireless_dev :wireless device state:包含struct wiphy,接口类型(AP.STA,AD-HOC,P2P-GO, P2P-GC,),网络设备指针(struct net_device*),SME状态,ssid,支持的信道类型(enum nl80211_channel_type),cfg80211连接状态(struct cfg80211_conn),struct wiphy:wireless hardware description。
2024年国家电网招聘之电网计算机自测提分题库加精品答案
![2024年国家电网招聘之电网计算机自测提分题库加精品答案](https://img.taocdn.com/s3/m/5bb8476e4a73f242336c1eb91a37f111f0850d5a.png)
2024年国家电网招聘之电网计算机自测提分题库加精品答案单选题(共40题)1、网络管理协议SNMP 中,管理站设置被管对象属性参数的命令为()A.getB.get nextC.setD.trap【答案】 C2、内存地址从4000H到43FFH,共有_()_个内存单元。
若该内存每个存贮单元可存储16位二进制数,并用4片存储芯片构成,则芯片的容量是_()_。
A.256B.512C.1024D.2048【答案】 C3、CPU执行指令时,先根据()的内容从内存读取指令,然后译码并执行。
A.地址寄存器B.程序计数器C.指令寄存器D.通用寄存器【答案】 B4、在数据通信分为电缆通信,微波通信,光纤通信,卫星通信,移动通信。
其中微波通信的特点是()。
A.微波受到电离层的反射,可以传到很远的距离B.卫星微波系统需要4个以上的通信卫星才能覆盖地球表面C.微波频段的干扰少,传输质量高D.卫星微波通信的延迟小,适合交互式应用【答案】 C5、某机器字长8位,则十进制数-73的补码机器码是(12)。
A.11000101B.10110111C.11001001D.1011l011【答案】 B6、下列各种存储器中,属于易失性存储器的是()。
A.磁盘B.光盘C.SRAMD.EPROM【答案】 C7、微量计算机中各部件之间是用()连接起来的。
A.地址总线B.控制总线C.数据总线D.系统总线【答案】 D8、在 TCP/IP 体系结构中,将 IP 地址转化为 MAC 地址的协议是(请作答此空);()属于应用层协议。
A.RARPB.ARPC.ICMPD.TCP【答案】 B9、在TCP/IP参考模型中,提供目标IP地址转换成目标MAC地址的协议是(),该协议工作于(请作答此空)A.数据链路层B.网络层C.传输层D.物理层【答案】 B10、802.11g 协议在2.4GHz 频段定义了14 个信道,相邻的信道之间在频谱上存在交叠。
为了最大程度地利用频段资源,可以使用如下哪组信道来进行无线覆盖?A.1、5、9B.1、6、11C.2、6、10D.3、6、9【答案】 B11、在关于二地址指令的描述中,正确的是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
24 /42
3.9.1 选择寄存器
选择寄存器(Select0-1 Registers) 用于写入FID/RID的值,它必须在Offset Registers的 busy位为0且在偏移值(data offset)写入Offset Registers 之前进行。 FID用于描述一个特殊的帧缓冲结构。 RID是一个16进制0xFC00–0xFFFF范围内的值,用于 设置或读取硬件的相关参数。
读取传送用于数据的缓冲结构体FID(一般用于TxOK 及TxExc中断事件中)。 其它注意事项与前同(略)。
31 /42
4.传送及接收帧结构体
32 /42
4.传送及接收帧结构体(Cont.)
33 /42
4.1传送帧结构体
Struct hfa384x_tx_frame用于提供构造实际硬件头的必 要信息,它即包括802.11格式又包括802.3格式,当需 要802.11时就用802.11格式,反之亦然。 成员TxControl
9 /42
2.3 数据包的发送和接收
在驱动层次上的发送和接收都是通过底层对硬件的读 写来完成的。 发送数据的时候,在prism2网卡上,通过对网卡的发 送缓冲区写需要发送的数据,然后向command寄存器 写发送命令,将数据包发送到物理网络上。 当网络上有数据包来的时候,会触发硬件中断,根据 注册的中断向量表确定处理函数,进入中断处理程序, 将数据发送到上层协议进行处理。 发送和接收数据函数分别为: static int prism2_tx(struct sk_buff *skb, struct net_device *dev); static int prism2_rx(struct net_device *dev);
20 /42
3.7 事件确认寄存器
事件确认寄存器(EvAck Register) 一个事件发生之后,总是必须确认,一旦确认后随此 事件发生的一切状态及产生的结果就都不再具有任何 意义。 方法是把与事件状态寄存器(EvStat Register)中的相同 位置1,当确认事件完成,硬件会自动把相应位置为0。
17 /42
3.4 指令反馈寄存器
指令反馈寄存器(Resp0-2 Registers) Prism中总共有三个(0, 1, 2)。 这个寄存器用于读取指令执行完后的response resulting。 在状态寄存器中数据有效的情况下,此response resulting 才算有效。
18 /42
3 /42
1.2驱动概念
驱动程序是指一组子程序它们屏蔽了底层硬件处理细 节,同时向上层软件提供硬件无关接口。可形象比喻 为软硬皆吃。 由于无线媒体的特殊性,其网络设备的驱动相对(以 太网)来说要复杂得多。
4 /42
2. 驱动框架
以2002-5-19版 prism2驱动为蓝本,主要分析Ad-hoc 网络设备驱动程序编写方法有两种:通过模块驱动和 通过内核启动时自动检测的方法。 通过模块驱动的优点: 1、减小内核体积; 2、有助于调试。 2 用shell命令的insmod将该模块插入到内核运行空间; 用rmmod命令将该模块卸载。insmod触发的是程序里 面的init_module()函数;而rmmod命令触发的是 cleanup_module()函数。注意:需要root权限。 #insmod ./hostap_cs.o #rmmod hostap_cs
7 /42
2. 1模块的加载和卸载(Cont.)
8 /42
2.2 设备的打开与关闭
在允许发送接收数据之前,需要打开(即激活)网络 设备。对应于打开操作,还有关闭操作。 它们在驱动中对应的函数分别为: static int prism2_open(struct net_device *dev); static int prism2_close(struct net_device *dev); 可以通过ifconfig命令手动激活或关闭。 #ifconfig wlan0 up #ifconfig wlan0 down
当数据传送完成(不论是否成功),可通过成员status可 以获得数据传送的结果。
35 /42
4.2接收帧结构体
成员status
MessageType---数据域中数据的类型 PCF置1,表示此包在CF(自由竞争)期间接收的 MACPort接收数据所用的mac端口 后面两个分别与解密及CRC相关
成员frame_control---可判断接收到的数据包是哪一类 型(管理帧、数据帧、控制帧)。
调 用 hfa384x_setup_bap() 把 申 请到的fid 所代表的地址写入 select0寄存器中,并把偏移写 入offest0寄存器中
IEEE 802.11协议在Linux内核中的实现
Outline
预备知识 驱动框架 寄存器(代码示例) 传送及接收帧结构体 传送及接收数据流程 调试 总结(到目前为止,我们能做什么)
2 /42
1.1 涉及到的内核中的数据结构
套接字缓冲区(sk_buff)---- sockfd = socket(AF_INET,SOCK_STREAM,0) -是以双向链表结构进行管理, 在INET Socket层和硬件层之 间存放数据包,并完成数据 包在不同层次之间的传递的 载体。特点:跨层、指针移 位操作减少内存里的数据 copy,提高效率。 net_device结构------供网 络接口设备使用。特点:每 个网络设备都有且仅有一个 对应的此结构。所有的网络 设备都会添加到一个以 dev_base为表头的链表中。
28 /42
3.11 AllocFID Register
在command register中执行Alloc指令后,可从中获得缓 冲结构体的地址。 其它注意事项与前同(略)。
29 /42
3.11AllocFID Register(Cont.)
30 /42
3.12 TxComplFID Register
15 /42
3.2 参数寄存器
参数寄存器(Param0-2 Registers) 用来存放指令的参数。 Prism中总共有三个(0, 1, 2)。 必须在指令写入指令寄存器之前,且指令寄存器的 busy为0的情况下,才能向参数寄存器写入参数
16 /42
3.3 状态寄存器
状态寄存器(Status Register) 这个寄存器用于读取指令执行后的状态,如Successful、 Card failure、No buffer space、Command error。 CmdCode存放上次执行的指令。 只有在EvStat register的cmd位置1,读取出来的状态才算 有效,另外,一旦EvAck register的CmdAck位被置1,则 表示状态过期无效。
10 /42
2.4中断
11 /42
2.5 统计数据
12 /42
2.6 用户的ioctl命令系统调用
13 /42
3. 寄存器
软硬件之间的交互基本都是通过寄存器进行的,比如 硬件的初始化,激活、关闭、设置或读取硬件的属性 等等。 Prism2硬件里的寄存器均是16位
14 /42
3. 1 指令寄存器
26 /42
3.9.3 数据寄存器
数据寄存器(Data0-1 Registers) 用于读写buffer的数据,读写时内部的指针会自动增 加(有点和文件的读写操作类似)。
27 /42
3.10 RxFID Register
当网络设备接收到数据包,且EvStat register的Rx位被 置1后,即可从中读取用于接收数据缓冲结构体的FID。 在EvAck register的RxAck位被置1后,表示FID无效。
MACPort---用于传送数据的MAC端口。 位StrucType=0,表示用802.3格式;…=1,则反之。 位TxEx---当传送失败是否需要触发TxExc中断,为0表 示不触发。 位TxOK----当传送成功是否需要触发Tx中断,为0表示 不触发。(驱动中未实现)
34 /42
4.1传送帧结构体(Cont.)
5 /42
2. 1模块的加载和卸载(初始化)
6 /42
2. 1模块的加载和卸载(Cont.)
由于此网络设备是PCMCIA规范,所以先向PCMCIA卡 管理器注册该设备 (调用register_pccard_driver),使 driver_info_t结构attach函数指针指向prism2_attach(), detach函数指针指向prism2_detach()。 prism2_attach()调用prism2_init_local_data() 初始化网络 设备的local_info_t结构;调用prism2_setup_dev(),初始 local_info_t prism2_setup_dev() 化网络设备结构struct net_device *dev的多个函数指针 ; 调用prism2_hw_init()建立FID(Frame IDentifiers)与缓冲 区之间的映射,通过RID(Resource IDentifiers)初始化网 络设备的一些属性,如传输速率;注册中断服务类程。 调用prism2_init_dev()把网络设备添加到dev_base为链表 头的链表中,在proc文件系统中建立相应的目录,初始 化数据加密过程等。
21 /42
3.8 实例
22 /42
3.8 实例(Cont.)
23 /42
3.9 缓冲访问通道
缓冲访问路径--Buffer Access Paths (BAPs) 在硬件中有两个BAP0和BAP1(不是指寄存器,我认 为是一种机制),每个又对应有三个寄存器Select0-1 Registers、Offset0-1 Registers及Dataห้องสมุดไป่ตู้-1 Registers。 主要用于把需要发送的数据包写入缓冲(FID),读取接 收的数据包(FID)及读取或设置硬件相关参数(RID) , 如使用频率、传输速率等。 在使用BAP之前,需要调用hfa384x_setup_bap()进行 初始化,把获得的fid和offest写入相应的寄存器中。