E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Linux网络协议栈
文章10:Nginx源码分析----Nginx如何获得数据包(未完成)
专业点的话,
Linux网络协议栈
中数据包的处理过程 问题2:应
yankai0219
·
2012-09-23 22:00
nginx
网络
struct
网络协议
linux内核
Linux网络协议栈
--ip_append_data函数分析
开场白:要分析这个函数原因有两个:一个是前几天要写《
Linux网络协议栈
--UDP》结果卡在这个函数这了。
wearenoth
·
2012-08-07 12:00
linux
struct
网络协议
NetWork
linux内核
Allocation
LINUX网络协议栈
--UDP
开场白传输层常见的两大协议TCP和UDP,TCP太复杂,涉及到拥塞控制的很多内容,在《Linux内核源码剖析-TCP/IP实现》下册中也花费了大量的笔墨来讲述。咋们先来看看一个简单的UDP。定位每篇文章肯定有一个定位,不可能面面俱到,如果这篇的定位是你需要的,祝你能够学到一些新的知识(1)UDP数据发送和接收的简要流程(2)不涉及太多细节。(3)力求了解UDP在协议栈中的框架以及与其他层之间的衔接
wearenoth
·
2012-08-02 21:00
linux
socket
struct
网络协议
File
linux内核
Linux网络协议栈
--IP
开场白:IP是什么就不介绍了,不清楚的请自行百度。这篇文章的定位(1)说明下网络层中IPV4协议收发数据的流程(2)不涉及太多细节(3)一些关键数据结构(4)一部分关于路由系统(5)为更清晰看清楚中间的流程,可能不会去涉及分片重组,MTU发现等一些机制。建议:(1)一定要对着下面的参考资料中提到的一起看,不然会看的很晕(2)为了便于理解,已经尽量少的减少细节描述,每个块中的内容都可以慢慢展开,但是
wearenoth
·
2012-08-01 21:00
LINUX邻居子系统(一)
邻居子系统是
linux网络协议栈
中非常庞大的一块,也是比较混乱复杂的一块,不过有一点感觉挺好玩的就是它不涉及太多具体协议的内容,所以阅读起来还不算太复杂而且它很多时候自成一个小小的系统运转(所以才叫子系统
wearenoth
·
2012-07-27 20:00
数据结构
linux
struct
cache
output
linux内核
Linux网络协议栈
-- socket connect 发起连接请求
1、sys_connect 对于客户端来说,当创建了一个套接字后,就可以连接它了。 caseSYS_CONNECT: err=sys_connect(a0,(structsockaddr__user*)a1,a[2]); break;[/code] asmlinkagelongsys_connect(intfd,structsock
zhaqiwen
·
2012-07-08 20:00
linux
socket
struct
tcp
网络协议
output
Linux网络协议栈
-- socket accept接收连接
一、tcp栈的三次握手简述 进一步的分析,都是以tcp协议为例,因为udp要相对简单得多,分析完tcp,udp的基本已经被覆盖了。 这里主要是分析socket,但是因为它将与tcp/udp传输层交互,所以不可避免地接触到这一层面的代码,这里只是摘取其主要流程的一些代码片段,以更好地分析accept的实现过程。 当套接字进入LISTEN后,意味着服务器端已经可以接收来自客户端的请求。当一个syn
zhaqiwen
·
2012-07-08 20:00
linux
struct
socket
tcp
网络协议
null
Linux网络协议栈
-- socket listen监听
一、sys_listen 对面向连接的协议,在调用bind(2)后,进一步调用listen(2),让套接字进入监听状态: intlisten(intsockfd,intbacklog); backlog表示新建连接请求时,最大的未处理的积压请求数。 这里说到让套接字进入某种状态,也就是说,涉及到套接字的状态变迁,前面create和bind时,也遇到过相应的代码。 sock和sk都有相应的状态字
zhaqiwen
·
2012-07-08 19:00
linux
socket
tcp
struct
网络协议
Sockets
Linux网络协议栈
-- socket创建(3)
五、初始化sk 分配完成sk后,另一个重要的功能就是初始化它,sk的成员相当复杂,其主要的初始化工作是在函数sock_init_data()中完成的: voidsock_init_data(structsocket*sock,structsock*sk) { /* 初始化其三个队列*/ skb_queue_head_init(&sk->sk_receive_queue);
zhaqiwen
·
2012-07-07 22:00
Linux网络协议栈
-- socket创建(1)
内核版本:2.6.12 一、系统总入口 Linux内核为所有的与socket有关的操作的API,提供了一个统一的系统调用入口,其代码在net/socket.c中: asmlinkagelongsys_socketcall(intcall,unsignedlong__user*args) { unsignedlonga[6]; unsignedlonga0,a1; inter
zhaqiwen
·
2012-07-07 22:00
Linux网络协议栈
(四) -- 链路层(2)
2、协议相关2.1、第3层协议的管理在Linux内核中,有两种不同目的的3层协议:(1) ptype_all管理的协议主要用于分析目的,它接收所有到达第3层协议的数据包。(2) ptype_base管理正常的3层协议,仅接收具有正确协议标志符的数据包,例如,Internet的0x0800。注意sb_buff与net_device中几个字段的区别:sb_buff:unsignedshort
zhaqiwen
·
2012-07-04 15:00
数据结构
linux
header
网络协议
internet
linux内核
Linux网络协议栈
(四) -- 链路层(1)
1、接收帧当网络适配器接收到数据帧时,就会触发一个中断,中断处理程序执行一些需要及时处理的任务,然后在下半部进行其它可以延迟的处理。中断处理程序主要进行以下一些操作:(1) 分配sk_buff数据结构,并将接收到的数据帧从网络适配器I/O端口拷贝到sk_buff缓冲区中;(2) 从数据帧中提取出一些信息,并设置sk_buff相应的参数,这些参数将被上层的网络协议使用,例如skb->prot
zhaqiwen
·
2012-07-04 15:00
数据结构
linux
list
网络协议
input
action
Linux网络协议栈
(三) -- 网络设备(1)
网络设备(networkdevice)是内核对网络适配器(硬件)的抽象与封装,并为各个协议实例提供统一的接口,它是硬件与内核的接口,它有两个特征:(1) 作为基于硬件的网络适配器与基于软件的协议之间的接口;(2) 内核协议栈异步输入输出点。记住:网络设备软件对硬件的抽象网络设备与协议和网络适配器的关系如下:1、 net_device接口(net_deviceInterface)
zhaqiwen
·
2012-07-04 14:00
linux
网络
struct
header
网络协议
destructor
Linux网络协议栈
(二) -- 套接字缓存(socket buffer)
Linux网络核心数据结构是套接字缓存(socketbuffer),简称skb。它代表一个要发送或处理的报文,并贯穿于整个协议栈。1、 套接字缓存skb由两部分组成:(1) 报文数据:它保存了实际在网络中传输的数据;(2) 管理数据:供内核处理报文的额外数据,这些数据构成了协议之间交换的控制信息。当应用程序向一个socket传输数据之后,该socket将创建相应的套接字缓存,并将用户数
zhaqiwen
·
2012-07-04 14:00
Linux网络协议栈
(一) -- socket入门(2)
3、套接字的实现套接字最先是在UNIX的BSD版本实现的,所以也叫做BSD套接字,它隐藏了各个协议之间的差异,并向上提供统一的接口。Linux中实现套接字的基本结构:3.1、BSD套接字3.1.1、核心数据结构为了实现BSD套接字,内核提供一个重要的数据结构structsocket,它的定义如下: //BSD套接字(include/linux/net.h)struct socket { so
zhaqiwen
·
2012-07-04 14:00
Linux网络协议栈
(一) -- socket入门(1)
1、TCP/IP参考模型为了实现各种网络的互连,国际标准化组织(ISO)制定了开放式系统互连(OSI)参考模型。尽管OSI的体系结构从理论上讲是比较完整的,但实际上,完全符合OSI各层协议的商用产品却很少进入市场。而使用TCP/IP协议的产品却大量涌入市场,几乎所有的工作站都配有TCP/IP协议,使得TCP/IP成为计算机网络的实际的国际标准。2、套接字(socket) socket是操作系统的重
zhaqiwen
·
2012-07-04 14:00
Linux网络协议栈
之设备初始化
Linux网络协议栈
之设备初始化作者:bullbat
Linux网络协议栈
的内核初始化工作大致分为设备链路层(e100_module_init、net_dev_init)、网络层(inet_init
bullbat
·
2012-06-13 19:00
linux
list
网络
网络协议
null
action
Linux网络协议栈
之套接字缓冲区
作者:bullbat
Linux网络协议栈
是内核中最大的组件之一,由于网络部分应用的范围很广,也相对较热,该部分现有的资料很多,学起来也比较容易。
bullbat
·
2012-06-05 17:00
Linux网络协议栈
结构的理解
原文:http://blog.csdn.net/aaa6695798/article/category/598530 TCP/IP协议是分层的,从底层至应用层分别为:物理层、链路层、网络层、传输层和应用层,如下图所示: 从应用层至物理层,数据是一层层封装,封装的方式一般都是在原有数据的前面加一个数据控制头,数据封装格式如下: Linux的协议栈其实是源于BSD的协议栈,它向上以及向下的接
cjsycyl
·
2012-03-30 14:00
linux网络协议栈
分析——ioctl的调用流程
首先从系统调用开始,ioctl的系统调用在fs/ioctl.c中:SYSCALL_DEFINE3(ioctl,unsignedint,fd,unsignedint,cmd,unsignedlong,arg) { …… error=do_vfs_ioctl(filp,fd,cmd,arg); …… }继续:/* *Whenyouaddanynewcommonioctlstotheswit
cbmsft
·
2012-01-24 13:00
linux
socket
struct
cmd
File
网络协议
linux网络协议栈
分析——重要数据结构及其关系(socket、sock、sk_buff)
structsocket*sockstructsock*sk;staticDEFINE_RWLOCK(proto_list_lock);staticLIST_HEAD(proto_list);inet_init(void)函数中调用proto_register分别把tcp_prot、udp_prot、raw_prot加到proto_list全局链表中。
cbmsft
·
2012-01-23 19:00
数据结构
linux
socket
list
struct
网络协议
linux网络协议栈
分析——net_families、inetsw、inetsw_array、inet_protos
net_families:保存所有不同类型的协议族的全局链表,net_family_lock用来保护该链表不被并发操作。创建套接字时使用协议族参数作为偏移量,从net_families数组中获得协议族指针,进而调用该协议族的创建函数。/* * Theprotocollist.Eachprotocolisregisteredinhere. */staticDEFINE_SPINLOCK(net_fa
cbmsft
·
2012-01-23 18:00
linux
struct
tcp
socket
Stream
网络协议
linux网络协议栈
分析——套接字创建
基本流程是:socketcall——socket——sock_create——__sock_create——sock_alloc——pf->create(inet_create) sock_map_fd 那么创建套接字时传递的几个参数的归宿如何:sock->type=type;family:1、加载协议模块:/
cbmsft
·
2012-01-23 18:00
linux
socket
网络协议
Module
null
networking
linux网络协议栈
分析——网络文件系统初始化
由于涉及到网络,和文件系统的读写数据接口比较起来,使用网络收发数据的接口最抽象的概念就是socket。网络收发数据的接口是BSD定义的一套接口,文件系统是open与close的对应。首先需要了解的是网络文件系统的初始化:staticint__initsock_init(void){ /* * InitializesockSLABcache. */ sk_init(); /* * I
cbmsft
·
2012-01-23 15:00
Linux网络协议栈
(1)
Linux网络协议栈
(一)——Socket入门(2) http://www.cnblogs.com/hustcat/archive/2009/09/17/1568765.html
leolinux
·
2011-10-26 15:00
Linux内核bridge中的数据包处理流程
前言 本文简要介绍数据包在进入桥网卡后在
Linux网络协议栈
的处理流程,并描述netfilter的hook点的挂接处理情况,具体各部分的详细
cxw06023273
·
2011-01-10 15:00
C++
c
linux
.net
网络协议
Linux网络协议栈
分析——从设备驱动到链路层
在网上看到高手总结出来的,省的自己花时间再研究,放到此处以便学习。 原文:http://ericxiao.cublog.cn/ 成都的天气好像越来越好了,前几天还穿着穿着外套直打哆嗦,到今天已经“拨开阴云见太阳”,暖洋洋的,心情也暖洋洋的。暖和的正好想睡觉。打个呵欠,把网络设备管理这部份总结下吧。 Linux素以优秀的网络管理能力而著称,linux为何具有这么高的效率?我们从
warmshepherd
·
2010-10-23 22:00
linux
list
struct
网络协议
header
interface
Linux网络协议栈
之网络设备管理
成都的天气好像越来越好了,前几天还穿着穿着外套直打哆嗦,到今天已经“拨开阴云见太阳”,暖洋洋的,心情也暖洋洋的。暖和的正好想睡觉。打个呵欠,把网络设备管理这部份总结下吧。 Linux素以优秀的网络管理能力而著称,linux为何具有这么高的效率?我们从网络设备的管理说起。 Linux为何要对网络设备单独管理呢?这是因为。协议栈很多地方都会涉及到网络设备。小至IP地址的设置。大至I
sfrysh
·
2010-07-14 20:00
linux
网络
struct
网络协议
header
interface
Linux网络协议栈
之网络设备管理
Linux为何要对网络设备单独管理呢?这是因为。协议栈很多地方都会涉及到网络设备。小至IP地址的设置。大至IP路由的更新。都离不开高效的网络设备管理。将网络设备单独管理可以提高效率!每个网络设备,在linux中都会对应一个数据结构,net_device。就从这个结构说起Linux2。6。21中,对net_device定义如下:structnet_device{//设备的名称,例如常见的“eth0”
sfrysh
·
2010-07-09 16:00
linux
网络
struct
网络协议
header
interface
16.1 概 述
16.1 概 述
Linux网络协议栈
的实现在内核代码中,了解Linux内核的网络部分代码有助于深刻理解网络编程的概念。
Linuxdianc
·
2009-12-21 15:00
框架
linux
网络
网络协议
防火墙
linux内核
2009年11月14日上海讲座-Linux网络设备驱动PPT
Linux网络设备驱动架构Linux网络设备驱动数据流程NON-NAPI模式数据接收流程NAPI模式数据接收流程数据发送流程
Linux网络协议栈
的实现TCP/UDP/IP/MAC各层数据传递
21cnbao
·
2009-11-15 11:03
linux
职场
休闲
网络设备驱动
2009年11月14日上海讲座-Linux网络设备驱动PPT
Linux网络设备驱动架构Linux网络设备驱动数据流程NON-NAPI模式数据接收流程NAPI模式数据接收流程数据发送流程
Linux网络协议栈
的实现TCP/UDP/IP/MAC各层数据传递
21cnbao
·
2009-11-15 11:03
linux
职场
休闲
网络设备驱动
LINUX网络协议栈
实现分析(-) SKBUFF的实现
LINUX网络协议栈
实现分析(-)SKBUFF的实现本文是我尝试分析
LINUX网络协议栈
实现的一系列文章中的第一篇,主要分析
LINUX网络协议栈
中SKBUFF的实现。
wl_haanel
·
2009-06-08 18:00
Linux内核bridge中的数据包处理流程
msn:
[email protected]
来源:http://yfydz.cublog.cn1.前言本文简要介绍数据包在进入桥网卡后在
Linux网络协议栈
的处理流程,并描述netfilter的hook
enchen
·
2009-05-14 18:17
linux
职场
休闲
Linux内核bridge中的数据包处理流程
msn:
[email protected]
来源:http://yfydz.cublog.cn1.前言本文简要介绍数据包在进入桥网卡后在
Linux网络协议栈
的处理流程,并描述netfilter的hook
guowake
·
2008-03-24 11:00
struct
Module
null
hook
DST
linux内核
Linux内核bridge中的数据包处理流程(转载)
msn:
[email protected]
来源:http://yfydz.cublog.cn1.前言本文简要介绍数据包在进入桥网卡后在
Linux网络协议栈
的处理流程,并描述netfilter的hook
chengqianyun2002
·
2007-06-23 19:00
Linux中skbuff的实现(转载)
本文是我尝试分析
LINUX网络协议栈
实现的一系列文章中的第一篇,主要分析
LINUX网络协议栈
中SKBUFF的实现。
chengqianyun2002
·
2007-04-13 10:00
上一页
1
2
3
4
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他