
网络杂谈
csdn_idiot
希望这辈子能成为一名精通c++、精通网络协议栈、精通音视频的人
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux常用命令总结
1.查询系统版本(a)centos: cat /etc/redhat-release (b) ubuntu: cat /etc/issue2.查询内核版本(a)centos: uname -a /uname -r (b) ubuntu: uname -a /uname -r3.查询内存、硬盘信息、指定目录大小、CPU(a)centos: free -m / df -h / du -sh /cat /proc/cpuinfo| grep "physical ...原创 2021-05-31 10:38:44 · 166 阅读 · 0 评论 -
一字节内的位序(bit)大端小端分析
相信字节序、大端、小端的概念相关资料很多,大家都比较清楚了。这里说明下一字节内部位序(bit)的概念。 在计算机中底层一个存储单元是字节,因此你的指令寻址是不可能找到一字节内部的bit的,是无法指令寻址的。但是在网络中传输是按位(bit)来传输的,在网络通信中位序(bit)的概念显然还是存在的。 TCP/IP网络通信时,位序对于上层应用都是透明的,但是数据到网卡那一层时,网卡会统一转换成小端位序,即低有效位在前的顺序发送,而接收端的网卡也会自动将接收到的位序转换成所在主机的位序(小端机...原创 2020-06-09 13:09:40 · 2386 阅读 · 0 评论 -
UDP写缓冲区(发送缓冲区)分析
最近,碰到UDP是否有写缓冲区的疑问,对于应用,如下图linux手册中有设置UDP发送缓冲区相关属性,也明确提到了send buffer的概念: 那这是否意味着UDP是有发送缓冲区的吗?我们再看一下《UNIX Network Programming》书中所述,这本书的作者权威性我就不多说了吧,在国内高校此书都是当做教材使用的。书中有下面两幅图:左边是TCP发送过程协议栈简化图,右边是UDP的。UDP中的send buffer是用虚线框圈起来的,具体的叙述我直接引用书中原文: ...原创 2020-06-09 10:04:49 · 4382 阅读 · 1 评论 -
java socket异常java.net.SocketException
最近看到java socket,在连接已关闭下,调用read或write会报java.net.SocketException异常,对这些异常产生原因我进行了一下详细理解。 首先,得理解下连接关闭要分为两种情况:有序释放连接和异常终止。 有序释放连接从TCP传输层看理解为两个阶段:A决定停止向B发数据,于是A主动发送fin信息给B,B的TCP协议栈收完fin之前A发来的所有数据后,会收到fin信息,于是B就知道A之后没有数据会再过来了,一但B端读取完fin信息之前的所有数据,B再调用read读...原创 2020-06-08 16:03:07 · 3615 阅读 · 0 评论 -
IO、NIO、多路复用select\poll\epoll底层原理
最近偶尔会看到linux下IO多路复用的知识,就深入理解了一下,下面的文章讲的很清楚了,不再重复总结。原文链接:https://segmentfault.com/a/1190000003063859 这里额外说明下epoll的底层数据结构:epoll_create方法会创建eventpoll结构体:struct eventpoll{ .... /*红黑树根节点,存储所有通过epoll_ctl添加到epoll中的事件*/ struct rb_root rb...原创 2020-05-30 16:36:08 · 342 阅读 · 0 评论 -
理解产生TIME_WAIT原因和SO_REUSEADDR设置(TCP)
最近在搞nginx源码,学习过程中经常会看到TIME_WAIT这个词汇,不禁想起以前搞netty异步服务器的时候遇到过涉及TIME_WAIT的神奇现象。这么有趣的东西,我就停下来总结一下吧。 先说说TIME_WAIT是啥?不得不直接抛TCP连接三次握手和四次挥手图了,具体不详说了,烂大街的资料~。...原创 2020-05-28 17:35:14 · 1165 阅读 · 0 评论