面试时候我们经常可能会被问到网络相关的知识,我们来看看TCP协议和UDP协议到底是怎么工作的吧!
TCP协议和UDP协议
TCP协议
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
特点
- 在一个TCP连接中,仅有两方进行彼此通信。
- TCP使用校验,确认和重传机制来保证可靠传输
- TCP使用数据分节进行排序,并使用累积确保数据的顺序不变和非重复
- 使用滑动窗口机制实现流量控制,通过动态改变窗口的大小来进行拥塞控制
TCP并不能保证数据一定会被对方接收到,TCP能保证的是能准确地将数据送到客户端,或者是向客户端报告故障。
三次握手和四次挥手
三次握手和四次挥手分别是发生在建立TCP连接时和拆除TCP连接时。
三次握手
三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。
在socket
编程中,客户端执行connet()
时,将会触发三次握手。
三次握手的示意图如下:
客户端发送连接请求报文,服务端收到连接请求报文回复ACK
确认报文,并且为此次连接分配资源。客户端收到ACK
报文后同样也向服务端发ACK
报文,并分配资源,这就是建立TCP连接的过程。
- 最初的客户端和服务端的TCP进程都处于
CLOSE
关闭状态,A主动打开连接,B就被动打开连接 ,创建传输控制块