TCP | UDP | |
连接性 | 面向连接 | 无连接 |
可靠性 | 可靠 | 不可靠 |
报文 | 面向字节流 | 面向报文 |
传输速度/效率 | 低 | 高 |
双工性 | 全双工 | 一对一、一对多、多对一、多对多 |
流量控制 | 滑动窗口 | 无 |
拥塞控制 | 慢开始、拥塞避免、快重传、快恢复 | 无 |
应用场景 | 对效率要求较低,对准确性要求较高;或者要求有连接的场景 | 对效率要求较高,对准确性要求较低。 |
应用示例 | 文件传输(FTP)、邮件传输(SMTP)、远程登录(TELNET) | 聊天、视频语音通话 |
面向字节流:
虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去。
面向报文:
面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。
流量控制:
转自:https://blog.csdn.net/u013777351/article/details/49226101