TCP(Transport Control Protocol)传输控制协议
TCP的特点
-
面向连接:TCP在发送数据之前,必须先与对方建立连接。这种连接不是物理连接,而是一种逻辑连接,通过三次握手过程来建立,确保双方都已准备好进行数据交换。连接建立后,数据才能发送。
-
可靠性:TCP通过一系列机制来保证数据传输的可靠性。
-
基于字节流:TCP将应用层传下来的数据看成是一连串的无结构的字节流,它不关心应用程序的数据格式,只负责将数据从一端传输到另一端。
-
全双工通信:TCP连接是全双工的,即数据可以在同一时间双向传输。这意味着,TCP连接的双方都可以同时发送和接收数据。
-
灵活性:TCP支持多种类型的服务,包括面向连接的数据流服务、可靠性传输服务、流量控制、多路复用等。这使得TCP能够适用于多种应用场景,如文件传输、电子邮件、网页浏览等。
-
错误检测:TCP能够检测并处理一些类型的错误,如校验和错误、序列号错误等。这些错误通常会导致数据包被丢弃,并可能触发重传机制。
UDP(User Datagram Protocol)用户数据报协议
UDP的特点
1、无连接:在数据传输过程前不需要建立连接,找到对方的IP地址和端口号就可以直接传输。可以快速 的发送小量数据。
2、不保证可靠:udp没有任何的安全机制,发送端在发送数据之后,就不在进行任何操作,也不需要关心 接收端是否收到。不保证可靠,不是不可靠。
3、面向数据报:应用层给udp给多长的数据报,udp就发送多长的数据报,不会进行拆分,也不会进行合并。
4、缓冲区:udp没有发送缓冲区,但是有接收缓冲区。意味着:使用UDP发送的数据就会直接交给系统内 核,由系统内核将数据交给网络层进行处理,udp具有接收缓冲区,但是这个缓冲区不能保证数据的顺 序。如果这个缓冲区满了,再到的数据报就直接丢弃。
5、UDP没有拥塞控制,很适合多媒体通信的要求;适用于游戏实时性和打微信视频等,对网速要求快的场景
拥塞控制:拥塞控制是作用于网络的,它是防止过多的数据注入到网络中,避免出现网络负载过大的情况;
避免拥塞控制常用的方法就是:
(1)慢开始、拥塞避免
(2)快重传、快恢复。
流量控制:流量控制是作用于接收者的,它是控制发送者的发送速度从而使接收者来得及接收,防止分组 丢失的。
TCP和UDP的区别
1. 连接性:
TCP是一种面向连接的协议,它要求在数据传输之前先建立一个连接。这意味着发送方和接收方必须先进行三次握手,建立连接后才能开始传输数据。而UDP是一种无连接的协议,发送方不需要提前与接收方建立连接,可以直接向接收方发送数据。
2. 可靠性:
TCP可以保证可靠性,UDP不保证可靠性。
3. 速度和效率:
由于TCP要求建立连接和使用确认重传机制,因此它通常比UDP的速度更慢。UDP没有连接建立和确认重传的开销,因此在数据传输速度方面通常比TCP更快。此外,由于TCP的拥塞控制机制,当网络拥堵时,TCP会减少发送速率,导致传输速度进一步下降,而UDP不受拥塞控制的限制。
4. 数据包大小:
TCP将数据划分为较小的数据包进行传输,并根据网络状况进行调整。而UDP允许发送方一次性将多个数据包打包成一个较大的数据报进行传输。
5. 适用场景:
TCP适用于对数据可靠性要求较高的应用场景,如文件传输、电子邮件和网页浏览。UDP适用于对数据实时性要求较高的应用场景,如音频和视频流传输、网络游戏和实时通信。