首页 > 其他分享 >TCP与UDP的联系与区别

TCP与UDP的联系与区别

时间:2022-10-09 11:01:47浏览次数:58  
标签:UDP 字节 区别 主机 TCP 发送 连接

TCP与UDP基本区别:
1、基于连接与无连接。
2、TCP要求系统资源较多,UDP较少。
3、UDP程序结构较简单。
4、流模式(TCP)与数据报模式(UDP)。
5、TCP保证数据正确性,UDP可能丢包。
6、TCP保证数据顺序,UDP不保证。
7、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。
8、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。
9、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)。
10、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。
11、TCP首部开销20字节;UDP的首部开销小,只有8个字节。
12、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道。
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,完成第四层传输层所指定的功能。
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。

TCP
TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。TCP仅支持单播传输,面向字节流,提供全双工通信,是可靠传输。

建立连接
一个TC建立连接连接必须要经过三次对话才能建立起来,简单描述三次对话的过程:
第一次
主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;

第二次
主机B向主机A发送同意连接和要求同步 (同步就是两台主机一个在发送,一个在接收,协调工作)的数据包 :“可以,你什么时候发?”,这是第二次对话;

第三次
主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”, 这是第三次对话。

三次“对话”的目的是使数据包的发送和接收同步, 经过三次“对话”之后,主机A才向主机B正式发送数据。

断开连接
TCP断开连接要进行4次
第一次
若客户端 A 认为数据发送完成,则它需要向服务端 B 发送连接释放请求。
第二次
B 收到连接释放请求后,会告诉应用层要释放 TCP 链接。然后会发送 ACK 包,并进入 CLOSE_WAIT 状态,此时表明 A 到 B 的连接已经释放,不再接收 A 发的数据了。但是因为 TCP 连接是双向的,所以 B 仍旧可以发送数据给 A。
第三次
B 如果此时还有没发完的数据会继续发送,完毕后会向 A 发送连接释放请求,然后 B 便进入 LAST-ACK 状态。
第四次
A 收到释放请求后,向 B 发送确认应答,此时 A 进入 TIME-WAIT 状态。该状态会持续 2MSL(最大段生存期,指报文段在网络中生存的时间,超时会被抛弃) 时间,若该时间段内没有 B 的重发请求的话,就进入 CLOSED 状态。当 B 收到确认应答后,也便进入 CLOSED 状态。


UDP
面向无连接
UDP是一个非连接的协议,传输数据之前源端和终端不建立连接, 当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。 在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、 计算机的能力和传输带宽的限制; 在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
标题短
UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。

有单播,多播,广播的功能
UDP 不止支持一对一的传输方式,同样支持一对多,多对多,多对一的方式,也就是说 UDP 提供了单播,多播,广播的功能。

标签:UDP,字节,区别,主机,TCP,发送,连接
From: https://www.cnblogs.com/-cen/p/16771384.html

相关文章

  • TCP与UDP的联系与区别?
    TCP(TransmissionControlProtocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来:1)主机A......
  • PHP 两个等号 和 三个等号的区别
    我们来看一下下面一个程序:$str=“abc”;if(0==$str){echo“真”}else{echo“假”}这个程序运行的结果出人意料,“fupeng”居然被PHP认为和0相等了。为......
  • tcp与udp的区别
    TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接TCP要求的系统资源较多,UDP较少TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差......
  • SOCK5代理服务器与HTTP代理有什么区别?
    SOCKS5代理与HTTP代理的区别:SOCKS工作在比HTTP代理更低的层次:SOCKS使用握手协议来通知代理软件其客户端试图进行的连接SOCKS,然后尽可能透明地进行操作,而常规代理可能会......
  • Flume和Logstash 都可以做日志收集,那有什么区别呢
      这个问题诞生于我和朋友的聊天,我问它最近在做什么,他说Flume,咱不懂呀,偷偷的百度了一下。短暂的看到也是做日志收集的,这让我瞬间想到了logstash,就是 ELK 组合中的一员......
  • png图片和jpg图片有什么区别
    首先在外观上,没有任何区别。png格式的图片所占存储大小明显大于jpg图片,相比之下jpg格式用于很多场合。png格式图片可进行无损压缩,可以在PS中重新编辑;jpg格式图片会牺牲图......
  • for in 和 for of的区别
    1.循环数组区别一:forin和forof都可以循环数组,forin输出的是数组的index下标,而forof输出的是数组的每一项的值。constarr=[1,2,3,4]//for...infor(const......
  • TCP与UDP的区别
    连接性TCP是面向连接的协议,在收发数据前必须和对方建立可靠的连接,建立连接的3次握手、断开连接的4次挥手,为数据传输打下可靠基础;UDP是一个面向无连接的协议,数据传输前,源......
  • udp与tcp的区别
    TCP是面向连接的服务。在传输数据之前必须先建立连接,数据传送介绍后需要释放连接。TCP不提供广播或多播服务。由于TCP要提供可靠的、面向连接的传输服务(TCP的可靠性提现在T......
  • dll和lib的区别和联系
    什么是lib文件,lib和dll的关系如何(1)lib是编译时需要的,dll是运行时需要的。如果要完成源代码的编译,有lib就够了。如果也使动态连接的程序运行起来,有dll就够了。在开发和调......