PPP和PDP激活是什么区别

news/2024/7/3 16:47:43

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的数据链路层接口。


http://lihuaxi.xjx100.cn/news/219015.html

相关文章

关于std::string 在 并发场景下 __grow_by_and_replace free was not allocated 的异常问题

使用string时发现了一些坑。 我们知道stl 容器并不是线程安全的,所以在使用它们的过程中往往需要一些同步机制来保证并发场景下的同步更新。 应该踩的坑还是一个不拉的踩了进去,所以还是记录一下吧。 string作为一个容器,随着我们的append 或…

在Blender中创建真实的汽车CGI视觉动画效果

Blender VFX Tutorial Rig & Animate a Realistic Car in Real 大小:1.18G 时长1h 包含项目文件 1280X720 MP4 语言:英语中英文字幕(根据原英文字幕机译更准确) Blender VFX教程绑定&动画真实的汽车 云桥网络 平台获取教程…

子网掩码

子网掩码 from: http://baike.baidu.com/view/878.htm 子网掩码(subnet mask) 又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址 的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合…

关于 智能指针 的线程安全问题

先说结论&#xff0c;智能指针都是非线程安全的。 多线程调度智能指针 这里案例使用的是shared_ptr&#xff0c;其他的unique_ptr或者weak_ptr的结果都是类似的&#xff0c;如下多线程调度代码&#xff1a; #include <memory> #include <thread> #include <v…

C++中 public,protected, private 访问标号小结

第一&#xff1a;private, public, protected 访问标号的访问范围。 private&#xff1a; 只能由1.该类中的函数、2.其友元函数访问。 不能被任何其他访问&#xff0c;该类的对象也不能访问。 protected&#xff1a; 可以被1.该类中的函数、2.子类的函数、以及3.其友元函数…

做片子留着备用 超级游戏影视配乐音效库36套合集

做片子留着备用 超级游戏影视配乐音效库36套合集 Epic Stock Media 创造数字媒体产品,改变你听到和看到的音频方式在游戏、电影、电视、演出和世界上任何地方的人们消费媒体。 影视配乐音效素材大全 百度一下 云桥网络 平台huo取 教程&#xff01; 所有采样均为&#xff1a;…

Rocksdb Ribbon Filter : 结合 XOR-filter 以及 高斯消元算法 实现的 高效filter

文章目录前言XOR-filter 实现原理xor filter 的构造原理xor filter 构造总结XOR-filter 和 ADD-filter对比XOR-filter 在计算上的优化Ribbon filter高斯消元法总结参考前言 还是起源于前几天的Rocksdb meetup&#xff0c;其中Peter C. Dillinger 这位大佬分享了自己为rocksdb实…

Revit和Unreal Engine真实的建筑可视化视频教程

Revit和Unreal Engine真实的建筑可视化视频教程 Lynda – Revit and Unreal Engine: Real-Life Architectural Visualizations Lynda–Revit和Unreal Engine&#xff1a;真实的建筑可视化 时长 3小时 25分 | 1.15 GB |含项目练习文件|使用的软件&#xff1a;Revit&#xff0c…