《深入理解Linux网络》读书笔记4

本文为《深入理解Linux网络》读书笔记第四部分,主要探讨本机网络IO的内核执行流程,服务端listen的原因,半连接队列与全连接队列长度的确定,以及客户端端口复用的条件。分析表明,本机网络IO不依赖网卡,而服务端listen用于设置连接队列。客户端端口可以在确保四元组不同的前提下用于多个连接。
摘要由CSDN通过智能技术生成

《深入理解Linux网络》读书笔记4

本次学习了第五章深入理解本机网络IO和部分第六章深度理解TCP连接建立过程
总结如下:

本机网络IO的内核执行流程?

  • 由图可以得出几个结论:

    • 127.0.0.1本机网络IO需要经过网卡吗?

      不需要,即使拔掉网卡,本机网络还是可以正常使用的

    • 数据包在内核中的走向是啥?和外网发送相比流程上有啥差别?

      • 总的来说,本机网络IO和跨级网络IO比起来,节约了驱动上的一些开销。发送数据不需要进RingBuffer的驱动队列,直接把skb传给接受协议栈(通过软中断)。但是在内核其他组件上,并没有节约。系统调用、协议栈(传输层、网络层等)、设备子系统整个走了一遍。连“驱动”程序都走了(虽然对于回环设备来说,只是一个纯软件虚拟出来的东西)。所以即使是本机网络IO,也不应滥用。

      • 如果想在本机网络IO上绕开协议栈的开销,需要动用eBPF。使用eBPF的sockmap和sk redirect可以达到真正不走协议栈的目的。

    • 访问本机服务时,使用127.0.0.1能比使用本机IP(例如192.168.x.x)更快吗?

      两者并无区别,都是走虚拟的环回设备IO

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值