无线数据报协议

传输层的通信协议相当于TCP协议

无线数据报协议( Wireless Datagram Protocol,WDP) :WDP 是传输层的通信协议,相当于TCP协议。它可以工作在由不同无线窄带网络类型所支持的数据承载服务之上,提供不可靠的数据报服务;能向上层提供一致的服务和在可用载体上透明的通信功能。

定义
无线数据报协议(Wireless Datagram Protocol,缩写WDP)定义了信息从接收者到发送者的移动,并类似互联网协议包中的用户数据报协议(UDP)。无线数据报协议(WDP)是无线应用协议(WAP)架构中的一个协议,覆盖了互联网模型中的传输层协议。作为一个通用传输服务,WDP向上层提供一个独立于所用的底层网络技术的透明接口。WDP数据报错误处理由WCMP(Wireless Control Message Protocol)实现。
由于通用的传输协议接口,WAP架构的上层协议可以独立于底层的无线网络而操作。通过仅由传输层处理物理网络相关问题,可以使用调制网关获得全球互操作性。由于WDP能够为WAP的上层通信协议提供统一的相对稳定的通信界面,因此,包括应用层、会话层、安全层的通信都能直接在WDP 上运行。
协议概述
WDP协议的功能是在一个WDP承载服务上支持来自高层的多个同时发生的通信应用。 WDP提供的服务包括:端口号应用寻址,可选的分段/合段以及可选的错误检测。端口号标识WDP上高层实体。通过复用低层的承载网络部件,WDP可以支持多种承载网络,并且可以通过优化实现对移动设备有限资源的有效操作。
WDP协议的结构模型
如图1所示,图1中承载服务的不同高度表示不同载体提供的不同能力,导致必须引用相关的WDP协议以维持在TSAP上提供相同的服务。该功能由载体适配服务完成。可见,WDP协议的服务可以映射到具有不同特性的承载网络上,而WDP协议的服务和服务原语向上层提供一致的接口。可用的承载网络种类包括:GSM SMS/USSD, GPRS, IS-136 R-Data, CDMAPacket Data等。
如图2所示。在移动端,WDP协议包括公共WDP元素(标记为WDP)以及适配层。适配层将WDP协议功能直接映射到特殊承载网络,由承载网络层提供承载服务。适配层结束于无线数据网关,无线数据网关将WDP分组通过特殊的协议(隧道协议)传至WAP Proxy/Server。子网是任何用于联接两个通信设备的公共网络技术,如基于TCP/IP,X.25的广域或基于CP/IP/Ethernet的局域网;WAP Proxy/Server提供应用内容或作为无线WTP协议簇和有线Internet的网关。
WDP管理实体
WDP管理实体是WDP层与设备环境的接口。WDP管理实体向WDP层提供设备环境的变化,这些变化可能影响WDP的正确操作。WDP管理实体监控移动环境的服务/功能的状态,并在不能服务时通知WDP层,随之WDP网络管理实体将指示WDP层关闭所有活跃的联接。WDP管理实体除了监控移动环境的状态,它也可能向用户提供配置WDP参数的接口,如设备地址。 WDP管理实体同样用于实现由用户使用的功能,如“结束所有数据连接”。通常,WDP管理实体将处理所有与启动、配置、动态重新配置以及与资源有关的问题。
WDP over GSM SMS/CSD
在GSM中的WDP承载网络包括GSM SMS和GSM USSD。GSM SMS Phase 1支持基于文本的头;GSM SMS Phase2支持基于二进制和文本的头。在WDP协议中使用的每一个分组均用户数据头(UDH)、信息元素(IE)、标识符进行标识。用户数据头信息元素标识符定义了一个位于分组头的端口号结构。这种信息元素标识符具有与基于IP的网络中的协议标识符相似的功能,并使得WDP协议与继承承载网络的其它特性共存。
模块
子模块以及子模块间接口功能如下:
上层协议接口模块
为了保证不同承载网络模块与上层协议的独立性以及提高系统的可靠性,此处采用TCP-Socket作为这两个模块的接口。在系统初始化期间,在接口与上层协议栈之间建立一条TCP连接,作为这两个模块信息交互的通道。这样,既保证了不同模块可以在不同的机器上运行以增加系统配置的灵活性,也增加了系统的可靠性。
管理模块
管理模块负责与WAP总体管理模块交互。在系统初始化期间根据初始化文件对承载网络模块的守护进程进行初始化(如发送缓冲区、接收缓冲区的大小,TCP-Socket侦听端口号,功能模块的定制等)。根据需要或者在承载网络部分出现异常情况时对系统日志文件进行记录。与WAP系统管理模块通过socket交互管理报文。
数据传输管理模块
数据传输管理模块是核心。在初始化期间它根据来自管理模块的侦听端口号启动TCP的服务器端,等待来自上层协议栈的连接建立请求并建立TCP连接。在运行时,它主要有以下几个任务: a.负责接收来自上层协议接口的数据并放入发送缓冲区待发送;b.根据承载网络不同,调用UDP/IP或WDP,将发送缓冲区内的数据通过底层无线承载服务进行传输;c.负责将接收缓冲区内的数据通过TCP连接发往上层协议栈模块;d.在传输出现异常时,发送相应的ICMP/WCMP报文; e.接收到ICMP/WCMP报文时,根据相应情况处理或者通知上层协议栈。
缓冲区管理模块
缓冲区管理模块分为发送缓冲区管理和接收缓冲区管理两个部分。各部分通过信号量管理以保证发送接收报文间不发生冲突。在缓冲区上溢时进行相应错误处理。
WDP协议处理模块
实现端口号应用寻址功能,分段/合段功能以及错误检测功能等。
WCMP协议处理模块
主要处理以下异常情况: a.终点不可达:如运输协议(如WDP)没有特殊端口的侦听者等;b.参数问题:即处理分组的WDP结点发现WDP头中的域有问题从而导致不能完成对分组的处理时;c.报文太大:用于当分段报文的第一个数据报被接受且没有足够的缓存空间用于存储整个报文的情况;d.合段失败:即组合分段的数据报的结点不能完成组合,它包括合段时间超时和缓存溢出两种情况;e.WCMP回应请求/应答:提供应用层的接口用于发送回应请求和接收回应应答,以用于诊断目的。
技术和方法
多类型报文的处理
上述各模块需要处理多种类型的报文,有UDP报文、WDP报文、管理报文等。对于从底层接收到的UDP报文和WDP报文,将其放在接收缓冲区中;对于从上层协议模块接收到的回应服文则放入发送缓冲区中。针对UDP报文和WDP报文的发送方的不同地址发送回应报文。
对于与管理模块的交互,是通过与系统管理模块建立socket连接定时发送管理轮询报文来实现。从系统管理模块接收到的轮询报文放入接收缓冲区中,然后通过与上层协议的接口发送给上层协议栈。上层协议栈传回的回应轮询报文也通过与上层协议的接口发送给承载网络模块。再由承载网络模块通过与系统管理模块的接口回送给系统管理模块。
为了充分发挥多线程任务调度的优势,在承载网络模块的实现中,报文的发送、接收等处理都是用单一进程、多个线程实现的。除了对报文的接收发送,模块对缓冲区的管理也通过线程进行:定时检测缓冲区内的报文,将出错或过期的报文删除。由于采用多线程技术,发送和接收缓冲区就成了两个最主要的共享资源。对于这两个资源的访问需要考虑到临界资源访问冲突问题。为此,我们使用互斥锁机制保证对资源的正确访问。
全国各地天气预报查询

