开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第20天,点击查看活动详情
TCP和UDP详解
介绍
TCP和UDP都是传输层协议,但是TCP提供可靠的传输,UDP提供的不可靠的传输,目前Http、Https、FTP等大多数基于TCP协议,DNS、DHCP等大多数基于UDP协议。
TCP
- TCP是可靠的传输协议,通过三次握手和四次握手,建立连接通道和结束连接通道,通过ARQ协议保证传输数据的正确性,ARQ是自动重传请求,对于错误的数据,接收到会自动发送一个重传错误帧的请求。通过确认应答机制、超市重传机制、连接管理机制,TCP协议能够做到传输的数据不丢失、不重复、无差错,按序到达。
- TCP支持全双工通信,全双工意思是任何时候,数据的传输都可以双向传输,都可以进行接收和发送消息,单工是,一个时刻,数据只能单向进行传输。
- 每一个TCP链接只有两个端点,是点对点的。
- TCP有拥塞机制,在传输大量数据时,很可能导致网络拥堵,TCP有四种拥塞控制的算法,分别是慢开始、拥塞避免、快重传、快恢复,会根据网络承载能力,来决定传输的速度,避免网络拥堵。
TCP协议报文段
报文段是首部+数据部分,TCP首部前20个字节是固定的。
UDP
- UDP是不可靠的传输协议。
- UDP是尽最大努力进行交付,但是不保证交付成功。
- UDP是没有无连接的,只需要知道ip和端口即可,不需要建立连接。
- 没有确认、重传机制,所以UDP是不可靠的。
- UDP协议不会拆分、合并报文,应用层交给的报文,不进行拆分、合并,原样发送,保留原报文的边界。
- UDP没有拥塞机制。
- UDP支持一对一、一对多、多对多的交互通信。
- UDP首部只有8字节。
UDP协议报文段
伪首部用于计算校验和,后面的8字节座位UDP协议的首部。