UN1L5-3——TCP和UDP

TCP/IP协议中的重要协议

  • 应用层协议

    • HTTP协议:超文本传输协议
    • HTTPS协议:加密的超文本传输协议
    • FTP协议:文件传输协议
    • DNS:域名系统
  • 传输层协议

    • TCP协议:传输控制协议
    • UDP协议:用户数据报协议
  • 网络层协议

    • IP协议

image

TCP:传输控制协议、UDP:用户数据报协议,他们的区别:

image

  • TCP: 更可靠,保证数据的正确性和有序性(三次握手四次挥手) 适合对信息准确性要求高,效率要求较低的使用场景
    比如:游戏开发,文件传输,远程登录等等
  • UDP: 更效率,传输更快,资源消耗更少 适合对实时性要求高的使用场景
    比如:直播,即时通讯,游戏开发等等

TCP协议

TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接
并且在消息传送过程中是有顺序的,并且是不会丢包(丢弃消息)的,如果某一条消息在传送过程中失败了,会重新发送消息,直到成功

它的特点是:

  1. 面向连接 —— 两者之间必须建立可靠的连接
  2. 一对一 —— 只能是1对1的建立连接
  3. 可靠性高 —— 消息传送失败会重新发送,不允许丢包
  4. 有序的 —— 是按照顺序进行消息发送

TCP协议中有一个重要概念:三次握手,四次挥手

  • 三次握手建立连接

    • 第一次握手(C—>S)

      TCP连接请求,告诉服务器我要和你建立连接

    • 第二次握手(S—>C)

      TCP授予连接,告诉客户端准了,来吧

    • 第三次握手(C—>S)

      TCP确认连接,告诉服务器,来就来

    image

  • 四次挥手断开连接

    • 第一次挥手(C—>S)

      告诉服务器我数据发完了,你如果还有消息就快发完

    • 第二次挥手(S—>C)

      告诉客户端我知道了,请继续等待我的消息

    • 第三次挥手(S—>C)

      告诉客户端消息发完了,你可以正式断开连接了

    • 第四次挥手(C—>S)

      告诉服务器我等一会如果没有收到你回复我就断开了

    image

TCP有了这三次握手,四次挥手的规则,可以提供可靠的服务,通过TCP连接传送的数据,可以做到无差错、不丢失、不重复、且按顺序到达
它让服务器和客户端之间的数据传递变得更加的可靠

UDP协议

UDP(User Datagram Protocol,用户数据报协议),是一种无需建立连接就可以发送封装的IP数据包的方法,提供面向事务的简单不可靠信息传送服务
它的特点是:

  1. 无连接 —— 两者之间无需建立连接
  2. 可靠性低 —— 消息可能在传送过程中丢失,丢失后不会重发
  3. 传输效率高 —— 由于它的可靠性低并且也无需建立连接,所以传输效率上更高一些
  4. n对n —— TCP只能1对1连接进行消息传递,而UDP由于无连接所以可以n对n

UDP协议不像TCP协议需要建立连接有三次握手和四次挥手,当使用UDP协议发送信息时,会直接把信息数据扔到网络上,
所以也就造成了UDP的不可靠性,信息在这个传递过程中是有可能丢失的
虽然UDP是一个不靠谱的协议,但是由于它不需要建立连接,也不会像TCP协议那样携带更多的信息,
所以它具有更好的传输效率,它具有资源消耗小,处理速度快的特点

image