一,什么是协议?
网络协议的简称,是指在计算机通信过程中计算机双方必须遵循的一些约定,例如如何建立连接,如何传输数据等等。而且只有通信双方都遵循这些约定才能进行正常的通信交流。这里的协议总是指某一层的协议,当计算机需要实现同一层的实体通信时,所以与通信有关的规则和约定的集合统称为该层的协议。
二,协议的三要素:
(1)语法:即数据与控制信息的结构或格式;
(2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
(3)时序,即事件实现顺序的详细说明。
三,浅薄见解:
1,UDP协议和TCP都是OSI模型中的运输层中的协议。
2,TCP与UDP采用的输出方式不同,前者采用流式传输的方式,而后者采用数据包的形式传输。另外TCP的数据传输量并不是稳定的,传输过程中会出现一定的波动,所以传输数据的量有多有少,而UDP传输数据的长度固定为单个数据包的长度,每次传输的数据量是固定的。
3,在TCP中,流式传输的形式使得数据以绝对的顺序从发送端传输到接收端,如同自然中的河流一样存在一条河道使河水按照一定的方向流动,这种方式保证了通信的顺序和可靠性,然而由于TCP传输的数据始终受到传输检测机制的制约,导致它的传输速度将不会太快。而在UDP中,数据包通过类似投掷的方式传输数据,因此数据传输过程中会因为传输距离的增大导致数据传输的精确度和安全程度降低,使得远距离传输中UDP的可靠性不强,但是它的传输速度却远超于TCP。
4,TCP协议(Transmission Control Protocol 传输控制协议)中进行数据传输的前提是建立连接,这就可以想到建立连接过程中有趣的“三次对话”:
第一次对话:A ----->B,朋友,我可以向你发送一些数据吗?
第二次对话:B------>A,可以的,朋友。你什么时候发呢?
第三次对话:A------>B,马上就发了,记得接收哦,朋友。
三次对话之后就建立了连接,可以正式发送数据了。
UDP协议(User Datagram Protocol 用户数据报协议)是一个非连接的协议,当它需要传输数据时只需要简单的去抓取来自应用程序的数据并以其最快的速度把数据放到网络上去。没有连接也就不需要维护连接状态,因此一个发送端可以向多个接收端发送数据。
综上所述:
TCP 是面向连接的、可靠的、有序的传输层协议,而 UDP 是面向数据报的、不可靠的、无序的传输协议。但是在不同的数据传输情况下,它们各有优劣。
(新手上路,多多包涵)