草庐IT

计算机网络-王道考研 001 计算机网络基础知识和概念

BEMAKE 2023-03-28 原文

计算机网络基础知识和概念

本章包含

  • 概念、组成、功能和分类
  • 标准化工作及相关组织
  • 速率相关的性能指标
  • 时延、时延带宽积、RTT和利用率
  • 分层结构、协议、接口、服务
  • OSI参考模型
  • TCP、IP参考模型和5层参考模型

开课前导论

有了计算机网络我们就可以和其他人一起联机,一起和他人游戏,同时如果基础扎实可以直接成为一名入门黑客

怎么学计算机网络?

计算机网络知识点多,但是分值低

所以我们需要理解记忆,抓住重点,复习分为多轮复习

重点

  • 以太网典型网络
  • 协议
  • 网络设备

通常我们的结构分为5层

目前不会展开说,在之后的笔记内会介绍

概念、组成、功能和分类

计算机网络的概念

计算机网络:是一个将分散的、具有独立功能计算机系统,通过通信设备线路连接起来,由功能完善的软件实现资源共享信息传递的系统。

我们从这一段话我们知道了他是什么,怎么用,能干什么

  • 首先需要的是独立功能计算机系统
  • 然后必须要有通讯设备与线路,同时还有配套的软件
  • 最后才能实现我们的资源共享和信息传递

计算机网络是互连,自治的计算机集合

概念 说明
互连 互联互通(通讯线路)
自治 没有主从关系

计算机网络的功能

  1. 数据通讯(连通性)
    • 说明:不同的设备之间交流数据
  2. 资源共享(硬件,软件,数据)
    • 说明:上传或者下载数据
  3. 分布式处理
    • 说明:多台计算机各自承担同一个工作任务的不同部分(Hadoop平台)
  4. 提高可靠性(替代机)
    • 说明:有的时候我们的计算机会发生故障,我们就可以利用替代机进行替代
  5. 负载均衡
    • 说明;让计算机之间更加亲密

计算机网络的组成

  1. 组成部分 硬件(主机,路由器,交换机),软件(QQ,微信),协议

  1. 工作方式
    • 边缘部分(用户可以直接使用)
      • C/S方式
      • P2P方式
    • 核心部分(为边缘部分提供服务)
  2. 数据组成(数据通讯,资源共享)
    • 通信子网(实现数据通信)
    • 资源子网(实现资源共享/数据处理)

计算机网络的分类

  1. 按分布范围分

    1. 广域网WAN(交换技术)
    2. 城域网MAN
    3. 局域网WAN(广播技术)
    4. 个人局域网PAN
  2. 按使用者分

    1. 公用网 - 例如电信移动之类的运营商
    2. 专用网 - 例如公安,医院的内部网
  3. 按交换技术分

    1. 电路交换,报文交换,分组交换
  4. 按拓扑结构分

    1. 总线型
    2. 星形
    3. 环形
    4. 网状型

  1. 按传播技术分
    1. 广播式网络 - 共享公共通信信道
    2. 点对点网络 - 使用分组存储转发和路由选择机制

小章总结 - 概念、组成、功能和分类

标准化工作及相关组织

标准化对计算机网络至关重要

比如我们开启了一个游戏,我们的电脑与游戏不兼容,这个时候我们就需要一个统一的标准

标准的分类

概念 说明
法定标准 由权威机构制定的正式的、合法的标准 OSI
事实标准 某些公司的产品在竞争中占据了主流,
时间长了,这些产品中的协议和技术
就成了标准

TCP/IP

例如

我们的手机卡就是事实标准

RFC 因特网标准的形式

RFC(Request For Comments)

RFC 要上升为因特网正式标准的四个阶段

  1. 因特网草案(Internet Draft)这个阶段还不是RFC文档

    • 把你的草案发送到rfc-editor@rfc-editor.org
  2. 建议标准( Proposed Standard)从这个阶段开始成为RFC文档。

  3. 草案标准( Draft Standard)2011年后该阶段被废除
    通过IETF、IAB等专业人士考核

  4. 因特网标准( Internet Standard)

标准化工作的相关组织

小章总结 - 标准化工作及相关组织

速率相关的性能指标

速率

速率表示数据率或者数据传输率或者比特率

比特

  • 1/0 位
  • 连接在计算机网络上的主机在数字信道上传送数据位数的速率
    单位是b/s,kb/s, Mb/s, Gb/s, Tb/s

带宽

“带宽”原本指某个信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹(Hz)

计算机网络中,带宽用来表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。单位是“比特每秒”,b/s, kb/s, Mb/s,Gb/s。

表示网络设备所支持的最高速度

假如我们是2Mb/s,表示我们可以在1us内发送2bit数据

