随笔分类 -  TCP

TCP
摘要:前言 平滑重启主要考虑两点: 如何做到不中断接收新请求 老的请求不能被中断 实现思路 主要思路就是要解决新老进程切换过程中listener文件描述符和现有连接描述符的迁移,之前有一篇文章讲了如何通过unixSocket来传递文件描述符,这里也会用到这个技术, 具体的迁移流程如下: 1、老进程在启动时 阅读全文
posted @ 2021-09-20 11:46 独揽风月 阅读(250) 评论(0) 推荐(0) 编辑
摘要:背景: 预发布环境在拉取代码时,页面报Curl Failed :Connection reset by peer ,php后台报connection timeout是php代码部分调用拉取接口时报出来的,通过netstat查看该接口目前的tcp连接状态 可以看到服务端的连接一直处于close_wai 阅读全文
posted @ 2021-09-19 16:07 独揽风月 阅读(211) 评论(0) 推荐(0) 编辑
摘要:前言 TCP代理的使用场景有很多,比如Nginx的http代理,本质上也是TCP的转发,微服务网格istio的Envoy也是基于这种理念来实现的。 之所以写这个demo,是为了可以很方便地调试上下游服务在通信过程中到底传递了什么数据,对各种协议的通信方式可以很快的掌握它们原理,比如rpc通信、htt 阅读全文
posted @ 2021-09-18 10:31 独揽风月 阅读(1910) 评论(0) 推荐(0) 编辑
摘要:1.什么是粘包? “粘包”这个说法已经被诟病很久了,既然坊间流传这个说法咱们就沿用吧,关于这个问题比较准确的解释可以参考下面几点: TCP是流传输协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议 TCP没有包的概念,它只负责传输字节序列,UDP是面向数据报的协议,所以不存在拆包粘包问题 应 阅读全文
posted @ 2021-09-17 11:03 独揽风月 阅读(306) 评论(0) 推荐(0) 编辑
摘要:TCP连接可以分为三次握手和四次挥手,握手在建立数据传输前,挥手建立在数据传输完成后。 TCP三次握手 (1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。 (2)第二次握手:Ser 阅读全文
posted @ 2021-09-16 15:21 独揽风月 阅读(128) 评论(0) 推荐(0) 编辑
摘要:应用场景 tcp连接迁移,比如应用程序要实现平滑重启,就需要将现有的tcp连接迁移到新进程。 先介绍下实现过程,后面的文章会具体介绍这种场景的实现方式。 临时文件tmp.txt的内容为“hello world”。 客户端与服务端建立unix连接后,通过UnixRights将一组打开的文件描述符编码为 阅读全文
posted @ 2021-09-16 11:45 独揽风月 阅读(357) 评论(0) 推荐(0) 编辑
摘要:先上结论 Read方法返回EOF错误,表示本端感知到对端已经关闭连接(本端已接收到对端发送的FIN)。此后如果本端不调用Close方法,只释放本端的连接对象,则连接处于非完全关闭状态(CLOSE_WAIT)。即文件描述符发生泄漏。 Write方法返回broken pipe错误,表示本端感知到对端已经 阅读全文
posted @ 2021-09-15 21:50 独揽风月 阅读(1437) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示