触类旁通()

目的:

  • 自己所了解的东西太过于少,太太少了,再深入学习(看书)一个东西同时,我想先通过广泛阅读好的文章来去扩宽我对计算机知识的了解,就弄了个这个博客去搞。
  • 记录下来,很多好的文章再想起来可能就容易忘记,我会贴上链接,并且如果可以会用自己的话去概括一下我了解到的部分新东西,不在于通透,在于大量。

准备分成三个部分,一个是文章,一个是个人博主推荐,一个是书,不过主要是文章了,博主和书太少了。

文章

转发技术风雨三十年,你经历过……

TCP那些事

  • 对于SYN FLOOD,不能先使用tcp_syncookies,cookies解决,而应该先设置tcp_synack_retries减少重传次数,tcp_max_syn_backlog增大连接数,tcp_abort_on_overflow处理不过来就丢掉。
  • Selective Acknowledgment:有个SACK和D(Duplicate)-SACK,前者表示我缺少那些范围的包,后者表示重复收到了某些范围的包。但是也是有缺点的。对于SACK也是有缺点的,给客户端发送大量已经收到过的SACK,欺骗客户端没有收到,那么客户端也会发送。

二层网络三层网络理解

sriov

网卡ringbufer

virtio协议1.0 — 网络设备

dpdk的vhost研究

C++异常

大概原理:https://zhuanlan.zhihu.com/p/406894769

虽然一搜网上都说多用异常,但是听了个同事的分享,一些公司比如google,明确禁止使用异常,为什么呢?

这里有几个归纳非常简单的:https://zhuanlan.zhihu.com/p/315789294

  • 我印象里一个是性能,因为throw时候,是开了新的内存,代码的紧凑性很可能被破坏。
  • 另一个是发生异常时有两次遍历,一次是遍历所有的栈,如果有捕捉到的异常,进入第二个循环,一直回退调用栈clean up。不过这个我觉得没有问题,貌似出现异常就直接挂了,都挂了还担心个啥这一点耗时。
  • 一个项目里,可能有go c++ python c rust,那么如何异常如何可以运行呢?比如一个python函数调用了c函数。通过了一个LSDA(language specific data area) 的东西,就相当于每个编译器提供一个解析的东西,但是有个统一的格式,数据位置和方法本身都是编译起自己决定的。
  • C++11里面有个noexcept 关键字
  • -fno-exceptions 编译选项
  • -fno-asynchronous-unwind-tables 编译选项

博主

书籍PDF

《Clean Code》

————————

目的:

  • 自己所了解的东西太过于少,太太少了,再深入学习(看书)一个东西同时,我想先通过广泛阅读好的文章来去扩宽我对计算机知识的了解,就弄了个这个博客去搞。
  • 记录下来,很多好的文章再想起来可能就容易忘记,我会贴上链接,并且如果可以会用自己的话去概括一下我了解到的部分新东西,不在于通透,在于大量。

准备分成三个部分,一个是文章,一个是个人博主推荐,一个是书,不过主要是文章了,博主和书太少了。

文章

转发技术风雨三十年,你经历过……

TCP那些事

  • 对于SYN FLOOD,不能先使用tcp_syncookies,cookies解决,而应该先设置tcp_synack_retries减少重传次数,tcp_max_syn_backlog增大连接数,tcp_abort_on_overflow处理不过来就丢掉。
  • Selective Acknowledgment:有个SACK和D(Duplicate)-SACK,前者表示我缺少那些范围的包,后者表示重复收到了某些范围的包。但是也是有缺点的。对于SACK也是有缺点的,给客户端发送大量已经收到过的SACK,欺骗客户端没有收到,那么客户端也会发送。

二层网络三层网络理解

sriov

网卡ringbufer

virtio协议1.0 — 网络设备

dpdk的vhost研究

C++异常

大概原理:https://zhuanlan.zhihu.com/p/406894769

虽然一搜网上都说多用异常,但是听了个同事的分享,一些公司比如google,明确禁止使用异常,为什么呢?

这里有几个归纳非常简单的:https://zhuanlan.zhihu.com/p/315789294

  • 我印象里一个是性能,因为throw时候,是开了新的内存,代码的紧凑性很可能被破坏。
  • 另一个是发生异常时有两次遍历,一次是遍历所有的栈,如果有捕捉到的异常,进入第二个循环,一直回退调用栈clean up。不过这个我觉得没有问题,貌似出现异常就直接挂了,都挂了还担心个啥这一点耗时。
  • 一个项目里,可能有go c++ python c rust,那么如何异常如何可以运行呢?比如一个python函数调用了c函数。通过了一个LSDA(language specific data area) 的东西,就相当于每个编译器提供一个解析的东西,但是有个统一的格式,数据位置和方法本身都是编译起自己决定的。
  • C++11里面有个noexcept 关键字
  • -fno-exceptions 编译选项
  • -fno-asynchronous-unwind-tables 编译选项

博主

书籍PDF

《Clean Code》