1 计算机网络的结构

1.1 网路边缘

  主机、应用(软件、网站)

1.2 接入网络

1.3 网络核心

  转发设备,路由器、交换机。关键功能就是路由+转发达到数据交换。

2 Internet的结构

2.1 简介

  大体结构:一级ISP,下面连接二级ISP、三级ISP.....,再下面连接区域ISP,区域ISP连接接入网络

2.2 IXP

   互联网交换处理器。互联网交换中心(Internet Exchange Point)是不同电信运营商之间为连通各自网络而建立的集中交换平台,互联网交换中心在国外简称IX或IXP,一般由第三方中立运营,是互联网的重要基础设施

3 数据交换

  网络核心进行数据交换是怎么进行的呢,有多种交换方式

4 电路交换

4.1 简介

  比较典型的电路交换就是打电话

  它是不能被第三方共享的。

  比如使用电话拨号,对方接起,那么就建立起了一个电路,在这个起点,这个电路不会有第三方进来,直到挂断,释放连接,电路拆除。

  现在有一个带宽为1Mbps的链路,有一个接入网络连接了路由器,有N个用户在使用。

  假如每个用户活动时需要100kbs, 电路交换首先需要建立电路,且电路在拆除前它占用的带宽是不能共享的。也就是说同一时间,最多只能够被10位用户使用。

4.2 电路交换之中的链路共享问题的解决

  是链路共享,不是资源共享。

  还是上面的例子:现在有一个带宽为1Mbps的链路,有一个接入网络连接了路由器,有N个用户在使用。假如每个用户活动时需要100kbs,也就是说同一时间,最多只能够被10位用户使用。这里的共享值得是同一时间使用多个用户使用这条链路,而不是共享带宽资源。

  如下图,当很多电话同时在通信的时候,会建立多条电路,多条电路中,有共同用到的一段线路,也就是中继线,中继线依靠多路复用CDM来实现共享

4.3 码分多路复用CDM

  1)它们使用相同频率的载波

  2)为每个用户分配一个唯一的m bit码片序列,其中0用-1表示,1用+1表示如(-1-1-1+1+1+1-1 )

  3)利用各自的码片序列编码数据  编码信号=原始数据*码片序列

  4)为了保证各自的编码信号不相互影响,各自的码片序号需要相互正交

  5)解析信号

  多个用户同一时刻发送的数据通过码片序列编码后,做一个叠加,得到一个叠加向量P

  接收方收到信号P,如想获取用户A的数据,就用A的码片序列解码,可能有3中结果,解析到1,解析到-1,这两种都是解析到了数据,若解析为0,表示在这一刻,该用户没有发送数据。

  6)示意图

  用户1和用户2在同时发送数据,经过编码叠加得到P,P通过信号通道到达接受端,接受端获取P,此时,如果想获取用户1的数据,就是要用户1的码片序列对P进行解码,就可以得到用户1发送的数据,如果要获取用户2的数据,就是要用户2的码片序列对P进行解码,可以得到用户2的数据。美妙的数学。

5 报文交换

5.1 什么是报文

  报文就是一份数据整体,它是把一个数据整体发送。

  它是不共享链路

 

6 分组交换

6.1 什么是分组

  就是把报文拆分开来,分成多个小的数据包,还会在每个小的数据包加上头部,里面添加了一些信息。

  分组交换就存在了拆分和重组的过程,那么相当于报文交换,就产生了额外的开销,但是这是十分值得的。

6.2 它是共享链路的

它最大的特点是按需共享链路,且是时间上的分配共享,当A需要的时候,带宽被A占用,当B需要的时候,带宽被B占用

6.3 存储转发

  报文交换和分组交换都是采用存储-转发的模式。都是从源发送到中间节点(如路由器),在路由器暂存,然后根据路由转发。

  那么数据太大的话,报文交换局限性不就很大?

7 报文转发和分组转发比较

7.1 传输延迟的概念

  一份数据是长度L,传输速率为R,那么传输延迟就是L/R

7.2 报文交换和分组交换

7.2.1 报文交换

  报文长度为M bits,链路带宽为R bits,那么传输延迟为M/R

7.2.2 分组交换

  报文被拆分为多个分组

  每个分组的长度为L

  每个分组的传输延迟为L/R(忽略添加的头部信息)

7.2.3 例子(只比较传输,忽略分组转发的分组和重组的消耗)

  M=7.5M,链路带宽是1.5M,分组分成了5000分,每个分组的长度为1500 bits

