吞吐量是什么意思(吞吐量和传输速率的区别)
推荐视频:
剖析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 头后,根据
讲求个性还得实用ASUSZ170ProGamingAura3D模组功能电竞世代不只强调游戏规格还要RGBProGaming系列主机板是ASUS推出的主流电竞系列,去年Intel第六代Core处理器推出后,ASUS就推出了Z170ProGaming主机
新品牌新尝试入门级Inno3DGT7304GBDDR3效能实测前言如果玩家们要买NVIDIA系列显卡会直接想到华硕技嘉微星EVGA与影驰,不过今年2015年又有一间在国外相当知名的显示卡厂商Inno3D进入台湾拉,Inno3D目前由威健代理,
华南怎么样(中国华南)我国华南地区包含广东省,广西壮族自治区,海南省和香港特别行政区,澳门特别行政区。然而今天要说到的华南地区发展较好的六个市,居然全部位于大湾区,那么这些城市是哪呢?有没有你的家乡呢?
主板跳线接法(机箱线怎么接主板)主板跳线接法(机箱线怎么接主板)对于第一次装机的新人来讲,跳线可能是比走线更令人头疼的问题,毕竟仅仅走线乱是不影响使用的,而跳线出错可能就会造成一些硬件无法使用甚至损坏,一个个排查
电池损耗多少正常(电池损耗怎么算)第一步284下拉通知栏显示bugreport20210820175049。zip打包过程第二步解压后打开此文件夹,再解压bugreportraphaelRKQ1。200826。00
聪明的反义词是什么(聪慧的反义词是什么词)第一单元近义词气象景象开张开业间断中断娴熟熟练充足充分规矩规则沸腾欢腾预备准备搅和搅拌浓稠黏稠松劲松弛反抗抗拒奇怪稀奇猜想估计惊异惊诧结果结局承认认同日暮黄昏终日成天咆哮怒吼涉水蹚
平整的近义词是什么(纪念的近义词是什么词)知识点作者介绍法布尔(18231915),法国博物学家动物行为学家昆虫学家科普作家文学家,以昆虫记一书留名后世。他被誉为昆虫世界的荷马科学界的诗人昆虫界的维吉尔。我会写宅zhi(宅
如火如荼什么意思(如日中天如火如荼)行测的试卷中会出现很多成语。高中毕业后大家在学习生活中很少大量用到成语,所以一定要日积月累加强巩固,特别是对于一些易混淆的成语。今天图图分享20组,共84个成语供大家识记!一次记不
豁达是什么意思(态度潇洒心境豁达恬淡的诗句)何为豁达?豁达是事了拂衣去,深藏功与名的侠气也是行到水穷处,坐看云起时的悠闲它是博大的胸怀亦是洒脱的态度在古诗词中,能看出诗人豁达心境的有很多,为大家挑选了几篇,一起来欣赏一下吧!
超人怎么死的(超人打得过灭霸吗)相信对于很多喜欢影视行业的朋友们来说,提起国外电影,大部分最先想到的不是好莱坞就是漫威,作为一个出产精品电影,一个出产热血科幻片的电影厂商,前几年在国际范围内的电影市场上,漫威绝对
外科哪些病(外科其他病类)专家简介黄智勇,深圳市罗湖区人民医院血管外科主任,副主任医师。在周围血管疾病诊治方面具有丰富经验,可行胸腹主动脉瘤的腔内隔绝术人工血管置换术动脉瘤及动脉闭塞病(内脏动脉锁骨下动脉狭
美媒美国称不加入与世卫有关的疫苗开发近日美国称不加入与世卫有关的疫苗开发登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了解下
加拿大将对美征收36亿报复性关税这两天关于加拿大将对美征收36亿报复性关税在网上的热度是非常高的,很多网友们也都是非常关注加拿大将对美征收36亿报复性关税这个事情,为此小编也是在网上进行了一番搜索查阅相关的信息,
一百天五十万人次德国BMWWelt创下惊人记录虽然BMWWelt才在去年的10月17日正式对外开放,但它已经成为德国境内的热门景点,在开放后100天内一共涌进超过500,000人次入场参观,其实在开放的第一个週末,被这个特殊建
琴海在哪里(中国的爱琴海在哪个省)遵义这片海遵义被评为全国十大宜居城市之一有感文。盛歌五湖四海的朋友们,你们好!我的名字叫遵义,想来多数朋友们都听说过了,我刚与烟台澳门深圳威海等一起被评为了全国最宜居的十大城市,大
卡萨怎么玩(我还是没玩懂卡萨)卡莎作为联盟的热门射手,一直以来都有着极高的人气。当然卡莎也有着很多的玩法,本期就针对卡莎的三大主流玩法,为大家详细的解析,帮助大家快速的了解并掌握,助力大家成神之路。虚空之女卡莎
新闻本命年送什么礼物好近日本命年送什么礼物好登录上了百度热搜,受到广大网友们的关注,那么关于目前的本命年送什么礼物好相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行了一些整理,收集到了一些与本
全国政协委员马进建议公示逃税主播名单每天都有不同的新闻上热搜,热搜也是大家了解当下各种热门新闻的一个途径的,这两天全国政协委员马进建议公示逃税主播名单的热度就非常高,也是受到了网友们的关注,那么小编今天自然也是到网上
怎么增大(男性增大增长)练习一练习说明对身体的的感觉更好。同向拥有一个更大的阴茎的道路其实并不难。我们不象其他的站点,我们去掉垃圾,给您真正其作用的东西。好了。废话少说,我们开始练习男性增大方法1)寻找一
环球信息新闻刘谦把碎纸条变成面条吃掉了近日刘谦把碎纸条变成面条吃掉了登录上了百度热搜,受到广大网友们的关注,那么关于目前的刘谦把碎纸条变成面条吃掉了相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行了一些整理,
电竞专业学什么(电竞专业学什么课程)大学开设电竞专业已经不是什么新鲜事了,随着今年高考的临近,相信很多孩子也是想报考电竞专业的,不过对家长来说,更希望孩子能选择一个毕业后可以好找工作的专业,这也说明,其实大部分家长对
电竞学校哪里有(电竞班是什么学校)电竞学校一年多少钱?哪个电竞学校好?对于很多想上电竞学校的人而言,如何根据自身的需求及相关资源,选择学校,其实是一门学问。接下来,上海东方星光为你解答如何选择电竞学校,电竞学校一年