一,TCP与UDP 的特点: # TCP,Transmission Control Protocol,传输控制协议 # UDP(User Datagram Protocol):用户报文协议 # TCP:可靠,有连接,面向数据流 # UDP:不可靠、无连接、面向报文 # TCP是面向连接的,有比较高的可靠性,一些要求比较高的服务使用这些协议,比如FTP、Telnet、SMTP、HTTP、POP3等 # UDP是面向无连接的,使用这个协议的常见服务有DNS、SNMP、QQ等。它使得数据传输速度得到大幅度的提高。视频聊天语言基本都是用UDP协议
二,TCP与UDP 的区别:
TCP类似于打电话这一行为,而UDP类似于写信这个行为。
TCP面向连接,通过三次握手建立连接,四次挥手接除连接。因此TCP的工作可靠性高,他的工作结果可以立刻知道。
UDP是无连接的,发送数据之前不需要建立连接,这种方式为UDP带来了高效的传输效率,但也导致无法确保数据的发送成功。
PS:tcp的三次握手四次挥手解释(A与B约定出去散步)
- 第一次握手: A给B发短信说:“B,你现在准备好了吗?”
- 第二次握手: B收到了A的信息,然后对A说: “ 我好了,已经出发了,你出发了吗? ”
- 第三次握手: A收到了B的确认信息,然后说:“我也好了,我出发了。
-
# 第一次挥手: A给B发短信说:“B,你到了吗,我有事去不了了” # 第二次挥手: B此时收到了A的信息,然后先对A说:“没有到” # 第三次挥手: B对A说到:“那我就回家了”然后回家了, # 第四次挥手: A此时收到了B的确认信息,然后给B发消息说:“好的,我知道了”这时A也回家
三,TCP与UDP的使用环境:
UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务,随时都可以发送数据,处理简单且高效,速度快但不保证传送数据的效率
相对于 UDP,TCP 实现了数据传输过程中的各种控制,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。在对可靠性要求较高的情况下,可以使用 TCP,即不考虑 UDP 的时候,都可以选择 TCP。
四,实际应用中的TCP和UDP
QQ,这个APP是我们很熟悉的,它既运用了TCP,也运用了UDP
简单来说,QQ在登陆过程中,需要检验身份,验证账号密码,然后正确以后还需要读取账号密码中的数据,如图片,聊天记录,联系人,QQ空间等,这些过程主要运用的是TCP,可靠性很高,而这些都被读取以后,在你与好友聊天的时候,在聊天框中你发送消息,他会立刻发送出去,即使网络不佳,你也会发送出去,(即使对方不在线也可以发送,这就是不需要连接,无连接的特点)但对方能不能接受到就是另一回事了(Ps:消息发送失败的提示是腾讯为了保障效率,加入客户端的工作)这也就是UDP速度快,效率低的特点。。。。但是QQ语音或者视频的操作是TCP为主,首先他需要建立连接,其次他用过连接传输,如果连接失败会提示重新连接,连接成功后可以高效的传递信息且不会丢失信息。(但是像我们平时说的。你打电话我一定可以第一时间收到消息,而你发消息只有我看到后才能收到)