PPP,PDP原理以及同socket的关系.doc_第1页
PPP,PDP原理以及同socket的关系.doc_第2页
PPP,PDP原理以及同socket的关系.doc_第3页
PPP,PDP原理以及同socket的关系.doc_第4页
PPP,PDP原理以及同socket的关系.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PPP和PDP激活是什么区别!ppp相当于链路层协议 socket套接字,对tcp/ip协议的封装、应用 gprs上网首先要设置pdp,接着建立ppp连接,ppp连接建立后,就可以进行tcp/ip传输了, 要进行tcp/ip数据传输,很多时候都采用socket PDP:是GPRS连接的软硬件环境,指定GPRS连接的接入点APN,连接类型IP或PPP,还有其他一些可选项; PPP:终端和MODEM之间点对点的协议,包括终端于MODEM之间的链路层协商(LCP),服务器对终端的认证(PAP或CHAP,这一步非强制),以及终端与服务器的网络层协商(基本都是IPCP); SOCKET:进程之间的通信方式,手机上的应用程序(客户进程)要和服务器的某个服务进程通信,就用socket通过邦定的TCP或UDP端口基于IP进行数据传输 再补充一下: PPP协商过程中的IPCP配置中,终端通过MODEM请求激活PDP上下文获得IP地址完成网络连接,PDP中设置的APN就是终端所在的这个网络的网关,终端访问internet时就得通过这个网关; 而终端的客户进程与服务器的服务进程进行socket通信时,就基于这个IP地址。 以GPRS模块做个例子,为什么使用PPP连接,就可以同连接多个服务器呢?而SOCKET连接每次只能连接一个服务器呢? 据我所知道的:从网络侧来看,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的数据链路层接口PPP PDP 及GPRS 1.相关概念:PDP:Packet Data Protocol 分组数据协议PLMN:Public Land Mobile Network,公共陆地移动网络APN:Access Point Name, 接入点名称PPP:Point-to-Point ProtocolTFT :Traffic Flow Template 业务流模板NSAPI :Network layer Service Access Point Identifier 用于网络层路由MS:Milestone是里程碑的意思,代指GSM系统的移动用户设备,它由两部分组成,移动终端和客户识别卡(SIM卡)。移动终端就是“机”,它可完成话音编码、信道编码、信息加密、信息的调制和解调、信息发射和接收。SIM卡,因此也称作智能卡,存有认证客户身份所需的所有信息,并能执行一些与安全保密有关的重要信息,以防止非法客户进入网路。PDP 上下文:主要包括以下一些信息:APN、Qos、PDP 类型、PDP 地址等。2.APNAPN:Access Point Name,接入点名称,当手机接入不同的外部数据网络时APN 是不同的,在目前中国移动GPRS 网络中,将APN 分为两类,一类是通用性的APN(如CMNET 和CMWAP,用手机上手机网站,那你会用CMWAP,而当你把手机当猫用来连接互联网的时候,用的就是CMNET),大概意思就是为了满足不同需求,会分配给你不同的IP地址来接入不同的业务,这样的APN 在全国所有的GGSN中都有定义,当移动台使用通用APN 激活PDP 上下文时,DNS 总是将它解释为漫游地的GGSN,就近接入外部网络;另一类是区域性的APN(如为青岛海关利用GPRS 移动办公所设置的APN 等),这样的APN 只在移动台归属地的GGSN 中有定义,当移动台使用区域性APN 激活PDP 上下文时,DNS 总是将它解释为归属地的GGSN。2.PDP上下文MS要接入外部PDN,还应具有与该PDN相应的地址,称为PDP地址,PDP地址是用于外部分组数据网识别MS的PDP上下文时使用的地址。如用手机上GPRS时,就会给你分配PDP报文,它是保存与一条数据传输路由相关的所有参数,它包含的参数随着在无线网中的位置不同而不同。PDP上下文(pdp context)是一个结构,而PDP地址只是结构中的成员而已,其他还包括QoS,APN等,PDP地址就像开通有线电话时,开通工单上分配的电话号码,而PDP上下文就是这张电话开通工单,上面不仅有分配给你的电话号码,还有这部电话相应的其他属性,其他功能的信息;3.PDP上下文的标识NSAPI (Network layer Service Access Point Identifier) 用于网络层路由,在MS中用于标识一个PDP 业务访问点,在SGSN/GGSN中与PDP 地址一起用于标识一个PDP 上下文;二次激活的PDP 上下文与已激活的PDP 上下文只有QoS profile 不同,PDP地址相同;每个PDP 上下文具有唯一的TI (Transaction Identifier) 和NSAPI.在许多PDP 上下文中只允许一个PDP 上下文没有TFT,在传输下行N-PDUs 时GGSN将按照TFT 匹配选择合适的PDP 上下文,MS 发送数据时按QoS 选择不同的PDP 上下文.GPRS手机与网络附着后,向网络请求一个IP地址,该地址可以为静态和动态PDP 地址 。能以以下3种方式分配PDP 地址:静态PDP地址:HPLMN将一个PDP地址永久性地分配给MS;动态HPLMN PDP地址:当激活一个PDP上下文时,HPLMN才将一个PDP地址临时分配给MS;动态VPLMN PDP地址:当激活一个PDP上下文时,VPLMN才将一个PDP地址临时分配给MS。当使用HPLMN 或VPLMN 的动态地址时,GGSN 负责分配或释放该动态地址.只有当PDP地址为静态时,才能由网络发起请求PDP 上下文激活. VPLMN是指访问PLMN。 PDP地址是GPRS用户的网络层地址,与标准的网络层地址(如:IPv4地址、IPv6地址、X. 121地址)建立了临时或永久性的关联。APN的选择规则与映射在GPRS核心网中,APN是所使用的GGSN的参考名,同时用来标识所接入的外部网络。在PDP上下文激活过程中,当MS向SGSN发出激活PDP上下文请求时,SGSN则依据APN选择规则选择一个APN。该规则是一个复杂的判决树。SGSN根据MS的3个请求参数(PDP类型、PDP地址、APN )与HLR中相应的3个预订参数比较判断。 SGSN以所选择的APN询问DNS服务器,由DNS映射得到GGSN的IP地址;同时SGSN向该GGSN 发送建立PDP上下文请求消息,以在SGSN与GGSN之间建立隧道。4.PPP,TCP/IP,GPRSppp相当于链路层协议,对tcp/ip协议的封装;应用 gprs上网首先要设置pdp,接着建立ppp连接,ppp连接建立后,就可以进行tcp/ip传输了, 要进行tcp/ip数据传输,很多时候都采用socket。 PDP:是GPRS连接的软硬件环境,指定GPRS连接的接入点APN,连接类型IP或PPP,还有其他一些可选项; PPP:终端和MODEM之间点对点的协议,【包括终端于MODEM之间的链路层协商(LCP),服务器对终端的认证(PAP或CHAP,这一步非强制),以及终端与服务器的网络层协商(基本都是IPCP)】, SOCKET:进程之间的通信方式,手机上的应用程序(客户进程)要和服务器的某个服务进程通信,就用socket通过邦定的TCP或UDP端口基于IP进行数据传输 ,再补充一下: PPP协商过程中的IPCP配置中,终端通过MODEM请求激活PDP上下文获得IP地址完成网络连接,PDP中设置的APN就是终端所在的这个网络的网关,终端访问internet时就得通过这个网关;而终端的客户进程与服务器的服务进程进行socket通信时,就基于这个IP地址。以GPRS模块做个例子,为什么使用PPP连接,就可以同连接多个服务器呢?而SOCKET连接每次只能连接一个服务器呢? 据我所知道的:从网络侧来看,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的数据链路层接口。5.PDP上下文激活流程: a、MS向SGSN发送PDP上下文激活请求请求中包含:接入点名称(APN)、IP地址(地址为空表示为动态) APN:GGSN通过APN标识的网络接口和外部数据网络连接 接到请求后,SGSN和HLR通信,检查用户信息:可达APN列表、IP地址为静态还是动态b、SGSN对MS进行安全检查-IMSI(身份鉴别)和IMEI(设备检查) attach过程也有类似步骤 c、检查通过,SGSN向GGSN发送建立PDP上下文请求 SGSN需要先得到GGSN的地址,然后发送请求; SGSN通过域名服务器DNS得到GGSN的IP地址 DNS根据APN来判断相应的IP地址 请求包含:IP地址、APN、建议使用的TID(隧道标识)等 d、GGSN对SGSN的请求进行响应 该响应包含:IP地址(IP地址为动态的情况下)、最后确认使用的TID、计费标识 e、SGSN向MS发送PDP上下文激活完成-消息中携带移动台的IP地址MS发起的PDP上下文激活过程-PPP和PDP激活是什么区别 PDP激活成功率与无线侧及核心网侧均有关系。 从无线侧看,导致PDP激活失败的原因通常为无线信号质量差,无线资源不可用或拥塞以及无线网络延时过长导致响应网络超时,MS处理问题导致响应超时等方面。另外是否能够稳定的附着也是PDP激活成功的一个影响因素。对该流程的说明如下: 1) MS向SGSN发出激活PDP上下文请求(NSAPI,TI,PDP类型,APN ,要求的QoS , PDP配置选项); 2) 可选地执行安全性规程; 3) SGSN根据MS提供的激活类型、PDP地址、APN,通过APN选择标准来解析GGSN地址,从而检查该请求是否有效; A . 如果SGSN不能从APN解析出GGSN地址,或判断出该激活请求无效,则拒绝该请求。 B. 如果SGSN从APN解析出了GGSN地址,则为所请求的PDP上下文创建一个TID(IMSI+NSAPI),并向GGSN发出创建PDP上下文请求(PDP类型,PDP地址,APN ,商定的QoS , TID, 选择模式,PDP配置选项)。 GGSN利用SGSN提供的信息确定外部PDN,分配动态地址,启动计费,限定QoS 等: A. 如果能满足所商定的QoS ,则向SGSN返回创建PDP上下文响应(TID,PDP地址,BB协议,重新排序请求,PDP配置选项,商定的QoS ,计费ID,原因)。 B. 如果不能满足所商定的QoS ,则向SGSN返回拒绝创建PDP上下文请求。QoS 文件由GGSN操作者来配置。 4) SGSN如果收到GGSN的创建PDP上下文响应,则在该PDP上下文中插入NSAPI、GGSN地址、动态PDP地址,根据商定的QoS 选择无线优先权,然后向MS返回激活PDP上下文接受消息(PDP类型,PDP地址,TI,商定的QoS ,无线优先权,PDP配置选项)。此时就已建立起MS与 GGSN之间的路由,开始计费,可以进行分组数据传送。 激活一个PDP 上下文意味着发起一个分组数据业务呼叫MS 请求发起PDP 上下文激活MO无论PDP 地址为静态或动态都可由MS 请求发起PDP 上下文 1 MS 向SGSN 发出激活PDP 上下文请求NSAPI,TI,PDP 类型,APN ,要求的QoS,PDP 配置选项 2 在MS 和SGSN 之间执行鉴权 3 SGSN 根据MS 提供的APN 来解析GGSN 地址如果SGSN 不能从APN 解析出GGSN地址或判断出该激活请求无效则拒绝该请求如果SGSN 从APN 解析出了GGSN 地址则为所请求的PDP 上下文创建一个TID 并向GGSN 发出创建PDP下文请求PDP 类型,PDP 地址,APN ,商定的QoS, TID, 选择模式,PDP 配置选项GGSN 利用SGSN 提供的信息确定外部PDN 分配动态地址启动计费限定QoS 等 4)如果能满足所商定的QoS 则向SGSN 返回创建PDP 上下文响应TID,PDP 地址,BB 协议,重新排序请求,PDP 配置选项,商定的QoS,计费ID 如果不能满足所商定的QoS 则向SGSN 返回拒绝创建PDP 上下文请求QoS 文件由GGSN 操作者来配置SGSN 如果收到GGSN 的创建PDP 上下文响应则在该PDP 上下文中插入NSAPIGGSN 地址动态PDP 地址根据商定的QoS 选择无线优先权 5)SGSN 向MS 返回激活PDP 上下文接受消息PDP 类型PDP 地址,TI,商定的QoS无线优先权PDP 配置选项 6)建立起MS 与GGSN 之间的路由开始计费可以进行分组数据传送From: /askpro/question.php?qid=16261 ppp相当于链路层协议 socket套接字,对tcp/ip协议的封装、应用 gprs上网首先要设置pdp,接着建立ppp连接,ppp连接建立后,就可以进行tcp/ip传输了, 要进行tcp/ip数据传输,很多时候都采用socket. PDP:是GPRS连接的软硬件环境,指定GPRS连接的接入点APN,连接类型IP或PPP,还有其他一些可选项; PPP:终端和MODEM之间点对点的协议,包括终端于MODEM之间的链路层协商(LCP),服务器对终端的认证(PAP或CHAP,这一步非强制), 以及终端与服务器的网络层协商(基本都是IPCP); SOCKET:进程之间的通信方式,手机上的应用程序(客户进程)要和服务器的某个服务进程通信,就用socket通过邦定的TCP或UDP端口基于IP 进行数据传输再补充一下: PPP协商过程中的IPCP配置中,终端通过MODEM请求激活PDP上下文获得IP地址完成网络连接,PDP中设置的APN就是终端所在的这个网络的网 关,终端访问internet时就得通过这个网关; 而终端的客户进程与服务器的服务进程进行socket通信时,就基于这个IP地址。以GPRS模块做个例子,为什么使用PPP连接,就可以同连接多个服务器呢?而SOCKET连接每次只能连接一个服务器呢? 据我所知道的:从网络侧来看,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的数据链路层接口。GPRS附着 与 PDP 上下文 GPRS无线数据传输终端利用网络实现与上位机的全双工数据通信。终端需附着GPRS网络,登陆Internet与连接其上的任意一台普通PC机建立数据链路并随时进行数据传输。欲完成这一过程必须实现GPRS的附着和PDP(PacketDataProtoco1,分组数据协议)上下文的激活。通过GPRS的附着登记用户信息,对用户进行移动性管理,激活过程用于激活IP协议,保证数据能以IP报的形式进行传送,使移动台与GGSN(Gate

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论