当前位置: 首页 > news >正文

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

 

 

 

 

 

http://www.lqws.cn/news/453169.html

相关文章:

  • PROFIBUS DP 转 EtherCAT 网关:冶金自动化高效协同的基石
  • 深入剖析HashMap与LinkedHashMap应用
  • 前端页面Javascript数组
  • python之使用cv2.matchTemplate识别缺口滑块验证码---实现最佳图像匹配
  • 主流测距技术深度解析:激光雷达、UWB、微波与视觉方案的全面对比
  • 今日行情明日机会——20250620
  • 响应式数据可视化大屏解决方案,重构工业交互体验
  • 【深度学习基础与概念】笔记(一)深度学习革命
  • 【Golang】go build 命令选项-ldflags用法
  • Spring @ModelAttribute注解全解析:数据绑定与模型管理
  • ceph 通过 crush rule 修改故障域
  • DataWhale-零基础络网爬虫技术(二er数据的解析与提取)
  • LeetCode热题100—— 169. 多数元素
  • leetcode 291. Word Pattern II和290. Word Pattern
  • 解锁数据宝藏:数据挖掘之数据预处理全解析
  • 在Django中把Base64字符串保存为ImageField
  • 思辨场域丨AR技术如何重塑未来学术会议体验?
  • LVS vs Nginx 负载均衡对比:全面解析
  • leetcode-2966.划分数组并满足最大差限制
  • 多相机三维人脸扫描仪:超写实数字人模型制作“加速器”
  • Android Java语言转Kotlin语言学习指导实用攻略
  • 单片机3种按键程序消抖方法
  • DB-GPT启动提示please install by running `pip install cryptography`
  • 函数指针的回调函数与函数跳转执行
  • 国产芯片能在服务器领域替代Intel(经验总结贴)
  • Git——分布式版本控制工具
  • 【MySQL篇07】:redo log日志与buffer pool详解
  • Vue2 ElementUI Tree 拖动目标节点能否被放置及获取放置位置
  • 内存的代价:如何正确与 WASM 模块传值交互
  • 大内存对电脑性能有哪些提升