jjzjj

计算机网络第一章 计算机网络与因特网

望 尘� 2023-11-21 原文

1.0 目录

[TOC]

1.1 什么是Internet?

1.1.1 最细微:图(Graph)
  • Internet由结点Node和边Edge组成

  • 结点Node分为主机结点和交换结点

  • 边Edge分为接入网链路Access和主干链路Backbone

  • 结构图如下:

1.1.2 网络的网络(Network of Network)
  • Internet可以看成由一个个子网相互连接构成

  • 国家网.cn .us等,各用途子网.com .gov .edu等

1.1.3 网络边缘Edge+核心Core+接入Access
  • 网络由边缘终端设备(源主机+目的主机),网络核心(交换结点:交换机与路由器)以及网络接入(边缘设备接入网络核心的链路)

  • 第一章的后面部分也是围绕此顺序进行介绍的

1.1.4 最宏观:分布式应用+基础设施
  • 首先要明确:如果世界上只有一台计算机,那么一定不会有计算机网络,更不会有Internet,因为没有相互沟通的需要

  • 正式因为有了多台计算机,每台计算机上的应用有相互沟通的需要,互联网才有存在的原因

  • 因此,分布式应用是计算机网络存在的原因

  • 而Internet可以说是分布式应用与基础设施的集合,示意图如下:

1.2 网络边缘(主机,应用程序)

1.2.1 网络边缘间的通讯模式
A.C-S客户端Client服务器Server模式
  • 弊端:此模式的可拓展性差,即能支持的客户端数量十分有限

  • 当客户端的数量增加,请求的数据量急剧增加,而数据量的增加受制于客户端上载带宽,因而客户端数量到达阈值,其性能断崖式下跌)

B.P2P模式(peer to peer)
  • 每个节点既可以是客户端,也可以是服务器

  • 即每个节点即向其他节点申请资源,同时也可上传自身的资源

  • 因此,当客户端数量增加时,请求的数据量增加,但提供数据的节点同时增加,故此模式可以支持大量的客户端

  • 应用实例:迅雷下载

1.3 网络核心:分组交换,线路交换

1.3.1 电路(线路)交换Circuit Switch
A. 线路交换特征(优点+不足)
  • 为每一个主机分配一条线路(此“线路”可以指时间,频率),且该主机独占该条线路

  • 优点:由于主机独占一条线路,且不需要经过中间节点的存储转发,因此线路总延时小,且没有排队延时

  • 不足:①对于计算机通信(突发性很高)的应用十分不适用,计算机将长时间占用信道资源,造成资源的浪费②给计算机分配固定信道使得网络边缘通信的路径是固定的,当核心设备损坏时,将影响大量设备的通信

B. 信道复用技术
  • 时分复用(TDMA:Time-division multiplexing)

  • 将一个单位时间分成若干时隙,每个主机独享一个时隙

  • 频分复用(FDMA:Frequency-division multiplexing)

  • 将一个宽的频率带分成若干子带,每个主机独享一个频率带

  • 波分复用(WDMA:Wave-division multiplexing)

  • 对于光纤通信的情况,将光波分成不同波长的信号

1.3.2 分组交换
A.分组交换特点
  • 将数据分成若干组(packet),在每个交换节点进行存储转发

  • 统计多路复用:不使用固定的划分时间片的

B.分组交换网络分类
  • 数据报(data-gram)网络

  • 每个分组均携带目标地址,进行独立传输,不需要进行握手

  • 且每个节点不需要保存节点状态,属于无状态网络

  • 虚电路网络(在交换节点上建立虚拟电路)

  • 通信前需要握手,每组以虚电路号标记

  • 虚电路依靠信令建立起来

  • 虚电路网络如下图所示:

1.4 接入网与物理媒介

1.4.1 接入网分类
  • 住宅接入

  • 单位接入

  • 无线接入

1.4.2 电话线拨号上网
  • 电话线拨号上网的推广由于计算机网络的前期投入极大,因此处于降低成本的考虑,选择已经完成布局的电话线作为网络布局的框架

  • 同时,电话线拨号上网的实现,由于电话通讯的波带仅约为4kHz,而运营商布置的电话线质量较好,可以进行更高频段的通信

A. 调制解调器(Modem)
  • 由调制器(Modulator)和解调器(Demodulator)构成

  • 调制器用于将计算机的数字信号转化为可在电话线中传输的模拟信号,调制主要分为调频,调幅,调相。

