直播倒计时 1 天 | SOFAChannel#31 RPC 框架设计的考和量

CentOS 7环境下GLPI与OCS Inventory资产管理系统集成部署指南 本文详细介绍了在CentOS 7环境下,如何将GLPI与OCS Inventory两大开源工具进行集成部署,构建自动化资产管理系统。指南涵盖环境准备、核心服务安装、Web界面初始化、OCS插件配置及资产同步实战,帮助运维人员实现IT资产的自动发现、统一管理与可视化,大幅提升资产管理效率。 阅读详情

901e80354960b3adae70ed75039dca34.gif

SOFARPC 是蚂蚁集团开源的一款基于 Java 实现的 RPC 服务框架,为应用之间提供远程服务调用能力,具有高可伸缩性,高容错性,目前蚂蚁集团所有的业务的相互间的 RPC 调用都是采用 SOFARPC。

SOFARPC 为用户提供了负载均衡,流量转发,链路追踪,链路数据透传,故障剔除等功能。

SOFARPC 还支持不同的协议,目前包括 Bolt、RESTful、Dubbo、H2C 协议进行通信。其中 Bolt 是蚂蚁集团开放的基于 Netty 开发的网络通信框架。

d826e289ef80b1da7276e7a4ee31c625.jpeg

SOFA Channel#31

直播倒计时 1 天!

预约直播

扫描👇下方二维码预约 B 站直播

或点击下方 “阅读原文” 预约

即可参与抽奖🎁

e05d01f114ef1517b74fd658795a7a44.png

明天 19:00

期待大家的参与和讨论呀~

「参与直播方式」:

1. 扫描上方二维码预约报名

2.点击下方 “阅读原文” 预约直播

3. 添加 SOFAGirl 微信 SOFAGirl18049,加入 SOFAChannel 技术交流群

4. 钉钉搜索:44858463,钉钉群同步直播,讲师在线答疑

75be32ac87694e449c8b0f48dd8af0ec.png

「GitHub 讨论区」

9b957aadb2935c505ef3b9a02fb19b4d.png


如果你对本次直播有什么样的期待😚

欢迎在 issue 里告诉我们呀📃

留下你的想法!我们一起讨论!🍭

https://github.com/sofastack/sofa-rpc/issues/1284

   本周推荐阅读  

13fcae9b339c780914e075ff3c3a85d0.png

SOFAGW 网关:安全可信的跨域 RPC/消息 互通解决方案

ba4652022dd80890632d5cab614dfefa.png

SOFAServerless 体系助力业务极速研发

ed750678b80538218e3f61614a1582e3.png

降本增效: 蚂蚁在 Sidecarless 的探索和实践

76a7140c8be8a6d825a41d7adfee004c.png

Service Mesh 的下一站是 Sidecarless 吗?

2045989dea43107835b997bafffdfb14.jpeg

8d5bce7a68c8e55e626e6ff8d4964cab.gif

点击 “阅读原文” 预约直播哦!⭐

14 ABSOLUTE评估肿瘤纯度 14 ABSOLUTE评估肿瘤纯度 Absolute介绍 ABSOLUTE可以直接从体细胞突变和拷贝数变异的结果中推断肿瘤纯度和倍性的计算方法。 通常来说,我们取肿瘤组织进行测序,往往是一个混合样品,既包括肿瘤细胞也包括正常细胞,因此需要进行肿瘤纯度 purity 的评估。当从混合样品中提取 DNA 进行测序后,得到的也是一个混合样品的结果。肿瘤不一定是单纯的二倍体了,其本身异质性高,存在部分突变部分不突变的情况,直接分析拷贝数变异,得到的结果并不准确,评估肿瘤倍性 ploidy 也更加必要。而 ABSO 阅读详情

相关推荐

计组实验之四路表决器

