- 博客(8)
- 资源 (25)
- 收藏
- 关注
转载 linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法
转载自:Aric小屋 的博客linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法变量替换和变量默认值设置是紧密相关的,至少从概念出发是如此。参数扩张是将类似于变量的参数用它的值来替换。例如
2015-05-20 17:07:42 751
原创 unregister_netdevice: waiting for eth1 to become free?错误
dev_hold和dev_put是配对使用的,一个用来引用计数加一,一个用于引用计数减一。 查看模块代码,没有发现单独直接使用dev_hold的情况。那会不会是简介调用呢,仔细查找了好久,果然是间接调用。 在我们一些模块代码中,经常会通过dev_get_by_name来获取设备信息。而dev_get_by_name封装了dev_hold,导致引用计数加一。由于dev_get_by_name是内核提供的接口,不熟悉的coder很可能不晓得这点,也没有注意到需要调用dev_put.,于是便有了上
2015-05-19 16:29:09 15303 2
原创 深入理解Linux网络技术内幕——L4层协议与Raw IP的处理
我们简单了解下L4层协议和Raw IP是如何与IP层进行交互的。L4层协议L4层协议可以通过静态编译和模块配置两种方式加入内核。比较重要的协议如TCP、UDP、ICMP通常是静态编译至内核。一些不常用的或者比较特殊的协议,则是通过内核配置加入内核。如IGMP,SCTP,IPIP等等。L4层协议的注册L4层协议有net_protocol结构定义:/* This is us
2015-05-18 14:19:27 9053
原创 深入理解Linux网络技术内幕——IPv4 分段与重组
封包的分段和重组是IP协议最重要的工作之一。IPv4报头中有一个len字段(用于表示报文的总长度,单位:字节)占16bit,因此,封包的最大尺寸定义为64K,(2^16/1024=64)。但是,在实际网络传输中,没有几个网络接口能够传输64K这么大的封包,而是有一个MTU表示其最大传输单元。这样,当要传输的封包大于MTU时,就需要对封包进行分段。 这里需要说明,我们指的MTU,不仅
2015-05-18 11:07:18 3260
原创 深入理解Linux网络技术内幕——IPv4选项的处理
IP选项介绍IP首部中有4bit用于表示首部长度,其单位是4个字节,所以,IP首部的最大长度是15*4=60字节(4bit最大可以表示到15),而IP固定首部的长度是20字节,所以一个IP首部最大允许有40字节长度的选项。IP选项有两种格式 单字节和多字节对于多字节选项,其长度有length字段标识,另外其Optiondata并不是从32bit的边界开始的。Length
2015-05-14 16:31:50 4523
原创 深入理解Linux网络技术内幕——IPv4 报文的传输发送
报文传输,指的是报文离开本机,发往其他系统的过程。传输可以由L4层协议发起,也可以由报文转发发起。在深入理解Linux网络技术内幕——IPv4 报文的接收(转发与本地传递)一文中,我们可以看到,报文转发最后会调用dst_output与邻居子系统进行交互,然后传给设备驱动程序。 这里,我们从L4层协议发起的传输,最后也会经历这一过程(调用dst_output)。本文讨论的是L4层协议发起的传
2015-05-14 14:47:50 2374
原创 深入理解Linux网络技术内幕——IPv4 报文的接收(转发与本地传递)
我们知道,报文经过网卡驱动处理后,调用net_receive_skb传递给具体的协议处理函数,对于IPv4报文来说,其协议处理函数就是ip_rcv了,ip_rcv在进行一些健康检查等操作后,会调用ip_rcv_finish来处理报文。这也是IPv4协议对报文接收处理的开始。我们先看下ip_rcv_finish源代码:本地传递转发报文转发有下面几个步骤完成:1. 处理IP选项2. 确定封包可以被转发3.递减封包头部的TTL字段,如果TTL字段为0,则丢弃该封包4.根据路径相关MTU,在必要
2015-05-14 09:29:48 4861
原创 深入理解Linux网络技术内幕——IPv4 概念
我们可以大致看出数据在IPv4协议中的流向,接收报文 设备驱动处理完硬件介绍到的数据后,IPv4协议的ip_rcv函数(net_receive_skb调用)得到了属于IPv4的报文,接着调用ip_rcv_finish对报文进行分析。判断是该转发还是交付本地上层协议。 如果是本地报文,则传给ip_local_deliver处理,如果是转发,那就交付ip_forward进行转发处理。发送报文 对于接收到的属于转发的报文(来自ip_forward_finish)以及L4层传下来的报文,需要进行分析后传给
2015-05-13 15:51:38 1631
OpenStack企业云平台架构与实践.pdf
2018-04-25
TCP-IP详解卷2-实现.pdf
2018-04-13
UNIX环境高级编程 中文第3版
2018-01-15
libev-官方手册
2017-06-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人