自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 又一个半年

首先吐槽博客的编辑功能,实现不敢恭维,写个博客,格式编辑半天还不对。不管怎样,总算把路由的一些学习分析传上来了,word复制过来各种问题;路由的学习路上,感谢各种博客大神的分享,也将自己的所学分享出来,希望能够帮助刚接触的同学。在公司虽然接触的比较杂,但也学到了一些好玩的linux模块;后面也不定时的分享些笔记,有时间将整理的一些桥、IP分片重组的传上来。

2016-08-19 00:57:52 367

原创 linux内核 策略路由之删除

4.5 策略规则的删除        策略规则一般是通过应用层手动添加的,没有垃圾回收机制,只能通过手动删除操作。功能:        (1)根据应用层传递的协议类型,获取相对应的fib_rule_ops        (2)对应用层传参进行解析;        (3)遍历rule_list链表,删除匹配的fib_rulestatic int fib_nl_delrul

2016-08-19 00:38:37 1676

原创 linux内核 策略路由之查找

4.4.1 策略路由查找       策略规则的查找函数fib_rules_lookup功能:      (1)遍历rules_list链表;      (2)调用fib_rule_match进行规则匹配      (3)调用函数指针action,进行路由表项的查找;      (4)将arg->rule指向该规则的首地址。//通用规则的查找//ops 传入//

2016-08-19 00:36:09 1508

原创 linux内核 策略路由之添加

4.3策略规则的添加        对于策略规则的添加,也可以抽象出通用规则接口函数,然后根据传参进入协议相关的策略规则的接口函数;4.3.1 通用规则的添加        在规则初始化时,会注册添加函数fib_nl_newrule         rtnl_register(PF_UNSPEC, RTM_NEWRULE, fib_nl_newrule, NULL);     

2016-08-19 00:32:46 2592

原创 linux内核 策略路由之初始化

