`
峰12341
  • 浏览: 837 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

TCP正常连接建立和终止总结

阅读更多

TCP总结
         TCP/IP( 传输控制协议/网间协议) 是一种网络通信协议、它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传输方式。

TCP头部结构有6个标识位
URG:紧急指针是否有效
ACK:表示确认号是否有效  (对TCP请求的确认标志)
PSH:提示接收端应用程序应该立即从接收缓冲区中读取数据,为接收后续数据腾出空间。
RST:要求对方重新建立连接。
SYN:请求建立一个连接 (仅在三次握手建立连接时有效,表示同步报文段)
FIN:同对方本端要关闭连接。 (标志用来结束一个TCP连接,标识此报文段是一个结束报文段)

三次握手建立连接

开始介绍一下三次握手的过程:


    第一次握手:其实是客户端发送一个带有SYN的数据报文段发送给服务器,对应在图片中就是从主机A->主机B(SYN=1,seq=i),seq为对应序列号为i。之后主机A进入SYN_SENT状态。同时等待服务器的确认
    第二次握手:服务器收到同步报文段后(也就是带有SYN的同步报文段),必须确定客户的同步报文段。然后自己也发送一个带有SYN的报文段,对应到图片中也就死第二个报文段,其中SYN=1,表示这是一个同步报文段,ACK=1,表示这是一个确认报文段,确认序号值为i+1,序号值为j。
    第三次握手:这次就是客户端收到确认同步报文段后,它向服务器发送确认包,对应到图片中也就是第三个报文段,ack=1也就是表示这是一个确认报文段,确认序号为j+1

三次握手建立后,客户端与服务器开始传送数据。
三次握手示意图:


四次握手关闭连接
接下来,我们来介绍下四次握手关闭

    第一次握手:表示客户端A发送给服务器一个带有SYN的结束报文段,用来关闭客户端A到服务端B的数据传送,对应到图片中也就是第一个报文段,FIN=1,seq=i,表示一个结束报文段
    第二次握手:服务端B接收到这个结束报文段后,它返回一个确认报文段,对应到图片中就是第二个确认报文段。其中ACK=1,ack=i+i,表示一个确认报文段,确认序号为i+1.
    第三次握手:服务器B关闭与客户端A的连接,他发送一个带有SYN结束报文段,对应图片上第三个报文段,其中 SYN=1,seq=j,表示结束报文段,序号为j。
    第四次握手:客户端A返回一个确认报文段,其中确认序号为j+1,对应图片上为第四个报文段,ACK=1,ack=j+1。
四次握手示意图:



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

    在关闭连接时,当收到对方的结束报文段时,表示对方没有数据发给你了,但是自己的数据未必全部发送完毕,所以你可能还需要继续发送一些数据之后在发送结束报文段给对方了表示你同意现在可以断开连接,所以关闭连接需要四次握手

    如果把三次握手改成两次握手,就有可能发生死锁。

下图是一次TCP正常连接建立和终止所对应的状态:

 

分享到:
评论

相关推荐

    TCP连接的建立和终止

    详细描述 TCP连接的建立和终止 的过程,经典分析

    TCP连接建立与终止过程剖析

    TCP连接建立与终止过程剖析

    TCP连接的建立与终止

    本章将详细讨论一个T C P连接是如何建立的以及通信结束后是如何终止的。 这种两端间连接的建立与无连接协议如U D P不同。我们在第11章看到一端使用U D P向另 一端发送数据报时,无需任何预先的握手。

    TCP连接的建立与终止1

    1.TCP连接的建 2.TCP连接的释放 3.注意的问题 4.TCP的有限状态机

    S7-1200的TCP开放式用户通信

    TSEND_C”指令设置并建立 TCP 或 ISO-on-TCP 通信连接。 设置并建立连接后,CPU 会自动保持和监视该连接。 TRCV_C”指令异步执行且具有以下功能: 设置并建立通信连接: "“TRCV_C”设置并建立 TCP 或 ISO-on-TCP...

    Hyo原创TCPIP数据包分析工具-TCP数据包.rar

    通过介绍TCP连接的建立过程(通常称作三阶段握手),进而展开讲述TCP连接的建立与终止的过程,并通过对实验数据编写程序分析截获的一个客户端预多个WEB服务器之间的通信数据包,以得到TCP包的内部连接情况,持续时间...

    Hyo原创TCPIP数据包分析工具-TCP_IP.rar

    通过介绍TCP连接的建立过程(通常称作三阶段握手),进而展开讲述TCP连接的建立与终止的过程,并通过对实验数据编写程序分析截获的一个客户端预多个WEB服务器之间的通信数据包,以得到TCP包的内部连接情况,持续时间...

    《TCP/IP详解,卷1:协议》

    第18章 TCP连接的建立与终止 174 第19章 TCP的交互数据流 200 第20章 TCP的成块数据流 209 第21章 TCP的超时与重传 226 第22章 TCP的坚持定时器 245 第23章 TCP的保活定时器 251 第24章 TCP的未来和性能 256 第25章 ...

    TCP/IP协议通讯数据发送接收(客户端服务器端都包含在内)

    这是因为它为两台计算机之间的连接起了重要作用:当一台计算机需要与另一台远程计算机连接时,TCP协议会让它们建立一个连接、发送和接收数据以及终止连接。 TCP是提供面向连接的,可靠的字节流服务。面向连接是TCP在...

    tcp/ip 卷1

    第18章 TCP连接的建立与终止 174 第19章 TCP的交互数据流 200 第20章 TCP的成块数据流 209 第21章 TCP的超时与重传 226 第22章 TCP的坚持定时器 245 第23章 TCP的保活定时器 251 第24章 TCP的未来和性能 256 第25章 ...

    TCP/IP协议详解卷1_017(TCP:传输控制协议)

    第1 8章描述如何建立和终止一个 T C P连接,第1 9和第2 0章将了解正常的数据传输过程,包括交互使用(远程登录)和批量数 据传送(文件传输)。第2 1章提供T C P超时及重传的技术细节,第2 2和第2 3章将介绍两种其他...

    TCP-IP详解卷1

    第18章 TCP连接的建立与终止 第19章 TCP的交互数据流 第20章 TCP的成块数据流 第21章 TCP的超时与重传 第22章 TCP的坚持定时 第23章 TCP的保活定时器 第24章 TCP的未来和性能 第25章 SNMP:简单网络管理协议 第26章 ...

    TCP-IP详解卷1:协议

    第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 时间系列 175 18.2.3 建立连接协议 175 18.2.4 连接终止协议 177 18.2.5 正常的tcpdump输出 177 18.3 ...

    TCP-IP详细协议

    第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 时间系列 175 18.2.3 建立连接协议 175 18.2.4 连接终止协议 177 18.2.5 正常的tcpdump输出 177 18.3 ...

    TCP/IP协议详解:卷1协议

    第18章 TCP连接的建立与终止 第19章 TCP的交互数据流 第20章 TCP的成块数据流 第21章 TCP的超时与重传 第22章 TCP的坚持定时 第23章 TCP的保活定时器 第24章 TCP的未来和性能 第25章 SNMP:简单网络管理协议 第26章 ...

    TCP_IP详解卷1

    第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 时间系列 175 18.2.3 建立连接协议 175 18.2.4 连接终止协议 177 18.2.5 正常的tcpdump输出 177 18.3 ...

    TCPIP入门教程视频(全套共18集).rar

    12TCP-IP基础视频教程连接的建立与终止wmv 13 TCP-IP基础视频教程tp的交互数据流wmv 14TCP-P基础视频教程tcp的成块数据流,wm 5TCPP基础视频教程tcp的超时和重传wm 16TCP-P基础视频教程tcp的坚持定时器wm 17TCP-P基础...

    TCP/IP详解卷 pdf格式

    第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 时间系列 175 18.2.3 建立连接协议 175 18.2.4 连接终止协议 177 18.2.5 正常的tcpdump输出 177 18.3 ...

Global site tag (gtag.js) - Google Analytics