18 天前 / heartEngine
首发于老邓头的个人空间写文章如何用nodejs编写TCP长连接应用邓若奇35 人赞了该文章最近在整理近一两年来自己写的一些nodejs模块,其中一个是用于编写TCP长连接应用的模块。目前它在线上已经稳定跑了1年多,由于底层是通用的,不包含任何上层逻辑,于是就开源出来了,供大家一起学习和交流。这篇文章就顺便写一写这方面的东西,算是个总结。 连接的“长短”你可能有疑问,为什么要做TCP长连接应用?我觉得是看场景的,在回答这个问题之前,先解释下什么是“长连接”,什么是“短连接”。以常见的HTTP请求为例,客户端(浏览器)向服务端(网站)请......
26 天前 / LiveVideoStack
TCP协议是互联网应用最广泛的数据传输协议之一,在过去的40年中改变了世界,但也成为了新的技术瓶颈。Cascade Range Networks, Inc CTO/联合创始人 范醒哲在LiveVideoStack线上交流分享中详细解析了TCP面临的困境与可行的解决方案。本文由LiveVideoStack整理而成。 文 / 范醒哲 整理 / LiveVideoStack 直播回放 https://www2.tutormeetplus.com/v2/render/playbackmode=playback&token=9336cda7b1fe4125ab730c818fe1219a 大家好,我是来自Cascade Range Networks的范醒哲,本次我为大家准备的分享主题为“TCP的困境与解决方案”......
39 天前 / 廖君
三次握手的误解与错误类比 (RFC 解读)关于 TCP 三次握手几乎是应届毕业生面试常见的问题了,然而网上还很多比比皆是的错误,以知乎TCP 为什么是三次握手,而不是两次或四次?上的热门答案为例子,第一个 3.6K 次赞同的类比就是错误的: 三次握手: “喂,你听得到吗?” “我听得到呀,你听得到我吗?” “我能听到你,今天 balabala……” 同样这个 107 次赞同的类比也是错误的: 握手和敬军礼一样,源自「敌我双方互相确认对方手里没有武器、无恶意」的仪式。 (虽然双方互相请求确认需要四步,但由于中间的确认和请求是由同一个人执行......
40 天前 / 黑夜探路人
前言可能很多 Java 程序员对 TCP 的理解只有一个三次握手,四次握手的认识,我觉得这样的原因主要在于 TCP 协议本身稍微有点抽象(相比较于应用层的 HTTP 协议);其次,非框架开发者不太需要接触到 TCP 的一些细节。其实我个人对 TCP 的很多细节也并没有完全理解,这篇文章主要针对微信交流群里有人提出的长连接,心跳的问题,做一个统一的整理。 在 Java 中,使用 TCP 通信,大概率会涉及到 Socket、Netty,本文会借用它们的一些 API 和设置参数来辅助介绍。 长连接与短连接TCP 本身并没有长短连接的区别,长短与否,完全取决于我们怎么用它。......
60 天前 / 懒人yp
2018年上半年,蚂蚁金服决定基于 Istio 订制自己的 ServiceMesh 解决方案,并在6月底正式对外公布了 SOFAMesh。 在 SOFAMesh 的开发过程中,针对遇到的实际问题,我们给出了一套名为 x-protocol 的解决方案,本文将会对这个解决方案进行详细的讲解,本篇为最后一篇。 历史文章: SOFAMesh中的多协议通用解决方案x-protocol介绍系列(1) : DNS通用寻址方案 SOFAMesh中的多协议通用解决方案x-protocol介绍系列(2):快速解码转发 背景在 Istio 和 Envoy 中,对通讯协议的支持,主要体现在 HTTP/1.1 和 HTTP/2 上,这两个是 Istio/Envoy ......
107 天前 / Mr.Accuracy
背景以下数据库上Kubernetes都是研发、测试环境,非生产环境我们研测测试环境的数据库如 Mysql ,redis ,rabbitmq都以容器的方式在我们自研的paas平台上创建;但是当我们把mysql已到k8s上时, 我们经常发现MYSQL 的error日志爆出如下错误: 然后我们的客户端则会经常报Lost Mysql Connection错误, 重试...
111 天前 / hyper0x
作者:Venil Noronha(VMWare开源技术中心工程师,关注Istio、Envoy项目)译者:马若飞原文地址:https://venilnoronha.io/raw-tcp-traffic-shaping-with-istio-1.1.0Istio通过虚拟服务, 目标规则, Gateway等概念提供了复杂的路由机制。Istio 1.0通过加权路由...
152 天前 / 小米运维
本篇文章介绍了几种经典的TCP拥塞控制算法,包括算法原理及各自适用场景。回顾上篇文章:浅谈 redis 延迟 前言 TCP 通过维护一个拥塞窗口来进行拥塞控制,拥塞控制的原则是,只要网络中没有出现拥塞,拥塞窗口的值就可以再增大一些,以便把更多的数据包发送出去,但只要网络出现拥塞,拥塞窗口的值就应该减小一些,以减少注入到网络中的数据包数。 TCP 拥塞控制算...
172 天前 / openio
2013年,慕尼黑 如今相当多的程序员都是“互联网程序员”,按说,应该对互联网的基础协议相当清楚。可惜至少就我的面试经验来看,许多人这方面缺课太多,简单说说TCP/IP协议分层就已经难倒了不少人。至于TCP/IP的“三次握手”,能说上来的人就相当少了,如果再问问“为什么是三次握手”,基本就没人能答上来了。一般的回答都是“这个太难”,或者“毕业太久,这个忘记...
195 天前 / u257810
前言记得前段时间我们生产上的一个网关出现了故障。这个网关逻辑非常简单,就是接收客户端的请求然后解析报文最后发送短信。但这个请求并不是常见的 HTTP ,而是利用 Netty 自定义的协议。有个前提是:网关是需要读取一段完整的报文才能进行后面的逻辑。问题是有天突然发现网关解析报文出错,查看了客户端的发送日志也没发现问题,最后通过日志发现收到了许多不完整的报文,...
235 天前 / 三水哥
TCP三次握手和四次挥手的问题在面试中是最为常见的考点之一。很多读者都知道三次和四次,但是如果问深入一点,他们往往都无法作出准确回答。本篇尝试使用动画来对这个知识点进行讲解,期望读者们可以更加简单地地理解TCP交互的本质。TCP 三次握手TCP 三次握手就好比两个人在街上隔着50米看见了对方,但是因为雾霾等原因不能100%确认,所以要通过招手的方式相互确定对...
272 天前 / 程序猿小卡_casper
内容简介 TCP是TCP/IP协议栈的核心组成之一,对开发者来说,学习、掌握TCP非常重要。本文主要内容包括:什么是TCP,为什么要学习TCP,TCP协议格式,通过实例讲解TCP的生命周期(建立连接、传输数据、断开连接)TCP简介 传输层控制协议(Transport Control Protocol),TCP/IP协议栈的核心之一。位于应用层与网络层之间,提...
276 天前 / richardor
背景只要是网络通信,就必须要考虑网络安全,本文主要阐述的是TCP通信业务有可能遇到的问题和解决办法,http在通信层面的安全与tcp类似,但是业务层面的的安全要考虑的问题就太多了,比如session劫持、sql注入、xss攻击等等,这一块和udp的业务安全后续再单独总结。网络攻击和防御1. 传输层截获、篡改、伪造防御:tls我们谈论网络安全的时候,常常会从如...