首页 > 其他分享 >对于TCP(传输控制协议),三次握手,四次断开规则的理解与作用分析。

对于TCP(传输控制协议),三次握手,四次断开规则的理解与作用分析。

时间:2024-07-04 23:31:36浏览次数:20  
标签:发送 断开 ACK 传输控制协议 TCP 收到 传输 服务端 客户端

TCP是一种面向连接的字节流服务,相较于UDP而言有更可靠的传输机制,数据传输有更高的可靠性,但是传输速度相对较慢(视频通话等通常不使用这种传输协议),并且仅使用于单播即只有双方进行彼此通讯。

三次握手指的是在传输数据之前客户端与服务端双方先发送三次数据包已确认相互之间可以发送与接收数据。这个过程可以确保连接的可靠性与完整性,防止数据包的丢是与重复传输。

那么三次握手是怎样进行的呢?

首先客户端先向服务端发送SYN包,请求建立连接。

服务端接收到SYN包后向客户端发送SYN包和ACK包,表示同意建立连接。

最后客户端收到服务端的SYN包ACK包后向服务端发送ACK包,表示客户端也同意建立连接。

这个过程类似于你对你的同事发微信说:你能看见我消息吗,我要给你传个文件,收到回复。你的同事回:ok,没问题你发吧。你又对你的同事说:ok,是通的就行。接下来就开始传输文件。

四次断开指的是在传输数据后客户端主动请求关闭传输,客户端与服务端相互确认数据已经传输完毕。

四次断开过程:

客户端向服务端发送FIN包,请求关闭传输。

服务端收到FIN包后向客户端回复ACK包,表示收到。

客户端收到ACK包后向服务端发送FIN包和ACK包,表示数据已经传输完毕,可以关闭了。

服务端收到后发送ACK包,表示收到。随后进入CLOSE状态。

这个过程类似于文件传送完后你对你的同事说:你那边收到没有?我这边传完了。你的同事回:ok,收到了。你收到同事的信息后对他说:既然传完了那我关电脑了哦。你的同事说:ok,传完了我也关电脑了。于是你们双方关闭了电脑,下了班。

TCP中三次握手四次断开的作用就在于确保数据连接传输过程中保证数据连接的可靠性和数据报的完整性。

标签:发送,断开,ACK,传输控制协议,TCP,收到,传输,服务端,客户端
From: https://blog.csdn.net/nxb556/article/details/140191747

相关文章

  • Linux系统应用与设置(4):Linux抓包工具tcpdump
    1.简述        tcpdump是一款广泛使用的命令行网络分析工具,它能够捕获和分析网络上的数据包。这个强大的工具对于网络故障排查、安全监控和网络流量分析非常有用。        值得注意的是,通过tcpdump抓取的数据还可以通过保存为*.pcap文件,然后使用wireshark......
  • TCP的十个核心机制!
    目录前言补充内容一、确认应答二、超时重传三、连接管理四、滑动窗口五、流量控制六、拥塞控制七、延时应答八、捎带应答九、面向字节流十、异常情况前言本文主要介绍TCP的十个核心机制,但是这不意味着TCP只有十个机制,只是最核心的十个而已。补充内容TCP......
  • java使用Netty实现TCP收发消息的例子,多线程并且含断线自动重连
    需求:有一个TCP的服务,需要使用Netty开发一个TCP连接并收发消息的程序。要求多线程并且含断线自动重连能力。组织结构,使用JavaMaven编程方式功能还包含读取配置文件和log4j2写日志部分 完整代码:App.javapackagecom.LSpbxServer;importorg.slf4j.Logger;import......
  • [计算机网络]TCP/IP
    OSI七层模型应用层表示层会话层传输层网络层数据链路层物理层TCP/IP四层模型应用层传输层网络层数据链路层物理层全双工全双工(Full-Duplex)是指在通信中,数据传输能够在两个方向上同时进行,允许双方在同一时间既能发送数据,又能接收数据。这种方式使得通信的双方可以实......
  • 简单课设:基于TCP协议的客户/服务器聊天室
            随着计算机的普及,网络编程也显得愈发重要,同时掌握实现客户/服务器程序的编写方法也不可忽视。通过学习,我们将了解TCP协议在网络通信中的重要性,掌握如何使用在Linux或Windows平台上编写简单的TCP客户/服务器程序。课程设计分为两个部分:服务器端和客户端。在服务......
  • golang 实现tcp socket 通信
    都说golang适合网络编程,知道今天写了tcp我才知道他到底有多简洁。(虽然已经对着golang的webrtc研究很久了)首先是client端代码:packagemainimport( "bufio" "fmt" "net")funcmain(){ conn,err:=net.Dial("tcp","192.168.1.106:8080") iferr!=ni......
  • 三次握手,四次挥手,以及Socket、TCP、HTTP之间的区别
    网络开发1.网站:最全的socket,tcp,http三者之间的区别和原理_cocket与tcpip-CSDN博客1.网络七层1.定义:网络七层(简称:OSI),即开放式系统互连。该体系架构标准定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层)2.socket,tcp,http三者之间的区别和......
  • 深入理解TCP协议格式(WireShark分析)
    传输控制协议(TCP)是互联网中最为关键的通信协议之一。了解TCP协议的细节不仅对于网络工程师至关重要,对于任何涉及网络通信的软件开发人员而言都是必备的知识。本文旨在深入探讨TCP协议,从协议的基本概述到其工作机制,以及如何通过实际代码实现和工具分析来理解其运作。TCP协......
  • 图文并茂! TCP的“三次握手”是如何进行的?
    对于TCP连接,相信大家都不陌生,这种连接确保了通信双方之间的可靠性和一致性。无论是在学习计算机网络,还是在面试过程中,TCP都是一个比较常考的知识点,然而这个知识点却很容易被遗忘。为了帮助大家更容易理解和记住该知识点,本文通过图文并茂的形式向大家解释了TCP三次握手的过程。......
  • 在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
    在Linux中,实时抓取并显示当前系统中TCP80端口的网络数据信息,可以使用tcpdump这个强大的命令行工具。以下是详细的步骤和命令:打开终端:首先,打开一个具有足够权限的终端窗口。通常,需要使用sudo或以root身份执行tcpdump,因为它需要访问底层网络接口。确定网络接口:使用ifconfig(在......