我们的带宽是指的他发送数据或者接受数据的时候数据量,而不是数据的传输速度,数据在传播的时候使用电磁波传播,一般固定为200m,传播速率为\(2\times10^8 m/s\)

吞吐量

表示单位时间内通过某个网络或者信道,接口的数据量,单位b/s,kb/s,Mb/s等

吞吐量受到网络的带宽或者网络的而定速率的限制

时延、时延带宽积、RTT和利用率

其实时延、时延带宽积、RTT和利用率还是属于速率相关的性能指标但是在视频内这两个分章了,所以最终决定拆开来记笔记

时延

指数据(报文/分组/比特流)从网络( 或链路)的一端传送到另一端所需的时间。也叫延迟迟延单位是s

高速链路的概念

我们高速链路通常是采取在发送端上传更多的数据(提高信道带宽)。或者修改中间介质(例如使用光纤),来提高我们数据的传播速度,我们实际上的数据在传输速度没有发生改变(数据在传输时的速度),但是一次性能传递更多的数据

减少了发送时延,但是传播时延的速度是不变的

时延带宽积

一句话概括

表示时延和带宽的乘积

\[\overbrace{时延带宽积}^{单位:bit}=\overbrace{传播时延}^{单位:秒}\times\overbrace{带宽}^{单位:b/s} \]

往返时延RTT

可以看到我们的RTT不包括发送时延的,就是服务端把数据放到我们的通信信道上的时间是不包括的

  • 这里的RTT越大,在确认收到之前可以发送更多数据,是因为我们处理大数据需要更多的时间,也就是RTT越大,这里是反过来说了

利用率

  1. 信道利用率

    • \[\frac{有数据通过的时间}{(有+无)数据通过时间} \]

  2. 网络利用率

    • \[信道利用率加权平均值 \]

利用率接近100%的时候,我们的效率会越来越低(因为信道堵车了)

小章总结 -速率相关的性能指标和时延、时延带宽积、RTT和利用率

分层结构、协议、接口、服务

为什么要分层

  • 发送文件前要完成的工作:
  • 发起通信的计算机必须将数据通信的通路进行激活。
  • 要告诉网络如何识别目的主机。
  • 发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。
  • 发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。
  • 确保差错和意外可以解决。
  • 等等等

我们现在就需要把这些问题转化成一个又一个小问题

怎么分层

一个小例子

我们需要发送给另一个人一瓶酒

  1. 我们把酒打包
  2. 发送给快递公司
  3. 对方拿到酒
  4. 拆包
  5. 喝酒

分层基本原理

  1. 各层之间相互独立,每层只实现一种相对独立的功能

  2. 每层之间界面自然清晰,易于理解,相互交流尽可能少

  3. 结构上可分割开。每层都采用最合适的技术来实现

  4. 保持下层对上层的独立性,上层 单向使用下层提供的服务

  5. 整个分层结构应该能促进标准化工作

正式认识分层结构

  1. 实体:第n层中的活动元素称为n层实体。同一层的实体叫对等实体。

  2. 协议:为进行网络中的对等实体数据交换而建立的规则、标准或约定
    称为网络协议。[水平]

  3. 接口(访问服务点SAP) :.上层使用 下层服务的入口。

  4. 服务:下层为相邻上层提供的功能调用[ 垂直]

协议是同层之间,服务是上下层之间

概念总结

网络体系结构是从功能上描述计算机网络结构。

计算机网络体系结构简称网络体系结构是分层结构

每层遵循某个/些网络协议以完成本层功能。

计算机网络体系结构是计算机网络的各层及其协议的集合。

第n层在向n+1层提供服务时,此服务不仅包含第n层本身的功能,还包含由下层服务提供的功能。

仅仅在相邻层间有接口,且所提供服务的具体实现细节对上- -层完全屏蔽。

体系结构是抽象的,而实现是指能运行的一- 些软件和硬件。

小章总结 - 分层结构、协议、接口、服务

OSI参考模型

计算机网络分层结构

我们为了学习方便,总结了一个5层的体系结构

ISO/OSI参考模型是怎么来的?

但是最终OSI失败了,主要有以下几个原因

  1. OSI专家缺乏实际经验,构想非常好
  2. OSI协议复杂,效率低
  3. OSI制定周期过长
  4. OSI层次化不太合理,某些功能在多个层中重复

ISO/OSI参考模型

我们可以用谐音来记

\[& 原:物联网淑慧试用 \\ & 谐音:物链网输会示用 \\ \]

ISO/OSI参考模型解释通信过程

我们上面三个层次都是端到端通讯

下面三个进程都是点到点通讯

上面三个层次像是老板,不需要知道我们文件怎么传,只需要知道我们需要传递给谁就行了