1)  报文交换需要的时间和空间

  

  如上图,从源主机传输到目的主机,中间有两个节点,报文交换需要15s

   而且,报文交换的中间节点的存储至少得有7.5M才可以

 

 2)分组交换

  如上图,从源主机传输到目的主机,中间有两个节点,报文交换需要5.002s。为什么会少这么多呢,因为分组,在传输的过程中是并行传输的。

  一个小数据包从源主机到第一个节点,再往下一个节点传的时候,下一个数据包同时从源主机往第一个节点传,一次类推。

   而且,报文交换的中间节点的存储至少需要有1500bits才可以

3)分组交换耗时小结 

跳步数:从原主机到目标主机经过的过程数,h=n+1

那么分组交换传输一份报文需要的时间T=M/R+(h-1)L/R=M/R + nL/R

报文交换也是现在网络数据交换的手段

 

8 分组交换和电路交换比较

8.1 例子

  

  现在有一个带宽为1Mbps的链路,有一个接入网络连接了路由器,有N个用户在使用。

  假如每个用户活动时需要100kbs,平均活动时间为10%

8.2 电路交换

电路交换首先需要建立电路,且电路在拆除前它占用的带宽是不能共享的。也就是说,同一时间,它最多只能有10个用户同时使用。

8.3 分组交换

分组交换的共享是时间上的共享,同一时刻只有一位用户占用了链路,所以分组交换是时间上的分配。只要把时间分配好,就没什么问题。如现在有35个用户在使用,大于10个用户同时使用的概率<0.0004

  分组交换优点:

    资源使用率更高

    简单,无须呼叫建立

  分组交换缺点:

    可能产生拥塞,需要协议来保证可靠数据传输

9 计算机网络的性能

9.1 速率

  速率也叫数据率、数据传输率、比特率,它是指单位时间(s)传输信息量(bit)  

  

9.2 带宽

  在通信领域,带宽指得是信号具有的频带宽度,即最高频率和最低频率之差,单位是赫兹

  在计算机领域,带宽是指数字信道所能传输的"最高数据率"

9.3 延迟/时延

1)分组交换为什么会发生丢包

  中间节点(如路由器),它的存储空间是有限的,当分组的数据包到达中间节点的速率大于它的转发速率,最后导致它存储的数据包占满了它的空间,无法继续接收下一个数据包,而却又数据包发送过来,很多中间节点的做法是丢弃新来的数据包,也就是丢包

2)四种分组延迟

  节点处理延迟

    节点处理延迟:数据包到达中间节点,中间节点对数据包进行差错检查,确定输出链路。当然,这个消耗的时间是极少的

  排队延迟

    中间节点正在传输其它数据包,所以它需要等待输出链路可用

  传输延迟

    传输数据包的需要时间 L/R(数据包的长度/带宽)

  传播延迟

    从传出点到达目的地的传输需要时间。

  以寄快递来对比这四个延迟

  1)我把快递送到快递点

  2)快递点工作人员检查物品,核对我的身份证,确定我的寄出的地点和接收人,这个过程好比节点处理延迟

  3)工作人员把快递包好了,放好

  4)分发快递的工作人员正在处理前面的快递,所以我的快递只能等待前面的快递分发完成,这个过程好比排队延迟

  5)前面的快递分发完成了,轮到我的快递分发了,把快递分发出库,放到运输车上的过程好比传输延迟

  6)运输车将快递运输到目的地,这个过程好比传播延迟

  

9.4 时延带宽积

  时延带宽积 = 传播时延 * 带宽

  传播时延单位s,带宽单位bits,所以时延带宽积的单位就是bit。

  所以时延带宽积可以理解为以比特为单位的链路长度(链路容纳的bit数),好比水管能容纳的水的量

9.5 丢包率

  丢包率 = 丢包书/已分发分组数

9.6 吞吐量/率

  表示在发送端与接收端之间传输数据的速率

    即时吞吐量:某个时刻的速率

    平均吞吐量:一段时间内的平均速率

  

如图,发送端到接受端,发送端一段链路的速率是Rs,接受端的一段链路速率为Rc,那么吞吐量取决于小的速率。

  再看这个图,发送端带宽Rc,接收端带宽Rs,中间节点带宽R/10,那么吞吐量取决于最小的额那个。而实际情况中,通常是取决于Rc或者Rs。

