tcp 和udp特点

tcp特点:

1.面向连接 (三次握手 四次挥手)  一对一连接

三次握手

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。


tcp 和udp特点

   四次挥手

tcp 和udp特点

   一个TCP协议连接其实就是在物理线路上创建的一条虚拟信道。这条虚拟信道建立后,在TCP协议发出FIN包之前(两个终端都会向对方发送一个FIN包),是不会释放的。正因为这一点,TCP协议被称为面向连接的协议 

     使用TCP协议传输数据,当数据从A端传到B端后,B端会发送一个确认包(ACK包)给A端,告知A端数据我已收到!UDP协议就没有这种确认机制!这就是为什么说TCP协议可靠,UDP协议不可靠

2.数据流可拆分 (粘包)

粘包出现原因:
                     1 发送端需要等缓冲区满才发送出去,造成粘包
                     2 接收方不及时接收缓冲区的包,造成多个包接收

3.流量控制(通过滑动窗口)

TCP使用窗口机制进行流量控制

什么是窗口?

连接建立时,各端分配一块缓冲区用来存储接收的数据,并将缓冲区的尺寸发送给另一端

接收方发送的确认信息中包含了自己剩余的缓冲区尺寸

剩余缓冲区空间的数量叫做窗口

4.拥塞控制 (慢启动,拥塞避免,快重传,快启动)

5.可重传校验机制 (通过数据包中的编号进行校验)

udp特点:

1.面向无连接

UDP协议,一样会在物理线路上创建一条虚拟信道,否则UDP协议无法传输数据,但是,当UDP协议传完数据后,这条虚拟信道就被立即注销了

2.数据包

不存在粘包问题

3 效率高

4 丢包乱序

UDP 协议是无连接的数据传输协议并且无重传机制,会发生丢包、收到重复包、乱序等情况。而对于数据精确性要求不高的状态数据以及视频数据,丢包的影响不大。

5 可进行广播