网络设备驱动学习

网络设备驱动学习

概述:本周主要学习了网络驱动层面的一些知识,最主要的学习目标是基本弄清包的发送与接收的过程,这不仅涉及到了高层的协议与机制,底层的驱动与硬件,更要理解数据包的封装与包格式。我们主要是围绕着设备驱动开发的第十六章来学习这些内容。

问题:对十六章进行细化后发现主要可以归结成对几个问题的把握,包括数据包的承载问题,加包头与去包头的实现,网络的框架结构,网络设备的注册与注销,数据的发送与接收流程。

正文:

一、数据包的承载问题

这个问题落到了结构体sk_buff上,也就是套接字缓冲区,根本上来讲就是内存中存放传输数据包的一块内存区域。此结构体流动于各协议层之间,发送和接收时,用于添加协议头与剥去协议头,这两个操作就是通过sk_buff里的四个指针域来实现的。下面来简述这个关键结构体的一些成员:

(1) .sk_buff中的各层协议头:

采用了联合体来描述各层的协议头,分别描述了传输层h、网络层nh和链路层mac中的各个协议头,其中包括的成员主要就是各层的协议头,还有指向所在层头部的指针*raw

(2) .sk_buff4个数据指针:

head/end:套接字缓冲区的起始地址/终止地址

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值