请在之前四路表决器电路实现的基础上,继续用连接线 联接CD4511,将投票为1的票数总和显示到一个 LED上,思考如何做?由于我们需要通过显示字形来直接看出有几个1,在这里,我们最多有四个1,即显示字形最多到4就行,所以我们需要将有几个1用2进制数来表示,下面给出了相关电路图。显示输入插口,按真值表(自拟)要求,逐次改变输入变量, 测量相应的输出值,验证逻辑功能, 与表3-1 进行比较, 验证所设计的逻辑电路是否符合要求。用实验结果与真值表3-1和3-2进行比对,可以得出,我们实验结果是正确的。

szyugly的博客 1万+

直播倒计时 2 天 | SOFAChannel#31 RPC 框架设计的考和量

SOFARPC 是蚂蚁集团开源的一款基于 Java 实现的 RPC 服务框架,为应用之间提供远程服务调用能力,具有高可伸缩性,高容错性,目前蚂蚁集团所有的业务的相互间的 RPC 调用都是采用 SOFARPC。SOFARPC 为用户提供了负载均衡,流量转发,链路追踪,链路数据透传,故障剔除等功能。SOFARPC还支持不同的协议,目前包括 Bolt、RESTful、Dubbo、H2C 协议进行通信。...

金融级分布式架构 270

LLM推理服务中的SLO感知调度优化实践

在AI服务架构中,服务级别目标(SLO)是衡量服务质量的核心指标,特别是在大型语言模型(LLM)推理场景下。SLO通常涉及TTFT(首token时间)、TPOT(每token生成时间)和端到端延迟等关键维度,这些指标直接影响用户体验和系统效率。传统FCFS调度策略由于缺乏SLO感知能力,在混合负载下往往导致资源利用率低下和SLO达标率骤降。通过引入基于模拟退火的动态调度算法和精准的延迟预测模型,可以实现对不同优先级请求的智能调度,显著提升GPU利用率和SLO达标率。这种技术方案特别适用于需要同时处理实时对话

weixin_42549154的博客 371

远程调用的两种范式:HTTP 接口 vs 二进制 RPC,到底怎么选?

本文从 "为什么要有远程调用" 出发,把远程调用拆成两条技术路线 —— 一条是基于 HTTP 的 REST/JSON 路线,一条是基于自定义二进制协议的 RPC 路线;再往下展开到 Dubbo、Thrift、gRPC、OpenFeign 这几个常见的框架。像调本地方法一样调远程方法。// 表面上是本地调用,实际发了一次网络请求中间这个动态代理,帮你干了三件事:把方法名和参数序列化成字节流、通过网络发到提供方、把回包反序列化成返回值对象。重点在于:这条链路上跑的不是 HTTP,而是框架自己定义的二进制协议。

2401_87174643的博客 314

RTT(RT-Thread)串口设备(RTT保姆级教程)

本章主要介绍串口设备在RT-Thread操作系统中应用层如何使用。关于串口设备的使用,我们只需要在应用层找到串口设备,然后去初始化,初始化完成以后就可以读写串口设备了。操作的方法在应用层,驱动是不需要我们去完成的,驱动已经在操作系统中提供了。

qq_25218501的博客 1万+

【2024遥感应用组一等奖】基于时空融合和水量平衡法的若尔盖高原水源涵养功能评价

考虑到水源涵养的概念和尺度特征、数据的可获得性、模型的模拟精度等,构建了一种基于遥感、气象和水量平衡原理的草原湿地水源涵养评价方法,估算若尔盖湿地近23年(2000-2022)来的水源涵养量。若尔盖湿地是我国黄河源区的重要水源地,所以本研究以若尔盖湿地的水源涵养功能评估为科学问题,基于遥感数据、GIS数据等,利用水量平衡原理,发展计算简单、便捷、数据易获取的“水源涵养估算方法”,科学估算若尔盖湿地水源涵养服务量,探究其时空动态变化趋势及其影响因素;公式中,Z1和Z2为两个不同高度面的高度,u为摩擦速率;

JData_Engineer的博客 239

RPC与网络通信:如何让微服务之间“顺畅对话”?