计算机网络基础02-Internet结构,网络核心的数据交换,计算机网络性能几个参数的更多相关文章

  1. JSON、使用JSON进行数据交换的基础和原理

    1. JSON 1.1. JSON 1.1.1. 什么是JSON JSON即Javascript对象表示法,是一种现在主流的数据交换格式.之所以应用广泛还是由其简单易读所决定的. 简单,只有六种类型的 ...

  2. python 网络篇(计算机网络基础)

                               计算机网络的发展及基础网络概念                    广播 主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无 ...

  3. Python网络编程基础 ❶ 计算机网络基础 初用socket模块

    1.计算机网络基础 C/S  客户端/服务器端 B/S  浏览器端/服务器端 mac地址,ip地址,子网掩码,与计算得到网段,端口号每台计算机的网卡都有全球唯一的地址,在生产时已经写进去了. ip地址 ...

  4. [Network] 计算机网络基础知识总结

    计算机网络学习的核心内容就是网络协议的学习.网络协议是为计算机网络中进行数据交换而建立的规则.标准或者说是约定的集合.因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标 ...

  5. 转帖--计算机网络基础知识大总汇 https://www.jianshu.com/p/674fb7ec1e2c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

    计算机网络基础知识大总汇 龙猫小爷 关注 2016.09.14 23:01* 字数 12761 阅读 30639评论 35喜欢 720 一.什么是TCP/IP 网络和协议 1.     TCP/IP是 ...

  6. 【转】[Network] 计算机网络基础知识总结

    阅读目录 1. 网络层次划分 2. OSI七层网络模型 3. IP地址 4. 子网掩码及网络划分 5. ARP/RARP协议 6. 路由选择协议 7. TCP/IP协议 8. UDP协议 9. DNS ...

  7. 计算机网络基础之OSI参考模型

    计算机网络基础之OSI参考模型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.OSI参考模型 OSI是Open System Interconnection的缩写,意为开放式系 ...

  8. 01 语言基础+高级:1-9 网络编程_day11【网络编程】

    day11[网络编程] 主要内容 软件架构CS/BS 网络通信三要素 TCP通信 Socket套接字 ServerSocket 教学目标 能够辨别UDP和TCP协议特点 能够说出TCP协议下两个常用类 ...

  9. 深入Linux网络核心堆栈(对于netfilter的用法和讲解)

    http://blog.csdn.net/wswifth/article/details/5115475 注册一个hook函数是围绕nf_hook_ops数据结构的一个非常简单的操作,nf_hook_ ...

  10. 【计算机网络基础】数据交换技术和多路复用技术的正(nao)确(can)打开方式

    交换的作用   数据交换是计算机网络中两个终端进行数据传输的方式,它又可以分成两种类型:电路交换和分组交换.很显然,问题的核心在于“交换”,那么我们首先要思考的是:交换的作用是什么?   “交换”的作 ...

随机推荐

  1. 区分mbr与gpt分区

    查看分区类型 [root@localhost ~]# parted -l|egrep 'dev/|Part' Warning: Unable to open /dev/sr0 read-write ( ...

  2. 随笔——写windows服务的时候如何调试 c# .net

    流程 1.更改项目 应用程序--输出类型--windows应用程序 改为 控制台应用程序 2.Program启动类中添加调用代码 3.服务类里面添加启动方法去启动OnStart和 Console.Re ...

  3. C++一个吃豆人小游戏

    C++一个吃豆人小游戏 代码如下 #include <cstdio>#include <iostream>#include <ctime>#include < ...

  4. 将现有源码添加进repo管理

    将现有源码添加进repo管理 适用于大型项内无源码管理(git/repo)的源码 前言 ​ 公司在进行一些项目的开发时,从供应商原厂给的code内没有包含任何源码管理的文件.需要多人协同开发,但由于项 ...

  5. LayuI 动态下拉框和动态设置选中

    动态下拉框 //下拉框异步加载 function asyncSelect(thisId, grade, selectNodeName) { $("#" + selectNodeNa ...

  6. 关于python3调用matplotlib中文乱码问题

    问题描述 我用来绘制柱形图,横坐标上面的数据, 但是网上大部分说的都是更改横纵坐标标签的乱码问题,而不是横坐标数据乱码问题 解决办法 更改横纵坐标上标签的中文不乱码 import matplotlib ...

  7. 如何在 K8S 集群范围使用 imagePullSecret?

    在这篇文章中,我将向你展示如何在 Kubernetes 中使用 imagePullSecrets. imagePullSecrets 简介 Kubernetes 在每个 Pod 或每个 Namespa ...

  8. MySQL进阶实战5,为什么查询速度会慢

    一.先了解一下MySQL查询的执行过程 MySQL在查询时,它是由很多子任务组成的,每个子任务都会消耗一定的时间,如果要想优化查询,实际上要优化其子任务,可以消除一些子任务.减少子任务的执行次数.让子 ...

  9. JavaEE Day00 Java Web课程介绍

    1.什么是Java Web? 使用Java语言开发互联网项目,简单理解为使用Java语言开发网站 2.课程介绍:30天 1.数据库(5天,第一阶段) 2.静态网页前端(5天,第二阶段) 3.Web核心 ...

  10. pickle兼容问题

    1 import pickle 2 3 with open('a.pkl',mode='wb') as f: 4 # 一:在python3中执行的序列化操作如何兼容python2 5 # python ...