网络模型是计算机以何种规则进行通信的解决方案,一种是OSI参考模型,另一种是TCP/IP协议,后者应用更加广泛
一、两种模型的比较
![](https://img.haomeiwen.com/i2358583/fdf6af9b29a3e757.png)
1、物理层
主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。
主要作用是将数据最终编码为用 0、1 标识的比特流,通过物理介质传输,这一层的数据叫做比特
2、数据链路层:
主要将接收到的数据进行 MAC 地址(网卡地址)的封装与解封装。
常把这一层的数据叫做帧。这一层常工作的设备是交换机。
3、网络层:
主要将接收到的数据进行 IP 地址的封装与解封装。
常把这一层的数据叫做数据包。这一层设备是路由器。
4、传输层:
定义了一些数据传输的协议和端口号。
主要将接收的数据进行分段和传输,到达目的地址后在进行重组。
常把这一层的数据叫做段
5、会话层:
通过传输层建立数据传输的通路。
主要在系统之间发起会话或者接收会话请求。
6、表示层:
主要进行对接收数据的解释、加密与解密、压缩与解压缩。
确保一个系统的应用层发送的数据能被另一个系统的应用层识别
7、应用层:
主要是为一些终端应用程序提供服务。直接面对着用户的。
二、TCP/UDP与HTTP协议
1、TCP
1、面向连接、传输可靠(保证数据正确性,保证数据顺序);
2、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源);
3、发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信
2、UDP
1、面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快
2、每个数据包报都是一个独立的信息,包括完整的源地址或目的地址,他在网络上以任何可能的路径通往目的地,因此能否到达目的地,到达时间以及内容的正确性都是不能保证的。
3、HTTP
基于TCP链接,对应于应用层,主要解决如何包装数据
4、Socket (并不是协议)
①、Socket是对TCP/IP的封装,Socket本身并不是协议,而是一个调用接口(API)
②、通过Socket,我们才能使用TCP/IP协议。
③、Socket链接是所谓的长连接,理论上客户端和服务端一旦接力链接将不会主动断掉,
但由于网络和不可控的因素也可能会连接。所以当一个socket连接中没有数据的传输,
那么为了维持连接需要发送心跳消息~~具体心跳消息格式是开发者自己定义的
网友评论