测试开发基础|一文计算机网络(一)

计算机网络知识是自动化测试等技术基础,也是测试面试必考题目。霍格沃兹测试学院特别策划了本系列文章,将带大家一步步夯实计算机网络的基础知识。
由于物理层知识在互联网软件研发工作中用到的并不多,所以可以仅做一个简单的了解。
物理层解决如何在连接计算机的各种传输媒体上传输数据比特流,而不是指具体的传输媒体。
物理层的主要任务描述为:确定与传输媒体的接口的一些特性,即:

计算机网络知识对测试人员来说是非常重要的基础技能。无论是在平时测试工作中(比如接口测试),还是测试技术面试时,都会经常涉猎。很多基础薄弱的同学靠临时抱佛脚突击搜索学习,对系统知识和重点难点的理解总是不够透彻。
本系列文章就带大家从最最基础的网络知识开始,一步一个台阶学习,最终深度理解和掌握计算机网络核心知识点、相关面试题以及在测试工作中的应用。
网络、互联网、因特网,经常听到的这三个名词,他们的区别是什么?先参考如下图

  • 网络(Network)

  • 计算机通过交换机设备组建成一个局域网,一般不超过100米,例如学校的机房;

    • 互联网(Network of Network)
  • 还是以学校机房为例,不同教室之间的网络可以通过路由器相互连接,这就叫做互联网;并且通过广域网可以连接的很远。

    • 因特网(Internet)
  • 全球最大的一个互联网

    • 总结
    • 网络:许多计算机连接在一起
    • 互联网:internet 许多网络连接在一起
    • 因特网:Internet 全球最大的一个互联网
    • ISP:电信运营商internet service producer
  • 由上图可以清晰的看出网络直接的关系,在实际生活中也很容易提现;比如以前在学校的时候,同学和老师之间传文件很快,因为大家都是在一个校园网中;再比如网络下载的时候,一般会提供好几个下载路径,通常我们选择本地下载也是速度最快的。

  • 再由下图的实际场景可以很清楚的看出ISP、企业和我们普通的网民之间的关系:

    • 局域网:自己购买设备,自己维护,带宽固定,100M 1000M 距离100米以内
    • 广域网:花钱买服务,花钱买带宽
  • 1)电路交换——面向连接

    • 连接的三个阶段:
    • 建立连接
    • 通信
    • 释放连接
    • 缺点
    • 计算机数据具有突发性,导致通信线路的利用率很低
    • 适合场景:适用于数据量很大的实时性传输,核心路由器之间可以使用电路交换
  • 2)分组交换

  • 一段较长的报文数据

  • 分组后将每段数据加上首部,首部信息中包含了地址等控制信息
    分组交换网中的结点减缓及根据收到的分组的首部中的地址信息,把分组转发到下一个结点交换机,用这样的存储转发方式,最后就能到达最终目的地,再根据首部信息将数据拼接恢复未原来的报文。

  • 优点:

    • 高效
    • 灵活
    • 迅速
    • 可靠
    • 缺点:
    • 时延
    • 开销
  • 3)报文交换

  • 报文交换一般将报文整个发送,这样就造成报文一般比分组的长的多,时延也较长

  • 三种交换方式的比较:

    • 1.速率:
  • 连接在计算机网络上的主机在数字信道上传送数据位数的速率,也称为data rate或bit rate。

  • 单位是b/s, kb/s, Mb/s, Gb/s.

    • 2.带宽:
  • 数据通信领域中,数字信道所能传送的最高数据率

  • 单位是 b/s, kb/s, Mb/s, Gb/s

    • 3.吞吐量:
  • 即在单位时间内通过某个网络的数据量

  • 单位 b/s, Mb/s等

    • 4.时延:我们经常说到延时,就是这里的时延,那么时延分别有如下几种:
    • 发送时延:
  • 发送数据时,数据块从结点进入到传输媒体所需要的时间;

  • 可以类别火车出站,整列火车就好比一段数据,那么这列火车从站台出站就好比数据块从结点进入到传输媒体,这个出站所花费的时间就是发送时延

    • 传播时延:
  • 电磁波在信道中需要传播一定的距离而花费的时间;

  • 就好比火车从一个站点开到另一个站点的途中所花费的时间。

    • 排队时延:
  • 结点缓存队列中分组排队所经历的时延;

  • 这个也比较好类比生活中的例子,比如我们节假日过收费站的时候,车辆需要在不同的车道进行排队等候进站,这个时间段就是排队时延

    • 处理时延:
  • 交换结点为存储转发而进行一些必要的处理所花费的时间;

  • 依然可以以开车进收费站为例,到了收费站以后,我们需要取卡缴费等行为,哪怕是ETC也要减速慢行等待抬杆,有时候可能没识别到还得倒车再来,这些过程所花费的时间就成为处理时延

    • 5.时延带宽积:
  • 单位时间内能够传输的最大数据量;就好比一段公路,如果都摆满了车,最多可以承载多少车辆。

    • 6.往返时间-RTT(Round-Trip Time)
  • 从发送方发送数据开始,到发送方收到接收方确认

    • 7.利用率
    • 信道利用率:指出某信道有百分之几的时间是被利用的(有数据通过),完全空闲的信道利用率是零。
    • 网络利用率:全网络的通道利用率的加权平均值
  • 如下图所示,当利用率在接近1的过程中,达到某一个点之后,时延会急剧增大,造成“堵塞”;

  • 就如同高速公路,平常车辆不多,利用率并不高,但是车速很快,运行通畅;而节假日的时候,因为免费加上出行增加,道路的利用率可能大大增加,但是同行的流畅度也大大降低(本人就经历过平常四五个小时的车程开了16个小时的痛苦经历~~,时延太大了呀)

  • 测试开发基础|一文计算机网络(一)_第1张图片

  • 这里:

  • 程序开发人员主要考虑的是前3层:应用层-表示层-会话层

  • 网络工程师主要考虑的是:传输层-网络层-数据链路层

    • 分层的意义和必要性
    • 各层直接相互独立
    • 灵活性好
    • 结构上可以分隔开
    • 易于实现和维护
    • 能促进标准化工作
    • 现实举例说明
  • 这里还是以现实生活举例:

    • 好比现在有一件商品需要从北京装箱打包发送到上海,要经过如下步骤:
  • 商家包装商品-快递员打包商品-商品通过汽车运往火车站-商品再通过火车发往上海

    • 这里想要提高货物发送的效率,可以通过很多方式:
    • 然后我们发现无论使用哪种方式,都是独立的步骤,并不影响其他步骤;可以在各自的“分层”中进行管理优化,每层都要自己的作业方式。
    • 商家包装方式加快
    • 快递小哥打包手法更娴熟
    • 城市交通多修高架和快速路
    • 火车提速
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C9cbZlZ3-1652414113190)(https://ceshiren.com/uploads/default/original/3X/7/1/713a8b34d5e896680549451ea3e67f6331b8b80f.png)]

  • 对于协议分层之间的关系,由于本文内容是基于谢希仁版《计算机网络》,所以这里直接借用书中的解释,如下:

  • 主机1向主机2发送数据

    • 主机2从主机1接收数据
  • 接收的过程与发送正好相反,会将首位部以此去除,解封装。

  • 具体画图参考上文

  • 1.应用层(数据):确定进程之间通信的性质以满足用户需要以及提供网络与用户应用

  • 2.表示层(数据):主要解决拥护信息的语法表示问题,如加密解密

  • 3.会话层(数据):提供包括访问验证和会话管理在内的建立和维护应用之间通信的机

  • 制,如服务器验证用户登录便是由会话层完成的

  • 4.传输层(段):实现网络不同主机上用户进程之间的数据通信,可靠

  • 与不可靠的传输,传输层的错误检测,流量控制等

  • 5.网络层(包):提供逻辑地址(IP)、选路,数据从源端到目的端的

  • 传输

  • 6.数据链路层(帧):将上层数据封装成帧,用 MAC 地址访问媒介,错误检测与修正

  • 7.物理层(比特流):设备之间比特流的传输,物理接口,电气特性等

  • 8.网关:应用层、传输层(网关在传输层上以实现网络互连,是最复杂的网络互连设 备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是 互连层。网关既可以用于广域网互连,也可以用于局域网互连)

  • 9.路由器:网络层(路由选择、存储转发)

  • 10.交换机:数据链路层、网络层(识别数据包中的 MAC 地址信息,根据 MAC 地址进

  • 行转发,并将这些 MAC 地址与对应的端口记录在自己内部的一个地址表中)

  • 11.网桥:数据链路层(将两个 LAN 连起来,根据 MAC 地址来转发帧)

  • 12.集线器(Hub):物理层(纯硬件设备,主要用来连接计算机等网络终端)

  • 13.中继器:物理层(在比特级别对网络信号进行再生和重定时,从而使得它们能够在

  • 网络上传输更长的距离)

  • 本文主要参考《计算机网络》谢希仁教材,面试题相关来自网络。
    推荐霍格沃兹 《Python 测试开发实战进阶》班,可能是业界最具深度、最贴近大厂一线实践的测试开发课程。

4 个月由浅入深,强化集训,测试大咖思寒领衔主讲,授之以渔,通过 10+ 企业级项目实战演练,带你一站式掌握 BAT 测试开发工程师必备核心技能(对标阿里巴巴P6+,挑战年薪50W+)!学员直推 BAT 名企测试经理,普遍涨薪 50%+!

提升自己的核心竞争力吧
原文链接

哈喽,喜欢这篇文章的话烦请点个赞哦!万分感谢(*^▽^*)PS:有问题可以联系我们哦v ceshiren001
获取更多技术文章分享

  • 机械特性:
  • 例如接口形状、大小、引线数目
    • 电气特性:
  • 例如规定的电压范围(-5V-+5V)
    • 功能特性:
  • 例如规定-5V表示0,+5V表示1
    • 过程特性:
  • 也称规程特性,规定建立连接时各个相关部件的工作步骤
    • 典型的数据通信模型,如下图所示:
  • 我们输入的文字通过计算机的网卡以0101的二进制比特流数字信号发送出去,经调制解调器转换为模拟信号,通过网络传输,再利用调制解调器转换为数字信号,最终由接收计算机的网卡接收转换显示。
    • 相关术语
  • 通信的目的是传送消息
  • 有关信道的几个基本概念
  • 信道一般表示向一个方向传送信息的媒体,所以咱们说平常的通信线路往往包含一条发送信息的信道和一条接收信息的信道
  • 生活中的实例:
    • 数字信号通过实际的信号
    • 奈氏准则
  • 1924 年,奈奎斯特(Nyquist)就推导出了著名的奈氏准则。他给出了在假定的理想条件下,为了避免码间串扰,码元的传输速率的上限值。
  • 在任何信道中,码元传输的速率是有上限的,否则就会出现码间串扰的问题,使接收端对码元的判决(即识别)成为不可能。
  • 单独看专业解释比较晦涩,举个实际的例子:
  • 好比我们正常看电影或者以前用磁带歌(暴露年龄了~现在的00后估计都不知道磁带长啥样了);正常情况下我们可以听清楚台词和歌词,那么加速快进一点,也没有问题,继续加速呢?加速非常快的时候,就好比有的电影会有场景回溯的情节,已发生的事情快速的倒放,声音就变成哇啦啦啦啦叽里呱啦(自己脑补吧),台词或歌词也就听不清了。
  • 也就是说信道传输速率不能无限制的快,有一个限度。
    • 信噪比和香农(Shannon)公式
  • 香农(Shannon)用信息论的理论推导出了带宽受限且有高斯白噪声干扰的信道的极限、无差错的信息传输速率。
  • 信道的极限信息传输速率 C 可表达为:
  • 结论:减少速度和增大功率能提高准确度
    • 奈氏准则和香农公式的应用范围
    • 导向传输媒体中,电磁波沿着固体媒体传播
  • 各种电缆
  • 光纤
    • 非导向传输媒体,指自由空间,其中的电磁波传输被称为无线传输。
  • 短波通信主要是靠电离层的反射,但短波信道的通信质量较差。
  • 微波在空间主要是直线传播:
    • 信道复用技术
    • 频分复用
    • 时分复用
    • 统计时分复用
    • 波分复用
    • 码分复用
    • 数字传输系统
    • 带宽接入技术
  • 若从主机H1向主机H2发送数据,所经历的模型方式如下图
  • 只关心数据链路层的话,如下图所示:
    • 点到点信道:
  • 这种信道使用一对一的点到点通信方式;好比我们拿两台电脑,用一根网线直接将两台电脑相连接,这就属于点到点。
    • 广播信道:
  • 这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发 。
  • 接着上面的例子,如果将两台电脑直接用集线器进行连接,同时再接入其他电脑,那么只要其中一台电脑发消息,其他电脑都可以收到,这种就属于广播信道。
    • 链路(link)
  • 是一条点到点的物理线路段,中间没有任何其他的交换节点。一条链路只是一条通路的一个组成部分。例:一根网线就属于链路,是一条物理链路。
    • 数据链路(data link)
  • 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
    • 现在最常用的方法是使用适配器(网卡)来实现这些协议的硬件和软件。
    • 一般的适配器都包括了数据链路层和物理层这两层的功能。
    • 数据传送到数据链路层变成帧,由帧头帧尾来表示帧的开始和结束
    • 传到物理层变为比特流或波信号,通过链路进行发送
    • 接收端收到数据后依次反向解析
  • 具体参考如下图:
  • 封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。
    • 首部和尾部的一个重要作用就是进行帧定界。
  • 如果再传输过程中有数据中断或丢失了,在收到数据的时候发现没有帧头或帧尾,那么计算机就会将此断数据丢弃。
  • 传输过程中可能会出现如下情况,传输的数据中包含了和帧尾结束符一样的数据,这样就可能导致数据被误认为结束了,具体见下图:
  • 因此在传输过程中加入转义字符,发送后和接收前加入,而发送方和接收方并不知道,所以也就称之为透明传输
    • 字节填充(byte stuffing)或字符填充(character stuffing)——接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
    • 如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
    • 在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。
    • 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。
    • 误码率与信噪比有很大的关系。
    • 为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施
  • 循环冗余检验 CRC:计算余数来判断数据是否丢失
    • 注意事项:
    • 仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受(accept)。
  • “无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。
  • 也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。
    • 要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。
  • 考虑帧重复、帧丢失、帧乱序的情况
  • 总结:CRC只负责无差错接收,且只是无比特差错,出错后需要上层进行重传。
  • 最早我们使用电话拨号上网就是这种PPP协议:
  • 它具有身份验证,记账的功能。
    • PPP协议帧格式
  • 局域网最主要的特点是:
    • 网络为一个单位所拥有,且地理范围和站点数目均有限。
  • 局域网具有如下的一些主要优点:
    • 具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
    • 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
    • 提高了系统的可靠性、可用性和残存性。
  • 局域网的拓扑(也就是指物理上怎么连接的):
  • 最初的以太网是将许多计算机都连接到一根总线上。当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件。但是这样的话很不安全(参考集线器)
    • “多点接入”表示许多计算机以多点接入的方式连接在一根总线上。
    • “载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
    • 总线上并没有什么“载波”。因此, “载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。
    • “碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小。
    • 当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。
    • 当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。
    • 所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”。
    • 最先发送数据帧的站,在发送数据帧后至多经过时间 2τ(两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。
    • 以太网的端到端往返时延 2τ称为争用期,或碰撞窗口。
    • 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
    • 争用期长度
    • 以太网取 51.2 us 为争用期的长度。
    • 对于 10 Mb/s 以太网,在争用期内可发送512 bit,即 64 字节。
    • 以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。
    • DIX Ethernet V2 是世界上第一个局域网产品(以太网)的规约。
    • IEEE 的 802.3 标准。
    • DIX Ethernet V2 标准与 IEEE 的 802.3 标准只有很小的差别,因此可以将 802.3 局域网简称为“以太网”。
    • 严格说来,“以太网”应当是指符合 DIX Ethernet V2 标准的局域网
  • 为了使数据链路层能更好地适应多种局域网标准,802 委员会就将局域网的数据链路层拆成两个子层:
    • 逻辑链路控制 LLC (Logical Link Control)子层
    • 媒体接入控制 MAC (Medium Access Control)子层。
    • 以太网提供的服务是不可靠的交付,即尽最大努力的交付。
    • 当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。
    • 如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。
  • 传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线。
  • 这种以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub)
  • 集线器原理示意图:
  • 由图中可以看到集线器逻辑上仍然是一个总线网,就像一个多接口的转发器,工作在物理层。
  • 一个帧从开始发送,经可能发生的碰撞后,将再重传数次,到发送成功且信道转为空闲(即再经过时间 τ 使得信道上无信号在传播)时为止,是发送一帧所需的平均时间。
  • 要提高以太网的信道利用率,就必须减小 τ 与 T0 之比。在以太网中定义了参数 a,它是以太网单程端到端时延  与帧的发送时间 T0 之比:
  • a→0 表示一发生碰撞就立即可以检测出来,并立即停止发送,因而信道利用率很高。
  • a 越大,表明争用期所占的比例增大,每发生一次碰撞就浪费许多信道资源,使得信道利用率明显降低。
  • 当数据率一定时,以太网的连线的长度受到限制,否则  的数值会太大。
  • 以太网的帧长不能太短,否则 T0 的值会太小,使 a 值太大。
    • 因此信道利用率在理想状况下是这样的:
  • 在理想化的情况下,以太网上的各站发送数据都不会产生碰撞(这显然已经不是 CSMA/CD,而是需要使用一种特殊的调度方法),即总线一旦空闲就有某一个站立即发送数据。
  • 发送一帧占用线路的时间是 T0 + ,而帧本身的发送时间是 T0。于是我们可计算出理想情况下的极限信道利用率 Smax为:
  • IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位)。
  • 地址字段中的后三个字节(即低位 24 位)由厂家自行指派,称为扩展标识符,必须保证生产出的适配器没有重复地址。一个地址块可以生成2^24个不同的地址。这种 48 位地址称为 MAC-48,它的通用名称是EUI-48。
  • “MAC地址”实际上就是适配器地址或适配器标识符EUI-48。
  • 适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址.
    • 如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。
    • “发往本站的帧”包括以下三种帧:
    • 单播(unicast)帧(一对一)
    • 广播(broadcast)帧(一对全体)
    • 多播(multicast)帧(一对多)
    • 距离上的扩展:
  • 主机使用光纤和一对光纤调制解调器连接到集线器
    • 数量上的扩展:
  • 某大学有三个系,各自有一个局域网
    • 由上述我们可以发现,用集线器扩展局域网 ,虽然达到了扩大覆盖的目的,但是碰撞域增大了,总的吞吐量并未提高,因此我们就需要介绍另一位成员——网桥
    • 在数据链路层扩展局域网是使用网桥
  • 网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。
  • 网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口
    • 使用网桥扩展以太网
  • 网桥使各网段成为隔离开的碰撞域
    • 使用网桥带来的好处
    • 过滤通信量。
    • 扩大了物理范围。
    • 提高了可靠性。
    • 可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100 Mb/s 以太网)的局域网
    • 使用网桥带来的缺点
    • 存储转发增加了时延。
    • 在MAC 子层并没有流量控制功能。
    • 具有不同 MAC 子层的网段桥接在一起时时延更大。
    • 网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴。
    • 交换机
  • 随着网桥的接口的增加, 后来网桥和集线器合并了,计算机可以直接和交换机连接,这就是交换机。交换机就是网桥和集线器的合并升级版,能全双工,安全通信。
  • 交换式集线器常称为以太网交换机(switch)或第二层交换机(表明此交换机工作在数据链路层)。
  • 以太网交换机通常都有十几个接口。因此,以太网交换机实质上就是一个多接口的网桥,可见交换机工作在数据链路层。
  • 先来说什么是LAN,LAN指的就是局域网,我们可以通过路由器接上集线器,再接计算机,形成不同网段的局域网(LAN)
    • 而虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组。
    • 这些网段具有某些共同的需求。
    • 每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN。
    • 虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
    • 虚拟局域网协议允许在以太网的帧格式中插入一个 4 字节的标识符,称为 VLAN 标记(tag),用来指明发送该帧的工作站属于哪一个虚拟局域网。
    • 跨交换机的VLAN
    • 主体内容参考韩立刚老师主讲的《计算机网络》- 第5版 - 谢希仁
    • 部分内容参考书本《计算机网络》- 第7版 - 谢希仁
  • 以上,期待大家一起交流探讨。
  • 【相关阅读】
    • 测试开发基础|一文搞定计算机网络(一):基础概念
    • 测试面试题集锦(三)| 计算机网络和数据库篇(附答案)
      原文链接

哈喽,喜欢这篇文章的话烦请点个赞哦!万分感谢(*^▽^*)PS:有问题可以联系我们哦v ceshiren001
获取更多技术文章分享

你可能感兴趣的:(压力测试)