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拨号和NDIS拨号的区别:

    PPP拨号和NDIS拨号的区别: 参考网址: https://blog.csdn.net/xingyuan1hao/article/details/89279730 https://blog.csdn ...

  2. 华为ccie网络工程师中技术要点PPP中PAP和CHAP的区别

    华为ccie网络工程师中技术要点PPP中PAP和CHAP的区别,PPP(点到点协议)协议:是为在同等单元之间传输数据包这样的简单链路设计的链路层协议.这种链路提供全双工操作,并按照顺序传递数据包.设计 ...

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

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

  4. JetBrains 激活方式的区别

    文章目录 简介 激活方式 JB Account Activation Code License Server 简介 JetBrains 是一家全球知名的软件开发工具公司. JetBrains 成立于 ...

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

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

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

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

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

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

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

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

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

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

  10. OSPF协议介绍及配置

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

最新文章

  1. 如何部署深度学习模型?
  2. BUUCTF(pwn)jarvisoj_level3_x64
  3. 字符串距离(opj )(动态规划)
  4. Windows 8 C++/CX字符串
  5. 都说它是年度Android机皇,都说它是年度Android机皇,Galaxy Note20 Ultra到底怎么样?...
  6. python的pip_Python3中安装pip3
  7. c语言常考的编程题,C语言操作题常考编程题库
  8. 【每日算法Day 87】今天我脱单了,所以大家不用做题了!
  9. js highcharts拆线图
  10. sip协议的超时机制
  11. 怎样让计算机默认记事本格式,电脑记事本怎么改格式
  12. 编译64位dcmtk库
  13. Duilib资源文件打包成DLL并调用
  14. OSChina 周一乱弹 —— 大学老教授说你媳妇在幼儿园
  15. VmWare中虚拟机桥接无线网卡使用静态ip
  16. gta5正版私人服务器,《GTA5》国内神级服务器,万人同服?堪称虚拟版地球OL?...
  17. SHU OJ 420 购买装备(假装背包,其实贪心)
  18. 安装Android adb驱动
  19. 很多人都说flash as3 经常都是使用MC或者sprite(请问这里的sprite是什么意思?)...
  20. 一线技术人应该关注的四种思维能力

热门文章

  1. 博客左侧导航栏添加打赏功能(添加微信赞赏码)
  2. linux征途架设教程,Linux下征途私服架设详细教程
  3. ps -ef 命令解析
  4. Arduino与Proteus仿真实例-74HC573锁存器驱动仿真
  5. 如何在一台手机上,同时登录两个微信号?
  6. 自动发射子弹c语言,C语言实现简单飞机大战
  7. 南华大学计算机科学学院,南华大学计算机科学与技术学院介绍
  8. 6个免费、免版权视频素材网站
  9. linux用execl函数创建,Linux办公一条龙之电子表格Calc(转)
  10. oracle的lpad函数