首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
linux 协议栈 lo
2024-08-03
Linux中的lo回环接口详细介绍
1.linux的网络接口之扫盲 (1)网络接口的命名 这里并不存在一定的命名规范,但网络接口名字的定义一般都是要有意义的.例如: eth0: ethernet的简写,一般用于以太网接口. wifi0:wifi是无线局域网,因此wifi0一般指无线网络接口. ath0: Atheros的简写,一般指Atheros芯片所包含的无线网络接口. lo: local的简写,一般指本地环回接口. (2)网络接口如何工作 网络接口是用来发送和接受数据包的基本设备. 系统中的所有网络接口组成一个链状结构,应用层
Linux协议栈代码阅读笔记(二)网络接口的配置
Linux协议栈代码阅读笔记(二)网络接口的配置 (基于linux-2.6.11) (一)用户态通过C库函数ioctl进行网络接口的配置 例如,知名的ifconfig程序,就是通过C库函数sys_ioctl实现网络接口的配置的. 具体方法大致如下,即建立一个socket,得到一个fd,然后在此fd上执行ioctl即可完成各种操作(例如,查询/配置mac.ip.mtu,启动/停止网络接口). int fd = socket(AF_INET, SOCK_DGRAM, 0); ioctl(fd, SI
[置顶] Linux协议栈代码阅读笔记(一)
Linux协议栈代码阅读笔记(一) (基于linux-2.6.21.7) (一)用户态通过诸如下面的C库函数访问协议栈服务 int socket(int domain, int type, int protocol); int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); int connect(int sockfd, const struct sockaddr *addr, socklen_t addrl
[置顶] Linux协议栈代码阅读笔记(二)网络接口的配置
Linux协议栈代码阅读笔记(二)网络接口的配置 (基于linux-2.6.11) (一)用户态通过C库函数ioctl进行网络接口的配置 例如,知名的ifconfig程序,就是通过C库函数sys_ioctl实现网络接口的配置的. 具体方法大致如下,即建立一个socket,得到一个fd,然后在此fd上执行ioctl即可完成各种操作(例如,查询/配置mac.ip.mtu,启动/停止网络接口). int fd = socket(AF_INET, SOCK_DGRAM, 0); ioctl(fd, SI
linux协议栈部分资料
socket实现:http://blog.csdn.net/zhangskd(含有tcp/ip专栏) http://blog.chinaunix.net/uid-20528014-id-90573.html以及其他所有文章 http://blog.chinaunix.net/uid-17150-id-2824051.html以及其他所有文章 http://blog.csdn.net/yusiguyuan 含有tcp以及网络库专栏 以太网:http://baike.baidu.com/view/8
linux 协议栈tcp的rst报文中,seq的选取问题
之前在<深入理解并行编程>的群里,有个小米的兄弟问了一个问题,服务器A发包给服务器B,Seq是1,但是在未能收到服务器B的报文回复的情况下,发送了rst,但是rst报文中,对应的seq是1461,一堆人都在猜测,为什么seq跳变了,由于当时只看到一半的图片,所以我让他发送完整报文出来之后,我 发现其实rst的seq不是1的原因,并不是因为跳变,而是正常的,因为发送给B的报文,长度为1460,但是这个报文没有得到回复,所以在超时之后,应用程序关闭了这条连接, 导致内核协议栈发送了一个rst报文,
评价linux协议栈tcp实现中的prequeue
https://blog.csdn.net/dog250/article/details/5464513 https://wiki.aalto.fi/download/attachments/70789052/linux-tcp-review.pdf http://lkml.iu.edu/hypermail/linux/kernel/0506.1/1947.html http://lkml.iu.edu/hypermail/linux/kernel/0506.1/2007.html
linux协议栈skb操作函数
Linux协议栈函数调用流程
普通网络驱动程序中必须要调用的函数是eth_type_trans(略),然后向上递交sk_buff时调用netif_rx()(net/core/dev.c).其函数中主要几行 __skb_queue_tail(&queue->input_pkt_queue, skb);添加skb到接受队列中 netif_rx_schedule(&queue->backlog_dev); 开启接受软中断处理. struct softnet_data * queue 在net_dev_init()
Linux协议栈-netfilter-conntrack
原文连接:https://blog.csdn.net/jasonchen_gbd/article/details/44874321?utm_source=blogxgwz8
linux 协议栈 实现--编码小知识分析
unlikely 以及likely 作用: rcu_read_lock 以及rcu_read_unlock 作用: rcu_dereference .rcu_dereference_protected.rcu_assign_pointer的作用 bug_on,bug的作用 fs_initcall module_init 的作用 seqlock_t .rw_lockt 区别 ACCESS_ONCE 作用 rcu_read_lock_bh.rcu_read_unlock_bh
Linux 内核协议栈 学习资料
终极资料 1.<Understanding Linux Network Internals> 2.<TCP/IP Architecture, Design and Implementation in Linux> 以下博客内容可用于导读. 自底向上 链路层质料 1.linux内核网络协议栈架构分析,全流程分析-干货: https://blog.csdn.net/zxorange321/article/details/75676063 2.专栏:Linux内核网络栈源代码分析 htt
Linux 从网卡到TCP IP协议栈数据流跟踪与审计
前沿 在学代码审计,然后最近做Linux协议栈的审计,发现Linux不愧是一个久经考验的系统,本来以为可以找到个DoS的,结果发现其在TCP/IP协议栈的链路层实现,利用了各种技术,用来提高性能与安全性. 工具 在跟踪数据从网卡到TCP/IP协议栈的过程中,使用4.10.0内核,利用understand查看代码,以及flawfinder来配合进行安全性的检查.以intel e1000 驱动为列. 分析 NAPI 首先,为了效率,Linux使用了NAPI机制.所谓NAPI机制,其就是当数据到来时,
linux 网桥的配置与实现
==================================================================================from: http://www.ibm.com/developerworks/cn/linux/kernel/l-netbr/index.htmlALinux网桥的实现分析与使用文档选项未显示需要 JavaScript的文档选项 打印本页 将此页作为电子邮件发送级别: 初级祝顺民([email=getmoon@163.com?sub
从Linux 2.6.8内核的一个TSO/NAT bug引出的网络问题排查观点(附一个skb的优化点)
梦中没有错与对,梦中没有恨和悔...最好闭上你的嘴.这样才算可爱...我不会说:这不公道,我不能接受.我会用朴素的文字记录点点滴滴,早上4点多起来,一气呵成最近的收获与评价,愤慨与忏悔. 四年多前的一个往事 大约在2010年的时候,我排查了一个问题. 问题描写叙述例如以下: 服务端:Linux Kernel 2.6.8/192.168.188.100client:Windows XP/192.168.40.34业务流程(简化版):1.client向服务端发起SSL连接2.数据传输 现象:SSL握
036.集群网络-K8S网络模型及Linux基础网络
一 Kubernetes网络模型概述 1.1 Kubernetes网络模型 Kubernetes网络模型设计的一个基础原则是:每个Pod都拥有一个独立的IP地址,并假定所有Pod都在一个可以直接连通的.扁平的网络空间中.所以不管它们是否运行在同一个Node(宿主机)中,都要求它们可以直接通过对方的IP进行访问.设计这个原则的原因是,用户不需要额外考虑如何建立Pod之间的连接,也不需要考虑如何将容器端口映射到主机端口等问题. 实际上,在Kubernetes的集群里,IP是以Pod为单位进行分配的.
网络数据包收发流程(四):协议栈之packet_type
进入函数netif_receive_skb()后,skb正式开始协议栈之旅.先上图,协议栈大致过程如下所示:跟OSI七层模型不同,linux根据包结构对网络进行分层.比如,arp头和ip头都是紧跟在以太网头后面的,所以在linux协议栈中arp和ip地位相同(如上图)但是在OSI七层模型中,arp属于链路层,ip属于网络层..... 这里就不死抠概念,我们就说arp,ip都属于第二层.下面是网络第二层的处理流程 一.相关数据结构内核处理网络第二层,有下面2个重要list_head变量 (文件li
转:Linux网络IO并行化技术概览
转:http://codinginet.com/articles/view/201605-linux_net_parallel?simple=1&from=timeline&isappinstalled=0 Linux网络IO并行化技术概览 By mikewei at 2016-05-21 00:30 阅读(276) 过去的十年中互联网经历了爆发式的增长,这背后有什么技术平台起了最为关键的作用,我认为是Linux,即使在云计算流行的今天,它依然是最重要的一块基石.我们或许经常听到关于什么是
Linux转发性能评估与优化-转发瓶颈分析与解决方式(补遗)
补遗 关于网络接收的软中断负载均衡,已经有了成熟的方案,可是该方案并不特别适合数据包转发,它对server的小包处理非常好.这就是RPS.我针对RPS做了一个patch.提升了其转发效率. 下面是我转载的我自己的原文. 线速问题 非常多人对这个线速概念存在误解.觉得所谓线速能力就是路由器/交换机就像一根网线一样.而这.是不可能的.应该考虑到的一个概念就是延迟. 数据包进入路由器或者交换机.存在一个核心延迟操作,这就是选路,对于路由器而言.就是路由查找,对于交换机而言,就是查询MAC/port映射
Linux PCI网卡驱动的详细分析
学习应该是一个先把问题简单化,在把问题复杂化的过程.一开始就着手处理复杂的问题,难免让人有心惊胆颤,捉襟见肘的感觉.读Linux网卡驱动也是一 样.那长长的源码夹杂着那些我们陌生的变量和符号,望而生畏便是理所当然的了.不要担心,事情总有解决的办法,先把一些我们管不着的代码切割出去,留下必 须的部分,把框架掌握了,哪其他的事情自然就水到渠成了,这是笔者的心得. 一般在使用的Linux网卡驱动代码动辄3000行左右,这个代码量以及它所表达出来的知识量无疑是庞大的,我们有没有办法缩短一下这个代码量,使
Linux kernel Vhost-net 和 Virtio-net代码详解
场景 Host上运行qemu kvm虚拟机,其中虚拟机的网卡类型为virtio-net,而Host上virtio-net backend使用vhost-net 数据包进入虚拟机代码分析 首先看vhost-net模块注册,主要使用linux内核提供的内存注册机制,这部分开发过linux kernel的人都应该 很了解啦 static struct miscdevice vhost_net_misc = { .minor = VHOST_NET_MINOR, .name = "vhost-net&q
热门专题
pandas 获取当前时间 并且格式化
html点击按钮打开外部链接
wrapper 设置内存大小
性能测试的线程数和并发数的
ef group by 字符串连接
springboot怎么配置sqlserver的配置文件
winform spiltcontainer 分成多份
t-sql提供的控制流有哪些
ngnix 音频 占用多大带宽
js编写1-10000质数
dbgrideh 单元格颜色
ef farmark实例化上下文对象
jmeter进行多用户登录时压力测试用户名密码怎么弄
bytes转为字符串
微信小程序开发天气预报
Linux ipc识别号
客户层的压测机节点有几台是指什么
vhd系统有什么缺点
如何保证集群scheduled执行一次
xcode12 自动排版