本文从真实故障出发,剖析微服务间RPC通信的五大核心陷阱:超时配置缺失导致雪崩、重试策略放大请求压力、注册中心缓存引发发布期报错、序列化兼容性问题及异常类型混淆。通过可落地的配置示例(如gRPC默认超时拦截器、关闭LoadBalancer缓存)与实践原则(超时逐层递减、仅幂等接口重试),揭示如何构建稳定可靠的远程调用链路,适合正在被调用链稳定性困扰的后端开发者与SRE。

2302_80138126的博客 737

点云去噪:基于点云拟合的方法

点云处理是计算机视觉中的重要任务之一,而点云去噪是点云处理的关键步骤之一。在实际应用中,由于采集设备的噪声、运动估计误差或者环境干扰等因素,点云数据中常常包含有噪声点,这些噪声点会对后续的点云分析和处理造成不良影响。一种简单的方法是计算点到拟合曲面的距离,并将距离超过某个阈值的点定义为噪声点,进行过滤。一种简单的方法是计算点到拟合曲面的距离,并将距离超过某个阈值的点定义为噪声点,进行过滤。该方法通过拟合点云数据的曲面模型,对噪声点进行识别和过滤,从而得到更加干净的点云数据。

AuSwift的博客 638

罗克韦尔ACD工程归档离线变量树解析

本文实现纯C#(.NET 4.0,零依赖)逆向解析罗克韦尔RSLogix 5000工程归档文件(.acd),从二进制结构中提取并重建完整变量树。通过解析非ZIP格式的三段式容器、读取UTF-16编码的TagInfo.XML,依据类型展开规则(含预定义类型与隐藏成员)、统一命名映射及维度以XML为准,成功还原785个符号的离线变量树,并与在线browse逐项比对一致,验证了“.acd是权威元数据源”的核心结论。

qq_25814147的博客 359

完整 Bootloader 框架

本文详细介绍了嵌入式系统中Bootloader的完整框架设计。主要内容包括:1.Bootloader的核心功能模块,如应用启动、命令交互、下载功能、Flash烧写和调试维护;2.模块化设计框架,包含启动代码、驱动层、协议实现等组件;3.典型工作流程和关键模块实现,如命令行接口、命令注册机制、Flash操作等;4.应用跳转前的准备工作和安全扩展设计,如加密校验、OTA支持等。文章强调了一个成熟Bootloader在系统维护、升级和安全中的重要性,建议采用模块化、可扩展的设计方法。

m0_49476241的博客 1337

5GS 协议栈 — PFCP 协议 — URR 用量上报规则

目录 文章目录目录URR 用量上报规则UEE 的参数Usage Report 的参数示例 URR 用量上报规则 29244 5.2.2 Usage Reporting Rule URR 的作用? 用来告诉 UPF 如何对 PDR 识别的 SDF 或 Application 业务进行使用量统计信息的上报。CP 收到 Report Information 后,可用于计费或者管控(e.g. 超量限速)等用途。 URR 在哪个流程里下发的? N4 会话建立流程。 N4 会话修改流程。 URR 是怎么工作

烟云的计算 4591

RPC原理通俗讲解

平时开发中我们经常会听到RPC,Dubbo、gRPC都属于RPC框架。很多同学刚接触RPC时容易被一堆名词劝退:Stub、动态代理、注册中心、序列化、负载均衡……本文先从RPC最本源的标准Stub模型讲起,再延伸到微服务里带注册中心、负载均衡的工程化架构,结合两张流程图,用大白话把RPC完整调用流程讲清楚。RPC(远程过程调用),目标就是让开发者像调用本地方法一样,调用另一台服务器上的远程方法,底层自动帮我们屏蔽网络通信、寻址、序列化等复杂细节。

weixin_68315058的博客 109

ABAP CDS View 从入门到精通教程目录:ABAP CDS View 在 SAP 技术体系中的重要地位

学习 ABAP CDS View 的开发技术,体会其背后的设计理念,也就掌握了 SAP S/4HANA 底层数据模型的设计精髓。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4777

C++ RPC 技术原理:从一次调用到百万连接的工程实现

