TCP三次握手

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

三次握手指的是TCP协议建立连接的过程。当客户端请求与服务器建立TCP连接时,必须要经过三次握手才能真正建立连接。

【动图演示 TCP3 次握手过程 连接状态变化 为什么是3次握手而不是2次】 https://www.bilibili.com/video/BV13V411w7Xq/?share_source=copy_web&vd_source=1aab39b433529f6f488e61847b342350

三次握手详细过程

  1. 第一次握手:客户端向服务器发送 SYN 报文,请求建立连接,其中 SYN 标志位被置为 1,同时客户端随机选择一个初始序列号发送。
  2. 第二次握手:服务器接收到客户端的 SYN 报文,确认客户端的SYN请求,同时自己也向客户端发送一个 SYN 报文,SYN 标志位被置为 1,并且确认序号(acknowledgement number)被设置为客户端发送的序列号+1,同时服务器也随机选择一个初始序列号,并将其发送给客户端。
  3. 第三次握手:客户端接收到服务器的 SYN 报文,向服务器发送一个确认报文,确认序号也被设置为服务器发送的序列号+1,同时将 ACK 标志位置为 1,表示接收到了服务器传来的请求,连接已经建立。服务器接收到 ACK 报文之后,也将 ACK 标志位置为 1,表示连接建立完成。

三次握手是为了确保连接的可靠性,如果在建立连接的过程中发生网络丢包或者延迟,可以在重发握手报文的同时避免建立多余的连接。经过三次握手之后,客户端和服务器之间就建立了一个可靠的双向连接,在这个连接上可以进行数据传输。

TCP三次握手

 1、客户端发送一个SYN=1,ACK=0标志的数据包给服务端,请求进行连接,
2.服务端收到请求,并且允许连接的话,会发送SYN=1,ACK=1标志的数据包给客户端,告诉它可以通讯,并让服务端发送一个确认数据包
3.服务端发送一个SYN=0,ACK=1的数据包给客户端,告诉它连接已被确认。)

TCP三次握手

wireshark查看三次握手过程 

可以通过网络数据包分析工具(如Wireshark)来查看TCP协议的三次握手过程。下面是具体的步骤:

  1. 下载并安装Wireshark。Wireshark是一款免费开源的网络数据包分析工具,可以在其官网上下载安装。
  2. 打开Wireshark,选择需要监听的网络接口。在主界面上,可以选择需要监听的网络接口,例如本地网络、无线网络等。
  3. 过滤TCP协议数据包。Wireshark默认会显示所有类型的网络数据包,因此需要设置过滤器来只显示TCP协议数据包。可以在菜单栏中选择"Capture Filters" -> "tcp",或者使用"tcp port XXXX"(XXXX代表端口号)的方式来设置过滤器。
  4. 开始抓取网络数据包。在设置好过滤器后,点击"Start"按钮开始抓取网络数据包。
  5. 进行TCP连接。在客户端进行TCP连接时,Wireshark将会记录到三次握手的数据包。这些数据包通常包括SYN报文、ACK报文和SYN/ACK报文等,可以在Wireshark的显示窗口中查看这些报文的详细信息

 示例

启动wireshark抓包,打开浏览器输入www.baidu.com

使用ping www.baidu.com 获取IP

TCP三次握手

输入过滤条件获取待分析数据包列表

ip.addr==124.237.176.3

TCP三次握手

 第一次握手数据包

标志位SYN 序列号0

seq=0

ack=0 已经收到的包数量,表示当前没有接收到数据。 

TCP三次握手

 第二次握手

标志位 [SYN+ACK]

Seq=0 表示当前还没有发送数据

Ack=1 表示当前成功接收到的数据位数 但实际此时还未收到(含SYN或者FIN标志位的包不携带有效数据)

TCP三次握手

 第三次握手

标志位 ACK 表示已接收到数据

SYN为0

TCP三次握手

TCP和UDP的区别

