在互联网中,存在着各种不同层次的协议,它们分别的功能也是不同的。但做为网络工程师,对这些协议的使用以及区分是工作的必备技能。那今天以网络工程师的角度来告诉大家是怎么看待TCP/IP协议与UDP协议的?
先说说TCP/IP协议,即Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,这是因特网最基本的协议也是国际互联网的基础,此协议由网络层的IP协议和传输层的TCP协议组成。TCP/IP 主要使电子设备连入因特网,以及对数据相互产生传输的起着规范作用。这些协议主要分为4层的层级结构,分别为:链路层、网络层、传输层和应用层。
链路层:负责封装和解封装IP报文,发送和接受ARP/RARP报文等;
网络层:负责路由以及把分组报文发送给目标网络或主机;
传输层:负责对报文进行分组和重组,并以TCP或UDP协议格式封装报文;
应用层:负责向用户提供应用程序,比如HTTP、FTP、Telnet、DNS、SMTP等。
而这每一层都是运用它的下一层所提供的协议来完成自己本层的需求。在数据链路层,数据传输在经过各层都要对其进行协议封装,用来标明对应层的通信协议。需要注意的是在网络体系结构中要建立网络通信只能在双方对等层进行,不可以调级或者交错。简单来讲就是:TCP负责发现传输数据,传输过程中有问题就发出错误信号,要求重新进行数据传输,直到所有数据安全及正确地传输到目的地。TCP主要是面向连接的可靠服务,通过三次握手建立的连接过程;仅支持单项传输;允许双方的通信应用程序随时都可以发送数据。传输层协议除了TCP协议,还有一个具有代表性的是UDP协议。
现在说说UDP协议,全称是用户数据报协议,在网络中也是用于处理传输的数据包,属于无连接的协议。处于IP协议的上一层。UDP的不可靠性在于不会对其数据包分组、组装、排序,换言之,当报文发送完成之后,是无法获悉此数据包是否是安全完整到达的也不会备份数据。不过优势也是不可忽视的。
UDP主要是面向报文的,也属于无连接型的,当应用层的数据到达传输层UDP协议时,数据只会被增加标识是UDP协议,发送给网络层,网络层再将数据传输到传输层后去除UDP协议发给应用层,这期间不会对数据报文做任何拆分和拼接的操作;UDP是有多功能的,不仅支持一对一,一对多,多对多,多对一;UDP不会被拥塞控制,一般会议稳定的速度发送数据,如果网络不好时,会自动调整发送率,不会有丢包出现。因此一般电话会议要求高的场景就会使用UDP。
虽然两个协议都属于传输层的,但是各有千秋,如果想要数据传输的准确性,可以接收时间的延迟,就选择TCP协议。如果是需要实效性比较高就只能选择UDP协议。觉得根据实际操作应用环境选择适合的协议,会事半功倍的。