![](https://img-blog.csdnimg.cn/29e168c5187d4dcc931e5e1d4ecc5774.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
计算机网络
文章平均质量分 75
net
寅鸷
游戏服务器开发,擅长 c++,golang,lua,python,k8s,docker,redis,mysql,mongodb
展开
-
KCP原理与源码解析
KCP是⼀个快速可靠协议,能以⽐TCP浪费10%-20%的带宽的代价,换取平均延迟降低30%-40%,且最⼤延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使⽤者⾃⼰定义下层数据包的发送⽅式,以callback的⽅式提供给KCP。连时钟都需要外部传递进来,内部不会有任何⼀次系统调⽤。TCP是为流量设计的(每秒内可以传输多少KB的数据),讲究的是充分利⽤带宽。TCP信道是⼀条流速很慢,但每秒流量很⼤的⼤运河,⽽KCP是⽔流湍急的⼩激流。RTO翻倍vs不翻倍。...原创 2022-07-24 14:06:50 · 1132 阅读 · 0 评论 -
TCP和UDP详解(非常详细)
在TCP的协议头中,没有如同UDP一样的"报文长度"这样的字段,但是有一个序号这样的字段。接收端处理数据的速度是有限的,如果发送端发的太快,导致接收端的缓冲区被装满,这个时候如果发送端继续发送,就会造成丢包,然后引起丢包重传等等一系列连锁反应。虽然TCP有了滑动窗口这个大杀器能够高效可靠的发送大量的数据,但是如果在刚开始阶段就发送大量的数据,仍然可能引发问题,因为网络上有很多的计算机,可能当前的网络状态就已经比较拥堵,在不清楚当前网络状态下,贸然发送大量的数据是很有可能引起雪上加霜的,造成网络更加堵塞。..转载 2022-07-24 10:59:22 · 8801 阅读 · 2 评论 -
socket:read: Connection reset by peer
今天线上服务器报错 Connection reset by peer ,为了一探究竟,所以来复现一下当时的场景。server 伪代码client伪代码具体代码有不同实现方式,但是过程都是上面的形式,我这里使用lua调用底层c++。serverclient服务器先开起来,然后客户端连接上去,在服务器调用完send之后,立刻把server进程杀掉。这个时候执行send把数据发送到tcp待发送缓冲区中,接下来client执行 recv方法的时候就会报错 Connection reset by pe原创 2022-07-07 19:59:54 · 5487 阅读 · 0 评论 -
linux - #!/usr/bin/env
Description在linux的一些脚本,需在开头一行指定脚本的解释程序。#!/usr/bin/env bash #lends you some flexibility on different systems#!/usr/bin/bash #gives you explicit control on a given sy......原创 2021-06-22 10:48:00 · 1458 阅读 · 0 评论 -
TCP学习
摘抄自《TCP/IP详解卷一》 T C P通过下列方式来提供可靠性:• 应用数据被分割成T C P认为最适合发送的数据块。这和 U D P完全不同,应用程序产生的数据报长度将保持不变。 由 T C P传递给I P的信息单位称为报文段或段( s e g m e n t)。• 超时重传。当T C P发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不......原创 2021-08-25 11:39:00 · 113 阅读 · 0 评论 -
18张图带你了解衡量网络性能的四大指标:带宽、时延、抖动、丢包
转载用于收藏学习作者:网络工程师笔记链接:https://zhuanlan.zhihu.com/p/403614008来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。今天给大家讲讲衡量网络性能的四大指标:带宽、时延、抖动、丢包。如何客户需要我们去评估一个网络的性能,我们就可以从这四方面去进行评估。一. 带宽1、带宽概念:带宽在百度百科中定义:在......原创 2021-08-29 16:25:00 · 1928 阅读 · 0 评论 -
经受时延的确认(Delay ACK)
转发用于收藏学习:https://blog.csdn.net/zx714311728/article/details/53997508/通常TCP在接收到数据时并不立即发送ACK,相反,它推迟发送,以便将ACK与需要沿该方向发送的数据一起发送(有时称这种现象为数据捎带ACK),这样做的目的是尽量减少发往网络的报文,以提高传输的效率,节省网络资源。捎带ACK的意思是,当接收端接收到TCP报文段......转载 2021-09-06 11:21:00 · 555 阅读 · 0 评论 -
netstat Recv-Q Send-Q
可以使用 watch命令实时监控网络状态Recv-Q 网络接收队列Established: The count of bytes not copied by the user program connected to this socket. Established 状态在tcp协议下Recv-Q表示当前tcp缓冲区中接收到的数据还没有被应用层取走。Listening: Since Kernel 2.6.18 this column contains the current syn back原创 2022-06-30 17:29:58 · 1149 阅读 · 0 评论 -
RTO超时重传机制
原文链接:https://www.cnblogs.com/lshs/p/6038535.htmlTCP中有一个重要的过程就是决定何时进行超时重传,也就是RTO的计算更新。由于网络状况可能会受到路由变化、网络负载等因素的影响,因此RTO也必须跟随网络状况动态更新。如果TCP过早重传,则可能会向网络中注入很多重复报文,如果过晚重传,则在丢包时候则会影响滑窗前行可能会降低网络利用率。因为TCP在接收到数据后会发送累计的ACK number,因此TCP发送某个系列号的报文后,在接收到覆盖此系列号的ACK报文的时候转载 2022-01-05 23:21:32 · 603 阅读 · 0 评论