本文深入剖析C++ RPC技术的底层原理,从一次远程调用的字节级流程出发,系统拆解序列化、帧协议、粘包处理、多路复用与可靠性保障等核心工程问题。强调真实约束下的设计取舍:字节序统一、零拷贝缓冲、增量解码、流控与版本兼容性。指出“百万连接”是工程目标而非指标,需结合内存、文件描述符与内核参数实测验证。框架差异本质在于如何在不可靠网络上模拟同步可靠调用,涵盖协议、传输、调用模型、可靠性、治理与可观测性六大维度,揭示高性能RPC的实现逻辑与陷阱规避。

liulilittle的博客 616

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

MCP本地服务集成避坑:从Stdio管道僵死到双向JSON-RPC稳健通信

本文剖析MCP服务端因调试日志污染Stdio管道导致客户端挂起的根因,指出console.log等非结构化输出会破坏JSON-RPC协议解析,引发通信僵死。提出双通道隔离方案:将业务通信严格限定于stdout,所有日志分流至stderr,并强制单行原子化传输与缓冲刷新。实践证明该架构可彻底消除解析崩溃与延迟问题,实现零延迟、高可靠的本地智能体通信,是MCP插件工程化的必选项。

艺杯羹的博客 500

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Kubernetes权威指南——Kubernetes集群管理(三)

kubectl drain操作将遵循PodDisruptionBudget的设定,如果在该节点上运行了属于同一服务的多个Pod,则为了保证最少存活数量,系统将确保每终止一个Pod后,一定会在另一台健康的Node上启动新的Pod,再继续终止下一个Pod。一旦出现资源紧缺的迹象,kubelet就会主动终止一个或多个Pod的运行,以回收紧缺的资源。通过kubectl get pods命令查看Pod列表,会发现Pod的数量虽然没有发生变化,但是指定的Pod已经消失,取而代之的是一个新的Pod。

吴声子夜歌的博客 272

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【AI大模型】MCP 模型上下文协议:客户端-服务器架构、JSON-RPC 消息与能力协商、工具发现与调用链路、与函数调用的分工

MCP(模型上下文协议)是Anthropic提出的统一标准,解决AI应用对接外部服务的集成难题。采用客户端-服务器架构,通过JSON-RPC 2.0实现消息交互,分层设计数据层与传输层,支持本地(stdio)与远程(HTTP)通信。核心机制包括能力协商、工具动态发现、调用链路管理,明确区分模型与函数调用的职责:模型负责生成意图,服务器执行真实操作。该协议将集成复杂度从M×N降至M+N,提升可扩展性与复用性。

分享 AI 时代程序员的进阶之路:大模型应用、AI 编程工具实战,同时沉淀 C / Linux 底层技术笔记。与君共赴,万里征途。 361

【计算机网络篇|第二篇】深度解析TCP三次握手

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它在通信双方之间建立一条逻辑连接,保证数据按序到达、不丢失、不重复,并提供流量控制和拥塞控制能力。HTTP、FTP、SSH 等大量应用层协议都构建在 TCP 之上。由于 TCP 是面向连接的协议,通信双方在传输数据之前必须先建立连接,而建立连接的过程就是著名的「三次握手」。

wuzhihua66的博客 508

计算机网络篇19:传输层——套接字在内核的对象链,从 fd 到 tcp_sock 的四层嵌套

fd 是下标,是房间;钩住 socket,网络挂进文件体系,read/write 走统一入口。

2502_94387000的博客 532

【计算机网络篇|第七篇】TCP为什么需要四次挥手

TCP 需要四次挥手,本质上是全双工协议下两个方向必须独立关闭的必然结果:一方发 FIN 表示自己不再发送,另一方先 ACK 确认,等自己的数据发完后再发 FIN,最后再被 ACK 确认。理解这一点,也就能理解半关闭状态、CLOSE_WAIT 堆积和 TIME_WAIT 存在的意义。

wuzhihua66的博客 488

【计算机网络】断点续传是怎么做到的:从 Range 请求到分片上传的完整机制