4.2 路由策略初始化        路由策略的初始化,主要分为通用策略规则初始化和协议相关的策略规则初始化。4.2.1 通用策略规则初始化        功能:注册通知链,包括设备注册和注销时的通知。static int __init fib_rules_init(void){ int err; rtnl_register(PF_UNSPEC, RTM_NEWR

2016-08-19 00:25:20 1558

原创 linux内核 策略路由之基本结构

四、LINUX策略规则4.1 基本结构体4.1.1策略规则结构体fib_rulestruct fib_rule{ struct list_head list;//策 略 规 则 链 表 atomic_t refcnt;//引 用 计 数 int ifindex;//接 口 index char ifna

2016-08-19 00:18:11 1293

原创 linux内核 路由缓存表之创建

路由缓存        ip_mkroute_input

2016-08-19 00:05:17 1632

原创 linux内核 路由缓存表之数据结构

三、路由缓存表3.1 基本结构(1)路由缓存存放在全局散列表rt_hash_table中,类型为rt_hash_bucket,该成员变量指向缓存元素。        struct rt_hash_bucket {        struct rtable *chain;        };(2)rtable结构        用来储存缓存中的路由表项,可以通

2016-08-19 00:01:57 1723

原创 linux内核 路由fib表之删除

2.2.4 路由删除        应用层通过SIOCDELRT删除路由项,一般调用ip_rt_ioctl或者inet_rtm_delroute。        这里我们通过inet_rtm_delroute来学习。static int inet_rtm_delroute(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg){

2016-08-18 23:55:40 977

原创 linux内核 路由fib表之输出查找

2.2.3.2 输出路由查找ip_route_output_key功能:调用ip_route_output_flowip_route_output_flow功能:1)路由发包查找2)ipsec处理流程int ip_route_output_flow(struct net *net, struct rtable **rp, struct flowi *flp,st

2016-08-18 23:14:27 2510

原创 linux内核 路由fib表之输入查找

路由fib表之输入查找

2016-08-18 23:05:08 3859

原创 linux内核 路由fib表之创建

路由fib表之创建

2016-08-18 22:32:12 3942

原创 linux内核 路由fib表之初始化

路由fib表之初始化

2016-08-18 22:28:08 1185

原创 linux内核 路由fib表之数据结构

路由fib表之数据结构

2016-04-21 14:20:29 4108 2

原创 剑指offer之替换空格

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解决思路:刚开始没思路时,可以由简入繁1、先来简单的,有了大体的思路#include #include void replace(char *a){ char b[100]; int i=0,j=0; while(a

2016-04-06 22:41:45 419

原创 Socket通信之Write实现流程

1 分析write在进程间通信的实现过程       在内核中,socket是与文件指针挂钩的,因此就可以通过open、read、write像操作文件一样对socket进行操作;而write的过程相当于socket数据发送的过程。接下来,我们研究socket的数据发送流程。1、从socket (AF_UNIX, SOCK_STREAM, 0)入手,经过跟踪会调到unix_create函数

2016-03-27 23:42:59 7507 1

原创 路由Zebra 之socket通信机制

1 socket通信过程1.1 socket接收端流程图1  socket server端函数关系 图2  socket server端通信流程图Socketserver端的数据处理是由main函数的vty_server_sock()函数实现的,(1)先建立一个AF_UNIX类型的套接字socket1,然后绑定套接字,监听该套接字。(2)zebra通过threa

2016-03-27 23:39:59 1450

原创 DHCP中继各种组网环境配置

DHCP中继的不同组网情况两台网关设备,其中一台做server,一台做relay,PC作为client 一、正常情况1.1 配置框架图1.2详细配置Server端(1)LAN口VLAN1 ip  192.168.5.1地址池 192.168.1.200-250           (2)需要添加一条到192.168.1.0的路由

2016-03-27 22:54:16 1711

原创 网络协议之DHCP request续约实现机制

DHCP客户端在一、DHCP客户端状态1、客户端发送discover报文,进入INIT_SELECTING状态2、客户端收到offer报文,    进入REQUESTING状态, 发送request报文3、客户端收到ack报文,     进入BOUND状态4、等待租约时间的一半,    进入RENEWING状态,并发送request报文5、等待租约时间的7/8,

2016-03-27 22:37:51 12796 1

原创 GO语言网络编程之TCP (v2)

紧接着前面的章节,此篇,在tcp client端引入了锁、interfce、类的思想进去。废话没有tcp server端(跟上一篇一样) package mainimport ( "fmt" "net" "strings" // "time")var exit_all = make(chan string)func recv_msg(conn net.Conn, q

2016-03-20 02:31:05 933

原创 GO语言网络编程之TCP (v1)

最近,将go语言的基础学习了一遍,感觉还得多练练才能拿得动这门语言;        在TCP通信编程基础上,将一些杂七杂八的东西(channel/defer/range/routinue/select/switch)都添进去tcp server端,tcp client端还保留比较原始的部分;        在下一篇中,计划将面向对象思想加到tcp client端。        TCP

2016-03-20 01:37:00 541

原创 go语言判断大小端

package mainimport ( "fmt" "unsafe" //go语言的sizeof)func main() { s := int16(0x1234) b := int8(s) fmt.Println("int16字节大小为", unsafe.Sizeof(s)) //结果为2 if 0x34 == b { fmt.Println("little endia

2016-03-17 23:47:31 2564

原创 若遇到TFTP、FTP服务器端口冲突

检查DHCP服务器是否开启了相应的功能,若开启,则将DHCP服务器关闭即可;若还要使用DHCP服务器,则可以先停止DHCP;  然后先开TFTP、FTP服务器,然后再开DHCP服务器即可。+

2016-03-05 23:45:07 1617

原创 正则表达式之(?=pattern)(!=pattern)

(1)(?=pattern)原意:执行正向预测先行搜索的子表达式,该表达式匹配处于匹配 pattern 的字符串的起始点的字符串。它是一个非捕获匹配,即不能捕获供以后使用的匹配。例如,'Windows (?=95|98|NT|2000)' 匹配“Windows 2000”中的“Windows”,但不匹配“Windows 3.1”中的“Windows”。预测先行不占用字符,即发生匹配后,下一匹配

2016-03-05 23:36:14 1111

原创 工作半年,总结分享

自去年7月份以来,从一个新手慢慢走来,体会到其中的一些滋味;也非常感谢同事们以及度娘对我的无私帮助;特别感谢那些无名牛人博客、论坛分享,给了我很多的指引;半年来,也做了一些笔记,比较零碎,一般用到哪学哪,感觉会比较乱;从中选取一些共性的问题,希望能够帮助到初入职场的你!

2016-03-05 23:32:06 302

原创 C结构体中赋值使用的冒号和点号

根据论坛中,别人的回答,总结试验的成果1、其中位域列表的形式为: 类型说明符 位域名:位域长度struct bs{ int a:8; int b:2; int c:6;}data;说明data为bs变量,共占两个字节。其中位域a占8位,位域b占2位,位域c占6位。2、初始化结构的时候现在可以这样写:(1)struct {int a[3],

2016-03-05 23:17:07 2404

原创 函数指针

int (*ff(int))(int *, int);它们也返回指针,但是这个指针不是指向int、char之类的基本类型,而是指向函数。理解:我们用上面介绍的方法分析一下,ff首先与后面的“()”结合,即:int (*(ff(int)))(int *, int);              // 用括号将ff(int)再括起来也就意味着,ff是一个函数。接着与前面的“*”结

2016-03-05 23:15:21 290

原创 typedef之函数

(1)typedef int INT32; //声明INT32为指向int的类型(2)int size; //size为变量*******************************************************typedef int size; //声明size为指向int的类型size a; (3)char *ptr_to_

2016-03-05 23:10:36 304

原创 core_initcall如何调用

一、core_initcall如何调用1、在2.6内核中,initcall.init区段又分成7个子区段,分别是.initcall1.init.initcall2.init.initcall3.init.initcall4.init.initcall5.init.initcall6.init.initcall7.init当需要把函数fn放到.initcall

2016-03-05 22:57:16 2009 1

原创 TCP/IP网络协议之DHCP简介

DHCP(Dynamic Host Configuration Protocol)1.1 协议类型DHCP协议是基于UDP层封装的应用层协议。客户端使用端口号68服务器/中继器使用端口号67 图1 DHCP报文封装格式1.2 DHCP报文内容 (如何获取IP)终端无IP,如何发出IP报文?Server如何给client回送报文?因此,需要DHCP报文

2016-03-05 22:43:54 8622

原创 资料整理工具推荐mybase,本人使用

以前很久就接触mybase工具了,但当时也没太在意;去年七月份毕业后,当工作时用到一些自己以前用过的东西,但是发现自己竟然都忘记了,也想不起来。这个时候感觉要有做笔记的必要了。然后尝试了一些工具:word虽然笔记做起来顺手,但是需要的分的文件太多,不够直观,用过一段时间就放弃了;在线笔记软件,写单篇文档的话还不错,对于分类目录的阅读来说,感觉还不是那么直观;然后就想起以前接触过

2016-02-19 21:23:27 12420

原创 二叉排序树 插入 遍历 查找 (V0.2)

#include #include typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; //插入 void insert(BiTree *t, int key) { if(*t == NULL) { (*t) = (BiTree

2016-02-19 15:49:12 423

原创 简单的二叉树创建、遍历(V1.0)

二叉树如图输入:AB#D##CE###前序遍历结果:ABDCE中序遍历结果:BDAEC后序遍历结果:DBECA下面根据,创建函数的不同,分为三种类型#include #include /********************创建方法1:main中创建树指针,create_tree传入指针***************************/

2016-02-19 14:01:43 293

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除