TCP(传输控制协议)和UDP(用户数据报协议)是互联网协议(IP)中两种主要的传输协议,它们有以下区别:

  1. 连接性:TCP是一种面向连接的协议,需要在传输数据之前通过“三次握手”建立连接。而UDP是无连接的协议,可以直接发送数据,无需事先建立连接。
  2. 可靠性:TCP提供数据传输的确认和重传机制,保证数据按照发送的顺序进行接收。如果数据在传输过程中丢失或乱序,TCP可以检测并重新发送数据。UDP则没有这样的保证,可能会导致数据丢失或乱序。
  3. 数据传输方式:TCP是一种字节流协议,数据在传输过程中连续不断,以字节为单位进行线性传输。而UDP则将数据分成独立的数据报,每个数据报独立发送,可能会重叠或交错。
  4. 流量控制和拥塞控制:TCP具有复杂的流量控制和拥塞控制机制,可以根据网络状况动态调整数据传输的速率,以防止网络拥塞。而UDP没有这样的控制机制。
  5. 数据传输速度:由于TCP的复杂性和确认机制,数据传输速度通常较慢。而UDP由于简单直接,通常具有更快的传输速度。
  6. 头部开销:TCP的头部开销比UDP大。TCP头部固定20字节,而UDP头部固定8字节。
  7. 服务类型:由于TCP的可靠性和顺序性,它常用于需要可靠传输的交互式应用,例如网页浏览、电子邮件等。而UDP由于其简单性和速度优势,常用于实时应用,如流媒体、实时游戏等。

总的来说,TCP和UDP各有其优点和适用场景,选择使用哪种协议取决于具体的应用需求。文章来源地址https://www.toymoban.com/news/detail-468478.html

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

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

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

相关文章

  • TCP | TCP协议格式 | 三次握手

    1.TCP协议 为什么需要 TCP 协议 ?TCP 工作在哪一层? IP网络层是不可靠的,TCP工作在传输层,保证数据传输的可靠性。 TCP全称为 “传输控制协议(Transmission Control Protocol”)。 TCP 是 面向连接的、可靠的、基于字节流 : 面向连接 :一定是「一对一」才能连接,不能像 UDP 协议

    2024年03月24日
    浏览(38)
  • 【网络】主机连接 TCP 三次握手

    1、建立连接的时候是3次握手,客户端向服务器端发送SYN,异步信号,和seq请求序号, 2、服务器接收到之后就给客户端回一个信息,包括ACK确认信号,seq信息序号,ack=seq的序号+1,表示收到了客户端发的到q的请求。 3、客户端收到之后,再发一个确认信息表示收到,ACK=1,

    2024年03月14日
    浏览(41)
  • TCP 协议(包含三次握手,四次挥手)

    确认应答是可靠传输的最核心机制 接收方反馈一个应答报文(ACK),表示已收到 假设现在 A 想去 B 家里玩游戏,于是 A 给 B 发消息,若消息没有出现错误且顺序正确 结果如下所示: 但网络传输比较复杂,可能存在一种情况\\\"后发先至\\\" 由于数据的长度不同或者传输网络不同,先发

    2024年02月02日
    浏览(46)
  • Linux TCP协议——三次握手,四次挥手

    TCP协议是可靠的、面向连接的、基于字节流的传输层通信协议。 TCP的头部结构: 源/目的端口号: 表示数据是从哪个进程来, 到哪个进程去;(tcp是传输层的协议,端与端之间的数据传输,在TCP和UDP协议当中不会体现出IP) 32位序号:一次TCP通信(从TCP连接建立到断开)过程中某

    2024年02月11日
    浏览(40)
  • 【计算机网络】TCP传输控制协议——三次握手

    一开始,客户端和服务端都处于CLOSE状态,先是服务端监听某个端口,处于LISTEN状态。 然后客户端主动发起连接SYN,之后处于SYN-SEND状态。 服务端收到发起的连接,返回SYN,并且ACK客户端的SYN,之后处于SYN-RECV状态。 客户端收到服务端发送的SYN和ACK之后,发送ACK的ACK,之后处

    2024年02月09日
    浏览(47)
  • TCP连接管理(三次握手,四次挥手)

    源端口号 (Source Port):16 位字段,表示发送方的端口号。 目的端口号 (Destination Port):16 位字段,表示接收方的端口号。 序列号 (Sequence Number):32 位字段,表示发送方发送的字节流的序列号。用于实现数据的可靠传输和顺序传递。 确认号 (Acknowledgment Number):32 位字

    2024年02月13日
    浏览(48)
  • TCP协议+三次握手/四次挥手过程(带图详解!!!)

    传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的通信协议,工作在 传输层 。 应用程序在使用 TCP 协议之前,必须先建立 TCP 连接。在传送数据完毕后,必须释放已经建立的 TCP 连接。 TCP运输连接主要有三个阶段: 建立TCP连接,也就是三

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

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

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

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

    2024年02月14日
    浏览(53)
  • 【网络安全 | 网络协议】结合Wireshark讲解TCP三次握手

    TCP(传输控制协议)是一种面向连接的、可靠的传输层协议。在建立 TCP 连接时,需要进行三次握手,防止因为网络延迟、拥塞等原因导致的数据丢失或错误传输,确保双方都能够正常通信。 TCP三次握手在Wireshark数据包中是如何体现的?在此之前,先熟悉TCP三次握手的流程。

    2024年02月03日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包