TCP和UDP的区别

二者的区别主要有以下四点:

    1.TCP面向连接,发送数据前要先建立连接;UDP是无连接的,发送数据前不需要建立连接;

    2.TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,不保证可靠交付;

    3.UDP有较好的实时性,效率比TCP高,适用于对高速传输和实时性较高的通信或广播通信;

    4.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信;

下面来详细讲解一下这四句话:

    1,TCP在发送数据前,客户端和服务器端已经建立了连接;而UDP在发送数据前服务器端和客户端没有建立连接,服务器端的地址和端口号记录在数据包里面。

           

          

        如图,客户端中socket在数据发送前,里面存有服务器端的地址和端口号,此时已建立连接;

        而在UDP中,使用的datagramSocket中没有写入地址和端口号,把数据放到了数据包里,地址和端口号都在数据包里。

        其实可以将这个数据包比作快递物件,这个快递往哪寄,寄给谁,都在物件上面写着,只有发送物件的时候,才与要接受快递的对象建立连接。

    2,TCP中的数据会进行多次校验,而UDP则没有校验,只能自己进行校验。而且一般图片,视频等通过UDP发送时,丢失一两个像素,也基本看不出什么,不需要校验太准确也没问题。

    3,这一点主要是和校验有关,TCP校验次数多,固然实时性和效率就低点。

    4,由于TCP在数据发送前就建立连接,这相当于已经规定死,数据要发送给谁,所以只能是一对一。

         UDP的话,客户端中可以有一个数据包,也可以有多个地址和端口不同的数据包,这样可以发送给多个服务器端,而服务器端也可以向不同的客户端发送数据包。所以UDP支持一对一,多对一,一对多,多对多。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值