上海市

  • 市辖区
  • 云南省

  • 临沧市
  • 云南省

  • 丽江市
  • 云南省

  • 保山市
  • 云南省

  • 大理白族自治州
  • 云南省

  • 德宏傣族景颇族自治州
  • 云南省

  • 怒江傈僳族自治州
  • 云南省

  • 文山壮族苗族自治州
  • 云南省

  • 昆明市
  • 云南省

  • 昭通市
  • 云南省

  • 普洱市
  • 云南省

  • 曲靖市
  • 云南省

  • 楚雄彝族自治州
  • 云南省

  • 玉溪市
  • 云南省

  • 红河哈尼族彝族自治州
  • 云南省

  • 西双版纳傣族自治州
  • 云南省

  • 迪庆藏族自治州
  • 内蒙古自治区

  • 乌兰察布市
  • 内蒙古自治区

  • 乌海市
  • 内蒙古自治区

  • 兴安盟
  • 内蒙古自治区

  • 包头市
  • 内蒙古自治区

  • 呼伦贝尔市
  • 内蒙古自治区

  • 呼和浩特市
  • 内蒙古自治区

  • 巴彦淖尔市
  • 内蒙古自治区

  • 赤峰市
  • 内蒙古自治区

  • 通辽市
  • 内蒙古自治区

  • 鄂尔多斯市
  • 内蒙古自治区

  • 锡林郭勒盟
  • 内蒙古自治区

  • 阿拉善盟
  • 北京市

  • 市辖区
  • 吉林省

  • 吉林市
  • 吉林省

  • 四平市
  • 吉林省

  • 延边朝鲜族自治州
  • 吉林省

  • 松原市
  • 吉林省

  • 白城市
  • 吉林省

  • 白山市
  • 吉林省

  • 辽源市
  • 吉林省

  • 通化市
  • 吉林省

  • 长春市
  • 四川省

  • 乐山市
  • 四川省

  • 内江市
  • 四川省

  • 凉山彝族自治州
  • 四川省

  • 南充市
  • 四川省

  • 宜宾市
  • 四川省

  • 巴中市
  • 四川省

  • 广元市
  • 四川省

  • 广安市
  • 四川省

  • 德阳市
  • 四川省

  • 成都市
  • 四川省

  • 攀枝花市
  • 四川省

  • 泸州市
  • 四川省

  • 甘孜藏族自治州
  • 四川省

  • 眉山市
  • 四川省

  • 绵阳市
  • 四川省

  • 自贡市
  • 四川省

  • 资阳市
  • 四川省

  • 达州市
  • 四川省

  • 遂宁市
  • 四川省

  • 阿坝藏族羌族自治州
  • 四川省

  • 雅安市
  • 天津市

  • 市辖区
  • 宁夏回族自治区

  • 中卫市
  • 宁夏回族自治区

  • 吴忠市
  • 宁夏回族自治区

  • 固原市
  • 宁夏回族自治区

  • 石嘴山市
  • 宁夏回族自治区

  • 银川市
  • 安徽省

  • 亳州市
  • 安徽省

  • 六安市
  • 安徽省

  • 合肥市
  • 安徽省

  • 安庆市
  • 安徽省

  • 宣城市
  • 安徽省

  • 宿州市
  • 安徽省

  • 池州市
  • 安徽省

  • 淮北市
  • 安徽省

  • 淮南市
  • 安徽省

  • 滁州市
  • 安徽省

  • 芜湖市
  • 安徽省

  • 蚌埠市
  • 安徽省

  • 铜陵市
  • 安徽省

  • 阜阳市
  • 安徽省

  • 马鞍山市
  • 安徽省

  • 黄山市
  • 山东省

  • 东营市
  • 山东省

  • 临沂市
  • 山东省

  • 威海市
  • 山东省

  • 德州市
  • 山东省

  • 日照市
  • 山东省

  • 枣庄市
  • 山东省

  • 泰安市
  • 山东省

  • 济南市
  • 山东省

  • 济宁市
  • 山东省

  • 淄博市
  • 山东省

  • 滨州市
  • 山东省

  • 潍坊市
  • 山东省

  • 烟台市
  • 山东省

  • 聊城市
  • 山东省

  • 菏泽市
  • 山东省

  • 青岛市
  • 山西省

  • 临汾市
  • 山西省

  • 吕梁市
  • 山西省

  • 大同市
  • 山西省

  • 太原市
  • 山西省

  • 忻州市
  • 山西省

  • 晋中市
  • 山西省

  • 晋城市
  • 山西省

  • 朔州市
  • 山西省

  • 运城市
  • 山西省

  • 长治市
  • 山西省

  • 阳泉市
  • 广东省

  • 东莞市
  • 广东省

  • 中山市
  • 广东省

  • 云浮市
  • 广东省

  • 佛山市
  • 广东省

  • 广州市
  • 广东省

  • 惠州市
  • 广东省

  • 揭阳市
  • 广东省

  • 梅州市
  • 广东省

  • 汕头市
  • 广东省

  • 汕尾市
  • 广东省

  • 江门市
  • 广东省

  • 河源市
  • 广东省

  • 深圳市
  • 广东省

  • 清远市
  • 广东省

  • 湛江市
  • 广东省

  • 潮州市
  • 广东省

  • 珠海市
  • 广东省

  • 肇庆市
  • 广东省

  • 茂名市
  • 广东省

  • 阳江市
  • 广东省

  • 韶关市
  • 广西壮族自治区

  • 北海市
  • 广西壮族自治区

  • 南宁市
  • 广西壮族自治区

  • 崇左市
  • 广西壮族自治区

  • 来宾市
  • 广西壮族自治区

  • 柳州市
  • 广西壮族自治区

  • 桂林市
  • 广西壮族自治区

  • 梧州市
  • 广西壮族自治区

  • 河池市
  • 广西壮族自治区

  • 玉林市
  • 广西壮族自治区

  • 百色市
  • 广西壮族自治区

  • 贵港市
  • 广西壮族自治区

  • 贺州市
  • 广西壮族自治区

  • 钦州市
  • 广西壮族自治区

  • 防城港市
  • 新疆维吾尔自治区

  • 乌鲁木齐市
  • 新疆维吾尔自治区

  • 伊犁哈萨克自治州
  • 新疆维吾尔自治区

  • 克孜勒苏柯尔克孜自治州
  • 新疆维吾尔自治区

  • 克拉玛依市
  • 新疆维吾尔自治区

  • 博尔塔拉蒙古自治州
  • 新疆维吾尔自治区

  • 吐鲁番市
  • 新疆维吾尔自治区

  • 和田地区
  • 新疆维吾尔自治区

  • 哈密市
  • 新疆维吾尔自治区

  • 喀什地区
  • 新疆维吾尔自治区

  • 塔城地区
  • 新疆维吾尔自治区

  • 巴音郭楞蒙古自治州
  • 新疆维吾尔自治区

  • 昌吉回族自治州
  • 新疆维吾尔自治区

  • 自治区直辖县级行政区划
  • 新疆维吾尔自治区

  • 阿克苏地区
  • 新疆维吾尔自治区

  • 阿勒泰地区
  • 江苏省

  • 南京市
  • 江苏省

  • 南通市
  • 江苏省

  • 宿迁市
  • 江苏省

  • 常州市
  • 江苏省

  • 徐州市
  • 江苏省

  • 扬州市
  • 江苏省

  • 无锡市
  • 江苏省

  • 泰州市
  • 江苏省

  • 淮安市
  • 江苏省

  • 盐城市
  • 江苏省

  • 苏州市
  • 江苏省

  • 连云港市
  • 江苏省

  • 镇江市
  • 江西省

  • 上饶市
  • 江西省

  • 九江市
  • 江西省

  • 南昌市
  • 江西省

  • 吉安市
  • 江西省

  • 宜春市
  • 江西省

  • 抚州市
  • 江西省

  • 新余市
  • 江西省

  • 景德镇市
  • 江西省

  • 萍乡市
  • 江西省

  • 赣州市
  • 江西省

  • 鹰潭市
  • 河北省

  • 保定市
  • 河北省

  • 唐山市
  • 河北省

  • 廊坊市
  • 河北省

  • 张家口市
  • 河北省

  • 承德市
  • 河北省

  • 沧州市
  • 河北省

  • 石家庄市
  • 河北省

  • 秦皇岛市
  • 河北省

  • 衡水市
  • 河北省

  • 邢台市
  • 河北省

  • 邯郸市
  • 河南省

  • 三门峡市
  • 河南省

  • 信阳市
  • 河南省

  • 南阳市
  • 河南省

  • 周口市
  • 河南省

  • 商丘市
  • 河南省

  • 安阳市
  • 河南省

  • 平顶山市
  • 河南省

  • 开封市
  • 河南省

  • 新乡市
  • 河南省

  • 洛阳市
  • 河南省

  • 漯河市
  • 河南省

  • 濮阳市
  • 河南省

  • 焦作市
  • 河南省

  • 省直辖县级行政区划
  • 河南省

  • 许昌市
  • 河南省

  • 郑州市
  • 河南省

  • 驻马店市
  • 河南省

  • 鹤壁市
  • 浙江省

  • 丽水市
  • 浙江省

  • 台州市
  • 浙江省

  • 嘉兴市
  • 浙江省

  • 宁波市
  • 浙江省

  • 杭州市
  • 浙江省

  • 温州市
  • 浙江省

  • 湖州市
  • 浙江省

  • 绍兴市
  • 浙江省

  • 舟山市
  • 浙江省

  • 衢州市
  • 浙江省

  • 金华市
  • 海南省

  • 三亚市
  • 海南省

  • 三沙市
  • 海南省

  • 儋州市
  • 海南省

  • 海口市
  • 海南省

  • 省直辖县级行政区划
  • 湖北省

  • 十堰市
  • 湖北省

  • 咸宁市
  • 湖北省

  • 孝感市
  • 湖北省

  • 宜昌市
  • 湖北省

  • 恩施土家族苗族自治州
  • 湖北省

  • 武汉市
  • 湖北省

  • 省直辖县级行政区划
  • 湖北省

  • 荆州市
  • 湖北省

  • 荆门市
  • 湖北省

  • 襄阳市
  • 湖北省

  • 鄂州市
  • 湖北省

  • 随州市
  • 湖北省

  • 黄冈市
  • 湖北省

  • 黄石市
  • 湖南省

  • 娄底市
  • 湖南省

  • 岳阳市
  • 湖南省

  • 常德市
  • 湖南省

  • 张家界市
  • 湖南省

  • 怀化市
  • 湖南省

  • 株洲市
  • 湖南省

  • 永州市
  • 湖南省

  • 湘潭市
  • 湖南省

  • 湘西土家族苗族自治州
  • 湖南省

  • 益阳市
  • 湖南省

  • 衡阳市
  • 湖南省

  • 邵阳市
  • 湖南省

  • 郴州市
  • 湖南省

  • 长沙市
  • 甘肃省

  • 临夏回族自治州
  • 甘肃省

  • 兰州市
  • 甘肃省

  • 嘉峪关市
  • 甘肃省

  • 天水市
  • 甘肃省

  • 定西市
  • 甘肃省

  • 平凉市
  • 甘肃省

  • 庆阳市
  • 甘肃省

  • 张掖市
  • 甘肃省

  • 武威市
  • 甘肃省

  • 甘南藏族自治州
  • 甘肃省

  • 白银市
  • 甘肃省

  • 酒泉市
  • 甘肃省

  • 金昌市
  • 甘肃省

  • 陇南市
  • 福建省

  • 三明市
  • 福建省

  • 南平市
  • 福建省

  • 厦门市
  • 福建省

  • 宁德市
  • 福建省

  • 泉州市
  • 福建省

  • 漳州市
  • 福建省

  • 福州市
  • 福建省

  • 莆田市
  • 福建省

  • 龙岩市
  • 西藏自治区

  • 山南市
  • 西藏自治区

  • 拉萨市
  • 西藏自治区

  • 日喀则市
  • 西藏自治区

  • 昌都市
  • 西藏自治区

  • 林芝市
  • 西藏自治区

  • 那曲市
  • 西藏自治区

  • 阿里地区
  • 贵州省

  • 六盘水市
  • 贵州省

  • 安顺市
  • 贵州省

  • 毕节市
  • 贵州省

  • 贵阳市
  • 贵州省

  • 遵义市
  • 贵州省

  • 铜仁市
  • 贵州省

  • 黔东南苗族侗族自治州
  • 贵州省

  • 黔南布依族苗族自治州
  • 贵州省

  • 黔西南布依族苗族自治州
  • 辽宁省

  • 丹东市
  • 辽宁省

  • 大连市
  • 辽宁省

  • 抚顺市
  • 辽宁省

  • 朝阳市
  • 辽宁省

  • 本溪市
  • 辽宁省

  • 沈阳市
  • 辽宁省

  • 盘锦市
  • 辽宁省

  • 营口市
  • 辽宁省

  • 葫芦岛市
  • 辽宁省

  • 辽阳市
  • 辽宁省

  • 铁岭市
  • 辽宁省

  • 锦州市
  • 辽宁省

  • 阜新市
  • 辽宁省

  • 鞍山市
  • 重庆市

  • 重庆市

  • 市辖区
  • 陕西省

  • 咸阳市
  • 陕西省

  • 商洛市
  • 陕西省

  • 安康市
  • 陕西省

  • 宝鸡市
  • 陕西省

  • 延安市
  • 陕西省

  • 榆林市
  • 陕西省

  • 汉中市
  • 陕西省

  • 渭南市
  • 陕西省

  • 西安市
  • 陕西省

  • 铜川市
  • 青海省

  • 果洛藏族自治州
  • 青海省

  • 海东市
  • 青海省

  • 海北藏族自治州
  • 青海省

  • 海南藏族自治州
  • 青海省

  • 海西蒙古族藏族自治州
  • 青海省

  • 玉树藏族自治州
  • 青海省

  • 西宁市
  • 青海省

  • 黄南藏族自治州
  • 黑龙江省

  • 七台河市
  • 黑龙江省

  • 伊春市
  • 黑龙江省

  • 佳木斯市
  • 黑龙江省

  • 双鸭山市
  • 黑龙江省

  • 哈尔滨市
  • 黑龙江省

  • 大兴安岭地区
  • 黑龙江省

  • 大庆市
  • 黑龙江省

  • 牡丹江市
  • 黑龙江省

  • 绥化市
  • 黑龙江省

  • 鸡西市
  • 黑龙江省

  • 鹤岗市
  • 黑龙江省

  • 黑河市
  • 黑龙江省

  • 齐齐哈尔市