浅谈 UDP协议和TCP协议(三次握手)

UDP与TCP特点

UDP:只提供应用进程寻址和简单的差错检错功能,不向应用层提供数据的可靠性传输,实时性好,效率高。
TCP:提供应用进程寻址,还能为应用层提供可靠的数据传输服务,具有流量控制和拥塞控制能力。
各应用层协议对应的运输层协议:
在这里插入图片描述

UDP

特点:无连接性,发送数据前不需要与对端进行连接,减少了开销和发送数据之前的延时。
尽力而为的服务,不提供可靠的数据传输服务,提供差错检错服务,一旦检测出数据出现错误,就将其丢弃不向应用层传递。
高效传输协议,收到应用层报文后,不合并,不拆分,添加首部直接发送,适用于实时性要求较高,容忍数据丢失,应用在(视频会议,直播)。
没有拥塞控制和流量控制。
接下来我们主要讲解一下TCP协议的特点和连接(三次握手)和释放连接的过程

TCP

特点:TCP是面向连接的运输层协议:两端TCP协议必须进行建立一个TCP连接,数据传输完毕后,再释放连接,(对于这里涉及到的一些定时器的内容先不解释)。
TCP提供可靠的数据传输服务
TCP提供流量控制:控制进程发送速率,保证另一端数据不溢出,而发生数据丢失。
提供拥塞控制:通过TCP调整减小向网络中加入数据的数量和速率。
提供双全工数据传输服务:双方都建立发送缓存和接收缓存
TCP是面向字节流:将数据块看成一连串的无结构的字节流,并对每个字节进行编号。
TCP传输过程:
建立数据连接(虚拟形式的连接) 数据传输 关闭连接
TCP连接(三次握手)
在这里插入图片描述
采用客户-服务器模型
1.第一个TCP报文段,由客户端发出(只有tcp首部无应用层报文)SYN=1 表示想要建立连接,并告诉服务器 客户端所发送的字节流的起始编号。
2. 服务器收到后,会回应一个tcp报文段,SYN =1,ACK =1。告诉客户端自己发送的字节流的初始编号为 y 并表示期望客户端发送的编号为 x+1。
3. 客户端收到后 ACK = 1 seq = x+1,ack = y+1。表示客户端对服务器表号的确认。(seq = 编号,ack=确认号)
关闭连接
在这里插入图片描述
1.客户端TCP发出一个特殊报文段 PIN = 1,客户端数据发送完毕,并关闭连接。
2.服务器收到报文段后,通知服务器进程,同时发送一个确认的TCP报文段,ACK=1 此时只关闭客户端到服务器这个方向上的连接 处于半关闭状态。
3.服务器发出TCP报文段 FIN =1 通知客户端关闭连接。
4.客户端接收后通知服务器发送确认的TCP报文,此时连接关闭,双发TCP释放连接,并删掉这个连接所占用的全部资源。

发布了3 篇原创文章 · 获赞 9 · 访问量 125

猜你喜欢

转载自blog.csdn.net/qq_46337496/article/details/105180383