热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

【IT技术分享】思科CCNA/CCNP/CCIETCP的三次握手和四次握手

TCP的三次握手和四次握手TCP三次握手•在一些文化中,两个人见面时常常通过握手来问好。双方都把握手的行为理解为友好问候的信号。网络中的连接是类似的。第一次握手请求同步。第二次握手

TCP 的三次握手和四次握手

TCP三次握手

• 在一些文化中,两个人见面时常常通过握手来问好。 双方都把握手的行为理解为友好问候的信号。 网络中的连接是类似的。 第一次握手请求同步。 第二次握手确认初始同步请求,并同步相反方向上的连接参数。 第三次握手网段是一次确认,用于通知目标两端同意建立连接。

• 当两台主机采用 TCP 协议进行通信时,在交换数据前将建立连接。 通信完成后,将关闭会话并终止连接。 连接和会话机制保障了 TCP 的可靠性功能。请参见右图中建立并终止 TCP 连接的步骤。

• 主机跟踪会话过程中的每个数据段,并使用 TCP 报头信息交换已接收数据的相关信息。 TCP 是全双工协议,每个连接都代表两个单向通信数据流戒会话。若要建立连接,主机应执行三次握手。 TCP 报头中的控制位指出了连接的进度和状态。 三次握手:

1)确认目的设备存在于网络上;

2)确认目的设备有活动的服务,并且正在源客户端要使用的目的端口号上接受

请求;

3)通知目的设备源客户端想要在该端口号上建立通信会话。

• 在 TCP 连接中,主机客户端与服务器建立连接。 TCP 连接创建的过程分为三个步骤:

第 1 步: 源客户端请求与服务器进行客户端——服务器通信会话。

第 2 步: 服务器确认客户端-服务器通信会话,并请求服务器——客户端通信会话。

第 3 步: 源客户端确认服务器——客户端通信会话。
【IT技术分享】思科CCNA/CCNP/CCIE TCP的三次握手和四次握手

第一步:A向B収送SYN请求

第二步:B向A収送ACK响应和SYN请求

第三步:A向B収送ACK响应

• 为了理解三次握手的过程,请查看两台主机间交换的不同值。 在 TCP 数据段报头中,有六个包含控制信息的 1 位字段,用于管理 TCP 进程。 这些字段分别是:

URG - 紧急指针字段(重要) ACK - 确认字段(重要) PSH - 推送功能

RST - 重置连接 SYN - 同步序列号

FIN - 収送方已传输完所有数据

• ACK 和 SYN 字段均与我们的三次握手分析相关。

TCP四次挥手

• 若要关闭连接,数据段报头必须设置完成 (FIN) 控制标志。 为终止每个单向 TCP 会话,需采用包含 FIN 数据段和 ACK 数据段的二次握手。 因此,若要终止 TCP 支持的整个会话过程,需要实施四次交换,以终止两个双向会话,如图 1 所示。

• 注意:在本部分中,为了更容易理解,采用了客户端和服务器这两个术语进行说明。实际上,终止的过程可以在任意两台具有开放会话的主机之间展开:第 1 步:当客户端的数据流中没有其他数据要収送时,它将収送带 FIN 标

志设置的数据段;

第 2 步:服务器収送 ACK 信息,确认收到从客户端収出的请求终止会话的

FIN 信息;

第 3 步:服务器向客户端収送 FIN 信息,终止从服务器到客户端的会话;

第 4 步:客户端収送 ACK 响应信息,确认收到从服务器収出的 FIN 信息。

• 当客户端没有其他要传输的数据时,它将在数据段报头中设置 FIN 标志。 然后,会话中的服务器端収送包含 ACK 标志设置的一般数据段信息,通过确认号确认已经收到所有数据。 当所有数据段得到确认后,会话关闭。

• 另一方向的会话采用相同的方式关闭。接收方在数据段的报头中设置 FIN 标志,然后収送到収送方,表明没有其他需要収送的数据。 返回的确认信息确定已接收所有数据,随即该方向的会话关闭。

【IT技术分享】思科CCNA/CCNP/CCIE TCP的三次握手和四次握手

第一步:A向B収送FIN请求

第二步:B向A収送ACK响应

第三步:B向A収送FIN请求

第四步:A向B収送ACK响应

• 也可以通过三次握手方式关闭连接。 当客户端没有其他要传输的数据时,它将向服务器収送 FIN 信息。 如果服务器也没有其他要传输的数据,它将収送同时包含 FIN 和 ACK 标志设置的响应信息,将两步并作一步。 最后,客户端返回 ACK 信息。


推荐阅读
  • 本文介绍了ArcXML配置文件的分类及其在不同服务中的应用,详细解释了地图配置文件的结构和功能,包括其在Image Service、Feature Service以及ArcMap Server中的使用方法。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • 在现代Web应用中,当用户滚动到页面底部时,自动加载更多内容的功能变得越来越普遍。这种无刷新加载技术不仅提升了用户体验,还优化了页面性能。本文将探讨如何实现这一功能,并介绍一些实际应用案例。 ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • 本文详细介绍了Python中列表的创建、访问、修改、排序及遍历等基本操作,帮助初学者快速掌握列表这一重要数据结构。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • Hybrid 应用的后台接口与管理界面优化
    本文探讨了如何通过优化 Hybrid 应用的后台接口和管理界面,提升用户体验。特别是在首次加载 H5 页面时,为了减少用户等待时间和流量消耗,介绍了离线资源包的管理和分发机制。 ... [详细]
  • 本文详细介绍了在iPhone上设置和配置邮件账户的步骤,包括基础设置、服务器端口调整以及其他个性化选项,帮助用户顺利完成邮件账户的配置。 ... [详细]
  • MySQL 高性能实战教程
    本课程深入探讨 MySQL 的架构、性能调优、索引优化、查询优化及高可用性等关键领域。通过实际案例和详细讲解,帮助学员掌握提升 MySQL 数据库性能的方法与技巧。 ... [详细]
  • 探讨了如何解决Ajax请求响应时间过长的问题。本文分析了一个从服务器获取少量数据的Ajax请求,尽管服务器已经对JSON响应进行了缓存,但实际响应时间仍然不稳定。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 云计算的优势与应用场景
    本文详细探讨了云计算为企业和个人带来的多种优势,包括成本节约、安全性提升、灵活性增强等。同时介绍了云计算的五大核心特点,并结合实际案例进行分析。 ... [详细]
  • 阿里宝卡用户能否在UC浏览器极速版中享受免流量服务?
    本文详细介绍了UC浏览器极速版是否支持阿里宝卡的免流量功能,以及如何正确设置以确保免流量服务的正常使用。 ... [详细]
  • 本文探讨了Java编程的核心要素,特别是其面向对象的特性,并详细介绍了Java虚拟机、类装载器体系结构、Java类文件和Java API等关键技术。这些技术使得Java成为一种功能强大且易于使用的编程语言。 ... [详细]
author-avatar
shengxin11
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有