引述
- 同一台设备上的进程间通信:管道、消息队列、共享内存、信号。
- 不同设备上的进程间通信:网络通信
应用层
- 应用层只专注与为用户提供应用功能,不用去关心数据是如何传输的。
- 应用层是工作在操作系统中的用户态,传输层及其以下工作在内核态。
传输层
协议:
Tcp协议:可靠的传输协议,通过流量控制、超时重传、拥塞控制等保证了数据包能够可靠地传输给对方。
Udp协议:实时性相对更好、传输效率更高。可以通过QUIC协议实现可靠性,在http3.0应用。
数据包大小超过MSS(Tcp的最大报文段长度)需要进行分段。
端口:为了将一台设备上的不同应用所接收或者传输的数据区分开,区分的是应用。
网络层
实际的数据传输功能的实现。
IP协议:将传输层的报文作为数据部分,再加上ip包头组装成ip报文,如果ip报文大小超过MTU(以太网中一般为1500字节)就会再次分片。
IP地址:
- 给设备进行编号,保证在大量的设备中,能从一个设备传输到另一个设备,区分的是设备。
- 分为两部分:网络号(负责标识IP地址属于哪个子网)、主机号(负责标识同一子网下的不同主机),通过子网掩码才能算出IP地址的网络号和主机号。
IP地址寻址:先匹配到相同的网络号,才会找对应的主机。告诉我们去往下一个目的地应该朝哪个方向走。更像是导航。
路由:通过算法(最短路劲算法、距离矢量路由算法、链路状态路由算法)实现根据下一个目的地选择路径。更像是方向盘,是中间的过程。
数据链路层
- 设备跟MAC地址一一对应,每一台设备的网卡都会有一个MAC地址,用来唯一标识设备。
- 通过ARP协议实现对IP地址转化为MAC地址,进而找到设备。
物理层
主要是为数据链路层提供二进制的传输服务,(这里http2.0的改进也有将头部和body采用二进制进行传输)
本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/16171.html。