logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux内核网络协议栈5-socket地址绑定

一、socket绑定入口1、示例代码C代码  struct sockaddr_in server_address;  server_address.sin_family = AF_INET;  server_address.sin_addr.s_addr = inet_addr("0.0.0.0");  server_address.sin_po

Linux内核网络协议栈4-创建socket(2)

接上篇“创建socket” 一文; 5、分配sock结构:本文中的例子会调用inet_family_ops.create方法即inet_create方法完成socket的创建工作;其调用链如下:net/Socket.c:sys_socket()->sock_create()->__sock_create()->net/ipv4/Af_inet.c:inet_cr

Linux内核网络协议栈7-socket端口管理

一、前情回顾上一节《socket 地址绑定 》中提到,应用程序传递过来的端口在内核中需要检查端口是否可用:if (sk->sk_prot->get_port(sk, snum)) {inet->saddr = inet->rcv_saddr = 0;err = -EADDRINUSE;goto out_release_sock;}  按照

Linux内核网络协议栈6-socket地址绑定(2)

三、根据不同的协议来完成绑定 上面代码中的第3步是根据应用程序在创建socket时传递到内核的协议域及socket类型来决定调用采用哪个方法,具体可以参考 创建socket 一文,这里不再赘述;下面以AF_IENT及SOCK_STREAM为例来说明绑定的过程; 1、调用链: net/Socket.c:sys_bind()->net/ipv4/Af_inet.c:inet_bind();

Linux内核网络协议栈8—socket监听

几个问题 了解以下几个问题的同学可以直接忽略下文:1、listen 库函数主要做了什么? 2、 什么是最大并发连接请求数? 3、什么是等待连接队列? socket 监听相对还是比较简单的,先看下应用程序代码:listen( server_sockfd, 5);其中,第一个参数 server_sockfd为服务端 socket所对应的文件描述符,第二个参数5 代表监听

linux内核中读写文件

之前以为在内核中不能创建文件,其实不是这样子的,只要文件系统跑起来之后就可以像在用户空间一样操作文件. 用户空间                   内核open()                    sys_open(), filp_open()close()                   sys_close(), filp_close()read()       

Linux内核分析 - 网络[七]:NetFilter

内核版本:2.6.34NetFilter在2.4.x内核中引入,成为linux平台下进行网络应用的主要扩展,不仅包括防火墙的实现,还包括报文的处理(如报文加密、报文分类统计等)等。NetFilter数据结构        勾子struct nf_hook_ops[net\filter\core.c][cpp] viewplaincopy

Linux内核源码阅读之打开文件篇

Linux中打开文件是通过open系统调用实现,其函数中调用了do_sys_open()函数完成打开功能,所以下面主要分析do_sys_open()函数,首先先看下open系统调用的入口函数,再具体看do_sys_open()函数:SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, int, mode){lon

(8)Linux内核中的hash与bucket

哈希表哈希表(Hashtable)又称为“散列”,Hashtable是会根据索引键的哈希程序代码组织成的索引键(Key)和值(Value)配对的集合。Hashtable 对象是由包含集合中元素的哈希桶(Bucket)所组成的。而Bucket是Hashtable内元素的虚拟子群组,可以让大部分集合中的搜寻和获取工作更容易、更快速。  哈希函数(Hash Function)为根据索引键

Linux内核网络协议栈1- socket文件系统注册

一、注册时机1、在内核初始化时完成;2、内核初始化过程(init/main.c):kernel_init()->do_basic_setup()->do_initcalls()->do_one_initcall();3、socket文件系统注册过程(net/socket.c):core_initcall(sock_init);1) core_initcall宏定义如下:

    共 62 条
  • 1
  • 2
  • 3
  • 7
  • 请选择