- 博客(8)
- 资源 (3)
- 收藏
- 关注
原创 突破6千粉丝,成长的路上感谢有你!
2020这不寻常的一年就要结束了,飞哥今天给「开发内功修炼」做一个简单的小结。熟悉我的读者可能知道,飞哥刚开始其实是写知乎的。在知乎上先有的专栏「开发内功修炼」。在知乎上的关注人数很早就...
2020-12-31 19:08:00 142
原创 漫画 | 理解了TCP连接的实现以后,客户端的并发也爆发了!
echo"500065000">/proc/sys/net/ipv4/ip_local_port_range连接1:192.168.1.101 5000 ...
2020-12-23 08:00:00 123
原创 我是怎么样写出开发内功修炼的?秘密都在这里!
经常收到后台读者发过来同样的问题,看完「开发内功修炼」以后觉得写的不错。问:“飞哥你平时是怎么样磨炼自己的技术能力,并写出这些文章的?另外可否帮推荐几本书更系统地学习一下”。今天干脆就写...
2020-12-16 08:11:15 410
原创 漫画 | 一台Linux服务器最多能支撑多少个TCP连接?
困惑很多人的并发问题在网络开发中,我发现有很多同学对一个基础问题始终是没有彻底搞明白。那就是一台服务器最大究竟能支持多少个网络连接?我想我有必要单独发一篇文章来好好说一下这个问题。很多同...
2020-12-07 17:58:00 116
原创 一台机器最多能撑多少个TCP连接? 今天掰扯清楚!
在网络开发中,我发现有很多同学对一个基础问题始终是没有彻底搞明白。那就是一台机器最大究竟能支持多少个网络连接?我想我有必要单独发一篇文章来好好说一下这个问题。很多同学看到这个问题的第一反应是65535。原因是:“听说端口号最多有65535个,那长连接就最多保持65535个了”。是这样的吗?还有的人说是应该受TCP连接里四元组的空间大小限制,这样算起来就是非常非常大的一个数字了。这两个答案都对,也都不对。 其实要想把这个问题搞清楚,最最最关键的地方在于要把TCP连接的两端里的角色分清楚-客户端和服务器端。
2020-12-04 09:22:34 3112 1
原创 聊聊TCP连接耗时的那些事儿
在互联网后端日常开发接口的时候中,不管你使用的是C、Java、PHP还是Golang,都避免不了需要调用mysql、redis等组件来获取数据,可能还需要执行一些rpc远程调用,或者再调用一些其它restful api。 在这些调用的底层,基本都是在使用TCP协议进行传输。这是因为在传输层协议中,TCP协议具备可靠的连接,错误重传,拥塞控制等优点,所以目前应用比UDP更广泛一些。相信你也一定听闻过TCP也存在一些缺点,那就是老生常谈的开销要略大。但是各路技术博客里都在单单说开销大、或者开销小,而少见不给出具
2020-12-04 09:09:34 2016
原创 Linux网络包接收过程的监控与调优
上一篇文章中《图解Linux网络包接收过程》,我们梳理了在Linux系统下一个数据包被接收的整个过程。Linux内核对网络包的接收过程大致可以分为接收到RingBuffer、硬中断处理、ksoftirqd软中断处理几个过程。其中在ksoftirqd软中断处理中,把数据包从RingBuffer中摘下来,送到协议栈的处理,再之后送到用户进程socket的接收队列中。理解了Linux工作原理之后,还有更重要的两件事情。第一是动手监控,会实际查看网络包接收的整体情况。第二是调优,当你的服务器有问题的时候,你能找
2020-12-04 09:06:09 766
原创 图解Linux网络包接收过程
前面和大家分享了我在CPU、内存、磁盘上的一点浅薄的思考。今天开始我们讨论Linux里最重要的一个模块-网络模块。还是按照惯例来,让我们从一段最简单的代码开始思考。为了简单起见,我们用upd来举例,如下:int main(){ int serverSocketFd = socket(AF_INET, SOCK_DGRAM, 0); bind(serverSocketFd, ...); char buff[BUFFSIZE]; int readCount = recvfro
2020-12-04 08:54:18 1037
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人