TCP协议
什么是TCP协议?
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
TCP报文
TCP三次握手
TCP 三次握手过程对于面试是必考的一个,所以不但要掌握 TCP 整个握手的过程,其中有些小细节也更受到面试官的青睐。用动画给面试官解释 TCP 三次握手过程 该博客包含的要点有:
- 源端口号和目标端口号的目的是什么? 唯一标识每一个应用程序
- 序列号的作用是什么? 数据序列编号, 确保数据通信的有序性,避免网络中乱序的问题
- 确认序列号的作用是什么? 是接收确认端所期望收到的下一序列号。解决不丢包的问题。
- ACK、SYN和FIN的作用是什么?
- ACK: 应答域有效。 客户端发送数据给服务端, 发送时ACK=0, 接收时ACK=1代表接收到数据。
- SYN:同步序列号。TCP 握手的发送的第一个数据包。
- FIN: 是否是 接受的最后的数据?
- 为什么进行 TCP 三次握手?
- TCP 三次握手过程?
- 为什么不是一次、二次握手, 而是三次握手? 防止了服务器端的一直等待而浪费资源。
TCP四次分手
TCP 三次握手过程对于面试是必考的一个,所以不但要掌握 TCP 整个握手的过程,其中有些小细节也更受到面试官的青睐。动画:用动画给女朋友讲解 TCP 四次分手过程该博客包含的要点有:
- 为何要进行 TCP 三次握手/四次分手? TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议且TCP是全双工模式, 必须四次挥手
- TCP 四次分手过程
- 为什要有 2 MSL 等待延迟?
- MSL, Maximum Segment Lifetime, 报文最大生存时间
- 为了保证客户端最后一次挥手的报文能够到达服务器, 若丢失则超时重传。
- 保证本次连接的所有数据都从网络中消失。
- 如果双方建立连接,一方出问题怎么办? 设计一个保活的计时器