TCP协议与UDP协议的区别

一、基本概述

TCP协议:

1、TCP协议是基于传输层的协议,是一个面向连接并且可靠的一种协议。TCP协议在传输数据之前必须要先建立连接。

2、TCP协议是点对点,端到端的,只能一对一,一个发送一个接收。

3、TCP面向字节流,也就是说将应用层传下来的报文看成字节流,然后再将字节流转换为大小不等的报文段。

4、TCP具备可靠性传输,流量控制,拥塞控制等功能。(具体功能描述下文有所体现)

UDP协议:

1、UDP协议也同样是基于传输层的协议,是一个无面向连接并且不可靠的一种协议。UDP协议在传输数据之前不需要建立连接。

2、UDP协议是将应用程序发来的数据在收到的那一瞬间,立即就将传输过来的数据发送到网络上。但是在这种情况下容易出现一些问题,例如当网络出现拥塞的时候,UDP无法进行流量控制来避免网络拥塞。

3、UDP协议在传输数据的时候,如果遇到了丢包情况,它也不负责重发,数据包的达到顺序出现混乱或者其他情况的时候,也没有解决的能力,除非采用UDP的应用程序去处理。

二、两种协议的特点

TCP协议:

1.校验和:发送方在传输数据之前,会对数据进行校验和,而接收方在收到数据之后也会对数据进行一个校验和,如果前后两次校验和没有错误,那么证明传输中没有出现错误。

2.序列号和确认应答:发送方在发送数据时会将每个数据进行一个编号,当接收方收到数据后通过这个序列号来进行确认应答。

3.超时重发:也就是说在一定时间间隔或者说在一定时间范围内,如果发送方还没有收到接收方的确认,那么就会重新发送数据。

4.高速重发:在出现报文丢失的情况下,同一个序列号的确认应答将会被接收端重复不断的返回。发送端如果连续接到三次同一个确认应答,就会将其所对应的数据进行重发。

5.连接管理:也就是TCP协议中出现的三次握手和四次挥手的过程。

6.流量控制:通俗来说流量控制就是为了让接收方能够来得及接收发送方传来的数据从而控制发送方发送数据的速率。

7.拥塞控制:为了降低整个网络的拥塞程度,避免网络中发送的数据包数量过多,造成数据包阻塞延迟丢失来控制发送方发送数据的数量大小。一般通过四个算法来实现:慢开始,拥塞避免,快重传,快恢复。(快重传要搭配快恢复来使用)

8.窗口控制:TCP通过设置一个窗口大小值,配合窗口滑动机制,实现并行处理。

9.ARQ协议:为了实现数据的可靠性传输,ARQ协议的基本原理就是每发完一个分组就停止发送,等待对方确认应答。在收到确认后才会再发下一个分组。

UDP协议:

1、UDP协议是传输层的协议,不需要建立连接。

2、UDP面向报文传输,不保证可靠交付,同时也不使用拥塞控制,适合多媒体通信的要求。

3、UDP支持一对一,一对多,多对一和多对多的交互通信。

4、UDP的首部开销小,只有8个字节。

三、两种协议的首部格式

TCP协议:

包含源端口,目的端口,序号,确认号,数据偏移,保留字段,控制位字段,窗口,检验和,紧急指标,以及可变的选项和填充。如下图所示:

TCP协议与UDP协议的区别_第1张图片

UDP协议:

TCP协议与UDP协议的区别_第2张图片

四、两种协议的区别:

在面向连接方面:TCP协议需要建立连接,只支持一对一,端到端;而UDP协议不需要建立连接,并且支持一对一,一对多,多对一,多对多的交互通信。

在效率方面:TCP协议,传输速率慢,效率低;UDP协议传输速率快,效率高。

在可靠性方面:TCP协议可靠性高;UDP协议可靠性低。

在首部格式方面:TCP协议首部在20到60个字节之间;而UDP协议首部只占8个字节。

在所需资源方面:TCP协议所需要的资源多;而UDP协议所需要的资源较少。

用表格总结:

TCP UDP
面向连接 需要 不需要
效率
可靠性 可靠 不可靠
首部格式 20-60个字节 8个字节
所需资源

你可能感兴趣的:(tcp/ip,udp,网络)