TCP三次握手和四次挥手协议
2015-08-20 09:55
363 查看
转载自TCP三次握手和四次挥手协议
在面试的过程中,TCP的传输协议经常会出现。以前我参加面试的过程中就被问到过,现在轮到我面试其他人的时候,我也会问一些相关的问题。作为一名开发者,无论使用什么样的开发语言,最基本的网络知识一定要理解透彻,这样才能获得更好的职业发展。
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:
![](http://swiftlet.net/wp-content/themes/swiftlet/page-images/tcp/tcp.jpg)
首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。
![](http://swiftlet.net/wp-content/themes/swiftlet/page-images/tcp/lianjie.jpg)
断开连接端可以是Client端,也可以是Server端。假设Client端发起中断连接请求,就先发送FIN报文。Server端接到FIN报文后,但是如果还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。所以服务器端先发送ACK,告诉Client端:请求已经收到了,但是我还没准备好,请继续等待停止的消息。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。当Server端确定数据已发送完成,则向Client端发送FIN报文,告诉Client端:服务器这边数据发完了,准备好关闭连接了。Client端收到FIN报文后,就知道可以关闭连接了,但是他还是不相信网络,所以发送ACK后进入TIME_WAIT状态,
Server端收到ACK后,就知道可以断开连接了。Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,最后,Client端也可以关闭连接了至此,TCP连接就已经完全关闭了!关闭连接的过程如下图所示:
前言
在面试的过程中,TCP的传输协议经常会出现。以前我参加面试的过程中就被问到过,现在轮到我面试其他人的时候,我也会问一些相关的问题。作为一名开发者,无论使用什么样的开发语言,最基本的网络知识一定要理解透彻,这样才能获得更好的职业发展。
TCP链接协议概述
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:![](http://swiftlet.net/wp-content/themes/swiftlet/page-images/tcp/tcp.jpg)
建立连接的过程
首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。![](http://swiftlet.net/wp-content/themes/swiftlet/page-images/tcp/lianjie.jpg)
断开连接的过程
断开连接端可以是Client端,也可以是Server端。假设Client端发起中断连接请求,就先发送FIN报文。Server端接到FIN报文后,但是如果还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。所以服务器端先发送ACK,告诉Client端:请求已经收到了,但是我还没准备好,请继续等待停止的消息。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。当Server端确定数据已发送完成,则向Client端发送FIN报文,告诉Client端:服务器这边数据发完了,准备好关闭连接了。Client端收到FIN报文后,就知道可以关闭连接了,但是他还是不相信网络,所以发送ACK后进入TIME_WAIT状态,Server端收到ACK后,就知道可以断开连接了。Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,最后,Client端也可以关闭连接了至此,TCP连接就已经完全关闭了!关闭连接的过程如下图所示:
![](http://swiftlet.net/wp-content/themes/swiftlet/page-images/tcp/duankai.jpg)
相关文章推荐
- tcpdump笔记
- 更改linux文件夹的默认颜色http://www.cnblogs.com/pmars/p/3730644.html
- android4.0 HttpClient 以后不能在主线程发起网络请求
- 网络编程中的函数汇总篇
- WCF下载***$metadata”时出错。 无法连接到远程服务器由于目标计算机积极拒绝,无法连接。元数据包含无法解析的引用http://localhost 没有终结点在侦听可以接受消这通常是由于不正
- node.js基础:HTTP服务器
- win10系统出现多个网络怎么办?win10系统多余网络的解决方法
- https://software.intel.com/zh-cn/blogs/2014/02/20/svn/
- Deep Learning论文笔记之(五)CNN卷积神经网络代码理解
- Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现
- Deep Learning论文笔记之(三)单层非监督学习网络分析
- 简析TCP的三次握手与四次挥手
- 黑马程序员——Java基础网络编程
- unp 第二章 传输层 TCP UDP SCTP
- HDU-2732 (Leapin' Lizards) 网络流
- http 和 Tcp 的区别
- VIEWGOOD(远古)网络电视台系统方案
- ajax https请求返回json数据
- Android-Volley网络通信框架(StringRequest和JsonObjectRequset)
- IdTCPServer