`
XY1991
  • 浏览: 36788 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

TCP的三次握手与四次断开

阅读更多

 

一、面向连接的协议

 

UDP是一种无连接的协议,而TCP则是一种面向连接的协议。所谓面向连接的协议,就是在两个对等端内部网之间直接建立逻辑连接。

它通过跟踪数据的传送,并确认和跟踪序号来确保它成功到达接收方。简单来说,TCP传输数据比UDP安全。

 

 

二、TCP握手

 

TCP面向连接的传输是以两个主机间的握手开始的。一个主机发送到另一个主机之间的握手有以下三个作用:

1、确保目的主机可用

2、确保目的主机正在侦听目标端口号

3、通知给目的主机发出者的序号,是双方在传输数据时可以进行跟踪。

 

三、TCP数据包

 

TCP主机之间通过握手进程互相建立起来一种虚拟连接。在握手期间,主机之间交换序号,当数据从一台主机发送到另一台主机时序号便跟踪这些数据。

TCP把数据转换成连续的字节流,但是不能分辨出字节流的基础消息和消息边界。接收到字节流后,上层应用程序再把字节流解释成消息。

可以这么说:发送方将数据按协议封装成TCP数据包,接收方也按协议读取TCP数据包中的数据。

TCP数据包的最大值为65495字节。65495 = 总长度 - IP题头(20字节)- TCP题头(20字节)

下图描述了数据是怎么分割的和怎么在数据开始部分加上题头(IP题头、TCP题头、以太网题头):

(根据协议层的不同,封装在数据包中的信息有不同的名称)

 

 

 

四、TCP建立连接:三次握手

 

1、建立连接时,客户机向服务器发送一个TCP数据包,这个数据包中不含有任何数据,只有客户机的启动顺序、使用的目的端口号和TCP数据包的

最大分段大小(MSS),还包含一个同步标识——SYN(同步序号,假设SYN值为A);

2、服务器对自己的启动序号和最大分段大小进行回复,即首先确认客户机的SYN:发送一个ACK数据包,ACK数据包中的值为(A+1);

再发送一个SYN(里面是自己的序列号,假设为B),并定义MSS的大小。然后设置认领位,承认已接收到第一个数据包。

3、客户机接收到了服务器的序号和分段大小信息,就发送一个ACK(B+1)来确认自己已收到,第三个数据包用来结束握手进程。

(三次握手只是我自己的初步理解,以后会逐步完善)

 

五、TCP终止连接:四次断开

 

为什么建立连接要三次握手,而终止连接就要进行四次呢?

只是因为TCP连接是全双工的,即数据可在两个方向上同时传递,所以关闭时每个方向上都要单独关闭,这种单方向的关闭就叫半关闭。

4次断开的基本流程:

(1)、当主机一完成数据传输后,将FIN置为1,提出停止TCP连接的请求;

(2)、主机二收到主机一发来的FIN后,关闭连接,并将ACK置为1;

(3)、主机二反向提出终止连接,将FIN置为1;

(4)、主机一收到消息后,停止连接,并将ACK置为1,双方向的关闭结束。

 

 

 

由以上可见,光是建立连接与终止连接就这么多步骤,终于知道TCP为什么慢了?但是正是这样才提高了数据传输的可靠性。当然,三次握手和四次断开也不是我这寥寥数语能说清楚的,自己的理解还很浅显,以后会继续完善。

 

 

分享到:
评论
2 楼 come_for_dream 2014-03-16  
1 楼 wuanjunbaiqi 2011-08-09  
,总结的很好啊

相关推荐

    TCP三次握手与四次挥手.pdf

    首先,来详细介绍TCP三次握手的过程: 1. 第一次握手:客户端发送一个带有SYN(同步序列编号)标志的数据包给服务器端,进入SYN_SEND状态,表示客户端希望与服务器建立连接。这个包中同时也会包含客户端的初始...

    TCP三次握手,四次断开

    ### TCP三次握手详解 #### 第一次握手:客户端发送同步序列号(SYN) - **动作描述**:在TCP连接建立过程中,客户端首先发起连接请求,它通过向服务器发送一个带有`SYN`标志位的数据包来实现。这个数据包包含了...

    网络协议 TCP三次握手与四次断开的详细观察

    主要为大家介绍了网络协议之tcp协议,TCP三次握手与四次断开是怎么的一种情况呢,下面我们来看看观察TCP三次握手与四次断开,需要的朋友可以参考下

    tcp三次握手与四次握手及SOCKE函数对应

    首先,我们来看“TCP三次握手”。当两个设备想要建立一个TCP连接时,它们必须经过以下三个步骤: 1. 第一次握手:客户端发送一个带有SYN(同步序列号)标志的数据段,请求建立连接。这个数据段中包含了客户端选择的...

    Wireshark抓包分析TCP“三次握手,四次挥手”.doc

    Wireshark 抓包分析 TCP“三次握手,四次挥手” Wireshark 是一个功能强大的网络抓包工具,通过它我们可以抓包并分析 TCP/IP 传输过程。在本文中,我们将通过 Wireshark 来抓包和分析 TCP“三次握手,四次挥手”...

    TCP 三次握手和四次挥手

    ### TCP 三次握手详解 #### 一、三次握手的基本概念 TCP(Transmission Control Protocol,传输控制协议...以上就是TCP三次握手、四次挥手及其11种状态的详细介绍。这些基础知识对于理解和分析网络通信问题至关重要。

    案例测试TCP的三次握手和四次挥手过程

    在实际应用中,如本案例所示,可以通过编写C语言的服务器端程序和C#的客户端程序来模拟TCP的连接和断开过程,同时使用Wireshark这样的网络抓包工具,可以直观地观察到三次握手和四次挥手的网络交互细节,这对于理解...

    tcp三次握手四次断开,网络yum源

    tcp三次握手四次断开,网络yum源

    TCP三次握手 四次断开1

    TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议,它通过三次握手建立连接,四次挥手断开连接,确保数据的可靠传输。这里详细解释一下这两个过程。 ### 三次握手建立连接 1. **第一次...

    TCP报文分析--三次握手 四次挥手

    TCP 报文分析--三次握手四次挥手 TCP 报文分析是计算机网络中的重要内容, TCP(Transmission Control Protocol)是一种面向连接的传输控制协议,它提供了可靠的数据传输服务。在这个过程中,三次握手和四次挥手是 ...

    tcp协议三次握手过程

    TCP 协议三次握手过程详解 TCP(Transmission Control Protocol)传输控制协议是指建立一个可靠的连接服务,采用三次握手确认建立一个连接。三次握手过程是 TCP 协议的核心部分,保证了数据传输的可靠性和正确性。 ...

    TCP三次握手与四次挥手简解(csdn)————程序.pdf

    它的三次握手和四次挥手是TCP连接建立与终止的关键过程,确保了数据传输的可靠性和完整性。 ### 三次握手 三次握手是TCP在建立连接时必须遵循的步骤,其目的是为了防止已失效的连接请求报文突然又传到服务端,从而...

    TCP三次握手四次挥手

    ### TCP三次握手与四次挥手详解 #### 一、TCP协议简介 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在计算机网络中,TCP用于在应用程序之间提供...

    tcp三次握手协议

    TCP(Transmission Control...TCP的连接建立和关闭都是通过请求-响应模式进行的,三次握手确保了连接的可靠性,而挥手四次则保证了连接的优雅关闭。理解这些基本概念对于网络分析、故障排查以及优化TCP性能都至关重要。

    tcp三次握手

    ### TCP三次握手详解 #### 一、TCP协议概述 TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它通过三次握手建立连接,确保了两端之间的通信能够准确无误地进行。 #...

    wireshark tcp三次握手

    标题中的“wireshark tcp三次握手”指的是使用Wireshark这一网络封包分析软件来观察和理解TCP(传输控制协议)的三次握手过程。在TCP/IP通信协议中,三次握手是一种建立连接的方法,确保双方都能正常通信。在这个...

    tcp三次握手四次挥手.docx

    ### TCP三次握手与四次挥手详解 #### 一、引言 在计算机网络领域中,传输控制协议(TCP)作为互联网协议族中的重要成员之一,为应用层提供面向连接、可靠的数据传输服务。TCP通过一系列复杂的机制来确保数据包在...

    我终于搞懂了TCP的三次握手和四次挥手(图片案例详解)

    TCP三次握手和四次挥手不管是在开发还是面试中都是一个非常重要的知识点,它是我们优化web程序性能的基础。欢迎学习,一起进步 文章目录一.TCP简介二.TCP数据报结构三.TCP的三次握手四.TCP的四次挥手 一.TCP简介 TCP...

    02_TCP三次握手四次挥手的过程1

    **TCP三次握手**: 1. **第一次握手**:客户端想要与服务器建立连接,它会发送一个带有SYN(同步序列编号)标志的数据包给服务器,请求建立连接,进入SYN_SENT状态。 2. **第二次握手**:服务器收到客户端的SYN包后...

    TCP三次握手和四次挥手面试题 249 - 330

    TCP 三次握手和四次挥手面试题 本文从 TCP 协议的基本认识开始,介绍了 TCP 头格式中的序列号、确认应答号、控制位等字段的作用和意义,然后详细解释了 TCP 协议的必要性、工作层次、面向连接、可靠性和字节流传输...

Global site tag (gtag.js) - Google Analytics