63 网络交互的过程中目标设备的选择

前言

这里主要是 调研一下 发送网络数据包的过程中 选择网络设备

比如 向本机发送信息, 走的是 lo

向局域网其他主机发送信息, 走无线网卡 或者 有线网卡

基于 linux 的调试

这里主要是基于 ping 192.168.1.2 的调试

skb->dev 的初始化是在

skb->_skb_refdst 初始化实在 skb 初始化的时候

rt->dst 来自于 cork->dst, 如下是 cork->dst 初始化的地方

rt 主要是根据上下文信息 去路由表查询

查找 fib 路由转发表的时候, 路由转发类型是 LOCAL 类型

如果是 LOCAL 路由, 直接使用设备 net->loopback_dev

sock 的来由

socket 是来自于 fd 对应的 file 的 private

上面的过程中的 fd 对应的这个 file->private 是当前是 socket 本身

socket 来自于 socketfs 中创建的当前 fd 对应的 socket_alloc 对象创建时分配的一个 socket

socket_alloc 是在 socket 系统调用的时候分配的一个 socket_alloc 对象 里面包含了一个 socket 对象用于处理当前网络请求

这里是分配空间, 以及初始化

sock->__sk_common->skc_net 来自于 socket 系统调用传入的 net, 为 current->ns_proxy->net_ns

相关推荐
小白跃升坊6 分钟前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
跃渊Yuey25 分钟前
【Linux】线程同步与互斥
linux·笔记
舰长11528 分钟前
linux 实现文件共享的实现方式比较
linux·服务器·网络
zmjjdank1ng42 分钟前
Linux 输出重定向
linux·运维
路由侠内网穿透.44 分钟前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居
VekiSon1 小时前
Linux内核驱动——基础概念与开发环境搭建
linux·运维·服务器·c语言·arm开发
zl_dfq1 小时前
Linux 之 【进程信号】(signal、kill、raise、abort、alarm、Core Dump核心转储机制)
linux
Ankie Wan2 小时前
cgroup(Control Group)是 Linux 内核提供的一种机制,用来“控制、限制、隔离、统计”进程对系统资源的使用。
linux·容器·cgroup·lxc
skywalk81632 小时前
尝试在openi启智社区的dcu环境安装ollama最新版0.15.2(失败)
linux·运维·服务器·ollama
zhengfei6113 小时前
AutoPentestX – Linux 自动化渗透测试和漏洞报告工具
linux·运维·自动化