TCP、UDP协议理解

1、网络协议简述

计算机之间的通信需要遵循一定的协议(可以理解为一种信号解读的规范)。这些协议分为四个层次:
1、物理层:指的是用于计算机数据传输的真实物理媒介。
2、连接层:连接层中的信息以帧(一段有限的0/1序列)为单位传输,连接层协议的作用是根据一定的0/1组合
识别帧的起始和结束,不关注帧中包含的信息。
3、传输层:传输层协议包括TCP和UDP,使用端口号来识别数据传输的对象。
4、应用层:对被传输的信息格式做出进一步的规范。如用于Web浏览的HTTP协议,是应用层的协议,但它的数据传输是依靠TCP协议上的,即可称HTTP协议是TCP协议族中的一种。

2、TCP(传输控制协议)

TCP(Transmission Control Protocol,传输控制协议)面向链接。在正式收发数据之前,需要使用 三次握手协议 和对方先建立可靠的链接。

首先,应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段。
TCP三次握手的过程如下:
(1)客户端发送SYN(SEQ=x)报文给服务器端,进入 SYN_SEND状态。 / /服务端提出发送数据的请求
(2)服务器端收到SYN报文,回应一个SYN (SEQ=y) ACK(ACK=x+1)报文,进入SYN_RECV状态。 / /服务器端发送同意链接和要求同步
(3)客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。/ /客户端确认要求同步

TCP可通过建立的链接进行可靠的传输,无差错,不丢失,不重复。一旦发生丢包(数据包丢失),TCP会将后续的包进行缓存,等待前面的包重传成功后再进行后续传输,因而会多消耗一些流量,并造成延时。

2、UDP(用户数据报协议)

UDP(User Data Protocol,用户数据报协议)是与TCP相对的协议。同属于传输层协议,UDP不面向连接,在不建立连接的情况下直接发送数据包。
因不需要建立连接,也不存在丢包重传的机制,UDP比TCP少消耗一点儿流量并能达到更好的实时性。也正因如此,UDP一般适用于一次只传输少量数据,对可靠性要求不高的应用环境。(因为一旦发生丢包,就收不到数据了)

3、TCP与UDP的区别总结

(1)TCP建立连接;UDP不需要建立连接直接传输数据。
(2)TCP可靠性高,可用于传输大量的数据;UDP可靠性较差,用于传输少量的数据。
(3)TCP传输速度较慢,有一定的延时;UDP传输速度较快,实时性较好。
(4)另:网络环境的改善使得UDP的丢包率下降,同时也可以使用应用层重传来保证数据的传输。

猜你喜欢

转载自blog.csdn.net/weixin_44025577/article/details/84916335