操作系统基础
文章平均质量分 93
网络相关.tcp/http1/http2/http3/quic/udp/wireshark
搬砖使我快乐!
热爱技术,热爱生活.
展开
-
[操作系统] unix domain socket/uds
1.概念uds(Unix domain socket):当我们的两个进程在不同的机器上时,可以使用tcp/udp通信.但是当两个进程在一个主机上,我们可以使用UDS.IPC 机制本质上是可靠的通讯,而网络协议是为不可靠的通讯设计的。3个特点:Unix域套接口往往比位于同一主机的TCP套接口快出一倍。因为不需要走协议栈,不需要打包拆包、计算校验和、维护序号和应答等,基于文件系统. Unix域套接口可用于在同一主机上的不同进程之间传递描述字。所以可以无损升级. Unix域套接口把客户原创 2020-12-06 12:24:16 · 785 阅读 · 0 评论 -
socket缓冲区/sk_buffer/滑动窗口关系
之前看极客时间对内核缓冲区,socket缓冲区.sk_buffer,着实有些乱,整理了一下午,把这些概念理清,真是顺畅,通透啊!首先,还是感谢极客时间大佬.关于网络协议方面的讲解,还有一些优秀博客(https://www.cnblogs.com/silyvin/p/11996349.html,https://blog.csdn.net/daaikuaichuan/article/details/83061726?utm_source=app)1.socket.read和socket.write意..原创 2020-11-22 12:04:18 · 1518 阅读 · 0 评论 -
[操作系统]Linux 2.4 Packet Filtering HOWTO,iptables,route,包过滤
1.引入举例,从内网访问外网问题:服务器收到的包 源ip是192.168.1.66,他不知道怎么把包返回去.那如果每一台机器都有一个外网地址呢? 也不太现实,没有那么多外网地址.还好有NAT,也就是network address translate.路由器可以在包发往服务器的时候,把包的源ip,从192.168.1.66-->2.22.22.12. 这样,在服务端收到包后,返回回去的时候,可以发给路由器.同时,路由器在收到返回的包后,把目的Ip,2.22.22.12--..原创 2020-12-29 21:05:05 · 317 阅读 · 0 评论 -
Linux内存管理(下)
转载自https://blog.csdn.net/kanghua/article/details/1837876,侵删Linux内存管理(下)物理内存管理(页管理)Linux内核管理物理内存是通过分页机制实现的,它将整个内存划分成无数4k(在i386体系结构中)大小页,从而分配和回收内存的基本单位便是内存页了。利用分页管理有助于灵活分配内存地址,因为分配时不必要求必须有大块的连续内存[1],系统可以东一页、西一页的凑出所需要的内存供进程使用。虽然如此,但是实际上系统使用内存还是倾向于分配连.转载 2020-12-02 20:11:27 · 120 阅读 · 0 评论 -
Linux内存管理(上)
转载https://blog.csdn.net/kanghua/article/details/1837872Linux内存管理(上)摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存地使用方法。力求从外自内、水到渠成地引导网友分析Linux地内存管理与使用。在本章最后我们给出一个内存映射地实例,帮助网友们理解内核内存管理与用户内存管理之间地关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系..转载 2020-12-02 20:07:49 · 87 阅读 · 0 评论 -
从io模型到ppc,tpc,reactor,preactor
nio sendfile 零拷贝1.网络io模型这是我们常见的一张图.1.传统的bio,就是同步阻塞的.当调用socket.read的时候.会阻塞. 知道系统可读/写,当真正去执行读的时候(内核-->用户),还是阻塞.2.非阻塞io,当调用read时,如果不可读,那么直接返回一个标识,告诉你等会再来问.现在不可读嘞.那么好的,你就过一会问一下.当可读时,去调用recvFrom系统调用.不过此时还是阻塞....原创 2020-11-22 15:31:29 · 1173 阅读 · 0 评论 -
Tcp参数 tcp_nodelay tcp_quickAck
1.Nagle算法例子:使用telnet的时候,可能发送的字节只有1,但是在网络传输中还是要加上tcp header,ip header(20B)如下,为了发送1个字节,要多加上40字节.小报文因此为了避免发送小数据包.出现了nagle算法.算法定义:任意时刻,最多只能有一个未被确认的小的分组,在该分组的ack收到前,会收集其他的小分组,然后收到ack后,一起发过去.伪代码:if thereisnew datatosend if the window...原创 2020-11-22 12:11:29 · 1022 阅读 · 0 评论 -
从head of line到http3/quic
1.head of line 队头阻塞什么是队头阻塞呢?就是第一个人的问题影响了后面的人.一堆人排队过桥,第一个卡住了,那么后面的人谁也别想过去.tcp:tcp协议为了保证帧的顺序行,每个帧都有编号.接受者会按照编号对数据进行处理.1.如果2,3,4都传输过去了,但是1没有传输过去,那么2,3,4还是不可读的.同时1234也不能从写缓存中滑走.2.由于读写的socket缓冲区是有限的,会导致用户不可读写.(注意:用户进程写入成功是指,用户将数据从用户空间拷...原创 2020-11-22 12:10:15 · 121 阅读 · 0 评论