TCP(Transmission Control Protocol,传输控制协议)
他是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。
这说明TCP连接是一个非常复杂的过程,需要进行“三次握手”才可以建立连接。
以下是我在查阅资料的时候看到的例子,便于更加深刻理解:
我们来看看这三次对话的简单过程:
1.主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;
2.主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;
3.主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。
UDP(User Data Protocol,用户数据报协议)
是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。
这就说明UDP连接是一个简单,但是是不太安全的。即他适用于可靠性要求不高的环境,例如:打电话,Ping指令......
这个也是我在查阅资料的时候看到的例子,便于更加深刻理解:
比如,我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。例如,在默认状态下,一次“ping”操作发送4个数据包。大家都知道,发送的数据包数量是4包,收到的也是4包(因为对方主机收到后会发回一个确认收到的数据包)。
这充分说明了UDP协议是面向非连接的协议,没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效果高;
但也正因为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。
TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的bai通信传输。
总结:
1.TCP是面向连接的,UDP是无连接的
2.TCP是可靠的,UDP是不可靠的
3.TCP是面向字节流的,UDP是面向数据报文的
4.TCP只支持点对点通信,UDP支持一对一,一对多,多对多
5.TCP报文首部20个字节,UDP首部8个字节
6.TCP有拥塞控制机制,UDP没有
7.TCP协议下双方发送接受缓冲区都有,UDP并无实际意义上的发送缓冲区,但是存在接受缓冲区
选择依据(即什么时候选TCP或者UDP):
对某些实时性要求比较高的情况,选择UDP,比如游戏,媒体通信,实时视频流(直播),即使出现传输错误也可以容忍;其它大部分情况下,HTTP都是用TCP,因为要求传输的内容可靠,不出现丢失。
参考文献:
(33条消息) TCP和UDP的区别和联系_典韦-码农的博客-CSDN博客_tcp和udp的区别与联系
(33条消息) TCP与UDP的区别(超详细)_董HaoYu的博客-CSDN博客_tcp与udp的区别
标签:UDP,区别,主机,TCP,发送,数据包,连接 From: https://www.cnblogs.com/zhangsanlisi411/p/16768335.html