您的位置 首页 php

60、php网络编程基本概念

1、协议

数据交互的格式规范,代码实现规范

1.1、数据格式规范

比如语言沟通。沟通双方必须用一种大家都清楚明白的语言才能进行

1.2、代码实现规范

比如 通信接口 ,调用者和被调用者保持通信的接口规范,这样代码才能正常地执行

2、分层

它是处理问题的思维方式

网络通信之所以强调分层,是因为通信双方在整个通信过程的不可控性导致。

比如不同厂商的设备如何互通,跨地域的双方如何正常通信等等。如果以整体的方式去看待通信过程,那势必是艰难无比。

因此,通过分层的方式,把整体按照纵向进行分割,分成多个层。每层之间既独立又相互联系

3、 Tcp /ip 协议栈

Tcp/Ip是一个四层协议系统,自底而上分别是:

数据链路层、 网络层 传输层 和应用层。通过分层的方式,每一层完成不同的功能,且通过若干协议来实现,上层协议使用下层协议提供的服务

3.1、数据链路层

实现了网卡接口的网络驱动程序,用于处理数据在物理媒介上的传输.不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供一个统一的接口

代表协议: arp 、rarp

3.2、网络层

该层实现了数据包的选择和转发,是不可靠性。网络层对上层协议隐藏了 网络拓扑 连接的细节,使得在上层协议看来,通信的双方是直接相连的

代表协议: ip

3.3、传输层

为通信双方提供端到端的通信,它只关心通信的起始端和目的端,而不在乎数据包的中转过程

代表协议: tcp、udp

tcp: 为应用层提供可靠的、面向连接的和基于流的服务.建立连接需要3次握手,释放则需要4次握手

udp: 为应用层提供不可靠、无连接和基于数据报的服务

3.4、应用层

负责处理应用程序的逻辑

代表协议: http、dns、 telnet 等等

4、网络 进程间通信

根据之前的文章,进程间通信方式有: 消息队列、共享内存、信号、管道等等。也就是说,在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的。我们首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!tcp/ip协议栈,就帮我们解决了这个问题。网络层的“ ip地址 ”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互

5、 socket 编程

侧重于程序开发人员。是操作系统提供的一系列程序接口。它可以让我们很方便地操作tcp/ip协议中的传输层协议

5.1、理解socket工作的生活场景

你要打电话给一个朋友,先拨号,朋友听到电话铃声后提起电话,这时你和你的朋友就建立起了连接,就可以讲话了。等交流结束,挂断电话结束此次交谈。而socket也有点类似这样的操作流程。

5.2、socket与Tcp/ip的关系图

文章来源:智云一二三科技

文章标题:60、php网络编程基本概念

文章地址:https://www.zhihuclub.com/152158.shtml

关于作者: 智云科技

热门文章

网站地图