网络原理(二)三次握手、四次挥手

WSL 相关命令时遇到了 “无法从raw.githubusercontent.com提取分发列表、操作超时 核心问题:国内网络屏蔽raw.githubusercontent.com,导致WSL无法获取发行版列表;最优方案:优先用方案1(手动指定发行版安装),无需改配置,1分钟搞定;永久修复:用方案2(修改hosts),适合需要管理多个WSL发行版的场景;兜底方案:用方案3(手动下载安装包),适配所有网络环境。按以上步骤操作后,你不仅能正常安装WSL,等命令也能正常执行,后续可正常使用WSL搭配Docker Desktop(如切换WSL 2后端),无需再担心网络超时问题。 阅读详情

前言

hello hello💕,这里是洋不写bug~😄,欢迎大家点赞👍👍,关注😍😍,收藏🌹🌹
TCP是有连接的,这个连接是抽象的,通信双方各自保存对方的关键信息(IP,端口)
建立连接时需要通过三次握手,连接断开时需要通过四次挥手,这两个环节是整个网络部分面试最高频、最重要的问题,这篇博客就会详细的解析三次握手和四次挥手相关知识🐵
在这里插入图片描述🎆个人主页:洋不写bug的博客
🎆所属专栏:JavaEE学习
🎆铁汁们对于JavaEE的各种常用核心语法,都可以在上面的JavaEE专栏学习,专栏正在持续更新中🏀,有问题可以写在评论区或者私信我哦~

1,三次握手

1,流程

TCP通信在建立连接时,需要通过三次握手(handshake),这三次握手传输的是“打招呼”数据包,这个数据包中不携带任何的业务数据,也就是TCP数据包没有载荷,只有报头

这个就类似于出去谈业务,发现客户对方是多年未见的老同学,约在一起吃饭时,就先不谈业务,先聊一些之前上学的事情以及近况,拉近一下感情,建立一下连接



三次挥手如下图,步骤如下:

  1. 客户端给服务器发送个同步报文段(syn),告诉服务器:我要和你建立连接,请你保存我的信息
    synchronized英文翻译是同步,这个术语在不同对方有不同含义,在多线程中表示的是一种互斥锁,在网络编程中表示的就是同步报文段
  2. 服务器收到后,给客户端返回一个应答报文段(ack),告诉客户端:收到,我会保存信息
  3. 服务器也给客户端发送个syn,告诉客户端:我也要跟你建立连接,请你保存我的信息
  4. 客户端收到后,给服务器返回一个ack,告诉服务器:收到,我会保存信息

在这里插入图片描述


因为建立连接是一个相互的过程,通过这种方式能保证客户端保存了服务器连接,服务器也表示了客户端连接
这个过程在逻辑上是四次交互,但是中间两次,可以合成一个TCP数据包(如下图),网络上实际只传输了三个数据包,因此就称为三次握手

在这里插入图片描述

区分报文段的类型,是看标志位(如下图),ACK的值为1,就说明当前报文段是应答报文段,SYN的值为1,就说明当前报文段是同步报文段

在这里插入图片描述



前面提到“三次握手”逻辑上是四次交互,有的铁汁可能回想:一定要交互四次,才能确保建立连接了吗?

举个例子,博主和哥们在玩pubg,开始玩之前前需要验证自己的麦克风和耳机没问题,也需要验证对方麦克风和耳机是没问题的,如下图:

  1. 首先博主说“能听到我说话吗“,哥们听到后,就能推断出他自己的耳机没问题,也能推断出博主的麦克风没问题

  2. 博主听到哥们回复的“可以听到”,说明哥们收到了前面博主回复的消息,说明博主的麦克风和哥们的耳机都没有问题,这里博主又听到了哥们的声音,说明博主的耳机和哥们的麦克风都没问题

在这里插入图片描述

这里测试麦克风就相当于测试发送能力,测试耳机就相当于测试接收能力
如果像上面只进行两次交互的话,虽然博主可以推出我们两个的麦克风和耳机都没问题,但是哥们是没法确定自己的麦克风和博主的耳机没问题(也就是接收方无法确定自己的发送能力和发送方的接收能力没问题)



