TCP 协议简介
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议。它位于 OSI 模型的传输层,主要用于在不可靠的网络上提供可靠的端到端数据传输。以下是 TCP 的核心特性:
面向连接:TCP 在通信前需要通过三次握手建立连接,通信结束后通过四次挥手断开连接。
可靠性:TCP 通过确认机制、超时重传、流量控制和拥塞控制等机制,确保数据不丢失、不重复、按序到达。
基于字节流:TCP 将数据视为字节流,而不是独立的数据报,适合传输大量数据。
TCP 常用面试题
1、TCP 三次握手:
过程:客户端发送 SYN 报文,服务器回复 SYN+ACK 报文,
客户端再发送 ACK 报文,连接建立。
2、为什么是三次握手:
三次握手可以确保双方的发送和接收能力正常,避免因网络延迟导致的无效连接请求。
3、TCP 四次挥手:
过程:
客户端发送 FIN 报文,服务器回复 ACK 报文并继续发送数据,服务器发送 FIN 报文,
客户端回复 ACK 报文,连接关闭。
4、为什么是四次挥手:
因为 TCP 是全双工通信,双方需要分别关闭发送和接收通道。
5、服务器回复 ACK 报文并继续发送数据,服务器发送 FIN 报文为什么不能合并为一步:
因为这中间服务器可能还要继续向客户端发送数据,即这两步不一定是同一时间点。
6、TIME_WAIT 状态:
作用:确保最后一个 ACK 报文能够到达对方,并让旧的数据包在网络中消失,避免新连接收到旧数据。
7、TCP 与 UDP 的区别:
连接机制:TCP 是面向连接的,UDP 是无连接的。
可靠性:TCP 保证数据可靠传输,UDP 不保证。
传输方式:TCP 是基于字节流的,UDP 是基于数据报的。
8、TCP 的超时重传与快速重传:
超时重传:发送数据后启动计时器,超时未收到 ACK 则重传。
快速重传:收到三个重复的 ACK 时立即重传,无需等待超时。
9、TCP 首部字段:
包括源端口、目的端口、序号、确认号、数据偏移、控制位(如 SYN、ACK、FIN)、窗口大小、校验和等。
10、HTTP工作流程:
当客户端(如浏览器)需要从服务器获取数据时,会发起一个 HTTP 请求。
这个请求会通过 TCP 协议建立一个到服务器的连接通道。
数据传输完成后,HTTP 通常会立即断开 TCP 连接,这种模式被称为“短连接”。
TCP 负责建立连接、传输数据和断开连接,而 HTTP 则负责定义数据的格式和语义,
例如请求方法(GET、POST)和响应状态码(200、404)等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。