We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UDP,用户数据包协议,是一个简单的面向数据报的通信协议,即对应用层交下来的报文,不合并,不拆分,只是在其上面加上首部后就交给了下面的网络层
也就是说无论应用层交给UDP多长的报文,它统统发送,一次发送一个报文
而对接收方,接到后直接去除首部,交给上面的应用层就完成任务
UDP报头包括4个字段,每个字段占用2个字节(即16个二进制位),标题短,开销小 UDP首部4字节
特点如下:
TCP,传输控制协议,是一种可靠、面向字节流的通信协议,把上面应用层交下来的数据看成无结构的字节流来发送
可以想象成流水形式的,发送方TCP会将数据放入“蓄水池”(缓存区),等到可以发送的时候就发送,不能发送就等着,TCP会根据当前网络的拥塞状态来确定每个报文段的大小
TCP报文首部有20个字节,额外开销大
双工模式分为如下两种:
两者区别如下表所示:
UDP首部4字节 TCP报文首部有20个字节
发送方在设定一个定时器,每间隔一段时间,没有收到对方的ACK确认应答报文,就会重发该报文
传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层,在应用层实现确认机制、重传机制、窗口确认机制。
目前有如下开源程序利用UDP实现了可靠的数据传输。分别为RUDP、RTP、UDT。
UDP
RUDP
RTP
UDT
The text was updated successfully, but these errors were encountered:
No branches or pull requests
UDP与TCP的区别
一、UDP
UDP,用户数据包协议,是一个简单的面向数据报的通信协议,即对应用层交下来的报文,不合并,不拆分,只是在其上面加上首部后就交给了下面的网络层
也就是说无论应用层交给UDP多长的报文,它统统发送,一次发送一个报文
而对接收方,接到后直接去除首部,交给上面的应用层就完成任务
UDP报头包括4个字段,每个字段占用2个字节(即16个二进制位),标题短,开销小
UDP首部4字节
特点如下:
二、TCP
TCP,传输控制协议,是一种可靠、面向字节流的通信协议,把上面应用层交下来的数据看成无结构的字节流来发送
可以想象成流水形式的,发送方TCP会将数据放入“蓄水池”(缓存区),等到可以发送的时候就发送,不能发送就等着,TCP会根据当前网络的拥塞状态来确定每个报文段的大小
TCP报文首部有20个字节,额外开销大
特点如下:
三、区别
双工模式分为如下两种:
两者区别如下表所示:
UDP首部4字节
TCP报文首部有20个字节
TCP如何实现可靠性传输?
发送方在设定一个定时器,每间隔一段时间,没有收到对方的ACK确认应答报文,就会重发该报文
UDP如何改进实现可靠传输
传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层,在应用层实现确认机制、重传机制、窗口确认机制。
目前有如下开源程序利用
UDP
实现了可靠的数据传输。分别为RUDP
、RTP
、UDT
。The text was updated successfully, but these errors were encountered: