您的位置:首页 > 理论基础 > 计算机网络

TCP与UDP的区别

2016-09-30 16:47 267 查看

TCP与UDP的区别

基于连接与无连接;

TCP是面向连接的协议,需要三次握手建立连接,四次挥手断开连接;而UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。

对系统资源的要求(TCP较多,UDP少);

TCP由于需要建立连接,因此也就需要维护连接状态,包括收发状态等,所以会消耗较多的系统资源,而UDP不需要维护连接状态,因而需要较少的系统资源。

UDP程序结构较简单;

流模式与数据报模式 ;

用UDP协议发送时,用sendto函数最大能发送数据的长度为:65535-20-8=65507字节,其中20字节为IP包头长度,8字节为UDP包头长度。用sendto函数发送数据时,如果指的的数据长度大于该值,则函数会返回错误。

用TCP协议发送时,由于TCP是数据流协议,因此不存在包大小的限制(暂不考虑缓冲区的大小),这是指在用send函数时,数据长度参数不受限制。而实际上,所指定的这段数据并不一定会一次性发送出去,如果这段数据比较长,可能会被分段发送,如果比较短,可能会等待和下一次数据一起发送。

TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

TCP通过保证数据能够到达接收方,并能保证数据的顺序,而UDP无法保证;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tcp udp