1. CHAP三次握手认证:
CHAP 挑战握手认证协议通过三次握手周期性的校验对端的身份,在初始链路建立时完成,可以在链路建立之后的任何时候重复进行。:
(1)、验证方生成一段随机报文传递到对方,并同时将本端的主机名附带上一起发送给被验证方;
(2)、被验证方接到对端对本端的验证请求时,便根据此报文中验证方的主机名和本端的用户表查找用户口令字,用此用户的口令对这段随机报文进行加密,然后与自己的用户名一起传递给对方;
(3)、验证方根据对方的用户名查找 user 列表,找到对应的口令,用这个口令对随机报文加密,与对方加密的随机报文比较,若相同则验证通过,否则失败。CHAP 不用在网络上传递口令,保密性较好。
2. PPP协商:
PPP是一种得到广泛应用的广域网协议,它同时支持同/异步传输介质,也支持拨号方式。在我们的日常生活、工作中,
拨号上网、DDN 专线等网络连接方式都是封装的PPP协议。
PPP 协议族的一个重要组成部分是链路控制协议LCP( Link Control Protocol),它用于协商链路的一些参数,负责创建并维护链路。
PPP 支持对多种网络层协议的封装。对于每一种网络层协议,它都提供一个
对应的网络控制协议NCP(Network Control Protocol),用来协商网络层协议的参数。
PPP链接控制协议点对点传输协议(POINT TO POINT PROTROL)TCP/IP协议中的一部分,是建在串行链路上封装IP数据包的方法。常用于低速的串行链路,在单根串行线路上支持多种协议,不只是IP协议. ppp协议是用于同步或异步串行线路协议,支持专线与拨号连接。ppp封装的串行线路支持CHAp和PAP协议!
3. EVDO网络中AT的三种状态:
在cdma2000 1x数据业务流程中,无线数据用户存在以下三种状态: (1). 激活态(ACTIVE):
手机和基站之间存在空中业务信道,两边可以发送数据,A1、A8、A10连接保持;
(2). 休眠状态(Dormant):
手机和基站之间不存在空中业务信道,但是两者之间存在PPP链接,A1、A8连接释放,A10连接保持;(空口资源是最宝贵的)
ppp连接就是手机至pdsn的数据点对点连接,即point to point;因为数据业务是突发业务,在休眠状态时空中资源释放了,但BSC仍然会保留至pdsn的ppp链路连接,一旦手机重新激活数据业务,就不需要重新进行ppp连接了。在休眠状态,AT与AN之间是没有链路的,但是AN与PDSN之间的链路是存在的,AT进入激活时,AN与AT之间再重新建立无线链路。
(3). 空闲状态(NULL):
手机和基站不存在空中业务信道和PPP链接,A1、A8、A10连接释放。 4. socket阻塞/非阻塞模式发送
关于socket的阻塞与非阻塞模式以及它们之间的优缺点,这已经没什么可言的;我打个很简单的比方,如果你调用socket send函数时; 如果是阻塞模式下:
send先比较待发送数据的长度len和套接字s的发送缓冲的长度,如果len大于s的发送缓冲区的长度,该函数返回SOCKET_ERROR;如 果len小于或者等于s的发送缓冲区的长度,那么send先检查协议是否正在发送s的发送缓冲中的数据,如果是就等待协议把数据发送完,如果协议还没有开 始发送s的发送缓冲中的数据或者s的发送缓冲中没有数据,那么 send就比较s的发送缓冲区的剩余空间和len,如果len大于剩余空间大小,send就一直等待协议把s的发送缓冲中的数据发送完,如果len小于剩余空间大小send就仅仅把buf中的数据copy到剩余空间里 如果是非阻塞模式下:
在调用socket send函数时,如果能写到socket缓冲区时,就写数据并返回实际写的字节数目,当然这个返回的实际值可能比你所要写的数据长度要小些(On nonblocking stream oriented sockets, the number of bytes written can be between 1 and the requested length, depending on buffer availability on both the client and server
computers),如果不可写的话,就直接返回SOCKET_ERROR了,所以没有等待的过程。
以套接字为例,在阻塞模式下,利用TCP协议发送一个报文时,如果低层协议没有可用空间来存放用户数据,则应用进程将阻塞等待直到协议有可用的空间。而在 非阻塞模式下,调用将直接返回而不需等待。在应用进程调用接收函数接收报文时,如果是在阻塞模式下,若没有到达的数据,则调用将一直阻塞直到有数据到达或 出错;而在非阻塞模式下,将直接返回而不需等待。对于UDP协议而言,由于UDP没有发送缓存,因此所有UDP协议即使在阻塞模式下也不会发生阻塞。对于 面向连接的协议,在连接建立阶段,阻塞与非阻塞也表现不一。在阻塞模式下,如果没有连接请求到达,则等待连接调用将阻塞直到有连接请求到达;但在非阻塞模 式下,如果没有连接请求到达,等待连接调用将直接返回。 5. TIPC
TIPC项目是TIPC协议的开源实现。TIPC项目组正在关注TIPC的演化,并致力于开发一个自由的可移植的TIPC协议实现。
在Linux和VxWorks中,TIPC已经可用,对Solaris的支持则正在开发当中。用C或C++编写的应用能够创建AF_TIPC协议簇的套结字(Socket)来使用TIPC协议,为Perl, Python和Ruby的插件现在也可使用。
TIPC 协议从Linux kernel版本2.6.16开始已经在内核支持,也可以作为模块置于之前版本的内核。其他操作系统中也有支持,包括Wind River VxWorks和Sun Microsystems的Solaris。