TCP和UDP
TCP
TCP是面向连接的服务,在传输至前必须要建立起连接,传输数据后要释放连接。
TCP不提供广播或多播服务。
TCP利用校验和、序列号、超时重传、流量控制以及拥塞避免的方式保证传输的可靠性。
- 应用数据被分割成TCP认为的最适合发送的数据块。TCP给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。
- 校验和:TCP将保持它首部和数据的校验和。这是一个端到端的校验和,目的是监测数据在传输过程中的任何变化。如果收到段检验出现问题,则将丢掉这个报文段并不确认收到此段。
- TCP接收端会丢弃重复的数据。
- 流量控制:TCP连接的每一个地方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能够接纳的数据,若速率太快,会提示发送端降低发送的速率,防止包的丢失。
- 拥塞控制:当网络拥塞时,减少数据的发送。
- ARQ协议:为了实现可靠传输,它的基本原理就是每发送一个分组就停止发送,等待对方确认后,再发送下一个。
- 超时重传:当发送一个段后,会启动一个定时器,若目的端不能及时收到确认,则会重新发送报文段。
TCP一般用于文件传输、发送和接收邮件、远程登录等场景。
TCP以字节流的形式进行传输。
因为设有缓存,TCP允许通信双方的应用程序在任何时候都能发送数据
UDP
- 在传送数据之前不需要先建立连接,远地主机在收到 UDP 报文后,不需要给出任何确认。
- 虽然 UDP 不提供可靠交付。
- UDP以独立报文形式一个一个进行传输。
TCP和UDP的区别
- TCP 面向连接((如打电话要先拨号建立连接);UDP 是无连接的,即发送数据之前不需要建立连接。
- TCP 要求安全性,提供可靠的服务,通过 TCP 连接传送的数据,不丢失、不重复、安全可靠。而 UDP 尽最大努力交付,即不保证可靠交付。
- TCP 是点对点连接的,UDP 一对一,一对多,多对多都可以。
- TCP 传输效率相对较低,而 UDP 传输效率高,它适用于对高速传输和实时性有较高的通信或广播通信。
- TCP 适合用于网页,邮件等;UDP 适合用于视频,语音广播等。
- TCP 面向字节流,UDP 面向报文。