草庐IT

第一章 计算机网络概述

Nuy0ah 2023-03-28 原文

一、因特网概述

网络、互联网和因特网

  • 网络是由若干节点(Node)和连接节点的链路(Link)组成
  • 多个网络还可以通过路由器互连起来,构成范围更大的网络,即互联网
  • 因特网是世界上最大的互连网

因特网的组成

  • 边缘部分:由所有连接在因特网的主机组成,用户可以直接使用,用来进行通信和资源共享
  • 核心部分:由大量网络和连接这些网络的路由器组成,这部分是为边缘部分提供服务

二、三种交换方式

电文交换

  • 电话交换机接通电话线的方式称为电路交换
  • 从通信资源分配角度来看,交换就是按照某种方式动态地分配传输线路的资源
  • 电路交换的三个步骤:
    • 建立连接(分配通信资源)
    • 通话(一直占用通信资源)
    • 释放连接(归还通信资源)

使用电路交换传输计算机数据时,其线路传输效率往往很低下

交换分组交换

  • 发送方:构造分组,发送分组
  • 路由器:缓存分组,转发分组
  • 接收方:接受分组,还原分组

交换报文交换

报文交换也采用分组转发,与分组交换类似,但报文交换对分组大小没有显示,所以对路由器有着较高的要求

交换的对比三种交换的对比

电路交换

优点:

  • 通信时延小
  • 有序传输
  • 没有冲突
  • 适用范围广
  • 实时性强
  • 控制简单

缺点:

  • 建立连接时间长
  • 线路独占,使用效率低
  • 灵活性差
  • 难以规格化

报文交换

优点

  • 无需建立连接
  • 动态分配线路
  • 提高线路可靠性
  • 提高线路利用率
  • 提供多目标服务

缺点

  • 引起转发时延
  • 需要较大的缓存空间
  • 需要传输额外的信息量

分组交换

优点

  • 无需建立连接
  • 线路利用率高
  • 简化了存储管理
  • 加速传输
  • 减少出错概率和重发数据量

缺点

  • 引起转发实验
  • 需要传输额外的信息量

三、计算机网络定义与分类

定义

一些互相连接的、自治的计算机的集合

  • 互连 是指计算机之间可以通过有线或者无线的方式进行数据通信
  • 自治 是指独立的计算机,他有自己的硬件和软件,可以单独运行使用

计算机网络分类

按交换技术分类

  • 电路交换网络
  • 报文交换网络
  • 分组交换网络

按传输介质分类

  • 有线网络
  • 无线网络

按覆盖范围分类

  • 广域网WAN
  • 城域网MAN
  • 局域网LAN
  • 个域网PAN

按拓扑结构分类

  • 总线型网络
  • 星型网络
  • 环形网络
  • 网状型网络

四、计算机网络的性能指标

速率

比特时计算机中数据量的单位,一个比特就是二进制数字中的一个1或0
常用数据单位

连接在计算机网络上的主机在数字信道上传输比特的速率,也成为比特率或数据率
常用数据率单位

带宽

带宽在模拟信号中的意义是:信号所包含的各种不同频率成分所占据的频率范围(单位:Hz/kHz/MHz/GHz)
带宽在计算机网络中的意义:用来表示网络的通信线路所能传送数据的能力

吞吐量

吞吐量表示在单位时间内通过某个网络的数据量
吞吐量受网络的带宽或而定速率的限制

时延

发送时延:分组长度/发送速率
传输时延:信道长度/电磁波传播速率

时延带宽积

传播时延×带宽=时延带宽积!
image

往返时间(RTT)

  • 因特网上的信息不仅仅是单向传输,而是双向交互
  • 往返时间RTT是一个非常重要的性能指标

利用率

  • 信道利用率:用来表示某信道有百分之几的时间是被利用的
  • 网络利用率:全网络的信道利用率的加权平均

根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加;因此信道利用率并非越高越好
如果用D0表示网络空闲时的时延,D表示网络当前的时延,U表示利用率,那在适当的情况下可以下列公式表示:

  • 当网络利用率达到百分之五十,时延就要加倍
  • 当网络利用率超过百分之五十时,时延急剧增大
  • 当网络利用率接近百分之百,时延趋近于无穷大

丢包率

  • 丢包率即分组丢失率,指在一定时间范围内,传输过程中丢失的分组数量与总分组数量的比率
  • 丢包率具体可分为接口丢包率,结点丢包率,链路丢包率,路径丢包率,网络丢包率等
  • 分组丢失的两种情况
    • 分组在传输过程中出现误码,被终点丢弃
    • 分组到达一台队列已满的分组交换机被丢弃;在通信量较大时就可能造成网络拥塞

五、计算机网络体系结构

OSI七层模型

物理层--数据链路层--网络层--传输层--会话层--表示层--应用层

P体系结构TCP/IP体系结构

网络接口层---网际层---传输层---应用层

协议三要素

  • 语法:定义所交换信息的格式
  • 语义:定义收发双方所要完成的操作
  • 同步:定义收发双方的时序关系

在协议的控制下,两个对等实体间的逻辑通信使得本层能向上一层提供服务
协议是水平的,服务是垂直的。
协议数据单元PDU
服务数据单元SDU

如果文章对您有帮助,请帮忙点点推荐

有关第一章 计算机网络概述的更多相关文章

  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. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

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

  5. 阿里云RDS——产品系列概述 - 2

    基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于

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

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

  7. 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

  8. ruby-on-rails - CarrierWave - PDF - 只选择第一页 - 2

    我的Rails应用程序中安装了carrierwave。但是,当用户上传多页pdf时,我只希望应用程序获取文档中的第一页并将其转换为jpeg。这可能吗?用什么命令?这是我的uploader。#encoding:utf-8classImageUploader[200,300]##defscale(width,height)##dosomething#end#Createdifferentversionsofyouruploadedfiles:version:thumbdoprocess:resize_to_fill=>[150,210]process:convert=>:jpgdefful

  9. ruby - 如何跳过 CSV 文件的第一行并将第二行作为标题 - 2

    有没有办法跳过CSV文件的第一行,让第二行作为标题?我有一个CSV文件,第一行是日期,第二行是标题,所以我需要能够在遍历它时跳过第一行。我尝试使用slice但它会将CSV转换为数组,我真的很想将其读取为CSV,以便我可以利用header。 最佳答案 根据您的数据,您可以使用另一种方法和skip_lines-option此示例跳过所有以#开头的行require'csv'CSV.parse(DATA.read,:col_sep=>';',:headers=>true,:skip_lines=>/^#/#Markcomments!)do|

  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

随机推荐