
网络编程
文章平均质量分 78
echoisland
这个作者很懒,什么都没留下…
展开
-
揭开Socket编程的面纱
<br />揭开Socket编程的面纱Posted on 2005-12-10 22:59 源码工作室 阅读(42903) 评论(70) 编辑 收藏 所属分类: 网络编程 对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:<br /><br />1. 什么是TCP/IP、UDP?<br />2. Socket在哪里呢?<br />3. Socket是什么呢?<br />4.转载 2010-12-21 09:40:00 · 557 阅读 · 0 评论 -
why (iphdr->ihl)*4 or (iphdr->ihl)<<2?
naihe2010 发表于 2010-4-13 06:47struct iphdr {#if defined(__LITTLE_ENDIAN_BITFIELD) __u8 ihl:4, version:4;#elif defined (__BIG_ENDIAN_BITFIELD) __u8转载 2011-12-17 11:14:45 · 4616 阅读 · 0 评论 -
linux内核ipv4网络部分分层结构及涉入源文件
http://hi.baidu.com/amy_yeni/blog/item/c54003004d9a080b738da5b3.htmllinux内核ipv4网络部分分层结构:BSD socket层: 这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件主要有:/net/socket.c /net/protoco转载 2011-11-20 20:15:50 · 1352 阅读 · 0 评论 -
linux 内核网络,数据接收流程图
4.3 数据接收流程图各层主要函数以及位置功能说明: 1)sock_read:初始化msghdr{}的结构类型变量msg,并且将需要接收的数据存放的地址传给msg.msg_iov->iov_base. net/socket.c 2)sock_recvmsg: 调用函数指针sock->ops->recvmsg()完成在INET Soc转载 2011-11-20 20:09:32 · 4618 阅读 · 0 评论 -
linux 内核网络,数据发送流程图
4.2 数据发送流程图各层主要函数以及位置功能说明: 1)sock_write:初始化msghdr{}结构 net/socket.c 2)sock_sendmsg:net/socket.c 3)inet_sendmsg:net/ipv4/af_net.c 4)tcp_sendmsg:申请sk_buff{转载 2011-11-20 20:07:22 · 6990 阅读 · 1 评论 -
Libpcap BPF(BSD Packet Filter)包过滤机制
http://hi.baidu.com/ahtaria/blog/item/969ae4447eaa59076a63e57d.htmlLibpcap 重点使用 BPF(BSD Packet Filter)包过滤机制,BPF 于 1992 年被设计出来,其设计目的主要是解决当时已存在的过滤机制效率低下的问题。BPF的工作步骤如下:当一个数据包到达网络接口时,数据链路层的驱动会把它向系转载 2011-11-19 23:42:01 · 4265 阅读 · 0 评论 -
Linux Netfilter实现机制和扩展技术
http://www.ibm.com/developerworks/cn/linux/l-ntflt/2.4.x的内核相对于2.2.x在IP协议栈部分有比较大的改动, Netfilter-iptables更是其一大特色,由于它功能强大,并且与内核完美结合,因此迅速成为Linux平台下进行网络应用扩展的主要利器,这些扩展不仅包括防火墙的实现--这只是Netfilter-ipt转载 2011-11-19 14:09:05 · 1376 阅读 · 0 评论 -
Linux内核bridge浅析
Linux网桥模型: Linux内核通过一个虚拟的网桥设备来实现桥接的,这个设备可以绑定若干个以太网接口设备,从而将它们桥接起来。如下图所示:网桥设备br0绑定了eth0和eth1。对于网络协议栈的上层来说,只看得到br0,因为桥接是在数据链路层实现的,上层不需要关心桥接的细节。于是协议栈上层需要发送的报文被送到br0,网桥设备的处理代码再来判断报文该被转发到eth0或是eth1转载 2011-11-17 14:38:45 · 1977 阅读 · 0 评论 -
深度探索套接字缓冲区 sk_buff skb
http://blog.youkuaiyun.com/aaa6695798/article/details/4879271 套接字缓冲区用结构体struct sk_buff表示,它用于在网络子系统中的各层之间传递数据,处于一个核心地位,非常之重要。它包含了一组成员数据用于承载网络数据,同时,也定义了在这些数据上操作的一组函数。下面是其完整的定义: struct sk_buff {转载 2011-11-17 13:43:16 · 3042 阅读 · 0 评论 -
select、poll、epoll
<br /><br />版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明<br />http://xufish.blogbus.com/logs/72686176.html<br /> select<br />select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续的读写操作。<br />select目前几乎在所有的平台上支转载 2011-05-05 20:24:00 · 1300 阅读 · 0 评论 -
封包和拆包
<br />封包和拆包 收藏作者:fengge8ylf 博客:http://blog.youkuaiyun.com/fengge8ylf对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.自从我从事网络通讯编程工作以来(大概有三年的时间了),我一直在思索和改进封包和拆包的方法.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之处,恳求大家指正.在此先谢过大家了.一.为什么基于TCP的通讯程序需要进行封包和拆包.TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想转载 2011-05-11 11:01:00 · 1002 阅读 · 0 评论 -
LINUX netlink机制
http://www.cnblogs.com/iceocean/articles/1594195.htmlNetlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多,包括:路由 daemon(NETLINK_ROUTE转载 2011-12-17 19:20:27 · 856 阅读 · 0 评论