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地址,协议,端口)就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互
侧重于程序开拓职员。是操作系统供应的一系列程序接口。它可以让我们很方便地操作tcp/ip协议中的传输层协议
5.1、理解socket事情的生活场景
你要打电话给一个朋友,先拨号,朋友听到电话铃声后提起电话,这时你和你的朋友就建立起了连接,就可以讲话了。等互换结束,挂断电话结束这次交谈。而socket也有点类似这样的操作流程。
5.2、socket与Tcp/ip的关系图