计算机网络复习------TCP与UDP的区别
UDP和TCP的报文结构
相比TCP报文,UDP的域少了很多。简单了很多。简单的报文结构意味着UDP不像TCP那样,支持错误重传,滑动窗口。
UDP的特点
面向非连接
传输数据之前,源端和终端不建立连接,当它想传送时,就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。
在发送端UDP传送数据的速度仅仅是受应用程序生成数据地速度,计算机的能力和传输带宽的限制。
在接收端UDP把每个消息段放在队列中,应用程序每次从队列中读取一个消息段。
不维护连接状态,支持同时向多个客户端传输相同的消息
由于传输数据不建立连接,所以不需要维护连接状态。
数据包报头只有8个字节,额外开销较小
相对TCP 20个字节包 小很多
吞吐量只受限于数据生成速率,传输速率以及机器性能
吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的效率,传输带宽,源端和终端主机性能的限制。
尽最大努力交付,不保证可靠交付,不需要维持复杂的链接状态表
面向报文,不对应用程序提交的报文信息进行拆分或者合并
发送方的UDP对应用程序,交下来的报文,在添加守护后就向下交付给IP层,既不拆分,也不合并。而是保留报文的边界。因此应用程序应该选择合适的报文大小,UDP将多数的控制交给上层去解决。
总结
TCP和UDP是OSI模型中,运输层的协议。TCP提供可靠的传输,而UDP常被用于让广播和细节控制交给应用层的通信传输。
面向链接与面向无连接
TCP有三次握手的过程 UDP合适消息的多播发布,从单个点向多个点发布信息
可靠性
TCP利用握手,确认,重传机制提供了可靠性保证。 UDP可能会被丢失,不知道有没有被接收
有序性
TCP利用***保证了消息报的顺序交付,达到可能无序,但是TCP最终还是会排序的。
UDP不具备有序性
速度
TCP速度比较慢,因为要创建连接,保证消息的可靠性和有序性,需要额外做很多事。
UDP比较适合对速度比较敏感的应用。比如在线视频媒体,电视广播,多人在线游戏。
量级
TCP属于重量级的
UDP属于轻量级的
体现在源数据头部大小 TCP 20个字节 UDP 8个字节