TCP和UDP的区别

在单播、多播和广播方面的区别如下:

  1. 单播(Unicast):单播是一对一的通信方式,数据从一个发送者传输到一个接收者,只有目标地址与发送者匹配,接收者才能接收到数据。TCP和UDP都可以用于单播通信。             在IPv4网络中,0.0.0.0到223.255.255.255属于单播地址。

  2. 多播(Multicast台湾又译作多点发送、多点广播或群播,中国大陆又译作组播):多播是一对多的通信方式,数据从一个发送者传输到一组特定的接收者。UDP支持多播通信,而TCP不支持。224.0.0.0-239.255.255.255

  3. 广播(Broadcast):UDP支持广播通信。广播是一对所有的通信方式,数据从一个发送者传输到网络中的所有设备。对于广播,UDP通常用于无连接的广播传输,而TCP则用于连接的广播传输。   在IPv4协议中,广播地址通常是由网络地址和一个全网掩码组成,其中主机部分全部为1。例如,在192.168.1.0/24子网中,广播地址为192.168.1.255,这意味着当一个数据包被发送到这个地址时,它将被发送到这个子网中的所有主机。

总结起来,TCP和UDP在连接性、可靠性和数据传输方式等方面有所不同。在单播通信中,两者都可使用,而在多播和广播通信中,只能用UDP。

总结起来,单播是一对一的通信,多播是一对多的通信,广播是一对所有的通信。单播和多播需要明确指定目标地址或多播组地址,而广播则发送给网络中的所有设备。

TCP协议的特点

面向连接
        面向连接,是指发送数据之前必须在两端建立连接。建立连接的方法是“三次握手”,这样能建立可靠的连接。传输完毕后释放已建立的TCP传输连接。

仅支持单播传输
        每条TCP传输连接只能有两个端点,只能进行点对点的数据传输,不支持多播和广播传输方式。

面向字节流
        TCP不像UDP一样那样一个个报文独立地传输,而是在不保留报文边界的情况下以字节流方式进行传输。

  • 由于TCP是面向字节流的,在一个TCP连接中传送的字节流中的每一个字节都按顺序编号

可靠传输
        对于可靠传输,判断丢包,误码靠的是TCP的段编号以及确认号。TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。

提供拥塞控制
        当网络出现拥塞的时候,TCP能够减小向网络注入数据的速率和数量,缓解拥塞

每次发送的数据段大小和段数都是可变的。

 

UDP协议的特点

1. 面向无连接

首先 UDP 是不需要和 TCP一样在发送数据前进行三次握手建立连接的,想发数据就可以开始发送了。并且也只是数据报文的搬运工,不会对数据报文进行任何拆分和拼接操作。

具体来说就是:

在发送端,应用层将数据传递给传输层的 UDP 协议,UDP 只会给数据增加一个 UDP 头标识下是 UDP 协议,然后就传递给网络层了
在接收端,网络层将数据传递给传输层,UDP 只去除 IP 报文头就传递给应用层,不会任何拼接操作
2. 有单播,多播,广播的功能

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

3. UDP是面向报文的

        发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。因此,应用程序必须选择合适大小的报文

4. 不可靠性

        首先不可靠性体现在无连接上,通信都不需要建立连接,想发就发,这样的情况肯定不可靠。

        并且收到什么数据就传递什么数据,并且也不会备份数据,发送数据也不会关心对方是否已经正确接收到数据了。

        再者网络环境时好时坏,但是 UDP 因为没有拥塞控制,一直会以恒定的速度发送数据。即使网络条件不好,也不会对发送速率进行调整。这样实现的弊端就是在网络条件不好的情况下可能会导致丢包,但是优点也很明显,在某些实时性要求高的场景(比如电话会议)就需要使用 UDP 而不是 TCP。

5. 头部开销小,传输数据报文时是很高效的。

报文

报文,是网络中交换和传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。

数据被视为独立的报文进行传输。UDP不会对数据进行分割和重组,它只是将整个报文添加一个UDP报头(包括源目标端口等),然后直接发送出去。

每个 UDP 报文就是一个用户消息的边界

字节流

TCP将数据分割成以字节为单位的小块,并按照它们的顺序进行传输。发送方将数据流切分成TCP报文段,并添加报头信息(包括源端口、目标端口、序列号等)。接收方在接收到TCP报文段后,将它们重新组装成原始的字节流。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值