学校开发网站公司,做个外贸网站多少费用,惠州专门做网站,深圳公司网站建设服务目录
三次握手
四次挥手
三次握手的意义 在客户端与服务器传输数据之前#xff0c;要在两台主机之间先建立连接#xff0c;然后再传输业务数据。三次握手#xff0c;就是建立连接的过程#xff0c;是在传输业务之前#xff0c;就要先进行。握手好了#xff0c;才能进行…目录
三次握手
四次挥手
三次握手的意义 在客户端与服务器传输数据之前要在两台主机之间先建立连接然后再传输业务数据。三次握手就是建立连接的过程是在传输业务之前就要先进行。握手好了才能进行后续的传输。注意握手只是发送一个不携带业务数据的数据报不起到任何业务的作用只是用来“打个招呼”。
三次握手 建立连接就是通信双方各自保存对端的信息。具体完成上述过程需要经过三次网络交互。三次握手的第一次一定是客户端先发起的。谁先发起谁就是客户端。如果是“服务器”先发起它就不应该叫服务器了而应该叫“客户端”。具体流程如下 SYN称为同步报文即一端向另一端主动发送数据时的报文。即把TCP报头中的SYN位置为1就表示此报文为同步报文。 ACK称为应答报文表示接收端收到发送过来的报文再给发送端一个回答。即把TCP报头中的ACK位置置为1。
具体流程就是客户端先向服务器发送一个SYN服务器接收到了就给客户端返回一个ACK表示收到SYN客户端向服务器通信是可以的然后也会向客户端发送一个SYN用来确定服务器向客户端通信是否成功客户端如果收到SYN也会返回一个ACK告诉服务器双方通信都是可以的。
注意中间的两次交互ACK和SYN是可以合并成一个网络数据的。 所谓的合并就是让这一个TCP数据报报头中同时把这两个bit位都置为1。
这样就提高了传输的效率。
三次握手的时候相当于双方各自让对方保存自己的信息必须两边都把对方的信息保存好连接才算是建立完成。
四次挥手 四次挥手就是断开TCP连接的过程四次挥手整个过程结束之后TCP连接才会断开。
注三次握手一定是客户端先发起第一次请求。而四次挥手则是客户端和服务器都可以主动发起。我们此处以客户端主动提出为例。具体流程如下 和三次握手的过程基本一致。断开连接就是通信双方把之前保存对方的信息删除。
四次挥手中间两次能否合并? 常规情况下不能特殊情况下可以。
这是因为三次握手过程中SYN和ACK都是内核自动控制发送的。发送时机是内核控制的同一时机服务器收到SYN后立即返回ACK也立即返回SYN同时进行就可以合并。
而四次挥手过程中收到FIN后ACK立即返回但是FIN并不会立即返回FIN返回的时机是应用程序代码中调用close方法的时候才会触发的。
由于两个数据报触发的时机不同因此就难以合并。
在特殊情况下TCP触发延时应答机制的时候要等待一段时间再返回ACK两个数据报是可以合并的。
三次握手的意义
1三次握手相当于“投石问路”在正式传输业务数据之前先确认一下通信链路是否通畅。也相当于TCP可靠传输的一种确认方式但是只是辅助。核心还是确认应答和超时重传机制
2)通过三次握手来确认通信双方发送能力和接收能力都是正常的。进行三次握手本质上就是完成上述确认的过程。
3三次握手的过程中还需要协商一些必要的参数。有的参数不是单方面就能确认的需要双方共同来确定出来。
比如TCP通信时使用的序号就是协商出来的。第一次连接和第二次连接协商出来的起始序号往往差异很大。
在传输数据的过程中某个数据报网络通信的过程中迷路了不是丢包。过了很久才到达服务器而这个时候之前的连接已经断开现在是一个新的连接。服务器收到这样的数据之后会直接丢弃。
那么如何区分这个数据报是不是上一次连接的数据报通过序号就可以区分出来。
TCP要避免出现“前朝的剑斩本朝的官”。每次建立的连接都是一个新的数字作为起始序号的。当前本朝的数据序号一定是沿着我们起始序号往下的数字不会相差很多。如果突然收到了一个数据报序号和当前的起始序号差别非常大就可以认为这是前朝的数据报了。 一个经典面试题TCP为啥要要三次握手/两次行不行四次行不行
两次不行服务器这边对于通信双方的发送能力和接收能力的验证还没完成。
四次行。但是没必要。拆开中间的这次交互虽然不影响tcp的正常功能但是性能会有损失。 以上关于TCP希望对你有所帮助。