From: http://www.mscbsc.com/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的数据链路层接口。

PPP和PDP激活区别相关推荐

  1. PPP模式如何激活智慧城市建设?

    智慧城市建设资金庞大,再加上地方债高企,政府财政资金无以为继,致使资金之困成为阻碍智慧城市建设的一大难题. 自财政部.国家发改委等部门发布PPP相关政策文件以来,PPP模式已被视为一剂破解智慧城市建设 ...

  2. ppp和chap的区别

    PAP和CHAP协议是目前的在PPP(MODEM或ADSL拨号)中普遍使用的认证协议,CHAP在RFC1994中定义,是一种挑战响应式协议,双方共享的口令信息不用在通信中传输:PAP在RFC1334中 ...

  3. GSM模块_Android建立GPRS通信的流程

    开篇废话 首选声明我是一个嵌入式系统开发工程师,我整理这篇文章的目的,其实是希望通过借鉴手机连接GPRS的流程,来完善系统内部对于GSM模块集成的稳定性.所有内容来自网络,在文末的参考链接标注了出处, ...

  4. Android MMS APN工作原理以及PDP知识摘要

    大概了解Mms机制,发现发送彩信时,使用的是另一路APN.因此以此为追踪入口. MmsNetworkManager.java>>>connectivityManager.reques ...

  5. 流媒体协议RTSP、HTTP、HTTPS、SDP四种区别解析

    了解了基本协议,我们在看代码写代码的过程中,就会有事半功倍的效果.下面主要讲解RTSP,HTTP,HTTPS, SDP四种协议,一起来看看了解下,仅供参考 一:RTSP协议简介 实时流协议RTSP是一 ...

  6. ppp在linux下的编译和安装、问题

    转载地址:http://forever.blog.chinaunix.net/uid-30497107-id-5750048.html 1. 加入内核支持: Device Drivers -> ...

  7. android多媒体框架学习 详解

    原址 一:多媒体框架概述 jellybean 的多媒体跟以前的版本,通过对比没啥变化,最大的变化是google终于舍得给multimedia建个独立的git了(framework/av),等你好久了! ...

  8. OSPF协议介绍及配置

    一.OSPF概述 回顾一下距离矢量路由协议的工作原理:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中,而对于这个网 ...

  9. android多媒体框架学习 详解 最新版本

    一:多媒体框架概述 jellybean 的多媒体跟以前的版本,通过对比没啥变化,最大的变化是google终于舍得给multimedia建个独立的git了(framework/av),等你好久了!也体现 ...

  10. SIM300拨号上网与GPRS连接

    SIM300为内嵌TCP/IP协议的GPRS模块,可以实现GPRS通讯和拨号上网.其实到现在我还没有明白GPRS通讯是否=拨号上网? 我的板子由SIM300和STC单片机组成,在单片机里用程序实现发送 ...

最新文章

  1. 爱逛街的爱购物的看看哦
  2. 在 StringGrid 上画线时, 使用 GDI+ 以消除锯齿 - 回复 gsjn_8888_6666 的问题
  3. 10个常用方法有效优化ASP.NET的性能
  4. Single Number
  5. 数据结构之排序算法(C语言)
  6. 2021江苏地区高考成绩排名查询,2021年江苏高考成绩排名及一分一段表
  7. [导入]人的一生能有几天?
  8. Digimeter 软件
  9. 入网许可证_入网许可证怎么办理,申请流程
  10. mathtype运行时错误48_在office中无法使用MathType该怎么办?
  11. 启动rocketmq 报错_RocketMQ为什么要保证订阅关系的一致性?
  12. server2008安装iis php,window server 2008 iis7+php安装配置
  13. Android---- android计量单位--dip、px、sp之间区别与联系pixs =dips * (densityDpi/160). dips=(pixs*160)/d...
  14. 基于Android的家庭财务管理流程图,SYL_Android_FamilyFinaceSystem 双鱼林基于安卓Android家庭财务管理系统毕业课程设计源码 - 下载 - 搜珍网...
  15. 使用Iocomp工控图表工具绘制实时曲线
  16. 功能丰富强大的开源HEVC分析软件 “ Gitl HEVC Analyzer ”
  17. capslock键英语怎么读_capslock怎么读
  18. 成都市计算机会考考试题,成都市初中信息技术会考试题_第七套.docx
  19. [Leetcode] 643. 子数组最大平均数 I java
  20. jsp高校学生宿舍公寓管理系统功能最全

热门文章

  1. 保持numlock处于开启状态
  2. QQ邮箱代收Gmail邮箱
  3. 数字证书理解(CA证书签名原理)
  4. Java 中status意思_java web开发中 varStatues=quot;statusquot; 中参数status是啥作用和意思呢?这个参数的设置有啥要求呢?...
  5. Python中使用多个分隔符分隔字符串re.split
  6. 我的世界java版天空材质_我的世界:天空还能如此真实?四款天空效果对比!网友:我全都要...
  7. 树莓派接3.5mm音响没有声音及音量调节
  8. android logo颜色渐变,华为悄然更新品牌Logo:无渐变色,更加扁平化
  9. C语言 数据结构 线性循环队列 基本操作代码
  10. 冲刺大厂每日算法面试题,动态规划21天——第十二天