所以还要再加上两次交互逻辑,哥们问博主说:那你能听见我说话吗,博主回复说可以,哥们就能确定他自己的麦克风和博主的耳机没问题了
第二次交互和第三次交互可以合在一起,就构成了“三次握手”,如下图:

在这里插入图片描述

2,作用

三次握手主要有两个作用:

  1. 验证通信链路是否畅通
  2. 验证通信双方的发送能力和接收能力是否正常
  3. 通过三次握手,让通信双方协商关键信息

验证通信链路是否畅通就类似于地铁,在早上会先空车从头到尾跑一遍线路,中间不停,不载客,因为经过一晚上,可能会出现一些异常,比如轨道漏水/电路问题,先空车跑一遍验证下通行是否正常,如果不检测,带着一车乘客,中途遇到故障停下来,就比较麻烦了😅

光是通信链路畅通还不够,还需要验证通信双方的发送能力和接收能力是正常的,也就是第二点



三次握手时,通信双方也会协商一些通信过程中的关键信息,主要协商的就是TCP数据的起始序号,这个序号就是按照字节进行编号,方便接收方验证和拼接数据,保证数据传输的可靠性(网络编程(四)中有解析),如下图
每次建立连接时,协商出来的编号都是不同的,而且编号的差值还是很大的

在这里插入图片描述



有的铁汁可能会想:每次建立连接这个起始序号直接从0/1开始不就行了,为什么三次握手时双方要重新协商,而且每次建立连接时起始序号的差别值都很大呢?

这个主要是为了解决网络通信中的一种特殊情况下出现的问题,客户端和服务器先通过三次挥手建立了连接,接着传输了一段时间数据,服务器和客户端断开连接(通过四次挥手)
但是,这个断开连接不一定是不通信了,可能是客户端想重启一下,断开后再去建立连接,如下图

在这里插入图片描述

这时候就会出现一个问题:假如有个数据包的传输路径有点拥堵,到达服务器的时候,这时候已经是其他的连接了,如果服务器接收这个数据包的话,就会收到一堆莫名其妙、不属于当前会话的脏数据,业务直接错乱
因此服务器遇到这种上次连接传过来的数据包时,就要直接丢弃,判断数据包是这次连接传过来的,还是上次连接传过来的,就是看这个数据包的序号是否跟本次连接的起始序号相接近(因此不同连接约定的起始序号的差值要很大)



三次握手的整套逻辑是在操作系统的内核中完成的,客户端在new Socket时,就已经触发三次握手了,服务器通过accept把已经建立好的连接拿到应用程序中时,三次握手就已经完成了

TCP通信过程中,服务器和客户端涉及到的状态还是比较多的,这里先介绍握手时的两种主要状态:

  1. LISTEN:服务器存在的状态,服务器new ServeSocket时就会进入LISTEN表示在“监听”这个端口,有客户端连接上这个端口,就能够accept了
  2. ESTABLISHED:表示客户端和服务器的连接已经建立好了,服务器和客户端就可以进行通信了

在命令行上输入netstat -ano,就能看到这些连接的状态,如下图:

在这里插入图片描述

2,四次挥手

四次挥手是断开连接时的流程,可能时客户端先发起的断开连接,也可能是服务器先发起的断开连接,而三次握手,则一定是客户端先发起的

四次挥手流程如下(拿客户端发起的举例):

  1. 客户端告诉服务器,我要和你断开连接,请你把我删了
  2. 服务器回复收到
  3. 服务器告诉客户端,我也要和你断开连接,请你也把我删除了
  4. 客户端回复收到

在这里插入图片描述



客户端和服务器把对方的信息(之前保存的对方的IP和接口)删除掉,删除后,连接就断开了,这个请求断开的报文的标志位中的FIN就是1,用来进行标注

在这里插入图片描述



有的铁汁可能会想:既然逻辑上都是四次交互,为什么三次握手能把中间两次交互合并成一次发送,四次挥手就不行呢?

三次握手的操作在内核中进行,客户端在new Socket时,就已经触发三次握手了,服务器通过accept把已经建立好的连接拿到应用程序中时,三次握手就已经完成了,是一定能把中间两次发送合并成一个数据包的

