TCP:面向字节流的传输方式 ,应用层和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP将它划分短一些再发送。如果应用程序发送数据太短,TCOP等待积累足够多的字节后再构成报文段发送出去。
UDP:面向报文的传输方式 应用层交给UDP多长的报文,UDP都照样发送,即一次一个报文。因此,应用程序必须选择大小合适的报文。若报文太长,则IP层需要分片,降低效率。若太短,会使IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。也就是说,应用层给UDP多长的报文,UDP都照样发送。
TCP 传输控制协议
优点:(可靠,稳定)
缺点:(传输速度慢,效率低,占用系统资源高,易被攻击)
如何保证接受的顺序性
UDP 用户数据报协议
用UDP协议通讯时怎样得知目标机是否获得了数据包
仿造TCP的做法,每发一个UDP包,都在里面加一个SEQ序号,接收方收到包后,将SEQ序号回复给发送方。如果发送方在指定时间以内没有收到回应,说明丢包了。
为什么TCP比UDP可靠
什么时候用TCP
当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。
在日常生活中,常见使用TCP协议的应用如下:
浏览器,用的HTTP
FlashFXP,用的FTP
Outlook,用的POP、SMTP
Putty,用的Telnet、SSH
QQ文件传输
什么时候用UDP
当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。
比如,日常生活中,常见使用UDP协议的应用如下:
QQ语音
QQ视频
TFTP
TCP无边界,UDP有边界
TCP无边界
客户端分多次发送数据给服务器,若服务器的缓冲区够大,那么服务器端会在客户端发送完之后一次性接收过来,所以是无边界的;
UDP有边界
客户端每发送一次,服务器端就会接收一次,也就是说发送多少次就会接收多少次,因此是有边界的。
原文:https://www.cnblogs.com/liuke-1264746554/p/10599619.html