- 博客(32)
- 收藏
- 关注
原创 minidlna 中文显示乱码
minidlna 解析音频文件的tag信息,在win7 mediaplayer中看到解析出来文件信息为乱码原因在于: 中文的编码方式为GB232,_get_mp3tags 获取tag信息时需要通过iconv进行编码方式转换为UTF-8注意:minidlna中需要enable HAVE_ICONV_H通过调用库libiconv来进行转换库libiconv不
2013-04-12 15:00:17
3748
转载 linux tc实现ip流量限制
tc是个配置Linux内核流量控制的工具 名字tc - 显示/维护流量控制配置摘要tc qdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ]tc class [ add |
2013-01-25 16:14:50
1358
转载 TCP/IP详解2 学习笔记2---ifnet ifaddr
linux下用netdevice来描述一个接口,而BSD则用ifnet,包括接口的属性,硬件信息,统计信息,函数指针,输出队列/* * Structure describing information about an interface * which may be of interest to management entities. */struct if
2013-01-23 15:04:19
1396
转载 TCP/IP详解2 学习笔记---mbuf
1,mbuf就是存储要发送数据的memery buf,类似于skb_buf.不过结构比较简单。/* header at beginning of each mbuf: */这个结构用来描述mbuf跟具体的内容无关struct m_hdr {struct mbuf *mh_next; /* next buffer in chain */struct mbuf *m
2013-01-23 15:01:11
1775
转载 HTTP协议详解
2007-03-08 16:57 31154人阅读 评论(42)收藏举报服务器http服务器authorization浏览器serverweb服务Author :Jeffrey My Blog:http://blog.youkuaiyun.com/gueter/ 引言 HTTP是一个属于应用层的
2013-01-09 14:37:36
617
转载 UPnP协议编程实践
UPnP协议编程实践(一) UPnP是通用即插即用(Universal Plug and Play)的缩写,它主要用于实现设备的智能互联互通。使用UPnP协议不需要设备驱动程序,因此使用UPnP建立的网络是介质无关的,它可以运行在几乎所有的操作系统平台之上,可以使用C,C++,JAVA和VB等开发语言,使得在办公室、家庭和其他公共场所方便地构建设备相互联通的网络环境。本专题
2012-12-26 12:22:52
581
原创 DLNA相关资料汇总
DLNA的一个讲座http://zwkufo.blog.163.com/blog/static/2588251201011933341476/细说DLNA:(signal7902@hotmail.com)http://blog.youkuaiyun.com/philofly/article/category/442311
2012-12-26 10:17:42
618
转载 DLNA介绍(包括UPnP,6月20日更新)
DLNA介绍(包括UPnP,6月20日更新) 分类: DLNA2011-05-03 16:4911133人阅读评论(21)收藏举报这部分的内容大多来源于网络及官方文档,按照自己的翻译理解整理所成。东西比较多,从头慢慢看还是可以懂个大概的。 目录:一、DNLA的建立二、DLNA的成员三、DLNA标准的制定四、DLNA的设备五、DLNA的架构六、云时代的数字
2012-12-25 16:41:32
1524
转载 Netfilter中的连接跟踪系统
呵呵,第一次翻译技术文章,还挺大家见谅。原作连接:netfilter tracking system基于单一的报文头信息的过滤策略已经过时了。如今有状态防火墙提供了一种高级机制,让系统管理员和安全专家可以定义更智能的策略。本文介绍了Netfilter项目包含的连接跟踪系统的实现细节,还介绍了一些需要的理解的背景知识。在最近的linux内核中,本文对于理解有状态防火墙子系统很有帮助。
2012-12-20 09:30:38
914
转载 netfilter之conntrack笔记
一、控制结构 sk_buff 和网络报文的存储空间 二、分片的网络报文与scatter/gather IO网络报文在内存中不一定是连续存储的,同一个网络报文有可能被分成几片存放在内存的不同位置(不要和IP分片混淆,IP分片是将一个网络报文分成多个网络报文,这里是将一个网络报文分成几片存放在不同的内存空间)。为了记录网络报文的长度,在sk_buff里增加了一个变
2012-12-20 09:17:15
706
转载 Linux 连线跟踪流程整理(linux-2.6.31)
author: jonathan本文档的CopyRight归jonathan所有,可自由转载,转载时请保持文档的完整性。/*----------------------------------------------------------------------------------------------------------------------------*/Linux
2012-12-20 09:15:00
1203
转载 linux内核网络协议栈学习笔记:关于GRO/GSO/LRO/TSO等patch的分析和测试
TSO,全称是TCP Segmentation Offload,我们知道通常以太网的MTU是1500,除去TCP/IP的包头,TCP的MSS (Max Segment Size)大小是1460,通常情况下协议栈会对超过1460的TCP payload进行segmentation,保证生成的IP包不超过MTU的大小,但是对于支持TSO/GSO的网卡而言,就没这个必要了,我们可以把最多64K大小的TC
2012-12-10 10:29:22
1317
转载 看Linux网管员如何进行网络性能优化
【IT168 技术】IT系统的性能永远是企业IT人员关注热点,而随着Linux系统应用的增多,一些应用方面的问题也随之增多,本文将为大家介绍Linux内核下如何进行网络性能优化。 首先我们先看下网络的行为,可以简单划分为3条路径:发送路径、转发路径、接收路径,而网络性能的优化则可基于这3条路径来考虑。本文集中于发送路径和接收路径上的优化方法分析,其中的NAPI本质上是接收路径上的优化,但因为
2012-12-10 10:19:21
445
转载 Linux硬件地址的解析过程
Linux硬件地址的解析过程来源: ChinaUnix博客 日期: 2009.03.26 16:54 (共有条评论)我要评论 最近在看Linux协议栈源码,在ip_finish_output2里面遇到了麻烦,搞不清楚hh->hh_output和dst->neight->output是在哪里初始化的。g
2012-09-25 10:27:14
555
转载 SKB几个复制函数的区别
1、skb_clone()Skb_clone()函数只是复制sk_buff结构,并不复制skb的数据缓冲区。Clone后的sk_buff结构与原始的sk_buff指向同一数据缓冲区。原始的和clone后的skb描述符的cloned值都会被置1,clone的skb描述符的users值置1,同时数据缓冲区的引用计数dataref增加1。/** * skb_clone
2012-08-23 10:46:28
1263
转载 Linux IP Routing
Linux IP Routing1、網路的連結根據實際的網路架構可以大略的粗分以下兩種 Ⅰ‧直接連接 Ⅱ‧間接連接(經過 router 轉送) Ⅰ為直接的電腦連結,或者是同個網域的電腦,無論是經 bridge 或者是 hub,因為這些裝置只是將資料無條件的傳輸到彼端,Ⅱ 則是經由路由器(router)轉送
2012-08-14 10:12:06
797
转载 Linux Bridge
Linux Bridge 基于 MAC 地址来转发包, MAC 地址表是 Linux Bridge 的核心数据结构,在 br_fdb.c 中定义了一组操作 MAC 地址表的接口函数。 MAC 地址表的数据结构定义在 br_private.h 中。 kernel 2.6.21.7 /net/bridge/br_private.h struct net_bridge_fdb_entry {
2012-07-30 15:01:30
2010
转载 Linux-kernel网桥代码分析(二)
第三部分: ioctl管理网桥3.1 通过ioctl系统调用创建网桥 仍然以前的配置作为例,我们分用户空间程序brctl是如何通过ioctl系统调用在kernel空间内创建上述的数据结构。创建网桥,我们不需要预知任何网络设备信息,因此我们通过ioctl来创建网桥时不应该与任何网络设备绑定到一起。网桥模块为此ioctl函数提供了一个恰如其分的名字 br_ioctl_deviceles
2012-07-30 14:18:59
1741
转载 Linux-kernel 网桥代码分析(一)
本文分析的kernel版本为:2.6.24.4,网桥代码目录为:linux-2.6.24.4/net/bridge。 网桥是kernel网络模块中相于独立的module,读者具有简单的kernel网络设备驱动开发和kerenl网络协议的基础知识即可。我在2007年就开始接触网桥了,当时有位同事为了测试网桥的功能,还特地查看了网桥的代码,还特意转告我一定要看看这部分的代码,他说比较简
2012-07-30 14:17:00
3379
转载 同步原语
第十一讲 同步原语 ********************** 2007/03/09 asdjf@163.com www.armecos.com ecos是多线程系统,并发执行造成了一些新问题的产生:多线程协同工作、对临界资源的竞争、线程间通信、线程间同步等等。其实,所有的多任务系统都会遇到类似问题,计算机专家们总结了很多抽象模型来应对,方法手段很多,各有
2012-07-27 15:59:48
5335
转载 程序员面试精选100题
转自:http://zhedahht.blog.163.com/blog/static/25411174201171214133316/
2012-07-24 13:07:46
679
转载 Linux TCP/IP 协议栈源码分析
一.linux内核网络栈代码的准备知识1. linux内核ipv4网络部分分层结构:BSD socket层: 这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件主要有:/net/socket.c /net/protocols.c etc INET socket层:BSD socket是个可以用于各种网络协议的接口,
2012-07-24 11:49:22
1020
转载 Linux-2.6.21.1 网络函数调用流程
转:Linux-2.6.21.1 网络函数调用流程 http://www.cublog.cn/u/12313/showart_312426.html 本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.
2012-07-23 17:47:29
1293
转载 freebsd网卡驱动程序详解
/* 注释:xie_minix */ /*此处为BSD申明,略过... 最好是拷贝下来用C的开发工具来看比较好 :) */ /* 当网络上一台计算机准备发送数据时,他的网卡开始工作了,首先网卡的芯片侦听在网络上是否有数据在 流动,如果没有,他就把数据发送到网络上,在侦听和发送之间有一段极小的时间延迟,在这段时间内,也有 可能在网络上有其他的计算机也准备发送数据,也侦听到网络上没
2012-07-23 16:54:23
4982
转载 ip unnumbered 简介
ip unnumbered 简介 端口复用技术,一般用在路由器上,常用来节省IP地址。目前大部分高端路由器都支持该功能。 比如说A和D通信,A为公网主机,D为拥有公网IP的主机,通信过程为A---B----C----D,B和C用unnumbered,也就是说B和C相当于一台路由器了(对外来说),因为B和C的连接只是为了让A和D连接,B、C之间就没有必要3层寻址,占用两个ip
2012-07-18 15:25:28
14991
转载 Linux内核bridge浅析
Linux网桥模型: Linux内核通过一个虚拟的网桥设备来实现桥接的,这个设备可以绑定若干个以太网接口设备,从而将它们桥接起来。如下图所示: 网桥设备br0绑定了eth0和eth1。对于网络协议栈的上层来说,只看得到br0,因为桥接是在数据链路层实现的,上层不需要关心桥接的细节。于是协议栈上层需要发送的报文被送到br0,网桥设备的处理代码再来判断报文该被转发到eth0或是eth1
2012-07-13 10:08:12
12648
转载 Linux系统编程获取指定接口的IPv6地址
在Linux系统中需要编程获取某个接口的IPv4地址比较常见, 可以使用ioctl函数等方法, 但是要获取IPv6地址, 以前的一些方法就不一定适合, 从网上查找了很多方法, 有两种我试过都可以得到相应的IPv6地址, 此处直接以一段代码做示例展示如何获取指定接口的(IPv6)本地链路地址(注意, 前提是你的Linux支持IPv6, 目前流行的大多数Linux系统早已支持IPv6).#in
2012-07-12 11:49:44
10917
转载 linux下获取本机ip地址,ipv4和ipv6
#include #include #include #include #include #include #include #include int GetIP_v4_and_v6_linux(int family, char *address, int size){ struct ifaddrs *ifap0, *ifap; char b
2012-07-12 10:33:10
2516
转载 send/sendto/sendmsg函数解析
功能描述:发送消息。send只可用于基于连接的套接字,send 和 write唯一的不同点是标志的存在,当标志为0时,send等同于write。sendto 和 sendmsg既可用于无连接的套接字,也可用于基于连接的套接字。除了套接字设置为非阻塞模式,调用将会阻塞直到数据被发送完。用法: #include #include ssize_t send(int sock
2012-07-11 17:04:22
585
转载 mbuff
m_buff介绍mbuf是memory buffer的缩写。它的主要用途是保存在进程和网络接口间互相传递的用户数据,同时也保存其它有用的信息,如源地址、插口选项等。首先我们来看一下mbuf的数据结构,然后分析各成员变量的含义。/* mbuf的头部数据结构,大小为20字节 */struct m_hdr { struct mbuf *mh_next;
2012-07-04 15:52:44
1812
转载 网桥原理及源代码详解
* 概述: * 该代码在FB中提供桥接功能,不过他只是在以太网接口上工作,能提供多个逻辑桥 * ,我们称为组,组是由一组有相同组ID的接口组成,组ID的范围在1到2^16-1之间. * 打开桥的功能是通过sysctl net.link.ether.bridge=1来启动的. * 而sysctl net.link.ether.bridge_cfg是把以太网接口进行分组的命令,如:
2012-07-04 10:18:10
1861
转载 FreeBSD内核网络处理流程分析
对于不了解内核的,特别是内核网络的人来说,内核的网路处理就像一个巧克力盒子.不打开就不会知道里面是什么,打开了就会觉得里面是丰富多彩的. 本文试图从一个原始数据包处理流程的角度,结合源代码(相应的函数)简单扼要地分析FreeBSD的内核网络处理. 主机对主机的方式是比较简单的,数据包从链路层上来,一路上行,达到用户空间的应用程序,一个数据包的生命期就结束了.
2012-07-04 10:16:03
1101
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人