TCP与UDP是两种Internet传输协议,他们位于OSI(开放式系统互联通信参考模型)的第四层-传输层中。
什么是TCP?
TCP英文全称:Transmission Control Protocol,中文译名:传输控制协议。
TCP的作用:
TCP用于传输数据,采用面向连接的方式,并且不保留消息边界。
面向连接:一种网络协议,依赖发送方和接收器之间的显示通信和阻塞以管理双方的数据传输。网络系统需要在两台计算机之间发送数据之前先建立连接的一种特性.
消息边界:我个人理解是两种协议对接收数据包大小的限制。举个例子,有三个数据包,分别为1k,2k,3k,使用UDP协议接收这三个数据包,不管接收缓冲区有多大,都需要三次接收,而使用TCP协议只需要把接收缓冲区设在6k及以上,就能一次性接收。
TCP和UDP都能给主机与主机之间提供数据传输,但是UDP有处理数据包丢失,所以相对于UDP来说,TCP能够提供可靠的数据流,但传输速度相较于UDP慢。
TCP接收来自应用层的数据包,然后将他们分割成适当大小的进行块传输。
什么是UDP?
UDP英文全称:User Datagram Protocol,中文译名:用户数据报协议。
UDP的作用:
UDP也用于传输数据,允许应用发送数据报并保留消息边界,但不强制实现速率控制或差错控制,所以可能会导致数据包的丢失,但是其传输速度较于TCP会快,如:websocket会采用UDP协议进行数据传输。
UDP为应用层提供了更简单的服务,在两台主机之间进行数据传输,但是不能保证数据一定能从一端传向另一端,所以对于数据的传输可靠性需要应用层来负责。