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

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

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

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

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

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

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

  • 好比现在有一件商品需要从北京装箱打包发送到上海,要经过如下步骤:

商家包装商品-快递员打包商品-商品通过汽车运往火车站-商品再通过火车发往上海

  • 这里想要提高货物发送的效率,可以通过很多方式:
  • 然后我们发现无论使用哪种方式,都是独立的步骤,并不影响其他步骤;可以在各自的“分层”中进行管理优化,每层都要自己的作业方式。
  • 商家包装方式加快
  • 快递小哥打包手法更娴熟
  • 城市交通多修高架和快速路
  • 火车提速


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

  • 主机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.中继器:物理层(在比特级别对网络信号进行再生和重定时,从而使得它们能够在
网络上传输更长的距离)
本文主要参考《计算机网络》谢希仁教材,面试题相关来自网络。

相关文章
|
5月前
|
网络协议 Shell Linux
【Shell 命令集合 网络通讯 】⭐⭐⭐Linux 测试与目标主机之间的网络连接ping 命令 使用指南
【Shell 命令集合 网络通讯 】⭐⭐⭐Linux 测试与目标主机之间的网络连接ping 命令 使用指南
113 1
|
5月前
|
iOS开发 MacOS Windows
|
5月前
|
设计模式 安全 测试技术
深入理解与应用自动化测试框架 — 以Selenium为例网络防线的构筑者:洞悉网络安全与信息安全的核心要素
【5月更文挑战第29天】 在快速迭代的软件开发过程中,自动化测试已成为提高测试效率、确保软件质量的重要手段。本文将深入探讨自动化测试框架Selenium的核心概念、架构以及实际应用中的关键技巧,旨在为读者提供一篇系统性的分析与实践指南。文章首先概述了自动化测试的必要性和Selenium框架的基本特征;随后详细剖析了Selenium的组件结构,并结合实例讲解如何高效地设计和执行测试用例;最后,讨论了当前自动化测试面临的挑战及未来发展趋势。
|
2月前
|
敏捷开发 测试技术 持续交付
软件测试中的自动化策略与实践云计算时代的网络安全挑战与对策
【8月更文挑战第30天】在软件开发的海洋中,自动化测试是一艘能够带领团队高效航行的帆船。本文将探讨如何搭建这艘帆船,从选择适合的自动化测试框架开始,到编写有效的测试脚本,再到持续集成的实施和测试结果的分析,我们将一步步揭开自动化测试的神秘面纱。你将学习到如何通过自动化测试来提升软件质量和开发效率,以及如何克服实施过程中的挑战。让我们一起启航,探索自动化测试的世界。
|
2月前
|
网络协议 安全 前端开发
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
|
2月前
|
网络协议 Windows
在电脑上测试TCP/UDP端口是否开放,还是得网络大佬这招厉害!
在电脑上测试TCP/UDP端口是否开放,还是得网络大佬这招厉害!
|
2月前
|
JavaScript 前端开发 应用服务中间件
【qkl】JavaScript连接web3钱包,实现测试网络中的 Sepolia ETH余额查询、转账功能
【区块链】JavaScript连接web3钱包,实现测试网络中的 Sepolia ETH余额查询、转账功能
|
3月前
|
安全 测试技术 网络安全
探索自动化测试:从理论到实践网络防御的盾牌与剑:漏洞解析与加密技术实战
【7月更文挑战第31天】在软件工程领域,自动化测试是确保产品质量和提升开发效率的关键工具。本文将深入探讨自动化测试的核心概念、优势以及面临的挑战,并通过一个具体的代码示例来展示如何在实际项目中实施自动化测试。我们将看到,通过采用恰当的策略和技术,自动化测试不仅能够提高测试覆盖率,还可以缩短反馈周期,从而加速迭代速度。 【7月更文挑战第31天】在数字世界的无垠战场上,网络安全和信息安全是守护数据宝藏的盾牌与剑。本文将深入探讨网络安全的脆弱点,揭示加密技术的奥秘,并唤醒每一位数字时代居民的安全意识。通过代码示例和案例分析,我们将一起穿梭在信息的海洋中,学习如何铸造坚不可摧的防御,以及如何运用高超
48 0
|
4月前
|
消息中间件 安全 Shell
国货之光——jdchain1.6.5测试网络部署
国货之光——jdchain1.6.5测试网络部署
196 13
|
4月前
|
运维 安全 网络架构
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
【6月更文挑战第1天】成为网络世界的超级英雄,利用网络模拟工具解决复杂架构难题!此工具提供安全的虚拟环境,允许自由设计和测试网络拓扑,进行性能挑战和压力测试。简单示例代码展示了创建网络拓扑的便捷性,它是网络设计和故障排查的“魔法棒”。无论新手还是专家,都能借助它探索网络的无限可能,开启精彩冒险!快行动起来,你会发现网络世界前所未有的乐趣!
56 2
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
下一篇
无影云桌面