TCP 的三次握手和四次挥手

这篇具有很好参考价值的文章主要介绍了TCP 的三次握手和四次挥手。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java 面试题

TCP 三次握手

第一次握手:客户端向服务端发送SYN包。报文中标志位SYN=1,序列号seq=x(x为随机整数)。此时客户端进入了 SYN_SEND 同步已发送状态。

第二次握手:服务端回复客户端SYN+ACK包。报文中标志位SYN=1,标志位ACK=1,序列号seq=y(y为随机整数),确认号ack=x+1(x为客户端发送过来的序列号seq)。此时服务端进去SYN_RECV状态。

第三次握手:客户端回复服务端ACK包。确认报文的标志位ACK=1,确认号ack=y+1(y为第二次握手时服务端生成的序列号seq),序列号seq=x+1(x为第一手握手时客户端生成的序列号seq)。此时客户端和服务器进入ESTABLISHED状态,客户端与服务端成功建立了TCP连接。

TCP 的三次握手和四次挥手,Java面试题,tcp/ip,java

TCP 四次挥手

第一次挥手:客户端数据传输完成后或准备终止发送数据时,会向服务端发送FIN包。报文中标志位FIN=1,序列号seq=u。此时客户端进入FIN_WAIT_1状态。

第二次挥手:服务端回复客户端ACK包。确认报文中标志位ACK=1,确认号ack=u+1,序列号seq=v。此时服务端进入close_wait关闭等待状态,客户端接受到ack应答包后,进入FIN_WAIT_2状态。

第三次挥手:等服务端数据发送完毕后会向客户端发送FIN包。报文中标志位FIN=1,标志位ACK=1,确认号ack=u+1,序列号seq=w。此时服务端进入LAST_ACK状态。

第四次挥手:客户端回复服务端ACK包。确认报文中的标志位ACK=1,确认号ack=w+1,序列号seq=u+1。此时客户端进入TIME_WAIT阶段。服务端收到确认报文后会立马释放TCP连接,而客户端发出报文后经过最长报文段寿命的2倍时长后释放TCP连接。

TCP 的三次握手和四次挥手,Java面试题,tcp/ip,java

标志位、序列号、确认号

如果对标志位、序列号、确认号等不理解的,可以参考下面这篇博文,图片是引用此博文的。

计算机网络 之 TCP协议报文结构

TCP 的三次握手和四次挥手,Java面试题,tcp/ip,java文章来源地址https://www.toymoban.com/news/detail-807367.html

到了这里,关于TCP 的三次握手和四次挥手的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TCP中的三次握手和四次挥手

    TCP中的连接和断开可以说是在面试中经常被问到的问题之一,正好有空就总结一下,首先回顾一下TCP的相关知识点 1.1 TCP的基本概念 我们知道TCP是运输层的面向连接的可靠的传输协议。 面向连接的 ,指的就是在两个进程发送数据之前,必须先相互“握手”,确保两进程可以

    2024年02月03日
    浏览(39)
  • TCP的三次握手和四次挥手······详解

    三次握手是 建立连接 的过程 如图大致为三次握手的流程图: 当客户端对服务端发起连接时,会 先发一个包 连接请求数据,去询问能否建立连接,该数据包称为 “SYN”包 然后,如果对方同意连接,那么对方将会回复一个 “SYN+ACK”包 客户端收到后,回复一个 “ACK”包 ,连

    2024年02月09日
    浏览(25)
  • TCP协议的三次握手和四次挥手

    完整的TCP内容,请参考RFC 9293 TCP协议为应用提供可靠的、有序的的字节流服务。TCP是面向连接的,提供了全双工的通信。TCP使用端口号来识别应用程序服务并在主机之间复用不同的流。 TCP header也像IP header一样,在header中提供了一些专门用于TCP的信息,TCP header之后就是用户数

    2024年02月06日
    浏览(30)
  • 详解TCP/IP的三次握手和四次挥手

    本文章讲解TCP/IP协议的三次握手和四次挥手的流程。 三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。 TCP协议位于传输层,作用是提供可靠的字节流服务

    2024年02月09日
    浏览(30)
  • 【计算机网络】TCP 的三次握手和四次挥手

    TCP 是面向连接的,面向连接就是数据通讯的时候需要进行三次握手,断开通讯的时候需要进行四次挥手。 1.seq(sequence number),序列号,随机生成的 2.ack(acknowledgement number),确认号,ack=seq+1 3.ACK(acknowledgement),确定序列号有效 4.SYN(synchronous),发起新连接 5.FIN(FINISH),完成 TCP三次

    2024年02月10日
    浏览(31)
  • 【Linux 网络】 传输层协议之TCP协议 && TCP的三次握手和四次挥手

    传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议 基于TCP应用层协议 HTTP HTTPS SSH Telnet FTP SMTP 源/目的端口号: 表示数据是从哪个进程来, 到哪个进程去 32位序号/确认序号:TCP的确认应答机制要使用到的字段,保证TCP的可靠

    2024年02月14日
    浏览(36)
  • 数通王国历险记之TCP协议的三次握手和四次挥手

    目录 前言  一、TCP我们称之为可靠的传输层协议,为什么称它为可靠呢? 二、TCP的建立——三次握手 1,提前知道TCP协议报文中都有些啥? 2.第一次握手 总的来说:就是PC1向PC2发出一个同步报文说,我想和你建立连接 3,第二次握手 总的来说:就是PC2同意和PC1建立连接,同时确

    2024年02月11日
    浏览(30)
  • 计算机网络:TCP协议的三次握手和四次挥手与UDP协议区别.

    TCP协议: UDP协议: TCP协议与UDP协议都工作在传输层. TCP协议与UDP协议它们的目标: TCP协议与UDP协议的最大区别: TCP协议保持连接的三个关键步骤: UDP协议: TCP协议与UDP协议主要区别: 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的

    2023年04月15日
    浏览(42)
  • Java实习面试经验汇总,Dubbo-负载均衡原理解析,TCP的三次握手、四次挥手

    if (sameWeight i 0 !weight.equals(weights[i - 1])) { sameWeight = false; } } Integer sequenceNum = Sequence.getAndIncrement(); Integer offset = sequenceNum % totalWeight; offset = offset == 0 ? totalWeight : offset; if (!sameWeight) { for (String ip : ServerIps.WEIGHT_LIST.keySet()) { Integer weight = ServerIps.WEIGHT_LIST.get(ip); if (offset = weight) { ret

    2024年04月25日
    浏览(24)
  • 【计算机网络经典面试题】简述 TCP 三次握手和四次挥手的过程

    1)第一次握手:建立连接时,客户端向服务器发送SYN包(seq=x),请求建立连接,等待确认 2)第二次握手:服务端收到客户端的SYN包,回一个ACK包(ACK=x+1)确认收到,同时发送一个SYN包(seq=y)给客户端 3)第三次握手:客户端收到SYN+ACK包,再回一个ACK包(ACK=y+1)告诉服务

    2024年04月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包