TCP和UDP协议

TCP/IP协议是一系列网络协议的总称,这些协议的目的,就是使计算机之间可以进行信息交换,TCP/IP协议一共包括了几百种协议,例如,TCP协议、UCP协议、IP协议、HTTP协议、FTP协议等

这些协议可以大致分为四个层次,上一层的协议都是以下一层的协议为基础

从下到上的四层,分别为:链路层、网络层、传输层、应用层

作用:

1、链路层负责建立电路连接,是整个网络的物理基础,典型的协议包括以太网、ADSL等

2、网络层负责分配地址和传送二进制数据,主要协议是IP协议

3、传输层负责传送文本数据,主要协议是TCP协议、UDP协议

4、应用层负责传送各种最终形态的数据,是直接与用户打交道的层,典型协议是HTTP(超文本传输协议)、FTP等

互联网架构的核心就是文本对话


TCP协议和UDP协议

TCP协议是传输控制协议,它是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接

一个TCP连接需要经过三次握手才能建立起来(断开连接则需要四次挥手)

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

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

UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小,但UDP并不能保证可靠交付,可能丢包

TCP和UDP的区别:

1、基于连接和无连接,TCP面向连接,UDP面向无连接

2、TCP传输可靠,UDP不可靠

3、TCP适合传输大量的数据,UDP适合传输少量数据

4、TCP传输速度慢,UDP传输速度快

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

6、UDP程序结构较简单

7、流模式和数据报模式

8、TCP保证数据正确性,UDP可能会丢包

9、TCP保证数据顺序,UDP不保证

总结:UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境

注意:我们经常使用PING命令来测试两台主机之间的TCP/IP通信是否正常,其实PING命令的原理就是向对方主机发送ICMP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的,例如,默认状态下,一次PING操作发送4个数据包,接收到的也是4个数据包(因为对方主机收到后会发回一个确认收到的数据包),这充分说明UDP协议是面向非连接的协议,没有建立连接的过程,正因为UDP协议没有连接的过程,所以它的通信效率高,但也正因为如此,它的可靠性不如TCP协议高,QQ就是使用UDP发消息,因此有时会出现收不到消息的情况

你可能感兴趣的:(TCP和UDP协议)