断点续传在下载侧靠的是 HTTP 现成的 Range 协议,Content-Range 保证偏移对得上,If-Range 防止文件变更导致的错误拼接;上传侧没有标准,需要自己设计 init/part/complete 三段式交互,核心是让服务端记住“哪些块已经收下”,从而把失败粒度从整个文件降到单个分片。 这套机制可以迁移到任何长耗时操作的设计上。判断方法很简单:先问失败粒度是多少。如果一次操作失败就得从头再来,那它迟早会在生产环境里出问题——传输、批量导入、数据迁移、长事务,都是同一个道理。把大操作切成

2503_94545876的博客 539

第15篇:UDP 深度解析--为什么 HTTP3 要抛弃 TCP?(附 Wireshark 实战抓包)

本文系统解析UDP与QUIC的核心原理与应用场景。UDP以极简无连接、不可靠传输为特点,适用于DNS、直播等对延迟敏感的场景;而QUIC在UDP基础上自建可靠传输,实现0-RTT握手、多路复用、连接迁移与强制加密,彻底解决TCP队头阻塞与协议僵化问题,成为HTTP/3基石。通过实验与抓包验证,深入揭示其底层机制,展现从传统网络向智能算网演进的关键路径。

cyf31的专栏 368

从零入门计算机网络系列(十八):TCP连接管理详解——从三次握手与四次挥手到TIME_WAIT机制

本文围绕TCP连接建立、关闭与状态管理展开,解释三次握手如何确认双方收发能力,以及SYN与ACK如何建立连接。接着分析四次挥手、半关闭状态及ACK与FIN合并发送的条件,结合CLOSE_WAIT说明未及时关闭连接带来的资源占用,并介绍shutdown接口的作用。针对服务器重启后的端口绑定问题,讲解TIME_WAIT、2MSL等待与SO_REUSEADDR的适用边界,分析历史报文干扰与随机初始序列号的作用。最后梳理客户端和服务端的TCP状态转换,理解连接管理底层机制与常见故障。

沫漓的博客 222

使用官方的 Echo例程lwip--tcp--udp--跑通测试--deepseek

跑通官方的 Echo Server 例子,已跑通,可是我一点不知道内部发生了啥;恭喜你!从你的截图来看,。Ping 通了,串口打印出了 IP 地址,网络调试助手也成功收到了回显(),这说明你的 Zynq 硬件、网络物理链路、lwIP 协议栈底层机制。你觉得“不知道内部发生了啥”,这太正常了。官方的 Echo 例子把很多底层的初始化封装成了几个函数,小白一开始确实容易“知其然而不知其所以然”。下面我先用大白话帮你把“内部发生了啥”理清楚,然后手把手带你写一个。

AlibabaApple的博客 238

Linux网络编程:UDP网络协议

UDP(User Datagram Protocol,用户数据报协议)是传输层的一种无连接协议,定义在 RFC 768 中,全文只有三页,是 TCP/IP 协议族中最简单的协议之一。它的核心设计哲学是:只做最少的事,UDP 只负责把应用层交下来的数据封装成数据报,加上端口号后交给网络层发送,不保证送达、不保证顺序、不保证不重复,也不做流量控制和拥塞控制。所以需要注意udp是用户数据报协议数据报1.数据与数据之间有边界2.发送和接收的次数要对应3.没有写阻塞。发送太快,会导致数据丢失。

qianrushixinshou的博客 386

基于springboot+vue+uniapp的羽毛球预约小程序(Websocket智能沟通、Echarts数据分析、会员闭环管理、灵活运营规则、全流程预约)

本系统基于B/S架构,采用前后端分离设计,集成微信小程序与管理后台,实现多角色权限管控。核心亮点包括:全流程可视化预约、灵活运营规则配置、会员闭环管理(含余额、充值、退款)、ECharts多维度数据分析及WebSocket智能客服。支持语音、图片沟通,提升服务效率。系统覆盖用户、工作人员、管理员全链路功能,实现场馆资源高效管理与用户体验优化。

paopaokaka_luck的博客 229
上一篇: 降本增效: 蚂蚁在 Sidecarless 的探索和实践
下一篇: SOFA Weekly|Tongsuo 8.3.2 版本发布、C 位大咖说、本周 Contributor & QA
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值