
net
唐古拉在高歌
斯蒂芬地方
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
epoll机制:epoll_create、epoll_ctl、epoll_wait、close
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,linux/posix_types.h头文件有这样的声明:#define__FD_S转载 2015-07-31 14:09:03 · 684 阅读 · 0 评论 -
网络驱动移植之解析Linux网络驱动的基本框架
内核源码:linux-2.6.38.8.tar.bz2 概括而言,编写Linux网络驱动其实只要完成两件事即可,一是分配并初始化网络设备,二是注册网络设备。 1、分配并初始化网络设备 动态分配网络设备(从C语言角度来看,其实就是定义了一个struct net_device结构体变量,并对这个结构体变量的某些成员进行了初始化而已)及其私有数据的大致过程如下图(以以转载 2015-01-29 11:04:50 · 440 阅读 · 0 评论 -
WIFI基本知识整理
这里对wifi的802.11协议中比较常见的知识做一个基本的总结和整理,便于后续的学习。因为无线网络中涉及术语很多,并且许多协议都是用英文描述,所以有些地方翻译出来会有歧义,这种情况就直接英文来描述了。 主要内容:一、基本概述二、实践基础三、一些原理四、补充五、其它 一、基本概述============================1、有线和无线转载 2015-01-29 00:47:02 · 731 阅读 · 0 评论 -
网络驱动移植之net_device结构体及其相关的操作函数
内核源码:linux-2.6.38.8.tar.bz2 在Linux系统中,网络设备都被抽象为struct net_device结构体。它是网络设备硬件与上层协议之间联系的接口,了解它对编写网络驱动程序非常有益,所以本文将着手简要介绍linux-2.6.38.8/include/linux/netdevice.h文件中struct net_device结构体的所有成员(没有按照它们转载 2015-01-29 11:02:26 · 733 阅读 · 0 评论 -
Porting WiFi drivers to Android
by Nicu Pavel on 11 August 2010 Update(19/05/2011): Verify validity against Gingerbread.Update (11/08/2010): Updated patch to fix the loading of awext driver at run time.Added STOP and RESTA转载 2015-01-27 00:13:37 · 533 阅读 · 0 评论 -
Linux wext和nl80211接口简介
linux无线驱动接口简介 在分析wpa_supplicant软件linux版本下无线驱动事件和无线驱动配置代码之前,先简单介绍下linux无线驱动接口的实现技术和发展情况。 Linux无线驱动接口有两种标准接口,wext(Wireless Extensions无线扩展接口)和nl80211接口。 在linux-2.6.18版本之前,linux内核代码中并没有提供转载 2014-06-20 17:22:01 · 765 阅读 · 0 评论 -
为何以及如何使用Netlink Socket ( Why and How to Use Netlink Socket)
Why and How to Use Netlink Socket作者:Kevin He,2005-01-05原文地址:http://www.linuxjournal.com/article/7356 译者:Love. Katherine,2007-03-23译文地址:http://blog.youkuaiyun.com/lovekatherine/archive/2007/03/23/1转载 2014-07-08 17:23:46 · 980 阅读 · 0 评论 -
基于TCP/IP的网络编程接口:Socket
1.4 基于TCP/IP的网络编程接口:Socket在后面的章节中,将会对一些源代码进行分析,包括Ping命令(用来测试与目标主机之间的通信)的实现、端口扫描的实现、Sniffer(监听网络上传输的信息,如用户名和口令等)的实现等。如果要深刻分析这些源代码,首先得了解基于TCP/IP协议的网络编程接口:Socket。Socket接口是TCP/IP传输层的应用编程接口(API),Socket转载 2014-07-24 10:24:16 · 6500 阅读 · 0 评论 -
socket编程原理
1、问题的引入 1) 普通的I/O操作过程:UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作时,它首先调用“打开”获得对指定文件或设备的使用权,并返回称为文件描述符的整型数,以描述用户在打开的文件或设备上进行I/O操作的进程。然后这个用户进程多次调用“读/转载 2014-06-30 11:36:23 · 595 阅读 · 0 评论 -
linux的netlink机制
netlink作为一种用户空间和内核空间通信的机制已经有一定年头了,它不光为了内核和用户通信,还可以作为IPC机制进行进程间通信。其实netlink定义了一个框架,人们可以基于这个框架用它来做可以做的任何事情,linux中不乏这些类似的好的框架。它们的共同点就是内核并不管它们能做什么,然而它们真的很强大,往往可以做到的事情很多,这就是内核不问策略只管实现机制,所有策略让用户实现,netlink框架转载 2014-06-30 14:29:21 · 611 阅读 · 0 评论 -
ap与sta共存
1:wifi的concurrent mode所谓wifi的共存模式,有以下几种:station mode + station modestation mode + ap modestation mode + p2p modep2p mode + ap mode目前android自从JB version后,就开始支持station + p2p的转载 2014-12-09 15:27:31 · 957 阅读 · 1 评论 -
wpa_cli调试工具的使用
1: run wpa_supplicant firstuse the following command: wpa_supplicant -Dwext -iwlan0 -C/data/system/wpa_supplicant -c/data/misc/wifi/wpa_supplicant.conf (use “ps”to make sure wpa_sup转载 2015-02-04 16:44:08 · 686 阅读 · 0 评论 -
netlink
netlink定义 用于在内核模块与在用户地址空间中的进程之间传递消息的。它包 含了用于用户进程的基于标准套接字的接口和用于内核模块的一个内部核心API。[--manual] Netlink是套接字家族中的一员,主要用内核与用户空间的进程间、用户进程间的通讯。然而它并不像网络套接字可以用于主机间通讯,Netlink只能用于同一主机上进程通讯,并通过PID来标识它们。[--wiki]转载 2015-01-22 17:37:34 · 650 阅读 · 0 评论 -
linux ip命令收藏
ip 是个命令, ip 命令的功能很多!基本上它整合了 ifconfig 与 route 这两个命令,不过ip 的功能更强大! 如果您有兴趣的话,请自行 vi /sbin/ifup 就知道整个 ifup 就是利用 ip 这个命令来实现的。下面介绍一下使用方法[root@linux ~]# ip [option] [动作] [命令]参数:option :设定的参数,主要有:转载 2015-06-17 17:19:41 · 540 阅读 · 1 评论 -
Linux gdb调试器用法全面解析
在我们使用ARM等嵌入式Linux系统的时候,一个头疼的问题是GPU,Camera,HDMI等都需要预留大量连续内存,这部分内存平时不用,但是一般的做法又必须先预留着。目前,Marek Szyprowski和Michal Nazarewicz实现了一套全新的Contiguous Memory Allocator。通过这套机制,我们可以做到不预留内存,这些内存平时是可用的,只有当需要的时候才被分配给转载 2015-02-10 15:53:33 · 566 阅读 · 0 评论 -
wpa_cli取命令函数
int optind = 1; int optopt; char *optarg; int getopt(int argc, char *const argv[], const char *optstring) { static int optchr = 1; char *cp; if (optchr == 1) { if (opti转载 2015-01-20 14:53:58 · 690 阅读 · 0 评论 -
wifi详解(一)
1 WLAN技术WLAN是英文WirelessLAN的缩写,就是无线局域网的意思。无线以太网技术是一种基于无线传输的局域网技术,与有线网络技术相比,具有灵活、建网迅速、个人化等特点。将这一技术应用于电信网的接入网领域,能够方便、灵活地为用户提供网络接入,适合于用户流动性较大、有数据业务需求的公共场所、高端的企业及家庭用户、需要临时建网的场合以及难以采用有线接入方式的环境等。转载 2015-01-20 14:44:51 · 594 阅读 · 0 评论 -
跟一下wpa_supplicant(1) 初始化
环境: android 2.3.4 wpa_supplicant 0.8 一切从 main.c 开始: (=>表示第1级, 那么==>表示下一级,类推)os_program_init => 参数解析& 获取=> wpa_supplicant_init(¶ms) ==> eap_register_methods /* 注册EAP method ,比如EA转载 2015-01-20 14:50:43 · 1078 阅读 · 0 评论 -
wpa_supplicant 初始化流程分析
1. 启动命令wpa supplicant 在启动时,启动命令可以带有很多参数,目前我们的启动命令如下:wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0 -c/data/wifi/wpa_supplicant.conf -f/data/wifi/wpa_log.txtwpa_supplicant对于启动命令带的参数,用了转载 2015-01-20 14:56:04 · 494 阅读 · 0 评论 -
wifi详解(三)
1 WLAN驱动结构介绍1.1 SDIO驱动在drivers/mmc下面是mmc卡,SD卡和SDIO卡驱动部分,其中包括host驱动,card驱动和core部分,由于网络接口卡挂接在SDIO总线上,所以在此之前我们先看一下SDIO的驱动结构。其驱动在drivers/mmc目录下的结构为: |-- mmc| |-- card转载 2015-01-20 14:46:16 · 629 阅读 · 0 评论 -
wifi详解(二)
1 Wifi模块解析和启动流程1.1 框架分析WIFI整体框架如图所示:首先,用户程序使用WifiManager类来管理Wifi模块,它能够获得Wifi模块的状态,配置和控制Wifi模块,而所有这些操作都要依赖 Wifiservice类来实现。 WifiService和WifiMonitor类是Wifi框架的核心,如图所示。下面先来看转载 2015-01-20 14:45:48 · 483 阅读 · 0 评论 -
linux下wifi编程(基于netlink和nl80211.h)
唯一编程方式就是基于netlink的nl80211.h编程。 netlink是一种linux下的用户空间和内核空间通信的方式,传输的都是一个个的帧。用户空间程序通过生成预定义好的结构帧,与内核达到传递消息的目的。 nl80211.h是一个头文件,也是用户空间调用内核wifi相关功能的接口。其中定义了所有暴露给用户空间的API函数索引(不是函数本身),以及转载 2014-07-07 16:48:22 · 3335 阅读 · 0 评论 -
linux netlink机制介绍与实例
开发和维护内核是一件很繁杂的工作,因此,只有那些最重要或者与系统性能息息相关的代码才将其安排在内核中。其它程序,比如GUI,管理以及控制部分的代码,一般都会作为用户态程序。在linux系统中,把系统的某个特性分割成在内核中和在用户空间中分别实现一部分的做法是很常见的(比如linux系统的防火墙就分成了内核态的Netfilter和用户态的iptables)。然而,内核程序与用户态的程序又是怎样行通讯转载 2014-06-30 13:57:27 · 970 阅读 · 0 评论 -
Linux Netlink通信机制详解
前面有一篇文章其实已经介绍过Netlink方面的知识,还有一个内核和用户空间之间的一个交互例子,这篇文章主要是更细节和基础的知识介绍!Netlink 是一种特殊的 socket,它是 Linux 所特有的,由于传送的消息是暂存在socket接收缓存中,并不被接收者立即处理,所以netlink是一种异步通信机制。 系统调用和ioctl 则是同步通信机制。用户空间进程可以通过标准socket转载 2014-06-30 14:38:43 · 704 阅读 · 0 评论 -
linux用户态和内核态通信之netlink机制
这是一篇学习笔记,主要是对《Linux 系统内核空间与用户空间通信的实现与分析》中的源码imp2的分析。其中的源码,可以到以下URL下载: http://www-128.ibm.com/developerworks/cn/linux/l-netlink/imp2.tar.gz [size=3]参考文档[/size] 《Linux 系统内核空间与用户空间通信的实现与分析》 陈鑫转载 2014-06-30 14:40:07 · 804 阅读 · 0 评论 -
android 平台USB wifi驱动移植及使用 SDIOwifi
但是命令发到wpa_supplicant后的流程网上提到的资料就非常少了,不过由于wpa_supplicant是一个标准的开源项目,已经被移植到很多平台上,它中间的过程我暂时还没有去细看。比较关心的是wpa_supplicant在 接收 到上层的命令后 是怎么将命令发给DRIVER的,DRIVER在接收到命令后的解析的动作 以及之后 调用驱动功能函数 的流程以及驱动对寄存器控制的细节。转载 2014-06-26 15:23:48 · 1112 阅读 · 0 评论 -
Softap热点原理分析
Android4.1.2设置中开关:packages/apps/Settings/src/com/android/settings/TetherSettings.java|----private void startTethering()| |----mWifiApEnabler.setSoftapEnabled(true);转载 2014-06-26 19:19:02 · 905 阅读 · 0 评论 -
Porting WiFi drivers to Android
写的非常好。原文在:http://blog.linuxconsulting.ro/2010/04/porting-wifi-drivers-to-android.html。咱就缺这。Update(19/05/2011): Verify validity against Gingerbread.Update (11/08/2010): Updated patch to fix转载 2014-06-25 14:26:19 · 837 阅读 · 0 评论 -
iptables的相关概念和数据包的流程
iptables 相关概念 匹配(match):符合指定的条件,比如指定的 IP 地址和端口。 丢弃(drop):当一个包到达时,简单地丢弃,不做其它任何处理。 接受(accept):和丢弃相反,接受这个包,让这个包通过。 拒绝(reject):和丢弃相似,但它还会向发送这个包的源主机发送错误消息。这个错误消息可以指定,也可以自动产生。 目标(target):指定的动作,说转载 2014-06-24 12:27:03 · 728 阅读 · 0 评论 -
Android 4.1 Netd详细分析(四)代码分析2
我们按照main函数代码的执行顺序,首先实例化NetlinkManager。接下来代码如下。[cpp] view plaincopy if (!(nm = NetlinkManager::Instance())) {//实例化对象nm ALOGE("Unable to create NetlinkManager"); exit(1);转载 2014-06-23 18:29:20 · 967 阅读 · 0 评论 -
Android 4.1 Netd详细分析(三)代码分析1
接下来开始从代码分析,按照从下至上的顺序来分析,从native层向framework层过渡,Android的各个层之间严格按照软件工程原理的低耦合要求.[cpp] view plaincopy#include #include #include #include #include #include #include #include转载 2014-06-23 18:20:14 · 1001 阅读 · 0 评论 -
Android 4.1 Netd详细分析(二)源文件/模块/基础类统领
这篇粗略介绍-Netd文件夹下面的源文件/模块的基本功能,和主要类的组织关系。一、文件构成Netd文件下的源文件模块~组织以及基本实现功能:======================================================================Android.mk转载 2014-06-23 18:07:31 · 956 阅读 · 0 评论 -
Android 4.1 Netd详细分析(六)DnsProxyListener
在前面的几篇中我们从 main 函数入手,主要分析了 CommandListener + Netlinkmanager 两部分共同组成的可实现与 Kernel 层、Framework 层通信,并完成一套完整的功能系统。并且在文中提及到另外两个部分,DnsProxyListener 和 MDnsSdListener。顾名思义两者都是与 DNS 相关。以下是 main函数中提及到两者的部分。转载 2014-06-23 18:39:37 · 1912 阅读 · 0 评论 -
Android 4.1 Netd详细分析(五)代码分析3
上一篇我们按照函数的调用流程,完成了由NetlinkManager,NetlinkHandler,NetlinkListener,SocketListener组成的,从kernel到framework的单项消息通路。主要是通过内部的socket实现的通信。通过设置socket监听过滤属性,来接收kernel发出的event,(其中kernel发出的event部分不用了解,可以理解为是自发的)。并通转载 2014-06-23 18:38:37 · 932 阅读 · 0 评论 -
Wireless Tools for Linux
PresentationThe Linux Wireless Extension and the Wireless Tools are an OpenSource project sponsored by Hewlett Packard (through mycontribution) since 1996, and build with the contribution of man转载 2014-06-26 15:57:40 · 1370 阅读 · 0 评论 -
wifi详解(一)
目录[-]1 WLAN技术2 802.11协议简述2.1.1 概述3 802.11四种主要物理组件3.1 工作站(Station)3.2 接入点(Access Point)3.3 无线媒介(Wireless Medium)3.4 分布式系统(Distribution转载 2014-06-26 19:02:09 · 1250 阅读 · 0 评论 -
用Google看世界,妙用引擎“Index of”
网上有许多令人心动的共享软件,可惜的是它们或多或少都存在各种限制,对于我等贫苦一族来说,面对昂贵的注册费用只能望而却步,而且支付起来也不太方便(特别是国外的共享软件)。现在,只要利用Google强大的搜索功能,再配合一定的搜索技巧就会让你有意外的发现。 打开Google的搜索页面后,在搜索栏内填上你要搜索的软件名称、空格,并在后面加上“94fbr”的搜索代码(例如:WinZIP 94fb转载 2014-06-06 12:58:47 · 2665 阅读 · 0 评论 -
wifi详解(四)
IOCTL的调用逻辑之所以要分析这个,是因为上层wpa_supplicant和WIFI驱动打交道的方式,多半是通过ioctl的方式进行的,所以看看它的调用逻辑(这里只列出其主要的调用逻辑): 上面便是用户ioctl调用的流程图,它最终分为两条线即有两种支持,选择那一条或两条都选(个人感觉最好选第2条线,因为它最后也是会调用到相应的函数的,而且还有其它更多的命转载 2014-06-26 18:46:45 · 890 阅读 · 0 评论 -
android——wifi系统架构
1. 系统架构 Android WiFi系统引入了wpa_supplicant,它的整个WiFi系统以wpa_supplicant为核心来定义上层用户接口和下层驱动接口。整个WiFi系统架构如下图所示: 一切尽在上图中,下面将对每部分进行详细分析。1.1 WifiService 由SystemServer启动的时候生成的C转载 2014-06-26 17:01:22 · 808 阅读 · 0 评论 -
Android平台开发-WIFI 驱动移植 -- 详细-不错
一、WIFI的基本架构(代码路径) 1、WIFI Settings应用程序: packages/apps/Settings/src/com/android/settings/wifi/ 2、JAVA部分(framework): frameworks/base/services/java/com/android/server转载 2014-06-26 16:53:17 · 1006 阅读 · 0 评论