3.TCP/IP协议,三次握手,四次挥手,UDP协议

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇,只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

TCP/IP四层模型,从上到下依次是应用层、传输层、网络层和数据链路层(网络接口层)。

3.TCP/IP协议,三次握手,四次挥手,UDP协议_第1张图片

三次握手

3.TCP/IP协议,三次握手,四次挥手,UDP协议_第2张图片

1.客户端向服务端发送SYN包,问:“可以和你进行连接吗?”

2.服务端向客户端发送SYN+ACK包,并回答:“可以进行连接。”

3.客户端向服务端发送ACK包。连接成功。

这个过程叫做三次握手。

为什么要三次握手,而不是两次握手?

假如采用的是两次握手:

客户端向服务器端发送SYN1包,SYN1包在中间某个网络节点上产生了滞留,

3.TCP/IP协议,三次握手,四次挥手,UDP协议_第3张图片

 过了一段时间,客户端会向服务端重新发送SYN2包,SYN2包成功发送,服务端发送SYN+ACK包给客户端,建立连接。

3.TCP/IP协议,三次握手,四次挥手,UDP协议_第4张图片

 又过了一段时间,SYN1包滞留结束,发送到了服务端,此时,服务端会误认为是客户端又一次请求连接,于是服务端又向客户端发送了SYN+ACK包,第二次连接进入等待状态。

客户端认为是一个连接,而服务端认为是两个连接。造成了状态不一致。

如果是三次握手的情况下,服务端收不到最后的ACK包,就不会认为连接建立成功。

所以,三次握手,本质上来说,就是为了解决网络信道不可靠的问题。

为了在不可靠的网络信道上建立可靠的连接,就需要三次握手,但仅仅有三次握手还是不够。

一个包可能拆成多个包发送,如何处理丢包问题?如何处理乱序问题

在发送数据包时,客户端或者服务端(只要是发送端)会建立发送缓冲区。

3.TCP/IP协议,三次握手,四次挥手,UDP协议_第5张图片

TCP协议是全双工的,对于上述过程,不区分客户端和服务端,只要是发送端。 

四次挥手

3.TCP/IP协议,三次握手,四次挥手,UDP协议_第6张图片

UDP协议

UDP协议是基于非连接的,过程就是数据包简单封装一下,然后直接通过网卡发送出去,客户端和服务端没有状态上的联系。

3.TCP/IP协议,三次握手,四次挥手,UDP协议_第7张图片

 三大特点:性能损耗少、资源占用少、稳定性弱。

3.TCP/IP协议,三次握手,四次挥手,UDP协议_第8张图片

UPD还有另外一个重要的应用场景:隧道网络 

3.TCP/IP协议,三次握手,四次挥手,UDP协议_第9张图片

你可能感兴趣的:(tcp/ip,网络,网络协议)