Linux网络编程(第二版):第16章 Linux内核中网络部分结构以及分布

上传人:努力****83 文档编号:190628793 上传时间:2023-02-28 格式:PPTX 页数:22 大小:522.51KB
返回 下载 相关 举报
Linux网络编程(第二版):第16章 Linux内核中网络部分结构以及分布_第1页
第1页 / 共22页
Linux网络编程(第二版):第16章 Linux内核中网络部分结构以及分布_第2页
第2页 / 共22页
Linux网络编程(第二版):第16章 Linux内核中网络部分结构以及分布_第3页
第3页 / 共22页
点击查看更多>>
资源描述
16.1 概述16.2 软中断CPU报文队列及其处理16.3 socket数据如何在内核中接收和发送16.1.1 代码目录分布16.1.2 内核中网络部分流程简介16.1.3 系统提供修改网络流程点16.1.4 sk_buff结构16.1.5 网络协议数据结构inet_protoswLinux的内核源代码可以从https:/www.kernel.org/网站上下载,本书以Linux-3.9.5版本(可能不是最新版本,读者可以去下载最新的版本)来介绍。源代码组织的另一种表现形式,它映射到Linux代码的3个内核层。各层间在网络输入输出时的层间调用关系。Linux内核层的网络协议栈的架构视图。Linux内核中还提供了一种灵活修改网络数据的机制,用户可以利用这种机制获得和修改内核层的网络数据和属性设置。白色的框为网络数据的流向,协议栈按照正常的方式进行处理和传递。Linux内核在网络数据经过的多个地点设置了检查点,当到达检查点的时候,会检查这些点上是否有用户设置的处理方法,按照用户的处理规则对网络数据进行处理后,数据会再次按照正常的网络流程传递。在内核的网络层中sk_buff结构占有重要的地位,几乎所有的处理均与此结构有关系。1结构sk_buff的原型2sk_buff的含义在Linux的3.5版本的内核中,采用结构sk_buff来存储这些数据。在这个结构中,既有指向网络报文的指针,同时也有描述网络报文的变量。结构sk_buff的框图,其中的tail、end、head和data是对网络报文部分的描述。第5章中对TCP/IP的网络协议族进行了介绍(IP、TCP、UDP等)。其中协议TCP、UDP、RAW在文件linux-3.9.5/net/ipv4/af_inet.c中一个名为inet_init()的函数中进行了初始化(因为TCP和UDP都是inet簇协议的一部分)。inet_init()函数使用proto_register()函数来注册每个内嵌协议。16.2.1 Linux内核网络协议层的层间传递手段软中断16.2.2 网络收发处理软中断的实现机制网络协议栈是分层实现的,如何实现高效的网络数据是协议栈设计的核心问题之一。1Linux内核中软中断的机制2Linux内核中软中断的使用方法在Linux内核中是采用软中断的方式实现的,软中断机制的实现原理如图所示。在Linux系统中最多可以同时注册32个软中断,目前系统使用了6个软中断,它们是定时器处理、SCSI处理、网络收发处理以及tasklet机制,这里的tasklet机制就是用来实现下半部的,描述软中断的核心数据结构为中断向量表,其定义如下:struct softirq_actionvoid(*action)(struct softirq_action*);void*data;网络收发的处理通过软中断进行处理,考虑到优先级问题,分别占用了向量表中的2号和3号软中断来分别处理接收和发送。16.3.1 socket()的初始化16.3.2 接收网络数据recv()16.3.3 发送网络数据send()创建socket()需要传递family、type、protocol这3个参数。创建socket()其实就是创建一个socket实例,然后创建一个文件描述符结构。创建套接字文件描述符会互相建立一些关联,即建立互相连接的指针,并且初始化这些对文件的写读操作映射到socket的read()、write()函数上来。网络数据接收依次经过网卡驱动和协议栈程序,以DM9000A网卡为例进行介绍接收数据的过程。Linux对网络数据的发送过程的处理与接收过程相反。在一端对socket进行write()的过程中,首先会把要write的字符串缓冲区整理成msghdr的数据结构形式,然后调用sock_sendmsg()把msghdr的数据传送至inet层。对于msghdr结构中数据区中的每个数据包,创建sk_buff结构,填充数据,挂至发送队列。一层层往下层协议传递。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!