字节一面:服务端挂了,客户端的 TCP 连接还在吗? 收到一位读者的私信,说字节面试有这么一个问题:服务端挂了,客户端的 TCP 连接会发生什么? 如果「服务端挂掉」指的是「服务端进程崩溃」,那么这个读者猜的想法是对的,服务端的进程在发生崩溃的时候,内核会发送 FIN 报文,与客户端进行四次挥手。 但是,如果「服务端挂掉」指的是「服务端主机宕机」,那么是不会发生四次挥手的,具体后续会发生什么?还要看客户端会不会发送数据? 如果客户端会发送数据,由于服 系统运维 2023-10-08 泡泡
从零实现gin day01 前言 刚开始学go想着不能一直输入,得有点输出才能记得住学的东西,故决定写一些学习笔记来记录自己的学习历程. 知识点 使用go开启TCP服务 使用go发送http请求 实现TCP监听回调服务 http请求封装 怎么用go开启TCP服务 package main import ( "fmt" "log" "net/http" ) func 开发运维 2023-10-06 向阳逐梦
Node.js 是如何处理请求的 TCP 协议的核心概念 要了解服务器的工作原理首先需要了解 TCP 协议的工作原理。TCP 是一种面向连接的、可靠的、基于字节流的传输层全双工通信协议,它有 4 个特点:面向连接、可靠、流式、全双工。下面详细讲解这些特性。 面向连接 TCP 中的连接是一个虚拟的连接,本质上是主机在内存里记录了对端的信息,我们可以将连接理解为一个通信的凭证。如下图所示。 那么如何建立连接呢?TCP 的连接是通过三次 开发运维 2023-10-04 宇宙之一粟
网络编程之TCP协议 TCP协议属于网络分层中的传输层,传输层作用的就是建立端口与端口的通信,而其下一层网络层的主要作用是建立"主机到主机"的通信,所以在我们日常进行网络编程时只要确定主机和端口,就能实现程序之间的数据交流,在Unix系统中就把主机+端口,叫做"套接字"(socket),所以一般网络编程都是基于对于socket的操作来做的。 TCP协议其实是一个非常复杂的协议,做过网络编程开发的都听过一句话‘’TCP本 开发运维 2023-10-03 向阳逐梦
redis知识积累 这里会记录redis的一些常用命令与理论 redis常用命令 ps -ef|grep redis which redis-cli redis-cli -h 192.168.201.208 auth redis_pwd 查询配置 config get tcp-keepalive redis知识理论 redis默认的tcp-keepalive是300秒,可以通过添加依赖,自定义tcp_user_tim 系统运维 2023-09-30 向阳逐梦
手写RPC(2) 今天开始就要开始我们的写代码啦,首先我们从要发送的数据开始。 🚀首先放上我的GitHub的完整项目地址:github.com/Poison02/rp… 自定义协议内容 本项目是基于TCP进行端到端的通信的,我们都知道TCP在传输的时候因为数据包的大小会有粘包以及拆包的问题,通俗点就是我有两段数据,另一端收到的数据包可能不完整也可能多了。但是TCP使用各种方法如滑动窗口、拥塞控制等算法减少这种情景的 开发运维 2023-09-25 三掌柜
下一代TCP: 网络演进的平台 随着今年TCP最新规范RFC 9293的发布,IETF对过去几十年TCP的发展做处理阶段性总结,同时也是下一阶段发展的起点。随着网络规模的扩大和发展,也许有一天TCP会消失,或者演变为基于业务的可编程平台,相信今后会有很多好玩的东西出现。原文: [TCP: The "P" is for Platform](systemsapproach.substack.com/p/tcp-the-p… "TCP 开发运维 2023-09-25 共饮一杯
TCP建连为啥是三次握手 前言 前几天一朋友去面试,回来灰头土脸的,我一打听,才知道是一道网络相关的很基础的八股没回答好,没错就是本文的标题,面试官问他为什么TCP建连需要是三次握手,我那朋友其实是背了这个问题的八股答案的,他回答道是为了防止历史TCP连接建立,面试官则继续追问,什么是历史TCP连接建立,体现在TCP报文上是什么样的形式,发生了历史TCP连接建立会产生什么影响。面试官的追问其实挺有道理,但是我那朋友并没有解 开发运维 2023-09-22 向阳逐梦
TCP协议的秘密武器:流量控制与拥塞控制 TCP可靠性传输 相信大家都熟知TCP协议作为一种可靠传输协议,但它是如何确保传输的可靠性呢? 要实现可靠性传输,需要考虑许多因素,比如数据的损坏、丢失、重复以及分片顺序混乱等问题。如果不能解决这些问题,就无法实现可靠传输。 因此,TCP采用了序列号、确认应答、重发控制、连接管理和窗口控制等机制来实现可靠性传输。 在本文中,我们将重点介绍TCP的滑动窗口、流量控制和拥塞控制。重传机制将在下一章节单 开发运维 2023-09-22 贤蛋大眼萌
如何保持 SSH 会话处于活动状态 体验无忧的 SSH 会话。按照我们的指南保持您的连接畅通并消除冻结问题。 在远程服务器管理和安全数据传输中,SSH(Secure Shell)是不可或缺的工具。然而,它的便利性和安全性有时会因常见的问题而受到损害:冻结 SSH 会话。 此外,会议的突然中断可能会导致工作丢失、项目延迟和无助感。 但不用担心,因为解决方案就在眼前。这份综合指南揭示了维持活跃且响应迅速的 SSH 连接的秘密,确保无缝体 系统运维 2023-09-22 大猫
解密TCP连接断开:四次挥手的奥秘和数据传输的安全 TCP 连接断开 在当今数字化时代,互联网已经成为了人们生活中不可或缺的一部分。而在互联网的基础之上,TCP协议扮演着关键的角色,它负责着数据在网络中的可靠传输。在TCP连接的建立过程中,我们已经了解了三次握手的过程和原理。然而,连接的建立只是TCP协议的一部分,同样重要的是连接的断开过程。本文将重点探讨TCP连接的断开过程,包括四次挥手的过程和状态变迁,以及为什么挥手需要四次和为什么需要TIME 开发运维 2023-09-21 向阳逐梦
TCP与UDP协议:网络通信中的两大重要角色 引言 在这个像点点滴滴组成的虚拟宇宙中,网络通信就像是我们的超级高速公路系统,让信息在世界间飞速穿梭。想象一下,如果网络是一条繁忙的交通道路,那么协议就是交通信号灯,确保数据的流量在虚拟世界中保持有序。在这篇文章中,我们将揭开TCP和UDP这两个“交通指挥官”的神秘面纱,看看它们是如何在这个数字迷宫中引导我们的数据来去自如的,就像是在网络高速公路上开着各种“车”一样,有小巧敏捷的UDP跑车,也有稳 开发运维 2023-09-18 张二河
如何保持 SSH 会话不中断? 哈喽大家好,我是咸鱼 不知道小伙伴们有没有遇到过下面的情况: 使用终端(XShell、secureCRT 或 MobaXterm 等)登录 Linux 服务器之后如果有一段时间没有进行交互,SSH 会话就会断开 如果正在执行一些非后台命令,SSH 会话断开就可能会使得这些命令可能会被中断,导致任务无法完成 那如何保持 SSH 会话不中断呢?我们来看一下 原文链接:linuxiac.com/how- 系统运维 2023-09-12 贤蛋大眼萌
为什么 TCP 需要三次握手? TCP 三次握手是一道经典的面试题,它是指 TCP 在传递数据之前,需要进行 3 次交互才能正式建立起连接,并进行数据传递。 TCP 之所以需要 3 次握手是因为 TCP 双方都是全双工的。 所谓全双工指的是,TCP 任何一端既是发送数据方,又是接收数据方,因此这就要求 TCP 通讯双方既要保证自己的发送能力,又要保证自己的接收能力才行。这就好像打电话时,通讯双方都要保证自己能话筒(传递声音)和耳 开发运维 2023-09-07 泡泡
TCP 与 UDP:深入解析两种网络协议的主要区别 写了这么多篇关于 TCP 和 UDP 的文章,还没有好好聊过这两个协议的区别,这篇文章我们就来开诚布公的谈一谈。 关于 TCP 和 UDP ,想必大家都看过一张这样的图。 有一个小姑娘在对着瓶口慢慢的喝水,下面写着可靠的传输,少女的衣服没有被水浸湿,这张图被称为 TCP 。 然后又有一个小姑娘在举着水瓶以很快的速度向下倒水,少女的头发凌乱,脸色泛红,衣服也被水浸湿,这张图被称为 UDP 。 这两张 开发运维 2023-09-06 穿过生命散发芬芳
Http的演进1.0、1.1、2.0、3.0 前段时间面试 遇到的这个问题 当时答得不好,现在做个复盘整理 Http1.1 首先介绍一下Http1.1 性能 长连接 1.0存在一个很大的性能问题就是,每次TCP都要三次握手,1.1就采用长连接的方式,减少重复建立连接带来的性能问题,长时间没有数据交互就会断开连接。 管道网络传输 简而言之,不用等回复,就可以直接发下一个请求,但是接受响应还是要延迟的,因为是根据请求的顺序返回响应的,所以解决了队 开发运维 2023-09-03 张二河
HTTP 框架的优化手段 | 青训营 本文主要讲述 HTTP 框架的优化手段,从性能优化方面入手,浅探 HTTP 中的优化问题。 一、 启用长连接 TCP 和 SSL 建立新连接的成本是非常高的,有可能会占到客户端总延迟的一半以上。长连接虽然不能优化连接握手,但可以把成本“均摊”到多次请求里,这样只有第一次请求会有延迟,之后的请求就不会有连接延迟,总体的延迟也就降低了。 二、 启用 “TCP Fast Open” 在现代操作系统上启用 系统运维 2023-08-29 大树
oracle1 0、新库按照最新的19C软件安装手册; 1、SCAN监听配置1526/1527/1528 [grid@cnsz083680 ~]$ srvctl modify scan_listener -p tcp:1526/tcp:1527/tcp:1528 [grid@cnsz083680 ~]$ 2、配置一个1530的静态监听给部署使用(每台机器上都创建一个静态监听); GBS1 = (D 数据运维 2023-08-29 穿过生命散发芬芳
TCP相关内容一 | 青训营 TCP相关内容 | 青训营 这篇文章尝试理解一下TCP的重传和滑动窗口机制。当然TCP机制很复杂,全然是些皮毛。 重传机制:TCP是可靠的传输协议,实现可靠性,重传机制十分重要。常见有几种重传机制,超时重传、快速重传、SACK、D-SACK。 超时重传,一方发送请求,并附上自己的序列号和确认应答号(就是下次期望收到数据的序列号),当出于各种原因没有收到对方的应答消息,超过一定时间就会重发数据,就是 系统运维 2023-08-28 竹子爱熊猫
面试官:Socket TCP 是如何断开连接的? 前言 Socket 是什么? Socket 运行流程 基于 TCP 基于 UDP Socket TCP 是如何建立连接的 三次握手发生在 socket 的哪几个函数中 Socket TCP 是如何断开连接的 第四次挥手后为何要等待 2MSL 三次握手发生在 socket 的哪几个函数中 当客户端调用 connect 时,触发了连接请求,向服务器发送了SYN 信号,这时 connect 进入阻塞状态 开发运维 2023-08-28 共饮一杯