请教ppp、socket、PDP之间的关系?
请教ppp、socket、PDP之间的关系
[解决办法]
GPRS的书上不是讲的很清楚了么
[解决办法]
pdp硬件配置
ppp相当于链路层协议
socket套接字,对tcp/ip协议的封装、应用
gprs上网首先要设置pdp,接着建立ppp连接,ppp连接建立后,就可以进行tcp/ip传输了,
要进行tcp/ip数据传输,很多时候都采用socket
[解决办法]
人民邮电出版社 《通用分组无线业务GPRS技术与应用》
[解决办法]
据我所知道的:从网络侧来看,PPP连接最重要的一步是获取IP地址,这个IP由GGSN分配,GGSN是GPRS网到internet的网关,GSM和WCDMA协议规定一个MODEM可以和多个GGSN建立PDP上下文,不知道你所说的服务器是否指GGSN。而socket连接的服务器和GGSN完全是两码事,socket连接的是internet网络中的服务器,socket是用于进程间通信的,它将进程与TCP/UDP端口进行绑顶,一个client端的socket只能连接一个server socket。也就决定了它只能连接一台服务器。
[解决办法]
今晚比较无聊,说两句吧
如果你要写应用程序,你只需要关心socket的函数族就可以了。不需要去考虑GPRS如何如何。它对你是透明的。当然,写应用的时候必须注意两件事:1、GPRS是否可用。如果当前GPRS根本就无法连接,你开socket是毫无意义的;2、拥塞控制。GPRS速度其实并不高,用惯了宽带网的小朋友很喜欢在上面一秒一千个循环每个循环1000字节的发送内容,网络堵死了都不知道怎么死的。从理论上来说,如果你的平台上的TCP/IP足够完整,你根本不需要考虑GPRS的内容,只需要根据TCP/IP协议栈上的接口就完全可以控制应用程序的调度和流控了。通常的平台上,TCP/IP协议栈都是“赛扬”版的,所以应用程序经常还需要去读取GPRS状态。
如果你写的是GPRS协议栈,关心到PDP就可以为止了。上面一段描述的时候有意“忽略”了一个“很重要的问题”——手机漫游的时候IP地址会不会变化?如果手机的GPRS没有长时间掉线,就不会变化。PDP就是处理这件事的。PDP的作用相当于维持一根看不见的网线,不管你走到哪儿都保证你IP地址不变。或者你可以认为PDP的上下文标志就是手机这张“网卡”的“MAC地址”。至于PDP怎么实现,应该是你去看GPRS资料的事情了。
PPP是发生在PDP和TCP/IP之间的。这里引入PPP基于两个历史渊源:1、GPRS提供PDP之后,在其上到底如何移植TCP/IP?TCP/IP当然可以覆盖在PDP之上,但这几乎就是重写TCP/IP了。而更早的时候已经有以PPP为底层的TCP/IP了。PPP的移植又比TCP/IP的移植要简单得多。于是就有人先把PPP移植到PDP上,然后再在上面盖一层TCP/IP。PPP其实就是一个DL(数据链路层)的变异体;2、(实际上这个才是真正的最主要的渊源),最开始的处理器能力都不够,跑GPRS之后,根本不可能再跑TCP/IP协议栈和应用,GPRS充当modem,TCP/IP和应用程序在PC一端。GPRS的数据怎么弄进PC呢?这就是PPP的用武之地了。PC和GPRS modem用串口进行物理链接,串口之上覆盖PPP协议,PPP的一端是GPRS modem的PDP,另一端就是TCP/IP的数据链路层接口。