GSM模块_GPRS网络中使用TCP协议比使用UDP有何优势
来源:互联网 发布:大学软件开发专业课程 编辑:程序博客网 时间:2024/05/22 04:13
China移动的GPRS网络是使用的虚拟IP地址,需要通过移动的虚拟地址转换路由器进行与internet之间消息的转发,具体实现过程---NAT router得到从内网IP地址发来的请求,把该请求的IP源地址,端口号替换成一个真实的internet IP地址和一个空闲端口号,并在内部表格中添加相应翻译信息的表项,把信息传递给远端。
今后NAT 路由器将维护该表格中的表项,如果从远端收到指向该表项端口号的信息,将把真实的虚拟IP地址和端口号翻译回来。
因此使用GPRS网络进行与internet通信需要GPRS虚拟IP侧首先发起TCP连结或发UDP数据包给远端server,这样才能让NAT router 建立起正确的翻译表项。今后就可以进行双向网络数据传输了。
从NAT协议的实现上,对UDP翻译表项和TCP翻译表项的保持时间不同,因为UDP没有类次TCP的连接撤销报文协议,因此采用超时无消息包传送即释放的方式,实测China移动的网络UDP表项保持时间只有几秒钟。也就是说,如果几秒钟双方没有通信,如果是internet server侧发送信息给GPRS虚拟IP,该信息因为相应的NAT router表项已经释放的原因将丢失。为避免这个问题,除非用户仅实现GPRS网络侧的上传等待回应这种消息传送方式,否则为了保持NAT路由器的翻译表项,GRPR需要不停发送信息(一般称为heartbeat信息,或称心跳信息)来获得该连结表项的保持。这样会带来额外的流量费用。
而TCP做为一个连接型的协议,因此nat route 可以知道何时双方连接结束,因此会一直保持该连结,就不需要不停发heartbeat来保持该连结。当然也有可能需要重新刷新该表项的情况,如NAT 路由器掉电或复位,或资源不足而释放相应表项,但这种情况的概率是非常小的。可以使用发送超时或一个较长时间的heartbeat来解决。
另外GPRS网络的时延和误码率相对较高,TCP协议实现了重发,排序和流控,而UDP需要用户自己在应用程序中做这些工作,用户自己的实现不可能比已经广泛应用了几十年的TCP协议更可靠,因此可知,TCP协议更适合GPRS网络的现状。
0 0
- GSM模块_GPRS网络中使用TCP协议比使用UDP有何优势
- 移动网络应用开发中,使用 HTTP 协议比起使用 socket 实现基于 TCP 的自定义协议有哪些优势?
- 移动网络应用开发中,使用 HTTP 协议比起使用 socket 实现基于 TCP 的自定义协议有哪些优势?
- 为什么UDP有时比TCP更有优势
- 为什么UDP有时比TCP更有优势
- 为什么UDP有时比TCP更有优势?
- 为什么UDP有时比TCP更有优势
- Android 中使用TCP、UDP协议
- GSM模块_GPRS数据传输机制和原理
- GSM模块_GPRS数据传输机制和原理
- DNS使用UDP协议还是TCP协议
- 22java中使用UDP TCP 协议做聊天工具
- GSM模块_GPRS传输长数据包时的经验总结
- ISO的七层模型是什么?tcp/udp属于哪一层?tcp/udp有哪些优缺点?tcp/udp的使用场合?PPP协议属于哪一层协议?
- ISO的七层模型是什么?tcp/udp属于哪一层?tcp/udp有哪些优缺点?tcp/udp的使用场合?PPP协议属于哪一层协议?
- Linux Socket网络编程 分别使用TCP协议 和 UDP协议
- DNS使用TCP还是UDP协议
- UDP与TCP各自有何优缺点?
- vs 2015 不能调试winform程序解决办法
- 程序修行从“拔刀术”到“万剑诀”
- sdut 活动选择问题
- Android加固与脱壳学习之linux基础和抽取dex
- 正则表达式边界符中的 ^, $, \A, \Z, \z
- GSM模块_GPRS网络中使用TCP协议比使用UDP有何优势
- 可变长参数
- java IO注意事项
- 远程仓库克隆到本地
- mysql数据库客户端访问权限配置
- JavaScript 鼠标点击事件的整合
- spark应用中的sbt简单使用
- JZOJ4890. 随机游走
- sdut 悼念512汶川大地震遇难同胞