一、 TCP协议

TCP(Transmission Control Protocol,即“传输控制协议”)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF(互联网工程任务组)的RFC 793定义。在计算机通信体系结构的“OSI参考模型”当中,TCP协议完成第四层“传输层”所指定的功能,向用户提供可靠的端到端的服务。

TCP(传输控制协议)为两台主机之间提供高可靠性的数据通信。它所做的工作,包括把应用程序交给它的数据分成合适的小块,然后交给下面的网络层;确认接收到的分组;设置发送最后确认分组的超时时钟等。为了提供可靠的服务,TCP(传输控制协议)采用了“超时重传、发送和接收端到端的确认分组”等机制。

二、 TCP协议的主要特点

TCP是一种面向广域网的通信协议,目的是在跨越多个网络通信时,为两个通信端点之间提供一条具有下列特点的通信方式:
(1)基于字节流的方式;
(2)面向连接;
(3)可靠的通信方式;
(4)在网络状况不佳的时候,尽量降低系统由于重传带来的带宽开销;
(5)通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。

三、 TCP协议的优点及缺点

1、优点:可靠、稳定
TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接;而且在数据传递时,有“确认、窗口、重传、拥塞控制”等机制;在数据传完后,还会断开连接以此节约系统资源。

2、缺点:慢,效率低,占用系统资源高,易被攻击
TCP在传递数据之前,要先建连接,这会消耗一定的时间,而且在数据传递时,它的“确认机制、重传机制、拥塞控制机制”等都会消耗大量的时间,而且还要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的“CPU、内存”等硬件资源。

由于TCP存在“确认机制”和“三次握手机制”,这也是导致TCP容易被人利用,实现DoS、DDoS、CC等攻击的原因。

亿速云为用户提供的“专业抗DDoS攻击、DoS攻击、CC攻击”的高防服务器、高防裸金属服务器,具有“超大防护带宽、超强清洗能力、全业务场景支持” 的特点与优势,能够更加精准有效地防御DDoS攻击、DoS攻击和CC攻击等,真正做到了降低用户的防御成本。

四、 UDP协议

UDP (User Datagram Protocol,即“用户数据报协议”),是计算机通信体系结构“OSI 参考模型”当中的一种无连接的传输层协议,提供面向事务的简单、不可靠的信息传送服务,由IETF(互联网工程任务组)的 RFC 768定义 。

UDP主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。

UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据,UDP传输的可靠性由应用层负责。常用的UDP端口号有:53(DNS)、69(TFTP)、161(SNMP),使用UDP协议包括:TFTP、SNMP、NFS、DNS、BOOTP。

UDP报文没有可靠性保证、顺序保证和流量控制字段等,可靠性较差。但是正因为UDP协议的控制选项较少,在数据传输过程中延迟小、数据传输效率高,适合对可靠性要求不高的应用程序,或者可以保障可靠性的应用程序,如:DNS、TFTP、SNMP等。

五、 UDP协议的主要特点

UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。

由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。

UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包而言UDP的额外开销很小。

吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。

UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。

六、 UDP协议的优点及缺点

1、 优点:传输快,安全性比TCP稍微要强一些
UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击。

2、缺点 :不可靠,不稳定
因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。

七、TCP协议与UDP协议的区别

TCP和UDP协议的主要区别是两者在如何实现信息的可靠传递方面不同。TCP协议中包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。与TCP不同,UDP协议并不提供数据传送的保证机制。如果在从发送方到接收方的传递过程中出现数据包的丢失,协议本身并不能做出任何检测或提示。因此,通常人们把UDP协议称为不可靠的传输协议。

TCP 是面向连接的传输控制协议,而UDP 提供了无连接的数据报服务;TCP 具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP 在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作;UDP 具有较好的实时性,工作效率较 TCP 协议高;UDP 段结构比 TCP 的段结构简单,因此网络开销也小。TCP 协议可以保证接收端毫无差错地接收到发送端发出的字节流,为应用程序提供可靠的通信服务。对可靠性要求高的通信系统往往使用 TCP 传输数据。

可以简单概括为以下5点:

1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。

2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。TCP通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。

3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。

4.每一条TCP连接只能是点到点的;UDP支持一对一、一对多、多对一和多对多的交互通信。

5、TCP对系统资源要求较多,UDP对系统资源要求较少。