android dhcp and dns

###1.dhcp 和 dns DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率 对于一个TCP/IP网络来说, 最重要的设定就是 ip地址, 子网掩码, 网关, 以及dns, dhcp协议正是为了自动完成这些配置 RFC 2131中有对DHCP详细的描述。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的 DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析) DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明 linux和windows下, 可以使用“nslookup”命令来解析域名 linux下还可以使用 “dig 完全域名 +trace” 的形式来查看域名解析的过程 ###2. dhcpcd 兼容 RFC2131的DHCP客户端程序, 支持DHCP的全部功能且体积非常小,...

wext private ioctl

###1. wext linux上, 无线网卡驱动的控制接口有两个标准: wext : Wireless Extension, 使用wext的工具通过ioctl接口与driver通信, 如iwpriv, ifconfig等 nl80211 : 使用nl80211的工具通过netlink来与driver通信, 例如iw, iwconfig wext只能由userspace来发起通信, 而nl80211则可由kernel来发起, 并且支持消息多播, nl80211是今后的标准, 而wext则不再添加新的功能, 只是维护现在的代码 虽然nl80211已经成为主流, 但是相比较之下, wext开发和使用较为简单, 因此, 现在的许多driver中wext和nl80211被共同使用, 其中, nl80211用于实现userspace和driver通信, 而wext则用于实现一些厂商的私有command, 用于支持一些调试工具 由于wext在某些版本的改动较大, 因此, 后续只讨论wext 11 之后的版本 ###2. wext的ioctl接口 ####2.1 ioctl...

EAP 认证

###1. PAP 认证 PAP(PPP Authentication Protocol)密码认证协议,在RFC-1334中定义,起源于PPP的认证(正是PPP的认证和计费, 后续还出现了PPPoE),是典型的2次握手简单认证协议,PAP 并不是一种强有效的认证方法,其密码以文本格式在电路上进行发送,对于窃听、重放或重复尝试和错误攻击没有任何保护 PAP的标准化RFC-1334是在1992年提出的,那个时候还没有AAA服务器,所以只涉及到PC和NAS之间通信,这里的PAP(包括后面的CHAP)定义标准的时候都是指的PC和NAS间的认证,PAP和CHAP都是NAS来验证PC,而PC没有验证NAS,也就是所谓的单向验证 PAP协议很简单,其实就是在PPP建立过程中,PC需要将用户名和密码发送给NAS,NAS来验证用户名和密码的合法性,这个传送过程是明文传送的,这也是大家所谓的不安全,当然这部分确实是不安全的,IETF也建议不要使用PAP认证,在RFC-1334中明确了其已经被1994取代,也就是后面要讲到的CHAP PAP 认证的流程 PC <——> NAS:这部分是不是明文的那要看你PAP是在什么链路上运行的,如果是PPP协议,那可能是明文传送密码给NAS的,但是如果PAP认证协议是跑在TTLS(802.1X安全隧道中),那么外层隧道是加密的,所以即使PAP使用的是明文密码,对于隧道外来说仍然是密文的,所以简单的说PC和NAS之间的PAP是明文密码不安全的,是比较片面的; NAS <——>AAA:这部分就更不会是明文的了,NAS如果使用PAP认证协议找Radius服务器进行认证,那么他会将密码首先加密,放到User-Password属性中,交给Radius服务器,Radius服务器再进行解密获取原始密码,跟数据库中的密码进行比对得到认证结果; 所以我们常说的PAP认证使用明文密码,是不安全的,一般指的是1中PC和NAS之间的PAP认证协议,而Radius的PAP认证中并没有使用明文密码,是比较安全的(当然Radius的PAP密码保护使用了可逆的加密算法,安全程度不是太高)。 关于Radius协议中PAP认证协议的密码是如何加密的,具体实现可以查看RFC-2865, 大体是将用户密码按照16字节截断为p1、p2……,然后依次进行加密,形成密文c1+c2+….+cn 其中 c1 = p1 XOR MD5(secret + Authenticator) c2 = p2 XOR MD5(secret + c1) …. cn = pi XOR...

802.11 throughput

###1。 802.11 的bit Rate 和 throughput 802.11 的bit rate指的是理论上的物理层传输速度, 以802.11 a/gn/ac 为例, 使用OFDM, 一个讯符周期为4us, 采用不同的编码方式时,传输速率也不同, throughput 则是指传输层(TCP/UDP)的数据传输速率 传输层的数据进入, IP层, 需要添加IP层的帧头等数据, 进入MAC层, 还需要添加MAC层的帧头, 进入物理层, 还需要添加物理层的前导码和物理层的帧头, 可以看到, throughput势必要大大低于bit rate, 事实上,802.11 throughput能够达到宣称的bit rate的 50% ~ 60% 就已经很不错了 用户大部分时候都是通过传输层来传递数据,因此, 提升throughput尤为重要, 802.11 协议也在不断地引进新的技术来改善物理层和MAC层来提升throughput ###2. 物理层的改进...

802.11 速率自适应算法

###1. 802.11 支持多种传输速率 802.11 : 1 Mbps 802.11b : 2 Mbps 802.11g : 6.0 Mbps 9.0 Mbps 12.0 Mbps 18.0 Mbps 24.0 Mbps 36.0 Mbps 48.0 Mbps 54.0 Mbps 802.11n : MCS0 ~ MCS1 802.11ac : MCS1 ~ MCS9 ###2....