概念
HTTP是超文本传输协议(Hyper Text Transfer Protocol),是基于TCP的应用层协议。面向事务、面向对象、面向连接的一次性连接,提供有限数量的对外连接;无状态连接,不保留交易状态;HTTP1.1开始,支持长连接(持久连接),Connection: Keep-Alive
;基于B/S架构进行通信的,服务器端实现程序有httpd、nginx等。
TCP是传输控制协议(Transmission Control Protocol),是一种面向连接的、可靠的、基于字节流的传输层通信协议。在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销;通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。
TCP三次握手
- 第一次握手:客户端给服务器发送一个 SYN 报文。
- 第二次握手:服务器收到 SYN 报文之后,会应答一个 SYN+ACK 报文。
- 第三次握手:客户端收到 SYN+ACK 报文之后,会回应一个 ACK 报文。
TCP四次挥手
- 第一次挥手:客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于FIN_WAIT1状态。
- 第二次挥手:服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值 + 1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT状态。
- 第三次挥手:如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。此时服务端处于 LAST_ACK 的状态。
- 第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 + 1 作为自己 ACK 报文的序列号值,此时客户端处于 TIME_WAIT 状态。需要过一阵子以确保服务端收到自己的 ACK 报文之后才会进入 CLOSED 状态
SYN表示建立连接,FIN表示关闭连接,ACK表示确认位(1是0否),ack表示确认号,seq表示消息序列号
OSI七层模型
OSI(Open Systems Interconnection)模型由国际标准化组织(ISO)提出,旨在促进不同系统间的兼容性和标准化。
- 应用层提供了网络服务到应用软件的接口,包括HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)等协议,处理特定类型的数据交换。
- 表示层负责确保传输的信息可以被接收方的系统正确解析,包括数据格式的转换、数据的加密与解密,以及数据压缩。它充当不同数据格式间的翻译者,确保数据在不同系统间的正确交换。
- 会话层管理主机间的会话过程,包括会话的建立、维护和终止。它允许不同的进程进行数据交换,并提供同步服务,保证数据按照正确的顺序到达。
- 传输层为两台主机之间提供端到端的通讯。在这一层,通信会被分成不同的段,每一段都会被TCP(Transmission Control Protocol)或UDP(User Datagram Protocol)封装并确保数据的正确传送。TCP提供了可靠的通信服务,包括错误检测、重传机制和流量控制。UDP则提供了一种较轻量级的、无连接的服务。
- 网络层处理数据包在整个网络中的传输,包括数据包的路由选择。它负责将数据包从源头传输到目的地,可能会经过多个网络和中继点。IP(Internet Protocol)是这一层的核心协议,它定义了数据包的地址和路由。
- 数据链路层保证了从一个节点到另一个节点的可靠数据传输。它将比特组合成帧,并为每个帧提供必要的错误检测和修正机制(例如,循环冗余检查CRC)。它还管理了流控制和帧同步,确保帧准确无误地到达目的地。
- 物理层是最底层,它关注的是通过媒体传输数据的物理连接。这包括电压的变化、光脉冲的闪烁以及无线电波的传输机制。在这一层,数据被视为比特流,无论是通过电缆(如铜缆、光纤)还是无线方式传输。
TCP/IP四层模型
TCP/IP模型是一个更为实际的网络通信模型,它在OSI模型的基础上进行了简化,更贴近实际网络协议的实现。
- 应用层提供网络服务到应用软件的接口,处理特定类型的数据交换,如 HTTP、FTP、SMTP 等协议。
传输层负责两台主机之间的数据传输,提供端到端的通信,包括 TCP(Transmission Control Protocol)和 UDP(User Datagram Protocol)。
网络层处理数据包在整个网络中的传输,包括路由选择,使用 IP 协议定义数据包的地址和路由。
数据链路层负责设备之间的数据帧的传送和识别,管理流控制、帧同步,提供错误检测和修正机制。
物理层负责传输介质的物理连接,确定数据的传输速率、传输距离和抗干扰性。
其中,数据链路层和物理层不合并,那就是大家说的网络五层模型。
Comments NOTHING