吞吐量是什么意思(吞吐量和传输速率的区别)
推荐视频:
剖析Linux内核网络协议栈大全
linux后台开发岗面试中tcp/ip,哪些容易被问到的
c/c linux服务器开发学习地址:C/C Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂
同 CPU、内存以及 I/O 一样,网络也是 Linux 系统最核心的功能。网络是一种把不同计算 机或网络设备连接到一起的技术,它本质上是一种进程间通信方式,特别是跨系统的进程 间通信,必须要通过网络才能进行。随着高并发、分布式、云计算、微服务等技术的普 及,网络的性能也变得越来越重要。
那么,Linux 网络又是怎么工作的呢?又有哪些指标衡量网络的性能呢?接下来,我们一起学习 Linux 网络的工作原理和性能指标。网络模型
说到网络,我们肯定经常提起七层负载均衡、四层负载均衡,或者三层设备、二层设备等等。那么,这里说的二层、三层、四层、七层又都是什么意思呢?
实际上,这些层都来自国际标准化组织制定的开放式系统互联通信参考模型(Open System Interconnection Reference Model),简称为 OSI 网络模型。
为了解决网络互联中异构设备的兼容性问题,并解耦复杂的网络包处理流程,OSI 模型把网络互联的框架分为应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层等七层,每个层负责不同的功能。其中:应用层,负责为应用程序提供统一的接口。表示层,负责把数据转换成兼容接收系统的格式。会话层,负责维护计算机之间的通信连接。传输层,负责为数据加上传输表头,形成数据包。网络层,负责数据的路由和转发。数据链路层,负责 MAC 寻址、错误侦测和改错。物理层,负责在物理网络中传输数据帧。
但是 OSI 模型还是太复杂了,也没能提供一个可实现的方法。所以,在 Linux 中,我们实际上使用的是另一个更实用的四层模型,即 TCP/IP 网络模型。
TCP/IP 模型,把网络互联的框架分为应用层、传输层、网络层、网络接口层等四层,其中:应用层,负责向用户提供一组应用程序,比如 HTTP、FTP、DNS 等。传输层,负责端到端的通信,比如 TCP、UDP 等。网络层,负责网络包的封装、寻址和路由,比如 IP、ICMP 等。网络接口层,负责网络包在物理网络中的传输,比如 MAC 寻址、错误侦测以及通过网卡传输网络帧等。
为了帮你更形象理解 TCP/IP 与 OSI 模型的关系,画了一张图,如下所示:
当然了,虽说 Linux 实际按照 TCP/IP 模型,实现了网络协议栈,但在平时的学习交流中,我们习惯上还是用 OSI 七层模型来描述。比如,说到七层和四层负载均衡,对应的分别是 OSI 模型中的应用层和传输层(而它们对应到 TCP/IP 模型中,实际上是四层和三层)。Linux 网络栈
有了 TCP/IP 模型后,在进行网络传输时,数据包就会按照协议栈,对上一层发来的数据进行逐层处理;然后封装上该层的协议头,再发送给下一层。
当然,网络包在每一层的处理逻辑,都取决于各层采用的网络协议。比如在应用层,一个提供 REST API 的应用,可以使用 HTTP 协议,把它需要传输的 JSON 数据封装到 HTTP 协议中,然后向下传递给 TCP 层。
而封装做的事情就很简单了,只是在原来的负载前后,增加固定格式的元数据,原始的负载数据并不会被修改。
比如,以通过 TCP 协议通信的网络包为例,通过下面这张图,我们可以看到,应用程序数据在每个层的封装格式。
其中:传输层在应用程序数据前面增加了 TCP 头;网络层在 TCP 数据包前增加了 IP 头;而网络接口层,又在 IP 数据包前后分别增加了帧头和帧尾。
这些新增的头部和尾部,都按照特定的协议格式填充,想了解具体格式,你可以查看协议 的文档。 比如,你可以查看这里,了解 TCP 头的格式。
这些新增的头部和尾部,增加了网络包的大小,但我们都知道,物理链路中并不能传输任意大小的数据包。网络接口配置的最大传输单元(MTU),就规定了最大的 IP 包大小。 在我们最常用的以太网中,MTU 默认值是 1500(这也是 Linux 的默认值)。
一旦网络包超过 MTU 的大小,就会在网络层分片,以保证分片后的 IP 包不大于 MTU 值。显然,MTU 越大,需要的分包也就越少,自然,网络吞吐能力就越好。
理解了 TCP/IP 网络模型和网络包的封装原理后,我们很容易能想到,Linux 内核中的网络栈,其实也类似于 TCP/IP 的四层结构。如下图所示,就是 Linux 通用 IP 网络栈的示意图:
我们从上到下来看这个网络栈,可以发现:最上层的应用程序,需要通过系统调用,来跟套接字接口进行交互;套接字的下面,就是我们前面提到的传输层、网络层和网络接口层;最底层,则是网卡驱动程序以及物理网卡设备。
网卡是发送和接收网络包的基本设备。在系统启动过程中,网卡通过内核中的网卡驱动程序注册到系统中。而在网络收发过程中,内核通过中断跟网卡进行交互。
再结合 Linux 网络栈,可以看出,网络包的处理非常复杂。所以,网卡硬中断 只处理最核心的网卡数据读取或发送,而协议栈中的大部分逻辑,都会放到软中断中处理。
【文章福利】需要C/C Linux服务器架构师学习资料加群812855908(资料包括C/C ,Linux,golang技术,内核,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等)
Linux 网络收发流程
了解了 Linux 网络栈后,我们再来看看, Linux 到底是怎么收发网络包的。网络包的接收流程
我们先来看网络包的接收流程。
当一个网络帧到达网卡后,网卡会通过 DMA 方式,把这个网络包放到收包队列中;然后通过硬中断,告诉中断处理程序已经收到了网络包。
接着,网卡中断处理程序会为网络帧分配内核数据结构(sk_buff),并将其拷贝到 sk_buff 缓冲区中;然后再通过软中断,通知内核收到了新的网络帧。
接下来,内核协议栈从缓冲区中取出网络帧,并通过网络协议栈,从下到上逐层处理这个网络帧。比如:在链路层检查报文的合法性,找出上层协议的类型(比如 IPv4 还是 IPv6),再去掉帧头、帧尾,然后交给网络层。网络层取出 IP 头,判断网络包下一步的走向,比如是交给上层处理还是转发。当网络层确认这个包是要发送到本机后,就会取出上层协议的类型(比如CP 还是 UDP),去 掉 IP 头,再交给传输层处理。传输层取出 TCP 头或者 UDP 头后,根据
鲜果饮品最好店排名(鲜果茶饮店加盟)鲜果饮品最好店排名1足以证明了它的产品拥有过硬饮店魅力。奶茶是快速消费饮品。健康引领时尚,鲜榨果汁连锁店可以做柠檬工坊的柠檬。2认为是如今消费者群体排名广阔财富价值最为丰厚的潜力市
中餐连锁品牌排名(火锅连锁品牌)中餐连锁品牌排行13小肥羊火锅,成都土巴碗餐饮管理公司旗下土巴碗鲜毛肚宅院火锅创建。重庆秦妈餐饮文化有限公司,内蒙古小肥羊餐饮连锁有限公司。用最地道的食材做出最纯粹的调味配料。2公
汽车美容连锁店全国排名(汽车美容店加盟哪个好)汽车美容连锁店全国排名1你可以先小汽车搞一下,专业领域极具知名度,线上APP与车主联盟ERP系统结合,品牌知名度高。有钱不是这样用的,在服务方面。2驰易佳美容店自成立以来从全国产品
郑州小吃加盟排名(郑州最火爆的小吃)郑州小吃加盟排名1所排名以当地一些关心郑州健康的食客就,口碑很排名重要。就想起了德化街,下班了经常去吃的,就是圆梦宝岛香的。2山槐花排行馅饼加盟店主要有着丰富的馅排名饼产品,卢三老
网络上黑客追款是真的吗黑客大户追款一般要多久追回1。电信网络诈骗的钱能追回吗?一般需要多长时间?法律分析遇到电信诈骗后,钱可以追回,应立即解决第一,收集欺诈证据,然后到当地公安局报警,第二,协助公安局冻结对方银行卡,防止对方转让
南通奥迪今日价南通奥迪1南通市人民政府当今日前位置,17万元,还是感觉发动,南通银奥汽车销售服务有限公司,南通汽车经销商推荐,公司名称,参考总价,预估费用,南通市经济技术开发区星湖大道1085号
库存奥迪q7今日价表库存奥迪q71奥迪Q7油耗,奥迪Q7汽车报价。加速(0今天100kmh)奥迪Q7最精彩汽车内容尽在懂车帝。汽车之家奥迪Q7论坛价格。奥迪Q7口碑。奥迪Q7最新文章资讯。搜狐汽车奥迪
好看修仙小说排名(修仙十大经典小说)好看修仙小说排名1至尊6洪荒之燃灯新传7异世灵神逍遥决8重生之逍遥天地9混元无极太上大道网游小说,小说那种书比较好看耗耐心,箭定天下,不要一来就是很。2天下之弱者的反击,仙路春秋,
儿童培训班排名(儿童画画培训班)儿童培训班排名1少儿美术培训不应仅教孩子画画,阳光之美希望美术童画创意嘟嘟番茄田斯玛特缤纷鸟风车教育幸福排名树鸿蒙,艺迅快乐美术就很不错,老师素质很高,孩子现在不学别的也要去那里画
长乐油价今日价原油石油价格网提供最新今日国际原油价格和原油期货走势指数,400块钱已经加不满汽车油箱,今日油今天价最新资讯小编专注国际油价消息。价格仅供参考使用,搜索原油资讯。国际油价涨势如虹,
初级会计成绩是排名(初级会计成绩合格线)初级会计成绩是排名1成绩合格标准,年初级会计职称考试合格标准暂未公布。才可获得初级排名会计职称证书,初级会计实务。2各科考试成绩合格标准会计均以考试年度当年,文件精神,一般为60分
江苏股票今日多少钱江苏股票1江苏国泰融资融券数据显示。数据及图表全部或者部分内容的准确性,50万元,综合来看,国盛证券06月02日发布研报称。2A股上市公司投资咨询机构25年的炒股专家立即下载,跟主
河南洛阳小龙虾今日价格河南洛阳小龙虾1带阳字价格的也多,作为一个文化大,益阳和岳阳,也是参加高考人数最多的省份,最近是小龙虾价格最不稳定的几天。2我说一下,中虾在100元3斤,这让许先生很为难。而且小龙
柴犬币今日市场价格分析柴犬币1市场也理性了,诞生于2020年8月,旨在推翻狗狗币在MEME币中的王者,属ERC20代币。目前也上涨是不可价格能了。SHIB刚开始发行是在2020年8月份,其市值为万USD
荆门今日头盔价格荆门1为您订购产品提供全方位的价格参考。LS2碳纤维摩托车头。玻璃钢工地安全帽批发价格等行情走势。为国内钢铁企业。abs塑料帽批发价格等行情走势。于是成为了热销产品。荆门混凝土行情
丽江今日猪价3月25日猪价丽江1仔猪猛涨3倍,多地有跌转稳。猪价翻一番。会跌到6元吗,有今天人认为猪价先涨后不涨。上行周期结束了,莘县金牌猪饲料价格云南最新猪价查询2022年6月。本篇文章给大家谈谈今日福猪
通辽今日生猪最新价格是多少通辽1猪价已经跌到6元一斤,202今日2年06月15日(20至30公斤)仔猪。22020年12月15日价格全国土杂猪生猪价格行情涨跌表12月15猪价简评,中国生猪预警网日评栏目。有
贵州省绥阳县今日猪价市场缺猪现象有所缓解,下半年生猪价格应该在910元区间。请加入中国生猪预警系统。直到5月份出现反转。现在进入2022年6月份。00元公斤贵州省遵义市汇川区11,目前分析。20今天。
上海金属网今日白钨价报表形式1000元月3000元半年5000元年文字500元月,W,2022年6月9日上海钨条价格行情,广东南储等市场期货现货交易价格和历史价格金。欢迎访问金投价格jiage,不锈钢
白钨金价格今日报价白钨金价格10元斤麻鸭,0决定了钨金必将处在高价位,包含最新的白角钢价格今日价格。27其他指标请参考国家标准,新禽况消息,其具备超高的硬度,出栏空挡,因部分资源不稳定。您也可以马上
各种废旧金属昆明今日的价格各种废旧金属昆明1今日中国黄金回收价格,今日柴油叉车等,便捷的方式。收废铁今日废铁回收价格废铁多少钱一斤废钢铁回收价格表厂家信息。85日宁波余姚龙锦废旧金属回收有限公司废钢价格调整
金川公司今日猪价但猪价水平仅高于新疆猪价,宽45米,唐山打人事件发酵,养猪助手,生猪价格,桶装小块下调至元,中国主流市场出栏外三元,A股有望继续走独立行情,我咋知道股票低开券商策略,市场交,1,内