`
java-mans
  • 浏览: 11380666 次
文章分类
社区版块
存档分类
最新评论

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为什么慢了?但是正是这样才提高了数据传输的可靠性。当然,三次握手和四次断开也不是我这寥寥数语能说清楚的,自己的理解还很浅显,以后会继续完善。

转自:http://xy1991.iteye.com/blog/1143686

分享到:
评论

相关推荐

    TCP三次握手,四次断开

    此文的档献给那些不太明白TCP的三次握手,四次断开的鞋同,希望对你们有所帮助

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

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

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

    就给出了一张图显示的是TCP三次握手建立、四次握手断开与socket函数对应 如:socket connect()建立对应于SYN ,而connect()返回值 与syn 对应

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

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

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

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

    TCP三次握手 四次断开1

    (1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送(报文段4) (2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5

    tcp的三次握手和四次挥手抓包-.pcapng

    用wireshark抓取的tcp的三次握手和四次挥手的包,适用于初学者了解tcp连接建立和断开的流程

    TCP IP 三次握手及状态变迁图

    介绍TCP IP连接时的三次握手和断开时的四次挥手

    HTTP与TCP的区别和联系.docx

    握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连 接之前,TCP 连接都将被一直保持下去。断开连接时服务器和...

    TCP/IP 基础回顾

    TCP/ip 协议族各层作用 TCP 三次握手四次断开过程

    Web应用安全:NmapFin扫描.pptx

    第三次握手: A向B发出ACK FIN,表示A想要断开与B的TCP连接。 第四次握手:B向A发出ACK表示确认断开,此时A->B的通道已经断开,A也无法向B发送数据,此时TCP连接断开。 四次握手不是关闭TCP连接的唯一方法. 有时,...

    TCP和IP协议

    掌握TCP/IP分层模型 掌握三次握手过程建立TCP连接 掌握四次握手断开TCP连接

    TCP,UDP抓包分析

    通过抓包分析TCP三次握手及四次挥手的过程 首先由Client发出请求连接即 SYN=1 ACK=0 (请看头字段的介绍), TCP规定SYN=1时不能携带数据,但要消耗一个序号,因此声明自己的序号是 seq=x 然后 Server 进行回复确认,即 ...

    FTP服务搭建以协议抓包分析实验*(markdown版)

    4.1FTP链接的建立与断开(TCP一次握手/四次挥手) Q:为什么不是四次挥手? 4.2数据包分析 4.3.FTP常见响应码&应答码 5.FTP的主动模式与被动模式 5.1主动模式(PORT) 5.2被动模式(PASV) 5.3 两种模式的...

    客户端 tcp

    TCP是面向连接的通信,所以在通信之前,客户端与服务器端必须通过三次握手建立连接,然后在通信完毕,还要通过四次挥手断开连接

    服务器 tcp

    TCP是面向连接的通信,所以在通信之前,客户端与服务器端必须通过三次握手建立连接,然后在通信完毕,还要通过四次挥手断开连接

    传输层协议报文信息分析

    2.在TCP建立和断开连接时截获数据报文,用截图说明三次握手和四次握手的过程。 3、在进行大量的数据上传或下载时(比如基于HTTP或FTP的较大文件的上传),通过协议分析观察是否有流量和拥塞控制的表征。

    HCIA精品视频.zip

    09、TCP三次握手四次断开过程 10、实验抓包TCP工作过程 11、网络层协议及数据链路层协议作用 12、ARP工作原理及完整实验 13、物理层及数据通信的过程 14-1、什么VRP 14-2、VRP基础 15、命令行视图与使用 16、基本...

    HCIA-Datacom精品视频.zip

    09、TCP三次握手四次断开过程 10、实验抓包TCP工作过程 11、网络层协议及数据链路层协议作用 12、ARP工作原理及完整实验 13、物理层及数据通信的过程 14-1、什么VRP 14-2、VRP基础 15、命令行视图与使用 16、基本...

    Tcpip协议.docxTCP/IP协议套件是互联网通信的基础,也被广泛用于局域网(LAN)和广域网(WAN)等各种网络环境中

    tcp/ip协议 TCP/IP协议是一组通信协议的集合,用于在互联网上实现...TCP负责将数据分割成数据段,并通过三次握手建立连接,以及四次握手断开连接。TCP还负责流量控制、拥塞控制和错误恢复等功能。 3. **UDP(User Dat

Global site tag (gtag.js) - Google Analytics