作者:Sreekrishnan. Venkateswara.n .
GSM 上的 Linux GP.RS 和数据 .
GPRS 是一个用于通过 GSM 传输数据.的数据分组服务,是一种卓越的数字蜂窝标准。尽管 GSM 上的数据是线路交换的并且不管怎样都占用一个通道,但是 G.PRS 上的数据是一直连接的(.always-on)、分组交换(pac.ket-switche.d)的数据流,用户根据使用付费。GSM 的传输速度一般是 9.6 kbps,而 GPRS 能够运行的速度为 56 kbps 到 170 kbps。 建材
GPRS 和 GSM 芯片通常有一个到系统的 UART 接口。对于内置 GSM/GPRS 支持的母板(例如,一个带有连接到 UART 通道的 Siemen MC-45 模块的母板).,传统的串行驱动程序就能驱动这个链接。考虑 PCMCIA/CF 的形成因素(例如一张可选 GPRS 卡),serial_cs(是用于访.问 PCMCIA 串行设备的普通卡服务驱动程序)能够允许其他操作系统把此卡当作一个串行设备。第一个未使用的串行设备(/dev/ttySx)被分配给此卡,然后此卡就可以被当成串.行设备访问。serial_cs 也可以通过全球定位系..统 (GPS) PCMCIA 和 CF 卡.模拟.串行端口。针对 USB GPRS 调制解调器而言.,USB-to-serial 转换器一般 USB 端口转换为虚拟串行端口,因此系统其他部分就会将它看作串行设备。 .
GPRS 网络使用 GGSN(GPRS 网关支持节点) 连接到一个外.部网络(例如 Internet)。G.PRS 设备类似于拥有扩展 AT 命令集的调制解调器,在进入数据..模式之前必须使用 AT 命令定义一个上下文。上下文字符串看起来类似于清单 3 中给出的示例。 外汇
清单 3. 上下文字符串
'AT+CGDCONT.=1,"IP","internet.voicestream.com","0..0.0.0",0,0' 电子
在这个示例中,1. 代表上下文编号,IP 是数据分组类型,internet.voicestream.com 是接入点名.称(APN) 字.符串,0.0.0.0 意味着服务提供者选择 IP 地址,其他参数与数据和报头压缩有关。APN 字符串取决于服务提供者.。一般不需要用户名和口令。 电子
PPP 允许网络协议(比如 TCP/IP)在串行链路上运行。在无线网络.的上下文中,PPP .可以使 TCP/IP .运行于 GPRS 上,.数据通过 GSM、Bluetooth RFCOMM 以及 IrDa COMM 进行传输。清单 4 给出了一种调用 PPP 后台进程 pppd 的公共语法。 .
清单 4. 调用 PPP 后台进程. pppd .的公共语法 电子
pppd ttySx ca.ll connectio.n-script健康
在这个示例中,ttySx 是物理或虚拟的串行设备(PPP 运行其上),connection-script 是 /etc/ppp/peers/ 目录中的一个文件,这个目录包含在 pppd .和服务提供者之间交换的用于建立链接的 AT 命令序列。建立链接并完成身份验证以后,PPP 将启动网络控制协议(Network Control Protocol,NCP)。IPCP (Internet Prot.ocol Control Pro.toc.ol,Internet .协.议控制协议) 是用于运行 IP 的 NCP。一旦 IPCP 成功通过 IP 地址,PPP 就开始与 TCP/.IP 栈交互。 外贸
清单 5 给出了用于连接到 GPRS 服务提供者的 PPP 链接脚本示例,而清单 6 给.出的是用于到 GSM 服务提供者的数据连接的连接脚本示例。 . 杀毒
清单 5. 针.对 GPRS 的 pppd 链接脚本示例(/etc/ppp/peer/gp.rs-script) 外贸
115200 connect "/usr/sbin/chat -s -v "" AT+CGDCONT=1,"IP", "internet2.voicestream.com","0.0.0.0",0,0 OK AT+CGDATA="PP",1" crtscts noipdefault modem usepeerdns defaultroute connect-delay 5000http://upload.bbs.csuboy.com/Mon_1004/126_6910_4f4b5a14d6d2379.gif[/img]
从操作.系统.的角度出发,GSM 上的数据类似于通过拨号调试解调器连接收发的数据。互联网服务提供商(ISP)的电话号.码是使用 GSM 拨入的,并且会建立一个拨号连接。利用用户名和口令进行身份验证。 ( 游戏 )
一旦 PPP 建立了与服务提供者的 IP 连接,TCP 应用程序例如 Web 浏览器就可以不加更改.地在 GSM/GPRS .设备上运行。 --- 印刷
gsmlib. 项目为通过 GSM 发送语音和 SMS(Short Messaging Service,短信服务)提供了实用程序(请参阅 参考资料 了解更多关于 gsmlib 的信息)。它包括用于存取 Subscriber. Identity Module (SIM.)卡中的电话簿、收发 SMS 消息等功能的实用程序。. 教育
清单 6. 用于通过 G.SM 传输数据的 pppd 连接脚.本示例(/etc/ppp/peer/gsm-script) (广告)
115200 connect '/usr/sbin/chat -s -v ABORT "NO CARRIER" ABORT "NO .DIALTONE" ABORT "BUSY" "" AT OK ATDT<phone_number>; CONNECT' crtscts noi.pdefault m.odem user "linux" usepeerdns defaultrou.te conn.ect-delay 5000 美容
Li.nux Infrared Data 汽车
Infrared Data (IrDa) 是一种用红外线无线传输.数据的规范。主要用于连接膝上电脑或者将录.像机或照相机这样的设备连接到计算机系统。 .
IrDa 的速度从 Serial .Infrared (SIR) 的 115. kbps 到 Very Fast Infrared (VFIR) 的 16 Mbps。大多数处于 SIR 模式的 IrDa 芯片是 UART 16.650 兼容的(16650 是一种公共 PC UART),因此传统 Linux 串口驱动.程序可以充当链路级别的驱动程序。IrDa 行的规范实现 —— IrTTY (drivers/net/irda/irtty.c),使串行驱动程序驱动 SIR。IrPORT 驱动程序(drivers/net/irda/irport.c)代替了 IrTT.Y 和串行.驱动程序,并提供更好的设备控制。与串行驱动器.不兼容的 IrDa. 芯片有自己的设备驱动程序。例如,NSC PC87108 芯.片组就使用自己的驱动程序(nsc-ircc..c)。与上面讨论到的用于 USB Bluetooth 设备的 hci-usb 驱动程序类似,irda-usb.c 设备驱动程序支持 USB IrDa FIR 软件狗。 虚拟主机
IrLAP 是负责 IrDa 设备发现、重传以及流控制的链路存取协议层。IrLMP 链路管理层和 Tiny 传输协议层(TinyTP)驻留于 IrLAP 之上。而它们之上是 IrCOMM 和 IrLAN 层。.IrCOMM(.在 net/irda/ircomm/ 中实现)提供串行模拟,使运行于串行端口.(比如终端.仿真器)上的应用程序不加更改地在 IrDa. 栈上运行。IrLAN(在 net/irda/irlan/ 中实现)提供使 TCP/IP 直接运行于 IrDa 栈之上的虚拟网络接口。IrLAN 代码使用 register_netdev 将太网设备注册到 Linux 网络层,使用 netif_rx .向 Linux IP 栈发送数据.(与对 WLAN 驱动程序和 Bluetooth BNEP的解释类似)。IrCOMM 与 Bluetooth RFCOMM 相似,而 IrLAN 则类似于 Bluetooth BN..EP。 ( 游戏 )
IrOBEX. 是建立在 TinyTP 之上的一个简单协议,它允许传输二进制数据。IrOB.EX 的扩展定义了不同数据对象的传输。 [成人用品]
为了在 Linux 上应用 IrDa 协议,必须安装 IrDa. 实用程序(如 irattach),它是作为 Li.nux I.rDa 项目的一部分开发的。 健康
性能问题
网络性能取决于特定载体网络的特征。例如,GPRS 的带宽取.决于使用的代码模式,而 B.luetoot.h 的性能受 L2CAP 层的网段的影响。对于 WLAN 工作站与接入点之间的通信,帧确认会降低.带宽, 使用同一接入点的其他工作站的数量也会带来同样影响。 .
无线网络的特征(比如低且波动的带宽和高延迟)会歪曲 TCP 度量和传输策略。尽管无线网络中.的大多数损耗来自.信号衰退、干扰以及连接中断等因素,但是 TCP 假定这些损耗与.拥塞有关, 因此它摒弃了降低网络流量的算法。有多种项目用来调整 .TCP 和 Web 浏览器的行为以适应无线网络。 (广告)
结束语
在本文中,您浏览了是针对包括 WLAN、Bluetooth.、GPRS、GSM 和 IrDA 在内的流行的无.线技术的 Linux 设备驱动程序和网.络协议层。还通过跟踪相应.的代码路径和讨论相关的用户空间工具,了解到不同的无线设备如何在 Linux 中工作。 .
现在,有了对 Linux 上提供的对各种无线技术、网络技术以及总线技术的核心支持的理.解,您可以修补多.种具有不同形成因素的无线设备,开发启用不被支持的设备所需的 Linux 内核.代码。 乙肝
关于作者
Sr.eekrishnan Venkateswaran 拥有印度坎普尔市印度科技学院的计算机科学硕士学位。.他从 1996 年 2 月开始为 IBM India 工作。 他的兴趣包括设计设.备驱动程序和网络协.议。可以通过
s_krishna@in.ibm.com 与 Sreekrishnan 联系。 鲜花
全文出自 : IBM ..developerWorks 中国网站电脑