四次挥手就不一定能把中间两次发送合并成一个数据包了,这个铁汁们可以结合前面的网络编程(三)中的TCP客户端和服务器的代码来理解
当客户端进程退出或者手动调用socket.close(),都会触发向服务器发送FIN,服务器收到FIN后向客户端发送ACK

服务器的processConnection方法如下,服务器先用scanner.hasNext()感知到客户端断开连接了,退出while(true)循环,接着执行socket.close,断开跟这个客户端的连接,这时候才发送FIN
如果代码中在socket.close()前加上一些耗时逻辑,那服务器向客户端发送FIN需要等一段时间,而服务器回复ACK是在收到客户端的FIN后就立刻回复的,这两次逻辑发送是有时间差距的,因此没办法合并成一个数据包发送,

    private void processConnection(Socket socket){
        System.out.printf("[%s:%d] 客户端上线!\n",socket.getInetAddress().toString(),socket.getPort());
        try(InputStream inputStream = socket.getInputStream();
            OutputStream outputStream = socket.getOutputStream()) {
            Scanner scanner = new Scanner(inputStream);
            PrintWriter writer = new PrintWriter(outputStream,true);
            while (true){
                //1.读取请求并解析
                if (!scanner.hasNext()){
                    System.out.printf("[%s:%d] 客户端下线!",socket.getInetAddress().toString(),socket.getPort());
                    break;
                }
                String request = scanner.next();
                //2.根据请求计算响应
                String response = process(request);
                //3.把响应写回客户端
                writer.println(response);

                System.out.printf("[%s:%d]  req:%s; resp: %s\n",socket.getInetAddress().toString(),socket.getPort(),request,response);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
            //耗时逻辑
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

因为不一定每次都能触发合并,把两次发送逻辑合并成一个数据包,因此就叫做“四次挥手”



“四次挥手”过程中有两个状态比较重要:TIME_WAITED和CLOSE_WAIT

在这里插入图片描述

  1. CLOSE_WAIT:被动断开连接的一方收到FIN后,返回ACK,同时进入该状态,这个状态等待应用程序代码调用close,也就是等待关闭,这个状态的保持时间并不会太长,所以在cmd中用netstat -ano查看连接状态时,会发现处于这个状态的连接是很少的
    在这里插入图片描述



  1. TIME_WAIT:类似于线程的TIME_WAITED,为有限制时间的等待,主动发起断开连接的一方,在收到对方发回的FIN后,返回ACK,并且进入TIME_WAIT状态

那为什么返回完ACK后,不直接close断开连接呢,还要先进入TIME_WAIT状态等一会?
因为发送个ACK可能会出现丢包情况,如下图,如果客户端没有等,直接释放连接了,后面服务器触发数据重传,重新传输FIN,不管触发几次数据重传,都不可能收到客户端ACK的回应,那这个四次握手过程就没有完成,因此客户端需要先等一段时间再断开连接

在这里插入图片描述



这个TIME_WAIT等待时间,就用2 * MSL(Maximum Segment Lifetime,报文段最大生存时间)来计算,MSL就可以理解为网络上任意两点之间,传输消耗的最大时间

但现实中,想要准确的测出MSL的值是不现实的,就会把MSL的值设置的宽裕一些,例如Linux上默认设置的是60s,这个时间是远远大于很多节点之间的传输时间的,多等一会,就是为了避免出现前面提到的ACK丢包后重传FIN无人应答问题

结语💕💕

TCP协议的的关键状态共有四个,简单总结如下:

  1. LISTEN:手机开机,信号良好,可以随时打电话
  2. ESTABLISHED:连接已经建立,电话接听,可以说话了
  3. CLOSE_WAIT:等待代码调用close
  4. TIME_WAIT:等待FIN重传,应对最后一个ACK丢包的情况
  • 三次握手和四次挥手的过程很简单,重点是想清楚为什么一定要交互三次/四次,在交互时解决了什么样的问题,在面试时面试官问到相关知识时,可以在纸上简单的画个图,结合图来回答问题,就会更加清楚🐵

以上就是今天的所有内容啦~完结撒花~🥳🎉🎉

在这里插入图片描述

在Centos上从零开始部署并运行TinyWebServer服务器,过程记录(非常详细) TinyWebServer是个什么项目?它是Linux下C++轻量级Web服务器,助力初学者快速实践网络编程,搭建属于自己的服务器。使用线程池+非阻塞socket+epoll(ET和LT均实现) +事件处理(Reactor和模拟Proactor均实现) 的并发模型使用状态机解析HTTP请求报文,支持解析GET和POST请求访问服务器数据库实现web端用户注册、登录功能,可以请求服务器图片和视频文件实现同步/异步日志系统,记录服务器运行状态。...... 阅读详情

相关推荐

南京邮电大学电工电子实验(二)复习一

本文给电工电子实验(二)的复习进行一些知识点的提醒

YOUXISUN的博客 2957

【网络原理】TCP三次握手四次挥手

在正常情况下,TCP要经过三次握手建立连接,四次挥手断开连接整体过程如下: 该过程对应着很多种状态的转换服务端状态转化[CLOSED -> LISTEN] 服务器端调用listen后进入LISTEN状态,等待客户端连接;[LISTEN -> SYN_RCVD] 一旦监听到连接请求(同步报文段),就将该连接放入内核等待队列中,并向客户端发送SYN确认报文。[SYN_RCVD -> ESTABLISHED] 服务端一旦收到客户端的确认报文,就进入ESTABLISHED状态,可以进行读写数据了。[ESTABLIS

ZXT的博客 3181

Zotero+WPS文献引用跳转功能缺失?3分钟教你用VBA宏搞定(附完整代码)

本文针对WPS用户使用Zotero时文献引用无法点击跳转的痛点,提供了一套完整的VBA宏解决方案。通过解析Zotero的域代码,自动在文内引用和文末参考文献之间创建超链接,实现一键跳转,极大提升了学术写作与文献查阅的效率。

weixin_28419039的博客 671

【网络原理】面试高频考点!!TCP协议“三次握手,四次挥手”,保姆级详解,建议收藏!

第一次握手:客户端向服务器发送一个SYN(同步序列号)段(即报头中的标志位“syn”值为1),表示客户端请求建立连接。这个段落包含一个初始序列号x,用于后续的数据确认。 第二次握手:服务器接收到SYN段后,向客户端发送一个SYN+ACK(确认)段作为响应。这表示服务器同意建立连接,并且告知客户端它的序列号y,同时也确认了客户端的序列号。 第三次握手:客户端接收到SYN+ACK后,向服务器发送一个ACK段,确认服务器的序列号。至此,TCP连接建立完成,客户端和服务器可以开始数据交换。

acm_pn的博客 3841

rk3588 Android HDMI IN热插拔解决

1、公司在使用 别的厂商的板卡遇到一个问题,开机我们的app自启就会闪退,后来定位发现是camera 的open出错了,这个问题的出现是因为没有插HDMI IN输入的问题导致的,所以需要对HDMI IN的热插拔进行检测,后面我把这个问题也顺利解决了。下面是我的尝试和使用的解决办法。3、话不多说,我用的是读取系统文件实现的,但是这个方法,需要有status文件的系统读权限,可以修改设备下的/vendor/etc/init/hw/init.rk3588.rc文件修改的权限,这个问题交给自己或者厂家协商解决。

qq_54089476的博客 1918

手把手教你用DLP4500投影仪玩转结构光3D扫描(附固件烧录与序列设置避坑指南)

本文详细解析了如何使用DLP4500投影仪搭建结构光3D扫描系统,涵盖硬件组装、固件烧录、图案生成与优化等全流程。重点解决了固件烧录失败、图像格式错误等常见问题,并提供了实用的避坑指南和进阶技巧,帮助读者快速掌握DLP4500在3D扫描中的应用。

weixin_42662293的博客 301

【JavaEE初阶】网络原理-TCP连接管理之“三次握手和四次挥手”

本次主要讲解了关于TCP中重要的机制“三次握手,四次挥手”的重要操作,即建立连接和断开连接,以及最后提及的TCP状态的转化

GGBond778的博客 1374

去面试游戏测试工程师,面试官看着我的简历呆住了

!我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

MXB1220的博客 7327

【网络原理】TCP连接管理机制(三次握手四次挥手)

本文讲解:TCP的连接管理机制即三次握手四次挥手过程。

我的主页 3819

Modelsim10.5_se安装(Win11)

modelsim是Mentor公司开发的优秀的HDL语言仿真软件。它能提供友好的仿真环境,采用单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术和单一内核仿真技术,编译仿真速度快且编译的代码与平台无关。

m0_51186267的博客 9908

大数据学习指南从入门到精通

利用框架的力量,看懂游戏规则,才是入行的前提大多数人不懂,不会,不做,才是你的机会,你得行动,不能畏首畏尾选择才是拉差距关键,风向,比你流的汗水重要一万倍,逆风划船要累死人的为什么选择学习大数据开发,不选择Java开发?借棋弈做比喻,智商高的不要选择五子琪,要选择围棋,它能长久地吸引你。不都是在棋盘上一颗黑子一颗白子地下吗?因为围棋更复杂,能够掌握如此复杂的技艺、产生稳定输出的棋手、让我们更佩服。选择学习大数据开发也如此,能让你的职业生涯走得更远,少走弯路。

Lansonli(蓝深李)的博客 2万+

【网络原理】❤️Tcp 连接管理机制❤️ “三次握手” “四次挥手”的深度理解, 面试最热门的话题,没有之一, 保姆式教学 !!!

1. 三次握手和四次握手的初识 2. 三次握手 3. 四次挥手

mgzdwm的博客 4285

Android16 RK3576修改亮度调节为线性调节

文章摘要: 本文分析了Android系统中亮度调节的非线性问题,并提供了线性化改造方案。首先通过追踪Settings和SystemUI代码,发现亮度调节使用了BrightnessUtils类中的非线性Gamma空间转换算法。然后重点修改了BrightnessUtils类,将原有的Hybrid Log Gamma(HLG)算法替换为简单的线性映射公式。最后在自定义工具窗口中实现了基于系统标准接口的亮度调节功能,通过SeekBar的0-100%百分比值线性映射到1-255的系统亮度值。改造后的亮度调节更加直观,

tzj1058756809的博客 75

网络原理TCP之“三次握手“

众所周知,TCP是有连接的.当我们在客户端敲出socket =new Socket(serverIp,severPort)时,就在系统内核就在建立连接真正建立连接是在系统内核中建立的,我们程序员只是调用相关的api.在此处,我们把TCP的建立连接称为三次握手.系统在内核建立连接时如上图所示,总共有四次交互,但是在实际过程中,其中的两次交互能够合二为一,所以我们称作"这个所谓的建立连接的过程,本质上就是通信双方各自给对方发起一个syn,各自给对方回应一个ack.

m0_73700505的博客 3578

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

为什么tcp建立连接需要三次握手断开连接是四次挥手

为什么tcp建立连接需要三次握手断开连接是四次挥手 syn(synchronous)同时的,同步的,在http中指建立请求的第一个包 ack (acknowledgement) 确认的意思 fin(finally) 我要最后一次啦,我暂时这样理解这个含义 今天终于搞清楚了第四次的包是怎么回事,原来第四次的发送包不算在3次握手里面,第四次包是刷新window size用的...

一起学运维 5271

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【网络原理】TCP协议的连接管理机制(三次握手和四次挥手)

TCP协议的连接管理机制,是整个网络原理中,最高频的问题,没有之一!因此,这里单独用一篇博客,详细介绍TCP协议的连接管理机制。TCP协议的连接管理机制主要包括三次握手建立连接和四次挥手断开连接。

StuLearn-LJC的博客 2407

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

网络原理 - 5(TCP - 2 - 三次握手与四次挥手)

连接管理分为建立连接 和 断开连接~(important 重点!

Zz_waiting的博客 1489

TCP/IP 三次握手四次挥手(面试题)

文章目录 计算机网络体系结构网络协议是什么?为什么要对网络协议分层? TCP/IP 协议族应用层运输层网络层数据链路层物理层TCP/IP 协议族 TCP的三次握手四次挥手TCP报文的头部结构三次握手四次挥手 常见面试题为什么TCP连接的时候是3次?2次不可以吗?为什么TCP连接的时候是3次,关闭的时候却是4次...

苏木的博客 3913

【网络原理】TCP的连接管理机制(三次握手和四次挥手)

详细讲述TCP连接管理机制,三次握手和四次挥手的细节

我的博客 1044

网络原理:三次握手和四次挥手中的一些问题

啦啦啦,寡人累了

qq_45036591的博客 1020

java网络原理(三)----三次握手四次挥手

三次握手是建立连接的过程,四次挥手是断开连接的过程,三次握手发生在socket.accept()之前。客户端和服务器尝试建立连接的时候服务器就会和客户端进行一系列的数据交换称为握手,这个过程建立完了后,连接就好了。A和B完成建立连接的过程需要3次打招呼的数据交互。

weixin_65846395的博客 798

TCP协议详解:面向连接的可靠传输,三次握手与四次挥手原理

本文深入解析TCP协议的核心原理,重点讲解面向连接的可靠传输机制、三次握手建立连接和四次挥手断开连接的过程。文章从网络通信的重要性出发,系统介绍了TCP/IP协议栈的分层结构、关键术语和技术指标,并通过示例代码演示了TCP服务器的实现方法。内容涵盖TCP协议的基础原理、工作流程和实践应用,帮助读者全面理解这一网络通信的核心技术。文章采用概念解析、原理讲解、实现方法和实践案例相结合的方式,适合网络技术学习者和IT从业者深入掌握TCP协议的可靠传输机制。

未来 95% 的 AI 应用将变得隐形,广泛融入日常生活。 2444

Wireshark分析TCP数据包:查看三次握手与四次挥手全过程

Wireshark分析TCP三次握手与四次挥手摘要 本文系统介绍了使用Wireshark工具分析TCP协议核心通信过程的方法。主要内容包括: TCP通信原理:深入解析TCP三次握手建立连接和四次挥手终止连接的关键机制,包括SYN、ACK等标志位的交互过程。 Wireshark实践:演示如何使用Wireshark抓包分析TCP通信全过程,包括过滤TCP流、解读数据包各字段含义等实用技巧。 技术实现:通过Python代码示例展示TCP服务器的创建和客户端连接处理流程,帮助理解协议底层实现原理。 网络诊断:介绍如

未来 95% 的 AI 应用将变得隐形,广泛融入日常生活。 1万+

JAVAEE之网络原理(2)_传输控制协议(TCP)的连接管理机制,三次握手、四次挥手,及常见面试题

以上就是本节的主要内容,我们详细介绍了TCP原理中的 连接管理机制,主要包括三次握手和四次挥手两部分,我们介绍了三次握手、四次挥手的主要过程。在下一节我们将会继续介绍 TCP 原理中的其他机制。

2301_80653026的博客 1195

[网络]——什么是TCP三次握手四次挥手?

TCP的运输连接管理 在还没有学习网络之前TCP的三次握手四次挥手这个概念已经屡见不鲜了,当网络原理老师照着PPT读了一遍概念后大家也都认为自己学会了这个概念,老师也不在深入,大家也没有要学习的意思。哈哈,皆大欢喜。 TCP的三次握手和四次挥手 可是你将要从事这一行这一业,也就必须要有刨根问题的精神,虽然相信这个概念很多人已经听的耳朵都要起茧子了,但是多熟悉几遍未必是坏事。那么现在我们先来谈一谈什...

lucky52529的博客 445

网络原理-TCP/IP(3) - 三次握手超详解析

TCP的连接是虚拟的,抽象的,目的是让通信双方保存对方信息.在正常情况下,TCP要经过三次握手建立连接,四次挥手断开连接. 之前我们在网络编程中的 socket = new Socket(ip, port); 这个操作就是建立连接.而这个操作知识调用了socket的api,真正建立的过程,是在操作系统内核中完成.

asdssadddd的博客 1895
上一篇: 网络原理(一)应用层协议、DNS、传输层UDP/TCP报文格式解析
下一篇: 网络原理(三)TCP通信十大核心机制解析
洋不写bug
博客等级 码龄2年 87粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值