服务器重启完成之后,我们可以通过linux的指令 ip addr 来查询Linux系统的IP地址,具体信息如
今天分享一篇经典Linux协议栈文章,主要讲解Linux网络子系统,看完相信大家对协议栈又会加深不少,不光可以了解协议栈处理流程,方便定位问题,还可以学习一下怎么去设计一个可扩展的子系统,屏蔽不同层次的差异。
这里深度理解一下在Linux下网络包的接收过程,为了简单起见,我们用udp来举例,如下:
文章目录 一、在Linux最小安装之后,一般需要手动配置网络地址。 二、手动配置IP 三、重启网络服务,查看是否配置成功 一、在Linux最小安装之后,一般需要手动配置网络地址。 初始化界面: 二、手动配置IP cd /etc/sysconfig/network-scripts/ #进入网卡配置文件 vi ifcfg-ens33 #编辑配置网卡 网卡设备配置信息, 如下: TYPE=Ethernet
所以,当网卡接收到数据包后,要通知 Linux 内核有数据需要处理。另外,网卡驱动应该提供让 Linux 内核把数据把发送出去的接口。
因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对Linux底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。
因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对网络底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。
如何调整Linux内核启动中的驱动初始化顺序? 【问题】 此处我要实现的是将芯片的ID用于网卡MAC地址,网卡驱动是enc28j60_init。 但是,读取芯片ID的函数,在as352x_afe_init模块中,所以要先初始化as352x_afe_init。 此处,内核编译完之后,在生成的system.map中可以看到, enc28j60_init在as352x_afe_init之前,所以,无法去读芯片ID。 所以我们的目标是,将as352x_afe_init驱动初始化放到enc28j60_init之前, 然后才能读取芯片ID,才能用于网卡初始化的时候的,将芯片ID设置成网卡MAC地址。 【解决过程】 【1】 最简单想到的,是内核里面的 arch\arm\mach-as352x\core.c 中,去改devices设备列表中的顺序。 enc28j60_init对应的是ssp_device,因为网卡初始化用到的是SPI驱动去进行和通讯的。 as352x_afe_init对应的是afe_device。 原先是:
前言: 云计算场景下,经常会使用到bond技术的主备模式。这里分析一下bond技术的原理。 原理: 简单回忆一下IPV4协议栈,以用户发送一个HTTP请求为例: HTTP数据包经过TCP协议栈
/* 所谓回环网卡, 就是一个虚拟网卡。 既然是虚拟网卡那么就和硬件没关系。 * 在linux主机上输入"ifconfig" 看见eth 和 lo。 其中lo就是所谓的虚拟网卡,即回环网卡 * 本节主要分析这个虚拟网卡的驱动程序 */ struct pcpu_lstats { u64 packets; u64 bytes; struct u64_stats_sync syncp; }; /* 因为是虚拟网卡, 所以就不需要暂停数据传输, 当然也不需要唤醒。 因为不需要写入寄存器
通过前面的文章我们已经了解了「数据包从HTTP层->TCP层->IP层->网卡->互联网->目的地服务器」这中间涉及的知识。
0.前言 为提升信鸽基础服务质量,笔者就网络收包全流程进行了内容整理。 网络编程中我们接触得比较多的是socket api和epoll模型,对于系统内核和网卡驱动接触得比较少,一方面可能我们的系统没有需要深度调优的需求,另一方面网络编程涉及到硬件,驱动,内核,虚拟化等复杂的知识,使人望而却步。网络上网卡收包相关的资料也比较多,但是比较分散,在此梳理了网卡收包的流程,分享给大家,希望对大家有帮助,文中引用了一些同事的图表和摘选了网上资料,在文章最后给出了参考文献与部分来源,感谢这些作者的分享。 1.整体流程
在容器化大行其道的今天,Docker 可谓是容器界的宠儿。比起笨重的虚拟机,Docker 可谓是身轻如燕。当然,本文不是介绍虚拟机与 Docker 之间的优缺点,而是介绍 Docker 网络中重要的组成部分之一:
1.常见的Linux发行版本都有什么?你最擅长哪一个?它的官网网站是什么?说明你擅长哪一块? 答: 常见的Linux发现版本有Redhat、Centos、Debian、Ubuntu、Suse 最擅长Redhat和Centos Redhat官网:www.redhat.com Centos官网:www.centos.org 我最擅长Linux基本命令操作及相关服务搭建
写一篇迟到的折腾笔记:NUC8 8i5beh 。原本计划折腾 Hackintosh ,最后折腾了一台 Linux Homelab 设备。
最近很多朋友都用到一款模拟器,外观非常漂亮,功能非常实用, 这个模拟器就是PNET,今天给大家分享一下如何对PNET 模拟器进行初始化安装。
今天给大家带来一期干货内容,关于模拟器, 这个模拟器就是PNET,今天给大家分享一下如何对PNET 模拟器进行初始化安装。
前言: 虚拟机性能调试的时候,遇到了external irq对vm造成了exit。 分析: 1,网卡多队列 enp130s0f0是Intel Corporation Ethernet Control
首先uboot已带有dm9000网卡的驱动,位于drivers/net/下的dm9000x.h、dm9000x.c
一.前言 由于OpenStack Neutron项目本身的高度复杂性和抽象性,加之作为一名初学者,其理解能力有限。因此这里,阐述的仅是凤毛麟角而已,其目的是帮助、引导和我一样对Neutron又敬又畏的朋友们!如果本文中出现纰漏和错误,恳请指正。接受教育,本身也是一种学习。 在这里,需要指出的是,本文仅从宏观角度而言,起一个引导、抛砖引玉的作用。 ——即实现Neutron的整体原理是什么。 二.Neutron架构 Neutron项目共由约1千多个文件构成(k版)。 # tree -l 1 neutron/ 3
一.前言 由于OpenStack Neutron项目本身的高度复杂性和抽象性,加之我仅作为一名初学者,其理解能力有限。因此这里,阐述的仅是凤毛麟角而已,其目的是帮助、引导和我一样对Neutron又敬又畏的朋友们!如果本文中出现纰漏和错误,恳请指正。接受教育,本身也是一种学习。 在这里,需要指出的是,本文仅从宏观角度而言,起一个引导、抛砖引玉的作用。 ——即实现Neutron的整体原理是什么。 好了,下面让我们一起踏上Neutron这条不归之路吧! 二.Neutron架构 Neu
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统。常用虚拟机软件:
在主机下,进入/mydata/mysql/conf/文件夹下,vi my.cnf 文件,输入如下信息,再保存退出 my.cnf
我们的DM9000是放在2440的bank4(0X20000000)的片选上面,而DM9000的CMD引脚接在bank4的LADDR2上面。也就是说当0X20000000地址上读写数据时, 此时CMD为低,则读写的便是DM9000C的地址。向0X20000000+4地址上读写数据时,此时CMD为高,则读写的便是DM9000C的数据。
本章节介绍的是一款面向四层网关(如四层负载均衡,L4-LB)的高性能的压测工具dperf。该工具目前已经在github上开源,是一款高性能的压测工具:
严格来说,PXE 并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。
封装:当应用程序用 TCP 协议传送数据时,数据首先进入内核网络协议栈中,然后逐一通过 TCP/IP 协议族的每层直到被当作一串比特流送入网络。对于每一层而言,对收到的数据都会封装相应的协议首部信息(有时还会增加尾部信息)。TCP 协议传给 IP 协议的数据单元称作 TCP 报文段,或简称 TCP 段(TCP segment)。IP 传给数据链路层的数据单元称作 IP 数据报(IP datagram),最后通过以太网传输的比特流称作帧(Frame)。
Moloch 是一个由AOL开源的,能够大规模的捕获IPv4数据包(PCAP)、索引和数据库系统,由以下三个部分组成:
curl -sSL https://raw.githubusercontent.com/dotnet/cli/rel/1.0.0-preview1/scripts/obtain/dotnet-install.sh | bash /dev/stdin --version 1.0.0-preview1-002702 --install-dir ~/dotnet
作者:bobyzhang,腾讯 IEG 运营开发工程师 0. 故事的开始 0.1 为什么和做什么 最近家里买了对音响,我需要一个数字播放器。一凡研究后我看上了 volumio(https://volumio.org/) 这是一个基于 Debian 二次开发的 HIFI 播放器系统,可以运行下 x86 和树莓派上。 我打算让 volumio 运行在我 2009 年购买的老爷机笔记本上,也让它发挥一点余温热。正常操作是将 volumio 的系统镜像刷到 U 盘上,连接电脑后使用 U 盘启动系统即可。但是家
TYPE=Ethernet # 网卡类型:为以太网 PROXY_METHOD=none # 代理方式:关闭状态 BROWSER_ONLY=no # 只是浏览器:否 BOOTPROTO=dhcp # 网卡的引导协议:DHCP[中文名称: 动态主机配置协议] DEFROUTE=yes # 默认路由:是, 不明白的可以百度关键词 默认路由 IPV4_FAILURE_FATAL=no # 是不开启IPV4致命错误检测:否 IPV6INIT=yes # IPV6是否自动初始化: 是[不会有任何影响, 现在还没用到IPV6] IPV6_AUTOCONF=yes # IPV6是否自动配置:是[不会有任何影响, 现在还没用到IPV6] IPV6_DEFROUTE=yes # IPV6是否可以为默认路由:是[不会有任何影响, 现在还没用到IPV6] IPV6_FAILURE_FATAL=no # 是不开启IPV6致命错误检测:否 IPV6_ADDR_GEN_MODE=stable-privacy # IPV6地址生成模型:stable-privacy [这只一种生成IPV6的策略] NAME=ens33 # 网卡物理设备名称 UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698 # 通用唯一识别码, 每一个网卡都会有, 不能重复, 否两台linux只有一台网卡可用 DEVICE=ens33 # 网卡设备名称, 必须和 NAME 值一样 ONBOOT=no # 是否开机启动, 要想网卡开机就启动或通过 systemctl restart network控制网卡,必须设置为 yes
基于内核的虚拟机 Kernel-based Virtual Machine(KVM)是一种内建于 Linux® 中的开源虚拟化技术。具体而言,KVM 可帮助您将 Linux 转变为虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境,即虚拟客户机或虚拟机(VM)。
Linux阅码场内核月报栏目,是汇总当月Linux内核社区最重要的一线开发动态,方便读者们更容易跟踪Linux内核的最前沿发展动向。
无界面初始化,也就是常说的 headless initialization,目的是在不需要给树莓派接入额外的显示器的情况下完成基本的无线网络配置,并且启动好必要的远程管理工具比如 ssh 等。
只修将这个配置文件中的信息改变为:static、yes。其中IP地址、网关协议以及域名解析系统公司用给出,直接按着修改即可。
cd /etc/sysconfig/network-scripts/,找到配置文件为ifcfg-em2
WPA是WiFi Protected Access的缩写,中文含义为“WiFi网络安全存取”。WPA是一种基于标准的可互操作的WLAN安全性增强解决方案,可大大增强现有以及未来无线局域网络的数据保护和访问控制水平。 wpa_supplicant是一个开源项目,已经被移植到Linux,Windows以及很多嵌入式系统上。它是WPA的应用层认证客户端,负责完成认证相关的登录、加密等工作。 wpa_supplicant是一个 独立运行的 守护进程,其核心是一个消息循环,在消息循环中处理WPA状态机、控制命令、驱动事件、配置信息等。 经过编译后 的 wpa_supplicant源程序可以看到两个主要的可执行工具:wpa_supplicant 和 wpa_cli。wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用 wpa_cli来搜索、设置、和连接网络。 Android使用一个修改版wpa_supplicant作为daemon来控制WIFI,它是一个安全中间件,代码位于external/wpa_supplicant,为各种无线网卡提供统一的安全机制,wpa_supplicant是通过socket与hardware/libhardware_legacy/wifi/wifi.c通信,如下图所示:
一、网络(PXE)装机概述 1.传统装机的局限性 1.1需要用到固定的光驱、U盘等物理介质 1.2如果批量安装多台计算机,都用到物理介质,显然不太现实。 2.PXE装机的优点 2.1规模化:可以
作为网络领域的开发人员,我们经常要与Linux的数据报文打交道,一定要搞清楚数据报文是从何而来,又是如何离去。以前针对这个主题写过一些文章(主要是从源码角度),这次会更重视流程示意图(在细节上必然有所简化),争取在一篇文章中,就让大家理清数据报文的来龙去脉。
ifconfig用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。
一、前言 Linux操作系统至1991年10月5日诞生以来,就其开源性和自由性得到了很多技术大牛的青睐,每个Linux爱好者都为其贡献了自己的一份力,不管是在Linux内核还是开源软件等方面,都为我们后来人提供了一个良好的学习和研究环境。 本文主要通过裁剪现有Linux系统,根据自己的需要,打造一个属于自己的Linux小系统,让其能够具备Linux的一些常用小功能。 二、原理 启动流程介绍: 制作Linux小系统之前,我们有必要再了解一下Linux的启动流程: 1、首先Linux要通过POST自检,检查
微雪官方教程:http://www.waveshare.net/wiki/SIM7600CE_4G_HAT
Linux操作系统至1991年10月5日诞生以来,就其开源性和自由性得到了很多技术大牛的青睐,每个Linux爱好者都为其贡献了自己的一份力,不管是在Linux内核还是开源软件等方面,都为我们后来人提供了一个良好的学习和研究环境。
Linux下配置网卡ip别名何谓ip别名? 用windows的话说,就是为一个网卡配置多个ip。 什么场合增加ip别名能派上用场? 布网需要、多ip访问测试、特定软件对多ip的需要…and so on.
我们先从计算机组成原理的层面介绍DMA,再简单介绍Linux网络子系统的DMA机制是如何的实现的。
目前互联网业界主流的服务器开发系统主要包括linux和windows两款操作系统,很多网络服务商需要获取客户端的真实IP和Port,特别是IP地址,对业务策略进行制定,优化;同时客户端的IP和Port信息作为基本的统计数据,对线上业务运营的监控和评估具有非常重要的意义。大部分情况下,服务器端可以通过网络API直接获取连接的网络信息,但是针对服务器前侧添加了代理的网络框架来说,就无法直接通过网络API来获取了。而TOA通过扩展TCP首部的可选字段,可以很好的将客户的真实的IP和Port信息传递到服务器端。因此需要一种手段可以在服务器侧来解析TOA字段,linux系统下的获取在业界有比较成熟的方法获取,但是windows系统下至今没有一种成熟的方案去获取。
摘要总结:本章节分析uboot阶段2的硬件初始化过程,包括启动kernel、进入菜单和进入u-boot界面等步骤。
领取专属 10元无门槛券
手把手带您无忧上云