内核中的TCP的追踪分析-3-TCP(IPV4)的socket的地址绑定
今天我们继续内核中的TCP的socket的学习,同样按照Unix那节中的socket地址绑定的路线我们来分析一下,我们看到在以前的练习中有这样的绑定代码bind(server_sockfd,(structsockaddr*)&server_address,server_len);上面的练习请
内核中的TCP的追踪分析-1-追踪TCP(IPV4)的socket的初始化
我们首先来解释一下什么是socket,很多初次朋友可能对此概念还不是很清楚,socket这个单词英文是插座的意思,但是在计算机领域里有时称为插口,也有时称为套接字,无论什么叫法它的作用都不会变的,都是为应用程序提供了今天网络通讯的桥梁架构,我们举一个电话通讯的例子来看。准备通话的二部电话相当于准备好
2.6内核数据包接收流程分析
2.6.24.4内核网络接收数据包分析在2.6.24.4中所有的网卡,不管是否支持napi,都是通过structnapi_struct结构进行。所有我们先说一下这个结果。structnapi_struct{structlist_headpoll_list;unsignedlongstate;intw
Netfilter CONNMARK用法及分析(二)-- 内核代码分析
本文着重分析内核中CONNMARK的实现,同时还包括MARK的match和target模块的实现。因为CONNMARK模块通常是和MARK模块搭配使用的。1.CONNMARK及相关模块的选项这里先列出CONNMARK、MARK和mark模块的iptables命令行的选项,随后我们再逐一分析各个模块的
Linux内核发送构造数据包的方式
一、构造数据包简析这里并不详细介绍如何在内核中构造数据包,下文如有需要会在适当的位置进行分析。这里简单的分析讲一下内核态基于Netfilter框架构造数据包的方式。内核中可以用到的构造数据包的方式,个人认为可以分为两种。其一,我们直接用alloc_skb申请一个skb结构体,然后根据实际的应用填充不
udp数据报从网卡驱动到用户空间流程总结
最近学习linux内核网络协议栈,把数据包接收流程大致理了一下,前面也看了瀚海书香兄的总结,感觉总结的比我精炼,抓住了主干,是一目了然的那种我的这篇本来是自己看得,因此把我自己学习中一些遇到的问题写了出来,可能其他人会觉得废话比较多,呵呵另外,因为我看的书UnderstandingLinuxNetw
Linux内核IP Queue机制的分析(三)——ip_queue内核模块的分析(3)
(三)ip_queue报文入队处理函数的注册在上面分析的模块注册代码中,IPQueue的报文入队处理函数的注册是通过调用nf_register_queue_handler()来实现的。因此,有必要了解一下该函数的源码,源码位于nf_queue.c中:/*returnEBUSYwhensomebody
Linux内核IP Queue机制的分析(三)——ip_queue内核模块的分析(2)
三、ip_queue代码分析ip_queue模块的代码较为简单,包含ip_queue.h和ip_queue.c。我们将分别该两个源文件进行分析。(一)数据结构的定义ip_queue模块的数据结构定义在头文件ip_queue.h中,主要定义了用于在内核态和用户态传输数据的相关数据结构。其代码如下:/*
Linux内核IP Queue机制的分析(三)——ip_queue内核模块的分析(1)
本文分析ip_queue的内核态源码。文中如有任何疏漏和差错,欢迎各位朋友指正。本文大纲如下:一、IPQueue的生效二、网络层中IP报文进入IPQueue的流程三、ip_queue代码分析(一)数据结构的定义(二)ip_queue模块的加载和卸载(三)ip_queue报文入队处理函数的注册(四)入
关于ptype_all和pypte_base中的pt_prev的说明[转]
看见noble_shi兄弟"关于net_rx_action函数的若干问题"贴中关于pt_prev的问题,本来想在论坛上找到一个相关的帖子的链接告诉他。但是发现咱们论坛上关于pt_prev的讨论要么没有说明,要么理解的偏差,甚至是错误。而且关于pt_prev的提问很多。故写了以下内容。不过本人水平有限
[网络子系统] Netfilter之连接跟踪实现机制初步分析
Netfilter之连接跟踪实现机制初步分析原作者:Minit本帖子只作为初步分析,因为时间和自身水平的缘故,其中定存在不妥的地方,希望看到本帖的各位能够指正。当修正和完善后再提供PDF文档,谢谢大家的关注。1.前言Netfilter中的连接跟踪模块作为地址转换等的基础,在对Netfilter的实现
Netfilter 连接跟踪与状态检测的实现(2)
5.resolve_normal_ctresolve_normal_ct函数是连接跟踪中最重要的函数之一,它的主要功能就是判断数据包在连接跟踪表是否存在,如果不存在,则为数据包分配相应的连接跟踪节点空间并初始化,然后设置连接状态:/*Onsuccess,returnsconntrackptr,set
Netfilter 连接跟踪与状态检测的实现
作者:九贱www.skynet.org.cn原创,欢迎转载,转载,请注明出处内核版本:2.6.12本文只是一部份,详细分析了连接跟踪的基本实现,对于ALG部份,还没有写,在整理笔记,欢迎大家提意见,批评指正。1.什么是连接跟踪连接跟踪(CONNTRACK),顾名思义,就是跟踪并且记录连接状态。Lin
PF_RING实现分析(3)
刚刚接触PF_RING,学习了,O(∩_∩)O有个问题请教一下九贱前辈:内核中的PACKET_MMAP跟PF_RING有什么不同呢?感觉PACKET_MMAP跟transparent_mode=0时的PF_RING原理上是一样的(⊙o⊙)啊...?___________________取包的方式不同
PF_RING实现分析(2)
4、mmap操作用户态的接下来调用:ring->buffer=(char*)mmap(NULL,PAGE_SIZE,PROT_READ|PROT_WRITE,MAP_SHARED,ring->fd,0);复制代码进行内存映射。同样地,内核调用相应的ring_mmap进行处理。Ring选项
PF_RING实现分析(1)
版权所有,转载请注明出处独孤九贱内核版本:Linux2.6.30.9PF_RING版本:4.1.0最近看了一个PF_RING的实现,看了个大概,发上来大家讨论讨论,共同学习。一、什么是PF_RINGPF_RING是一个第三方的内核数据包捕获接口,类似于libpcap,它的官方网址是:http://w
基于2.6.20版本的《Linux内核源码剖析--TCP/IP实现》(2)
第19章路由表52619.1概念52619.1.1构成的路由的要素52619.1.2特殊路由52819.1.3路由缓存52819.2系统参数52919.3路由表组成结构52919.3.1fib_table结构53219.3.2fn_zone结构53319.3.3fib_node结构53419.3.4
基于2.6.20版本的《Linux内核源码剖析--TCP/IP实现》
经过两年半深入的研究,已完成《Linux内核源码剖析--TCP/IP实现》一书,此书的框架参照了大师级作品《TCP/IP详解-卷2》内容提要本书完整而详细的论述了Linux内核2.6.20版本中TCP/IP协议是如何实现的。书中给出了大量的源代码,通过对源代码的详细的论述,帮助你掌握TCP/IP的实
nfs权限的问题
问题:我把LINUX下一个目录共享,在SGI上可MOUNT上,但SGI的ROOT用户无法在上面写文件,而普通用户却可以。另外在SUN机器上MOUNTNFS文件系统却没这个问题。是怎么回事啊。解答:检查一下/etc/exports文件加上no_root_squash参数,否则默认情况下,将把Clien
UNIX传统文件系统s5fs的实现
文件系统实现—重点讲述s5fs两种在现代UNIX系统中常见的、用于通用目的的本地文件系统是SystemV文件系统(s5fs)和伯克利快速文件系统(FFS)。s5fs是UNIX最初的文件系统,SystemV的所有版本和一些商业UNIX系统都支持s5fs。由伯克利UNIX4.2BSD版引进的FFS比sS