TCP(Transimission Control Protocol 传输控制协议)和UDP(User Datagram Protocol)是传输层的两种实现版本!它们之间提供基本的服务又各有所长。因此,根据对特定服务质量的要求,应用层软件单元可以选择通过传输层的TCP版本或者UDP版本来传输数据。
TCP和UDP之间的区别:
第一,基于TCP的传输层在发送报文前要建立一个连接!
基于TCP协议的传输层发送应用层所请求的报文前,先要向目的地的传输层发送一个自己的报文,告诉目的地
的传输层有报文要发送,然后,它要等待目的地确认这个报文后才开始发送应用层报文。
而基于UDP的传输层在发送报文前不需要建立这样的连接。它仅仅按照所给的地址发送报文,然后就忘记这
个报文,尽管目的地的计算机甚至有可能没在运行。因此UDP也称为无链接协议。
第二,TCP协议能确保报文成功发送到目的地!
源和目的地的TCP传输层通过确认和分组重发的方式共同确保一个报文的所有片分组都被成功传送到目的地。
因此,TCP协议称为可靠的协议,而UDP不提供这种重发服务,称为不可靠的协议。
第三,TCP提供了流量控制和拥塞机制,前者是防止目的地的对方应接不暇,后者是缓和报文源点的TCP传输层和目的地之间的拥塞
所有这些并不意味着UDP是一个不好的协议,要知道基于UDP的传输层比基于TCP的传输层更简单。因此,如果一个应用能处理UDP的潜在影响,那么基于UDP的传输层会是更好的选择。例如,UDP的高效使得它成为DNS查找和VoIP选择的协议。但是,电子邮件在时间上不太敏感,所以邮件服务器是使用TCP传输电子邮件