下面三个要关注我们要怎么传递,下一步传递给谁

应用层

所有能和用户产生网络流量的程序

典型应用层服务:

  • 文件传输(FTP)
  • 电子邮件(SMTP)
  • 万维网(HTTP)

表示层

用于处理在两个通信系统中交换信息的表示方式(语法和语义)

功能:

  1. 数据格式变换(翻译官)

  2. 数据的加密解密(加密之后再进行传输)

  3. 数据压缩和恢复

    • 例如 JPEG,ASCII

会话层

向表示层实体/用户进程提供建立连接并在连接上有序地传输数据,这是会话,也是建立同步(SYN)

例如我们打电话的时候,我们需要先接通电话才能和对面说话,如果电话还没打通之前,我们说话对面都是听不见的

我们会话之间彼此独立,

功能:

  1. 建立、管理、终止会话

  2. 使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步

    • 适用于大文件点断续传,主要协议有:ADSP,ASP

传输层

负责主机中两个进程的通信,即端到端的通信。传输单位是报文段或用户数据报。

功能:

  1. 可靠传输、不可靠传输
  2. 差错控制
  3. 流量控制
  4. 复用分用

复用:多个应用层进程可同时使用下面运输层的服务。
分用:运输层把收到的信息分别交付给上面应用层中相应的进程。

主要协议有:TCP和UDP

网络层

主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报

功能:

  1. 路由选择
    • 我们传输数据有很多方式,我们需要选择一个最佳路径
  2. 流量控制
    • 假如发送端速率过快,接收端接受不过来,我们就需要使用网络层调整,反之亦然
  3. 差错控制
    • 查看我们是否能纠错,例如奇偶校验码,海明码
  4. 拥塞控制
    • 若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。

主要协议:IP,IPX,ICMP,IGMP,ARP,RARP,OSPF

数据链路层

主要任务是把网络层传下来的数据报组装成帧
数据链路层/链路层的传输单位是

功能:

  1. 成帧(定义帧的开始和结束) 1000011101010101
  2. 差错控制 帧错+位错
  3. 流量控制
  4. 访问(接入)控制 控制对信道的访问

主要协议:SDLC,HDLC,PPP,STP

物理层

主要任务是在物理媒体上实现比特流的透明传输
物理层传输单位是比特

  • 透明传输:指不管所传数据是什么样的比特组合,都应当能够在链路上传送。

功能:

  1. 定义接口特性

  2. 定义传输模式单工、半双工、双工

    • 单工:只能一个接受一个发送
    • 半双工:双方都可以发送和接受,但是不能同时进行,一个如果发送,另一个就只能接收
    • 双工:双方可以同时发送和接收,例如打电话
  3. 定义传输速率

  4. 比特同步

  5. 比特编码

主要协议:rj45,802.3

小章总结 - OSI参考模型

TCP/IP参考模型和5层参考模型

TCP/IP模型是先有协议,最后才有模型,我们的各个栈抽象成层

TCP/IP 协议不止TCP,IP两个协议,只是因为这两个比较常用,所以才取名,实际上还有很多协议,比如TCP,UDP等

TCP和OSI对比

相同点

  1. 都分层
  2. 基于独立的协议栈的概念
  3. 可以实现异构网络互联

不同点

  1. OSI定义三点:服务、协议、接口

  2. OSI先出现,参考模型先于协议发明,不偏向特定协议

  3. TCP/IP设计之初就考虑到异构网互联问题,将IP作为重要层次

ISO/OSI参考模型 TCP/IP模型
网络层 无连接+面向连接 无连接
传输层 面向连接 无连接+面向连接

面向连接分为三个阶段[1]

  1. 建立连接,在此阶段,发出一个建立连接的请求
  2. 只有在连接成功建立之后,才能开始数据传输
  3. 接着,当数据传输完毕,必须释放连接

无连接没有这么多阶段,它直接进行数据传输[2]

五层参考模型

五层参考模型的数据封装与解封装

最终总结


  1. OSI是为了建立可靠链接,所以两个人都需要连接 ↩︎

  2. 无连接就像是蛋糕强行塞进你嘴里一样, 不管你吃不吃先塞再说 ↩︎

有关计算机网络-王道考研 001 计算机网络基础知识和概念的更多相关文章

  1. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  2. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  3. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  4. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  5. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  6. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  7. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  8. ruby - 如何计算 Liquid 中的变量 +1 - 2

    我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我

  9. ruby - 使用 Ruby,计算 n x m 数组的每一列中有多少个 true 的简单方法是什么? - 2

    给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in

  10. arrays - 计算数组中的匹配元素 - 2

    给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at

随机推荐