TCP协议与UDP协议的区别
TCP基于面向连接、字节流传输的协议,数据传输可靠,传输速度慢。TCP通过序号、重传、流量控制、拥塞控制实现可靠传输。适用于传输大量数据,可靠性要求高的场合。 UDP协议面向非连接、数据报传输协议,数据传输不可靠,传输速度快。UDP不保障可靠传输,尽最大努力交付。适用于一次只传送少量数据、对可靠性要求不高的应用环境。
TCP 可靠传输
1、确认和重传:接收方收到报文就会确认,发送方发送一段时间后没有收到确认就重传。
2、数据校验:TCP校验和是一个端到端的校验和,由发送端计算,然后由接收端验证。如果接收方检测到校验和有差错,则TCP段会被直接丢弃。
3、数据合理分片和排序:
UDP:IP数据报大于1500字节,大于MTU.这个时候发送方IP层就需要分片(fragmentation).把数据报分成若干片,使每一片都小于MTU.而接收方IP层则需要进行数据报的重组.这样就会多做许多事情,而更严重的是,由于UDP的特性,当某一片数据传送中丢失时,接收方便无法重组数据报.将导致丢弃整个UDP数据报.
tcp会按MTU合理分片,接收方会缓存未按序到达的数据,重新排序后再交给应用层。
4、流量控制:当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。
5、拥塞控制:当网络拥塞时,减少数据的发送。