运输层 —— UDP和TCP数据单元的长短问题

《》UDP是面向报文的。数据单元是“用户数据报”。发送方的UDP会将应用层的整个报文全都接受下来,再添加首部后就向下交付给IP层。UDP对应用层交付下来的报文,会照样发送,不进行合并,也不进行拆分,所以说,实际上UDP是没有流量控制和拥塞控制机制的,但是UDP支持广播和一对一、一对多、多对一、多对多的交互,而TCP只能够实现一对一通信

《》TCP则不同,TCP是面向字节流的,数据单元是“报文段”。TCP链接的两端都设有发送缓存和接受缓存。这样的话,TCP实际上并不关心应用层到底一次把多长的报文发送到TCP缓存中,而是根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节,如果应用进程传送到TCP缓存的数据段的长度太长的话,那么TCP就将拆分成短一些的数据封装成报文段在发送,如果缓存中的报文数据比较少的话,那么TCP就会等到缓存中的数量达到一定的量的时候,再封装成报文段发送

posted @ 2014-10-28 20:46  RoperLee  阅读(447)  评论(0)    收藏  举报