TCP三次握手与四次断开的详细过程剖析

TCP是一个面向连接的服务,面向连接的服务是电话系统服务模式的抽象,每一次完整的数据传输都必须经过建立连接,数据传输和终止连接三个过程,TCP建立连接的过程称为三次握手,下面说一下三次握手的具体过程:

TCP三次握手过程

  1. 主机A通过向主机B 发送一个含有同步序列号的标志位的数据段给主机B ,向主机B 请求建立连接,通过这个数据段,主机A告诉主机B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我。
  2. 主机B 收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了;你要用哪佧序列号作为起始数据段来回应我。
  3. 主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B 的数据段:我已收到回复,我现在要开始传输实际数据了。

这样TCP三次握手就完成了,主机A和主机B 就可以传输数据了。三次握手的特点:没有应用层的数据,SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0。

TCP建立连接要进行三次握手,而断开连接要进行四次,这是由于TCP的半关闭造成的,因为TCP连接是全双工的(即数据可在两个方向上同时传递)所以进行关闭时每个方向上都要单独进行关闭,这个单方向的关闭就叫半关闭.关闭的方法是一方完成它的数据传输后,就发送一个FIN来向另一方通告将要终止这个方向的连接.当一端收到一个FIN,它必须通知应用层TCP连接已终止了这个方向的数据传送,发送FIN通常是应用层进行关闭的结果。

 四次断开过程

  1. 当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求
  2. 主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1
  3. 由B 端再提出反方向的关闭请求,将FIN置1
  4. 主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束。

由TCP的三次握手和四次断开可以看出,TCP使用面向连接的通信方式,大大提高了数据通信的可靠性,使发送数据端和接收端在数据正式传输前就有了交互,为数据正式传输打下了可靠的基础。

更多相关文章
  • TCP三次握手与四次断开
    第一次握手:建立连接时,客户端发送Syn包(syn=j)到服务器,并进入syn_send状态,等待服务器确认第二次握手:服务器收到Syn包,必须确认客户端的syn(ack=j+1),同时自己也发送一个syn包(syn=k),即SYN+Ack包,此时服务器进入syn recv状态:第三次握手:客户端收 ...
  • 应聘复习基础笔记1:网络编程之TCP与UDP的优缺点,TCP三次握手、四次挥手、传输窗口控制、存在问题
    重要性:必考 一.TCP与UDP的优缺点 ①TCP---传输控制协议,提供的是面向连接.可靠的字节流服务.当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据.TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端的可靠传输.对可靠性要求 ...
  • 网络通信-->TCP三次握手和四次挥手
    TCP三次握手和四次挥手  建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 一.TCP报文格式 如下图: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记. (2)确认序号:Ack序号,占32位,只有ACK标志位 ...
  • 用wireshark抓包分析TCP三次握手、四次挥手以及TCP实现可靠传输的机制
    关于TCP三次握手和四次挥手大家都在<计算机网络>课程里学过,还记得当时高超老师耐心地讲解.大学里我遇到的最好的老师大概就是这位了,虽然他只给我讲过<java程序设计>和<计算机网络>,但每次课几乎都动手敲代码或者当场做实验.好了不扯了,下面进入正题.      ...
  • TCP连接三次握手和四次断开分析
    该变量控制每个监听端口接收的客户端发送的SYN队列的长度,输入的SYN报文段连接请求需要排队,直到本地服务端接收,如果连接数多于默认值,则新来的 连接请求会被丢弃,在服务端会维护一个未连接队列,该队列为每个客户端发送的SYN包开设一个条目,说明已经收到SYN包,并且向客户端发出 SYN+ACK包,等 ...
  • 用tcpdump分析tcp三次握手,四次挥手
    1.tcpdump 简介 tcpdump是一个对网络上的数据包进行截获的包分析工具,一般linux系统以命令的形式使用 2.tcp三次握手 建立一个tcp连接会发生下面三个过程: 1.服务器必须准备好接受外来的连接,一般是调用socket,bind,listen三个函数完成 2.客户端通过conne ...
  • TCP三次握手及四次挥手详解
    提示:TCP建立连接和拆除连接过程是由TCP/IP协议栈自动完成的,不需要第三者的参与.TCP三次握手    三次握手(Three-way Handshake),意为TCP连接需要Client和Server共发三个包,主要目的是连接服务器制定端口,建立可靠链路,并同步双方序列号和确认号以及交换TCP ...
  • 相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助.而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-).有时上午面试前强调这个问题,并重复讲一次 ...
一周排行
  • wireshark抓包图解 TCP三次握手/四次挥手详解1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡.它们一起处理与电缆(或其他任何传输媒介)的物理接口细节 ...
  • 基础总结篇之一:Activity生命周期转
    from:http://blog.csdn.net/liuhe688/article/de ...
  • 脚本练习,写一个脚本,实现本地Web服务器的配置:1.检查httpd包是否已经安装,如果没有,则使用yum命令安装之:(需要事先配置好yum源)2.取消中心主机,新建5个基于域名的虚拟主机,并分别提供一个测试主页,主 ...
  • 仅以此零星的记录自己新掌握的知识,有些本来就懂的基础东西,我这里就不写了.先以下面的文件来说明[[email protected] ~]$ ll 1.torrent-rwxrw-r--. 1 sunjiebin sunj ...
  •  随着昨天 Windows 7 /Server 2008 R2 SP1 RC 下载链接被发现,微软毫不犹豫的在今天正式公布了这一更新包.这一由 Windows 7 和 Server 2008 R2 共用的 SP1,除 ...
  • 图示做人36字诀:0汇总
    ======== by [email protected]=========================
  • IDC评述网(idcps.com)07月24日报道:根据DailyChanges公布的实时数据显示,截止至2015年7月21日,国内域名解析量十三强排名情况,与上期7月14日对比,无任何变化.其中,中国万网的域名净增 ...
  • U盘安装windows系统
    环境: 宿 主: Windows 7 客户端: 深度XP虚拟机软件:VirtualBox一 ...
  • Unity3DforVR学习(6):再次温故知新-3D数学
     一年前,系统学习过3D数学,并记录了一篇博客<C#程序员整理的Unity 3D笔记 ...
  • 给设置一个option,然后给该option设置成默认选择selected,然后把它隐藏,具体如下:默认选择