自定义博客皮肤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 456

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

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

2016-08-19 00:38:37 1832

原创 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 1659

原创 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 2759

原创 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 1686

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

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

2016-08-19 00:18:11 1433

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

路由缓存         ip_mkroute_input

2016-08-19 00:05:17 1794

原创 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 1934

原创 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 1190

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

2.2.3.2 输出路由查找 ip_route_output_key 功能: 调用ip_route_output_flow ip_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 2759

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

路由fib表之输入查找

2016-08-18 23:05:08 4126

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

路由fib表之创建

2016-08-18 22:32:12 4216

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

路由fib表之初始化

2016-08-18 22:28:08 1318

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

路由fib表之数据结构

2016-04-21 14:20:29 4384 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 488

原创 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 7777 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 1786

原创 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 2210

原创 网络协议之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 13192 1

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

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

2016-03-20 02:31:05 1048

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

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

2016-03-20 01:37:00 610

原创 go语言判断大小端

package main import ( "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 2667

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

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

2016-03-05 23:45:07 1798

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

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

2016-03-05 23:36:14 1289

原创 工作半年,总结分享

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

2016-03-05 23:32:06 375

原创 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 2624

原创 函数指针

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

2016-03-05 23:15:21 367

原创 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 384

原创 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 2308 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 8911

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

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

2016-02-19 21:23:27 12720

原创 二叉排序树 插入 遍历 查找 (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 491

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

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

2016-02-19 14:01:43 381

空空如也

空空如也

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

TA关注的人

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