16.1.5 网络协议数据结构inet_protosw

周边任选+年卡加赠!下单送Coding Plan 卫衣/双肩包/T恤/羽绒服任选,赠CSDN会员年卡+Coding Plan,学习装备一起拿下! 阅读详情

16.1.5  网络协议数据结构inet_protosw

5章中对TCP/IP的网络协议族进行了介绍(IPTCPUDP等)。其中协议TCPUDPRAW

学习Linux-4.12内核网路协议栈(1.5)——协议栈的初始化(inet_init主要数据结构) 前面了解到网络初始化申请了两块skb高速缓存和创建了一个/proc/net/protocols文件,现在开始重头戏,网络协议栈的初始化。这篇文章主要介绍网络栈中使用到的主要数据结构网络协议栈的内核实现和理论上的分层有些不一样,在代码里面的分层如下图: 开始前,先回顾一下应用层socket函数的调用,它会创建一个socket并返回对应的描述符: int sock 阅读详情

相关推荐

linux内核网络框架

SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol) { int retval; struct socket *sock; int flags; /* Check the SOCK_* constants for consistency. */ BUILD_BUG_ON(SOCK_CLOEXEC != O_CLOEXEC); BUILD_BUG_ON((SOCK_MAX | SOCK_TYPE_MASK) != SOCK

osnet的博客 1168

inet_protosw 结构

  /* This is used to register socket interfaces for IP protocols. */ struct inet_protosw { struct list_head list; /* These two fields form the lookup key. */ unsigned short type; /*...

yinming4u的专栏 892

inet——proto基本数据结构

结构体 inet_protosw ,代表了socket的类型(套接字类型和相应的协议): /* This is used to register socket interfaces for IP protocols. */ struct inet_protosw { struct list_head list; /* These two fields form the l...

yinming4u的专栏 1789

Linux内核网络编程

Linux内核网络编程的简单例子

qq_43688708的博客 3946

Internet 网络协议

1、linux目前支持多种协议族,每个协议族用一个net_porto_family结构实例来表示,在初始化时,会调用sock_register()函数初始化注册到net_families[NPROTO]中去; 同时出现了一个地址族的概念,目前协议族和地址族是一 一 对应关系。历史上曾经有一个协议族支持多个地址族,实际上从未实现过。在socket.h文件中PF_XX和AF_XX 值一...

weixin_30432579的博客 862

socket相关系统调用的调用流程

最近一直在读内核网络协议栈源码,这里以ipv4/tcp为例对socket相关系统调用的流程做一个简要整理,这些相关系统调用的内部细节虽然各有不同,但其调用流程则基本一致; 调用流程: (1)系统调用 --> (2)查找socket --> (3)执行socket的对应操作函数 --> (4)执行传输层协议的对应操作函数; 中间核心数据结构inetws_...

weixin_30568715的博客 248

【网络编程】Linux网络内核结构以及分布剖析

在Linux内核中,软中断(Soft Interrupt)是一种非硬件中断,它允许内核代码在不需要CPU硬件中断的情况下执行中断处理代码。软中断通常用于执行一些需要立即执行的任务,但不需要立即响应的场合,例如网络数据包的处理、磁盘I/O操作等。

weixin_73951752的博客 2356

Linux网络协议栈 -- socket创建(2)

三、af_inet 协议簇的协议封装    接下来,函数调用之前已经注的 inet_family_ops的函数指针 create,也就是inet_create()函数,前面,可以说一个通用的 socket 已经创建好了,这里要完成与协议本身相关的一些创建 socket 的工作。这一部份的工作比较复杂,还是先来看看 af_inet.c 中的模块初  始化时候,做了哪些与此相关的工作。

zhaqiwen的专栏 1371

IP层笔记

一、网络层的任务  数据包进入网络层后主要做以下几个处理,无论是接受数据包还是发送数据包1数据包校验和检查   数据包如有错误就会被丢掉,错误包括检验和不正确、协议头草除了边界等等。 2、防火墙对数据包做过滤  网络防火墙就是大名鼎鼎的netfiler框架,比如我们应用层通过iptable命令配置的规则,获取我们写的内核模块也就是在netfilter中加入钩子函数,防火墙主要有四个...

City_of_skey的博客 858

Linux 协议栈初始化

net/ipv4/ap_inet.c/inet_init函数 首先将几个协议的原型proto{}结构挂到一个全局链表proto_list中,这三个全局变量非常重要,是连接传输层和IP层的纽带。原型里面包括操作。 下面是sock_register函数,它将inet_family_ops塞入net_families数组中,这个结构是为了应付从上到下的关系,用户创建socket时,先指定INET地址簇,再指定套接字类型。 下面把协议添加进去,就是把协议加入到一个hash表中。这是应付从下到上的数据流接受方向

weixin_43849015的博客 269

inet_register_protosw函数代码分析

完成一个新的inet_protosw注册到inetsw[]中。

qq_61224974的博客 226

如何学习 Linux 内核网络协议

sk_buff 是一个贯穿整个协议栈层次的结构,在各层间传递时,内核只需要调整 sk_buff 中的指针位置就行。

Rocky006的博客 1557

Linux内核网络协议栈笔记

Linux内核网络协议栈笔记0:序言(附参考书籍) 自己是研究网络的,但实际上对Linux中网络协议栈的实现知之甚少。最近看完《深入理解Linux内核》前几章之后(特别是与网络子系统密切相关的软中断),觉得可以而且应该看一下网络协议栈了。这部分网上的文章大部分都没有什么结构和思路,很少有能够条分缕析的把协议栈讲述明白的。当然,个人水平有限,还是希望朋友们能够批评指正。参考书籍《Underst...

weixin_34392435的博客 978

内核网络协议栈传输层协议框架

内核网络协议栈传输层协议框架

C/C++编程指南 800

各个数据包格式图示

1,先看看各层的数据格式以及它们之间的相互包含关系 参考:http://www.360doc.com/content/07/0805/16/36481_654962.shtml 注意:这都是链路层的数据,因为可以看见MAC地址。 先看看类型(2Byte) 类型为0800的,是ip数据包 类型为0806的,是arp数据包 也即ip包和arp包是平等关系,不是包含关系。 这里看看s

u012566181的专栏 3977

IP数据包格式netinet/ip.h

转载地址https://www.cnblogs.com/embedded-linux/p/4986449.html 头文件netinet/ip.h中定义ip: struct ip { #if __BYTE_ORDER == __LITTLE_ENDIAN unsigned int ip_hl:4; /* header length */ unsigned int ip_v:4; /* ...

csdn_kou的博客 8760

OMNeT++ INET框架精讲

OMNeT++中的INET框架是OMNeT++仿真中的很重要的框架,可以用来仿真有线网络,无线网络,移动网络,以及IOS七层模型中的应用层,传输层,网络层,数据链路层,物理层协议以及算法仿真。通过学习本课程,可以很好的掌握INET框架,以及应用INET框架建立仿真模型,实现算法验证以及算法优化等。

LINUX SOCKFS文件系统分析之二 相关的结构体及结构体之间的关联

对于网络协议簇而言,包括ax25协议簇、inet4协议簇、inet6协议簇、ipx协议簇等,而每一个协议簇中又包含多个协议,以inet4协议簇为例,又包含ipv4、tcp、udp、icmp等协议。 而针对网络协议簇与网络协议之间的关系,linux sockfs的架构也按此进行了划分。 针对sockfs,其也兼容VFS架构,但相比于普通文件及设备文件而言,也有不同,针对socket文件的...

lickylin的专栏 1189
上一篇: 16.1.4 sk_buff结构
下一篇: 16.2.1 Linux内核网络协议层的层间传递手段——软中断
Linuxdianc
博客等级 码龄17年 57粉丝 496原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值