TCP和UDP区别

TCP
1、TCP是面向连接的
2、每条TCP连接只能用于两个断点,一对一
3、TCP提供可靠交付的服务:连接传输数据、无差错、不丢失、不重复、并且按序到达
4、TCP提供全双工通信
5、面向字节流。TCP根据对方给出的窗口和当前网络拥塞的程度来决定一个报文应该包含多少个字节


UDP
1、无连接
2、UDP使用尽最大努力交付,不保证可靠性UDP是面向报文的,UDP对应用层交付下来的报文,既不合并,也不拆分,而是保留这些报文的边界
3、应用层交给UDP多长的报文、UDP就照样发送,即一次发送一个报文
4、UDP没有拥塞控制
5、UDP支持一对一、一对多、多对一和多对多的交互通信
6、UDP的首部开销小,只有8字节


TCP如何保证可靠性
(1)数据被分割成TCP认为最合适发送的数据块
(2)重传机制:TCP发出一个段后,启动定时器,如果不能及时收到报文段,则重发一个报文段
(3)当TCP收到一个段后,会发送一个确认
(4)TCP将保持它首部和数据的校验和
(5)TCP对收到的数据进行重新排序,保证数据的有序
(6)TCP会丢弃重复的数据
(7)TCP提供流量控制


应用场合
TCP :对效率要求相对低,但对准确性要求相对高;或者是有连接的场景
UDP:对效率要求相对高,对准确性要求相对低的场景

应用实例
TCP一般用于:
1、文件传输(FTP,HTTP对数据的准确性需求高,速度可以相对慢);
2、发送或接收邮件(POP3,IMAP,SMTP对数据准确性要求高,非紧急应用);
3、远程登录(TELNET,SSH对数据准确性有一定要求,有连接概念)等等

UDP一般用于:
1、即时通信(QQ聊天,对数据准确性和丢包要求比较低,但速度必须快);
2、在线视频(RTSP速度一定要快,保证视频连续,但是偶尔花了一个图像帧,人们还是能接受的)
3、网络语音电话(VoIP语音数据包一般比较小,需要高速发送,偶尔断音或串音也没有问题)等等



TCP服务端、客户端交互步骤:

 

 

 UDP服务端、客户端交互步骤

 

 

posted @ 2020-06-16 02:24  HuiT  阅读(188)  评论(0编辑  收藏  举报