茂名网站建设价格,网站开发 功能不会写,app开发定制公司推荐,网站费用标准在 ip_queue_xmit 中#xff0c;也即 IP 层的发送函数里面#xff0c;有三部分逻辑。第一部分#xff0c;选取路由#xff0c;也即我要发送这个包应该从哪个网卡出去。
这件事情主要由 ip_route_output_ports 函数完成。接下来的调用链为#xff1a;ip_route_output_port…在 ip_queue_xmit 中也即 IP 层的发送函数里面有三部分逻辑。第一部分选取路由也即我要发送这个包应该从哪个网卡出去。
这件事情主要由 ip_route_output_ports 函数完成。接下来的调用链为ip_route_output_ports-ip_route_output_flow-__ip_route_output_key-ip_route_output_key_hash-ip_route_output_key_hash_rcu。
ip_route_output_key_hash_rcu 先会调用 fib_lookup。FIB 全称是 Forwarding Information Base转发信息表。其实就是咱们常说的路由表。
一个著名的实现就是内核模块 ip_tables。在用户态还有一个客户端程序 iptables用命令行来干预内核的规则。 iptables 有表和链的概念最终要的是两个表。filter 表处理过滤功能主要包含以下三个链。
INPUT 链过滤所有目标地址是本机的数据包FORWARD 链过滤所有路过本机的数据包OUTPUT 链过滤所有由本机产生的数据包
nat 表主要处理网络地址转换可以进行 SNAT改变源地址、DNAT改变目标地址包含以下三个链。
PREROUTING 链可以在数据包到达时改变目标地址OUTPUT 链可以改变本地产生的数据包的目标地址POSTROUTING 链在数据包离开时改变数据包的源地址 在这里网络包马上就要发出去了因而是 NF_INET_LOCAL_OUT也即 ouput 链如果用户曾经在 iptables 里面写过某些规则就会在 nf_hook 这个函数里面起作用。 此文章为11月Day24学习笔记内容来源于极客时间《趣谈Linux操作系统》推荐该课程。