三次握手指的是TCP协议建立连接的过程。当客户端请求与服务器建立TCP连接时,必须要经过三次握手才能真正建立连接。
【动图演示 TCP3 次握手过程 连接状态变化 为什么是3次握手而不是2次】 https://www.bilibili.com/video/BV13V411w7Xq/?share_source=copy_web&vd_source=1aab39b433529f6f488e61847b342350
三次握手详细过程
- 第一次握手:客户端向服务器发送 SYN 报文,请求建立连接,其中 SYN 标志位被置为 1,同时客户端随机选择一个初始序列号发送。
- 第二次握手:服务器接收到客户端的 SYN 报文,确认客户端的SYN请求,同时自己也向客户端发送一个 SYN 报文,SYN 标志位被置为 1,并且确认序号(acknowledgement number)被设置为客户端发送的序列号+1,同时服务器也随机选择一个初始序列号,并将其发送给客户端。
- 第三次握手:客户端接收到服务器的 SYN 报文,向服务器发送一个确认报文,确认序号也被设置为服务器发送的序列号+1,同时将 ACK 标志位置为 1,表示接收到了服务器传来的请求,连接已经建立。服务器接收到 ACK 报文之后,也将 ACK 标志位置为 1,表示连接建立完成。
三次握手是为了确保连接的可靠性,如果在建立连接的过程中发生网络丢包或者延迟,可以在重发握手报文的同时避免建立多余的连接。经过三次握手之后,客户端和服务器之间就建立了一个可靠的双向连接,在这个连接上可以进行数据传输。
1、客户端发送一个SYN=1,ACK=0标志的数据包给服务端,请求进行连接,
2.服务端收到请求,并且允许连接的话,会发送SYN=1,ACK=1标志的数据包给客户端,告诉它可以通讯,并让服务端发送一个确认数据包
3.服务端发送一个SYN=0,ACK=1的数据包给客户端,告诉它连接已被确认。)
wireshark查看三次握手过程
可以通过网络数据包分析工具(如Wireshark)来查看TCP协议的三次握手过程。下面是具体的步骤:
- 下载并安装Wireshark。Wireshark是一款免费开源的网络数据包分析工具,可以在其官网上下载安装。
- 打开Wireshark,选择需要监听的网络接口。在主界面上,可以选择需要监听的网络接口,例如本地网络、无线网络等。
- 过滤TCP协议数据包。Wireshark默认会显示所有类型的网络数据包,因此需要设置过滤器来只显示TCP协议数据包。可以在菜单栏中选择"Capture Filters" -> "tcp",或者使用"tcp port XXXX"(XXXX代表端口号)的方式来设置过滤器。
- 开始抓取网络数据包。在设置好过滤器后,点击"Start"按钮开始抓取网络数据包。
- 进行TCP连接。在客户端进行TCP连接时,Wireshark将会记录到三次握手的数据包。这些数据包通常包括SYN报文、ACK报文和SYN/ACK报文等,可以在Wireshark的显示窗口中查看这些报文的详细信息
示例
启动wireshark抓包,打开浏览器输入www.baidu.com
使用ping www.baidu.com 获取IP
输入过滤条件获取待分析数据包列表
ip.addr==124.237.176.3
第一次握手数据包
标志位SYN 序列号0
seq=0
ack=0 已经收到的包数量,表示当前没有接收到数据。
第二次握手
标志位 [SYN+ACK]
Seq=0 表示当前还没有发送数据
Ack=1 表示当前成功接收到的数据位数 但实际此时还未收到(含SYN或者FIN标志位的包不携带有效数据)
第三次握手
标志位 ACK 表示已接收到数据
SYN为0
TCP和UDP的区别
TCP(传输控制协议)和UDP(用户数据报协议)是互联网协议(IP)中两种主要的传输协议,它们有以下区别:文章来源:https://www.toymoban.com/news/detail-468478.html
- 连接性:TCP是一种面向连接的协议,需要在传输数据之前通过“三次握手”建立连接。而UDP是无连接的协议,可以直接发送数据,无需事先建立连接。
- 可靠性:TCP提供数据传输的确认和重传机制,保证数据按照发送的顺序进行接收。如果数据在传输过程中丢失或乱序,TCP可以检测并重新发送数据。UDP则没有这样的保证,可能会导致数据丢失或乱序。
- 数据传输方式:TCP是一种字节流协议,数据在传输过程中连续不断,以字节为单位进行线性传输。而UDP则将数据分成独立的数据报,每个数据报独立发送,可能会重叠或交错。
- 流量控制和拥塞控制:TCP具有复杂的流量控制和拥塞控制机制,可以根据网络状况动态调整数据传输的速率,以防止网络拥塞。而UDP没有这样的控制机制。
- 数据传输速度:由于TCP的复杂性和确认机制,数据传输速度通常较慢。而UDP由于简单直接,通常具有更快的传输速度。
- 头部开销:TCP的头部开销比UDP大。TCP头部固定20字节,而UDP头部固定8字节。
- 服务类型:由于TCP的可靠性和顺序性,它常用于需要可靠传输的交互式应用,例如网页浏览、电子邮件等。而UDP由于其简单性和速度优势,常用于实时应用,如流媒体、实时游戏等。
总的来说,TCP和UDP各有其优点和适用场景,选择使用哪种协议取决于具体的应用需求。文章来源地址https://www.toymoban.com/news/detail-468478.html
到了这里,关于TCP三次握手的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!