目的:

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

 

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

 

文章

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

https://blog.csdn.net/me_blue/article/details/77744493?spm=1001.2014.3001.5502
 

TCP那些事

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

二层网络三层网络理解

 

sriov

pf和vf,phyiscal function – virtual function
 

网卡ringbufer

网络包处理流程这个图非常好:https://www.51cto.com/article/715271.html
 

virtio协议1.0 — 网络设备

很多网卡不支持UFO和ECN的TSO
UFO:和TOS对应,一个tcp一个udp
ECN:拥塞控制的标记:https://zhuanlan.zhihu.com/p/395200230
 

dpdk的vhost研究

 

C++异常

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

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

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

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

博主

 
 

书籍PDF

《Clean Code》

  

 

原文地址:http://www.cnblogs.com/philo-zhou/p/16920697.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性