自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 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 112

原创 一字节内的位序(bit)大端小端分析

相信字节序、大端、小端的概念相关资料很多,大家都比较清楚了。这里说明下一字节内部位序(bit)的概念。 在计算机中底层一个存储单元是字节,因此你的指令寻址是不可能找到一字节内部的bit的,是无法指令寻址的。但是在网络中传输是按位(bit)来传输的,在网络通信中位序(bit)的概念显然还是存在的。 TCP/IP网络通信时,位序对于上层应用都是透明的,但是数据到网卡那一层时,网卡会统一转换成小端位序,即低有效位在前的顺序发送,而接收端的网卡也会自动将接收到的位序转换成所在主机的位序(小端机...

2020-06-09 13:09:40 2096

原创 UDP写缓冲区(发送缓冲区)分析

最近,碰到UDP是否有写缓冲区的疑问,对于应用,如下图linux手册中有设置UDP发送缓冲区相关属性,也明确提到了send buffer的概念: 那这是否意味着UDP是有发送缓冲区的吗?我们再看一下《UNIX Network Programming》书中所述,这本书的作者权威性我就不多说了吧,在国内高校此书都是当做教材使用的。书中有下面两幅图:左边是TCP发送过程协议栈简化图,右边是UDP的。UDP中的send buffer是用虚线框圈起来的,具体的叙述我直接引用书中原文: ...

2020-06-09 10:04:49 3931

原创 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 3422

原创 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 306

原创 理解产生TIME_WAIT原因和SO_REUSEADDR设置(TCP)

最近在搞nginx源码,学习过程中经常会看到TIME_WAIT这个词汇,不禁想起以前搞netty异步服务器的时候遇到过涉及TIME_WAIT的神奇现象。这么有趣的东西,我就停下来总结一下吧。 先说说TIME_WAIT是啥?不得不直接抛TCP连接三次握手和四次挥手图了,具体不详说了,烂大街的资料~。...

2020-05-28 17:35:14 939

原创 chromium构建工具GN的坑:error: [chromium-style]、 exception handling disabled、undefined symbol等

最近用到一个第三方开源项目bcc(https://github.com/iovisor/bcc),由于某些原因,需要采用chromium的GN构建系统,将bcc一起构建进quic项目中来。阅读完谷歌官方的GN文档后,如下是重要的配置项:executable("my_project") { sources = [#源码.c和.cc] include_dirs = [#头文件] lib_dirs = [ #增加链接时库的搜...

2020-05-26 17:20:59 2936 4

原创 chromium(linux环境)指定版本下载和编译教程

使用gquic,需要用到chromium的net/third_party/quiche包,因此研究了下chromium编译的流程。chromium编译过程遇到了不少坑,因此总结下步骤:前提:由于某些原因,编译chromium的网络是个比较大的问题:你可以选个好的vpn,一个带history的chromium大概30GB吧(vpn拉这么大的东西,断连是常事,做好心理准备);当然你也可以搞个国外的服务器,做拉取编译(这里网络不成问题了),再通过...

2020-05-21 09:06:23 4427

原创 UTF-16理解学习(java)

巩固java知识,java核心卷对于UTF-16的论述,让我的理解有点模糊。因此查了下UTF-16的wiki文档,理解了下。 总结一下:Unicode编码从U+0000到U+10FFFF,共有1,112,064个码位映射字符。Unicode的编码空间划分17个平面,每个平面包含65,536个码位。17个平面的码位可表示为从U+xx0000到U+xxFFFF。第一个平面称为基本多语言平面(Basic Multilingual Plane,BMP),或称第零平面(Plane 0),其他平面称为辅助平...

2020-05-13 12:16:31 702

原创 我的博客之旅启程

硕士毕业后,工作也近2年时间了,工作是项目导向,学的东西算比较杂的,虽然也都涉及到源码层的东西,但自己想要深入下去,又去转战下个项目,而自己的记性也越来越差,容易遗忘。回顾一下,发现2年来,虽然也做了不少事,但自己的成长速度还是过于慢了。 也许是时候做一些改变,把自己不写博客,不自发写总结的命给革了。 以此开篇,开启我的博客之路吧!Helloworld ! ...

2020-05-12 15:44:47 231 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除