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

  • 网络(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个小时的痛苦经历~~,时延太大了呀)

    996×1144 177 KB

    这里:
    程序开发人员主要考虑的是前3层:应用层-表示层-会话层
    网络工程师主要考虑的是:传输层-网络层-数据链路层

  • 分层的意义和必要性

  • 各层直接相互独立

  • 灵活性好

  • 结构上可以分隔开

  • 易于实现和维护

  • 能促进标准化工作

  • 现实举例说明
    这里还是以现实生活举例:

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

  • 这里想要提高货物发送的效率,可以通过很多方式:

  • 然后我们发现无论使用哪种方式,都是独立的步骤,并不影响其他步骤;可以在各自的“分层”中进行管理优化,每层都要自己的作业方式。

  • 商家包装方式加快

  • 快递小哥打包手法更娴熟

  • 城市交通多修高架和快速路

  • 火车提速

    992×514 79.4 KB

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

  • 主机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%+!

测试开发基础|一文搞定计算机网络(一)相关推荐

  1. 软件测试 | 测试开发 | 测试开发基础|一文搞定计算机网络(一)

    计算机网络知识对测试人员来说是非常重要的基础技能.无论是在平时测试工作中(比如接口测试),还是测试技术面试时,都会经常涉猎.很多基础薄弱的同学靠临时抱佛脚突击搜索学习,对系统知识和重点难点的理解总是不 ...

  2. 软件测试 | 测试开发 | 30 分钟轻松搞定正则表达式基础

    提起正则表达式,可能大家的第一印象是:既强大好用但也晦涩难懂.正则表达式在文本处理中相当重要,各大编程语言中均有支持(跟 Linux 三剑客结合更是神兵利器). 正则表达式是对字符串操作的一种逻辑公式 ...

  3. 一文搞定计算机网络面试题

    你好,我是 π大新,目前在一家名字等于周角的公司就职,精通Java,熟悉计算机网络,, 然后就~~~~ 在浏览器中输入一个 URL 至页面呈现,网络上都发生了什么事? 能说说 ISO 七层模型和 TC ...

  4. 软件测试 | 测试开发 | Git分支管理搞定在线合并和本地合并

    似于SVN这种集中式版本管理,三年前刚来上海工作时候,在华为驻场上班,华为用的就是SVN,印象最深的就是那个小乌龟的图标:后来到外面工作,渐渐发现用Git的非常多,慢慢学习了解发现Git这种分布式的版 ...

  5. 【Python基础】一文搞定pandas的数据合并

    作者:来源于读者投稿 出品:Python数据之道 一文搞定pandas的数据合并 在实际处理数据业务需求中,我们经常会遇到这样的需求:将多个表连接起来再进行数据的处理和分析,类似SQL中的连接查询功能 ...

  6. 【嵌入式开发-AD19】六文搞定Altium Designer-第一章:AD介绍及原理图库的创建

    [嵌入式开发-AD19]六文搞定Altium Designer-第一章:AD介绍及原理图库的创建 在文章的开头我想首先简单介绍一下国产全免费EDA软件,嘉立创EDA.嘉立创EDA拥有网页版和安装版两种 ...

  7. php带参数单元测试_一文搞定单元测试核心概念

    基础概念 单元测试(unittesting),是指对软件中的最小可测试单元进行检查和验证,这里的最小可测试单元通常是指函数或者类.单元测试是即所谓的白盒测试,一般由开发人员负责测试,因为开发人员知道被 ...

  8. 一小时搞定计算机网络面试

    一小时搞定计算机网络面试 一.计算机网络体系结构参考模型: 七层协议的作用: 1.物理层:主要定义物理设备标准,如网线的接口类型.光纤的接口类型.各种传输介 质的传输速率等.它的主要作用是传输比特流( ...

  9. 【量化交易行情不够快?】一文搞定通过Win10 wsl2 +Ubuntu+redis+pickle实现股票行情极速读写

    一文搞定通过Win10 wsl2 +Ubuntu+redis+pickle实现股票行情极速读写 前言 一.准备环境分四步 1.1 给Win10装wsl2 硬件开启虚拟化 软件开启虚拟化及安装适用于Li ...

最新文章

  1. spring + Quartz定时任务配置
  2. Nat. Commun. | 训练人工智能以发现与疾病相关的基因
  3. 河北师范大学计算机科学与技术研究生好考吗,河北师范大学计算机科学与技术怎么样...
  4. “jQuery风暴” 推荐及配套代码下载
  5. java实现多级菜单(java递归)方法二
  6. leetcode 81. 搜索旋转排序数组 II(二分查找)
  7. audio realtek 耳机没声_window7和window10机箱前面板耳机插孔没有声音怎么解决!
  8. 【文本分类】 特征抽取之信息增益
  9. 樊昌信通信原理第7版笔记和课后习题答案
  10. MacBook安装telnet工具和使用
  11. CTFHub技能书解题笔记-信息泄露-备份文件下载-网站源码
  12. 计算机四级数据库分值分布,计算机四级数据库工程师考试成绩查询注意事项
  13. 如何取消html5微信页面授权,微信授权登录网页管理在哪里看?如何取消授权
  14. Mstar 方案白板书写加速
  15. GPS导航电文——第三子帧数据解析
  16. 2-SAT问题,一个神奇的东西
  17. Linux下安装Atom编辑器
  18. 数据压缩作业:LZW词典编码
  19. 二手闲置物品er关系数据图_快来拿!免费赠送二手闲置物品:这是真的吗?
  20. 块交织器5×5 verilog设计及仿真实现

热门文章

  1. go get xxx: disabled by GOPRIVATE/GONOPROXY解决方案
  2. 如何向纯洁的女朋友解释并发与并行的区别?
  3. 学计算机电脑需要多大内存,电脑内存是多少 电脑内存多大合适
  4. MySQL 总是差八个小时,如何破?
  5. 用Winrar打造永不被杀的免杀捆绑器
  6. leetcode-354.俄罗斯套娃信封问题
  7. 深交所互动平台_游资抬轿、高管减持、投资者蹭热点“大牛股”为何被深交所点名?...
  8. 乔布斯:遗失的访谈(1995)有感
  9. kendoui 基础教程分享
  10. 全流程低代码物联网平台IoT-Fast教你对接labVIEW