首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux 网络中断下半部处理

图1 网卡接收和发送数据过程 如上图所示,当网卡接收到从网络中发送过来的数据后,网卡会向 CPU 发起一个硬件中断。...图2 netif_rx 函数的处理过程 所以,netif_rx 函数的主要工作就是把接收到的数据包添加到待处理队列中,并且启动网络中断下半部处理。...对于 Linux 内核的中断处理机制可以参考我们之前的文章 Linux中断处理,这里就不详细介绍了。在本文中,我们只需要知道网络中断下半部处理例程为 net_rx_action 函数即可。...网络中断下半部处理 上面说了,网络中断下半部处理例程为 net_rx_action 函数,所以我们主要分析 net_rx_action 函数的实现: static void net_rx_action(...总结 本文主要介绍了网络中断下半部的处理,从分析可知,网络中断下半部主要工作是从待处理队列中获取数据包,并且根据数据包的网络层协议类型来找到相应的处理接口,然后把数据包交由网络层协议处理接口进行处理。

2.3K50

干货 | 携程光网络抵御光缆中断实践

据美国运营商Level3的统计,其光纤网络大概每年每千公里就会中断1次;中国电信大概每年会发生50次以上干线光缆中断;而在印度,几乎每天都会中断几次甚至十几次。...图3 光网络保护 图4 光缆故障时业务流向 通过上述保护机制,能够解决光缆中断时业务自动切换,带宽不损失,并且抵御同时发生2处光缆中断的极端情况。...三、问题分析 网络设备接口从down到up的时间因为不同设备不同光模块有差异,且网络层的二层及三层收敛时间因网络架构的不同存在不确定因素(通常认为是秒级中断),因此每次传输切换都会造成一定时间的业务不可用...Redis作为内存数据库,对网络抖动非常敏感,几乎每次光缆中断切换都有感知。 比如3月17日12:00 传输A平面,光纤发生闪断,骨干网CSR in方向错包。...通过对产品参数的研究和调试后,我们发现,当光缆中断时,传输光层会向两端电层板卡发送AIS信号,电层板卡收到AIS信号后会向网络设备发送Local_Fault告警,当网络设备收到该告警后,端口即变为down

37210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    超市巨头麦德龙遭网络攻击,支付系统中断

    德国零售批发超市集团麦德龙(Metro)被证实遭遇网络攻击,其部分基础设施中断,线下门店支付系统和线上订单出现延迟。...麦德龙在其网站声明中透露:“麦德龙目前正在经历几项技术服务的部分IT基础设施中断。IT团队已联合外部专家展开全面调查,寻找服务中断的原因。”...尽管麦德龙的门店仍在运营,但麦德龙表示,服务可能中断或延误,线上订单正加紧处理中,但预计会出现延迟。为了应对服务中断,麦德龙还启用了线下支付系统。...当媒体就此次攻击事件联系麦德龙时,该公司表示,此次网络攻击正在调查中,尚不能分享更多信息。据媒体推测,IT基础设施中断通常与勒索软件攻击有关。 网络攻击一向是零售公司头疼的问题,它通常导致中断和延误。...此前,美国连锁便利店7-Eleven因网络攻击导致丹麦各地的结账和支付系统瘫痪,不得不关闭170多家线下门店。

    48530

    中断和软中断_软中断和硬中断的优先级

    相应的中断处理函数的地址为:中断向量表地址 + 4 * n。 (5)硬中断和软中断的区别 软中断是执行中断指令产生的,而硬中断是由外设引发的。...硬中断中断号是由中断控制器提供的,软中断中断号由指令直接指出,无需使用中断控制器。 硬中断是可屏蔽的,软中断不可屏蔽。...= 0, /* 优先级高的tasklets */ TIMER_SOFTIRQ, /* 定时器的下半部 */ NET_TX_SOFTIRQ, /* 发送网络数据包 */ NET_RX_SOFTIRQ..., /* 接收网络数据包 */ BLOCK_SOFTIRQ, /* BLOCK装置 */ BLOCK_IOPOLL_SOFTIRQ, TASKLET_SOFTIRQ, /* 正常优先级的...在那些显示检查和执行待处理的软中断的代码中,如网络子系统中 而不管是用什么方法唤起,软中断都要在do_softirq()中执行。

    2.6K40

    单片机中断—外部中断

    51系列单片机的中断共有5个,其中外部中断共占两个。外部中断主要通过单片机的引脚P3.3、P3.4接收外部脉冲或高低电平触发CPU中断。与外部中断有关的多功能寄存器为IE、IP、TCON。...P3.2是单片机的外部中断的输入端,当按键按下时,让单片机执行外部中断服务程序,在中断服务中完成对LED的控制。...这里没有设置INT0是下降沿触发中断或是低电平触发中断,原因是按键按下,不管产生不产生键抖现象,总能使INT0引脚产生1个下降沿和低电平。...如果设置只有下降沿才触发INT0中断,需要利用设置计时器控制寄存器TCON的IT0 = 1位,按键按下是否产生中断,可以利用程序检测TCON的IE0位。...1; //开启INT0中断 PX0 = 1; //INT0中断优先,可以省去 EA = 1; //开启总中断开关

    2.7K20

    面试官:如何中断一个网络请求?

    — 如何中断一个网络请求? 02 背景知识 XMLHttpRequest 我们都知道在前端进行网张请求的时候,基本上都是采用XMLHttpRequest这个对象。...XMLHttpRequest 对象用于在后台与服务器交换数据。...XMLHttpRequest 对象是开发者的梦想,因为您能够: 在不重新加载页面的情况下更新网页 在页面已加载后从服务器请求数据 在页面已加载后从服务器接收数据 在后台向服务器发送数据 所有现代的浏览器都支持...好,简单介绍一下背景知识之后,我们正式开始今天的话题:如何中断一个正在发送的网络请求?...03 如何中断一个网络请求 上面我们介绍了在前端中两种请求网络的不同实现方式,现在我们就分别介绍这两种方式如何中断请求。

    92120

    linux | 网络数据包softirq 软中断与CPU

    softirqs 是在 Linux 内核编译时就确定好的,例如网络收包对应的 NET_RX_SOFTIRQ 软中断。因此是一种静态机制。...Posted-interrupt wakeup event heidsoft@heidsoft-dev:~$ /research/linux-5.15.4/net/core/dev.c 注册网卡收发包(RX/TX)软中断处理函数...硬中断是昂贵的,因为它们不能被中断。即使有中断 合并(稍后详细描述),中断处理程序将独占一个 CPU 内核 完全地。NAPI 的设计允许驱动程序进入轮询模式而不是被 为每个需要的数据包接收硬中断。...在正常操作下,会引发初始硬中断或 IRQ,然后是 SoftIRQ 处理程序 它使用 NAPI 例程轮询卡。轮询例程有一个预算,它决定了 允许代码的 CPU 时间。

    2.7K20

    育碧遭遇网络攻击,造成服务暂时中断

    近日,有关育碧遭到网络攻击的谣言在网上流传,而数据勒索组织LAPSUS$则表明这并不是留言,他们已经入侵了育碧。...起因在于近期的多个用户报告了访问游戏的某些服务出现问题,最终育碧公布遭遇了“网络安全事件”才造成服务的暂时中断。...对此,育碧发表了一则公告,公告称:“上周,我们经历了一起网络安全事件,导致我们的游戏、系统和服务暂时中断。我们的IT团队正在与外部专家合作调查该问题。以防万一,我们启动了全公司范围的密码重置。...对于该事件目前也没有过多的信息,也许Lapsus团伙可能已经破坏了公司网络并泄露了内部数据,毕竟该网络犯罪团伙近期从已经披露数据泄露事件的巨头公司(包括NVIDIA和三星)那里窃取了敏感数据。...这并不是育碧第一次遭受网络攻击,去年12月,这家游戏公司就曾被爆出数据泄露事件,导致未经授权就可以访问“舞力全开”的用户数据,该安全漏洞是由错误配置引起的,不过问题已得到迅速解决。

    46720

    线程中断

    线程中断 线程中断即线程运行过程中被其他线程给打断了,它与 stop 最大的区别是:stop 是由系统强制终止线程,而线程中断则是给目标线程发送一个中断信号 如果目标线程没有接收线程中断的信号并结束线程...* 线程中断失败, 因为目标线程收到中断信号并没有做出处理 */ public class T01_ThreadInterrupt_Failed { static int i = 10;...package com.starry.codeview.threads.P05_ThreadInterrupt; /** * 线程中断失败,Sleep遇到线程中断catch到异常会清除掉中断标记,...package com.starry.codeview.threads.P05_ThreadInterrupt; /** * 线程中断失败,Sleep遇到线程中断catch到异常会清除掉中断标记,...但是catch异常块中做出了中断处理动作,所以中断成功!!!

    1.4K20

    中断机制和中断描述符表、中断和异常的处理

    注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念性问题...中断又分为外部可屏蔽中断(INTR)和外部非屏蔽中断(NMI),所有I/O 设备产生的中断请求(IRQ)均引起屏蔽中断,而紧急的事件(如硬件故障)引起的故障产生非屏蔽中断。...2、外设可屏蔽中断、异常及非屏蔽中断 Intel x86 通过两片中断控制器8259A 来响应15 个外中断源,每个8259A 可管理8 个中断源。...我们把与中断控制器相连的每条线叫做中断线,要使用中断线,就得进行中断线的申请,就是IRQ(Interrupt ReQuirement ),我们也常把申请一条中断线称为申请一个IRQ 或者是申请一个中断号...当控制权通过中断门进入中断处理程序时,处理器清IF 标志,即关中断,以避免嵌套中断的发生。

    3.7K10

    中断系统结构及中断控制详解

    中断系统结构及中断控制详解 MCS—51提供5个中断请求源,2个中断优先级,可实现两级中断服务程序嵌套。...当CPU执行关中断指令后(或复位),将屏蔽所有中断请求,只有CPU执行开中断指令后才有可能接受中断请求,每个中断源可由软件编程为允许中断和禁止中断,每个中断源可程控为高优先级中断或低优先级中断。...MCS-51单片机有5个中断源,可提供两个中断优先级,即可实现二级中断嵌套。 二、MCS-51中断源及中断入口 MCS-51的中断源可分为三类:外部中断、定时中断和串行口中断。...各中断源对应的中断服务程序入口地址: ​ 中断源 入口地址 ​ 外部中断0 0003H ​ 定时器T0中断 000BH ​ 外部中断1 0013H ​ 定时器T1中断 001BH ​ 串行口中断 0023H...自然优先级由硬件形成,排列次序如下: 中断源 自然优先级 外部中断0 最高级 定时器T0中断 外部中断1 定时器T1中断 串行口中断 最低级

    3.1K20

    中断向量 中断向量表

    1、中断标识码(中断类型号):由硬件(通常是中断控制器)产生,以标识不同的中断源。...2、中断向量:早期的微机系统中将由硬件产生的中断标识码(中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址)称为中断向量。...在某些计算机中,中断向量的位置存放一条跳转到中断服务程序入口地址的跳转指令。 3、中断向量地址:存储中断向量的存储单元地址。...存放:存放中断服务程序的入口地址,来存放中断向量(共256个),称这一片内存区为中断向量表。...综上所述:中断向量的地址一定是 中断服务程序的入口地址的地址,但中断向量不一定就是中断服务程序的入口地址。

    2.6K40

    【嵌入式开发】ARM 关闭中断 ( CPRS 中断控制位 | 中断使能寄存器 | 中断屏蔽寄存器 | 关闭中断 | 汇编代码编写 )

    中断控制 ( 基于 S3C6410 开发板 ) 1. 关闭中断的两个步骤 (1) 关闭中断步骤 2....CPRS 寄存器中的中断控制位 (1) CPRS 寄存器简介 (2) CPRS 寄存器 中断控制 相关 位 3. 中断使能寄存器 (1) 中断使能寄存器简介 (2) 中断屏蔽寄存器简介 二....关闭中断的两个步骤 (1) 关闭中断步骤 ---- 关闭中断步骤 : 1.步骤 1 ( 程序状态字寄存器设置 ) : 设置 程序状态字寄存器 ( CPSR ) 中对应的与 中断 相关的位; 2.步骤...相关 位 ---- CPRS 寄存器中断控制相关位 : 1.普通中断控制位 : I 位, 第 [ 7 ] 位, 如果设置了该位 可以 关闭 普通中断 ; 2.快速中断控制位 : F 位, 第 [...) 设置 1 值 : 设置 1 值 激活中断功能; ---- (2) 中断屏蔽寄存器简介 ---- 中断屏蔽寄存器 ( VICINTENCLEAR ) 简介 : 1.分为两个寄存器 : 中断 屏蔽

    9.2K21

    中断SOFTIRQ

    中断的引入 软中断的出现和linux系统对中断的划分是分不开的。...linux系统将整个中断处理过程分为了两部分,分别为上半部(Top Half)和下半部(Bottom Half),之所以要这样分是因为关闭中断的时间不能过长,也就是在关闭中断期间尽可能少干事,否则影响整个系统的性能...所以linux系统将中断处理分为两部分,在上半部全程关闭中断,下半部打开中断。而在上半部主要干一些和硬件有关的操作,速度快,在下部分做一些耗时的操作。这样一来既能保证系统效率又能处理各种中断。...softirq */ NR_SOFTIRQS }; 其中HI_SOFTIRQ和TASKLET_SOFTIRQ用来实现tasklet,NET_TX_SOFTIRQ和NET_RX_SOFTIRQ用于网络的发送和接受操作...如果当前有中断嵌套,当irq_exit退出的时候,这时候还会在中断上下文,也是不会处理softirq的。

    2.3K21

    中断之NVIC

    中断编程的3个要点 1.使能外设某个中断,具体由每个外设的相关中断使能位控制。...例如串口有发送完成中断,接收完成中断 这两个中断都是由串口控制寄存器的相关中断使能位控制 2.初始化 NVIC_InitTypeDef结构体,配置中断优先分级组,设置抢占优先级和子优先级,使能中断请求...} NVIC_Type; NVIC_IROChannel:用来设置中断源,不同的中断中断源不一样,且不可写错,即 使写错了程序也不会报错,只会导致不响应中断。...3、编写中断服务函数 在启动文件 startup_stm32f10x_hd.s 中我们预先为每个中断都写了一个中断服务函数, 只是这些中断函数都是为空,为的只是初始化中断向量表。...编程要点简介 1.使能外设某个中断,具体由每个外设的相关中断使能位控制 2.初始化 NVIC_InitTypeDef结构体,配置中断优先分级组, 设置抢占优先级和子优先级,使能中断请求 3、编写中断服务函数

    62120

    线程的中断

    中断是对线程的一个指示,它应该停止正在做的事情并做其他事情。由程序员决定线程如何响应中断,但是线程终止是很常见的。这是本节课要强调的用法。...线程通过在要被中断的线程对象上调用interrupt来发送中断。为了让中断机制正常工作,被中断的线程必须支持自己的中断。 Supporting Interruption 线程如何支持自己的中断?...return; } } 在这个简单的示例中,代码只是测试中断并在收到中断后退出线程。...中断状态标志 中断机制是使用一个内部标志来实现的,这个标志被称为中断状态。调用Thread.interrupt设置这个标志。...当线程通过调用静态方法thread .interrupted来检查中断时,中断状态将被清除。一个线程使用非静态的isInterrupted方法来查询另一个线程的中断状态,它不会改变中断状态标志。

    1.2K20
    领券