B.拨号上网特征
  • 拨号上网会占用电话线,使得上网期间,电话无法使用

C.ISDN(Integrated Service Digital Network)技术
  • 提供B+2D的数据通信线,一条信令信道,两条数据信道

  • 可以不需要Modem进行调制解调

  • 可以使用其中一条D进行电话通信,使得网络和电话互补影响,也可以使用两条D进行数据通信,使得上网带宽更大

1.4.3 ADSL技术
  • 英文全称:Asymmetric Digital Subscriber Line,中文全称:非对称数字用户线路

  • ADSL技术将电话线除了语音部分外的其余带宽分成非对称的上行和下行带宽,使得上行带宽达到1Mbps,下行带宽达到8Mbps

  • ADSL技术保证了较大的带宽,同时电话通讯与网络通信互不影响

1.5 Internet/ISP结构

A.互联网服务提供商(ISP)
  • ISP:Internet Service Provider是互联网服务的提供商

  • ISP也是分级的,依次将终端主机连接成网状结构

  • 有全球性的运营商(global ISP),在全球各地都有布置服务器

  • 有地区运营商(regional ISP),负责地区细化的服务

B.物联网内容提供商(ICP:Internet Content Provider)
  • 由于如Google的大公司提供全球的浏览器服务,因而需要每年向ISP交大量的费用,但服务的质量无法得到保证,如美国的数据要传到南非的用户,需要经过多跳的存储转发才可实现,成本高

  • 因此,Google在世界各地布置数据中心机房DC:data center,数据机房间用专用数据线进行连接,实现数据机房间的高效数据互通

  • 且数据中心机房往往靠近运营商的中心机房,最大程度降低付给运营商的成本

C.总体结构图

1.6 性能:丢包、延时、吞吐量

A. 分组丢失与延时
  • 分组交换:每个hop都有四种延时-> 处理延时processing、传输(发送)延时transmission、传播延时propagation,排队延时queueing

  • 线路交换:有三种延时-> 处理延时processing、传输(发送)延时transmission、传播延时propagation

  • 传输延时=数据报长度L/带宽R

  • 传播延时=链路长度d/电磁波速度c

  • 排队时延:是一个随机量,取决于输入节点的带宽与输出节点的带宽关系,引入物理量流量强度I:Intensity,如下图所示

B.吞吐量
  • 由木桶效应,网络吞吐量为网络链路带宽的最小值,即:min{R_s,R_c}

1.7 协议层次,服务模型

A. 协议
  • 对等层的实体在通讯过程中遵守的规则(语义,语法,动作)的集合

  • 计算机网络的层级结构:本层通过调用下一层提供的服务,结合本层的协议为上层提供更好的服务

  • 且计算机网络的协议以分层的形式,具有高内聚低耦合的优点,容易进行平滑升级(如在物理层,从飞鸽传书到电磁波通信的升级并不影响其他层协议的正常实现)

B. 服务
  1. 服务用户、服务提供者:顾名思义是服务的享用和提供服务的主体,上图中TCP是服务提供者,而software是服务用户

  1. 服务访问点SAP:Service Access Point:用于区分不同的服务用户,如上图中的p1,p2,p3

  1. 原语primitive:服务提供形式,如socket API就是一种原语

C.各层的协议数据单元PDU构成
  • PDU:Protocol Data Unit是协议数据单元的简写

  • 层与层之间交互服务数据单元SDU:Service Data Unit,构造接口控制信息ICI:Interface Control Information,并在对等层之间以协议数据单元PDU的方式进行通信,该示意图如下:

D.Internet协议栈
  • 物理层(物理信号):由帧frame转化成物理信号

  • 数据链路层(帧frame):在相邻俩节点(源主机与)中传输以帧frame为单位的数据,实现点到点point 2 point的通信

  • 网络层(分组packet、数据报data_gram):在源主机与目的主机之间传输以分组packet或数据报data_gram为单位的数据,实现端到端end 2 end的通信

  • 运输层(报文段message section):进程到进程之间的通信(面向连接:TCP,无连接UDP)

  • 应用层(报文message):应用报文的相互传送(HTTP,FTP,SMTP,DNS)

有关计算机网络第一章 计算机网络与因特网的更多相关文章

  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. ruby - 如何计算 Liquid 中的变量 +1 - 2

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

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

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

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

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

  10. ruby - 检查网络文件是否存在,而不下载它? - 2

    是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby​​不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案

随机推荐