计算机网络基础02-Internet结构,网络核心的数据交换,计算机网络性能几个参数
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结构,网络核心的数据交换,计算机网络性能几个参数的更多相关文章
- JSON、使用JSON进行数据交换的基础和原理
1. JSON 1.1. JSON 1.1.1. 什么是JSON JSON即Javascript对象表示法,是一种现在主流的数据交换格式.之所以应用广泛还是由其简单易读所决定的. 简单,只有六种类型的 ...
- python 网络篇(计算机网络基础)
计算机网络的发展及基础网络概念 广播 主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无 ...
- Python网络编程基础 ❶ 计算机网络基础 初用socket模块
1.计算机网络基础 C/S 客户端/服务器端 B/S 浏览器端/服务器端 mac地址,ip地址,子网掩码,与计算得到网段,端口号每台计算机的网卡都有全球唯一的地址,在生产时已经写进去了. ip地址 ...
- [Network] 计算机网络基础知识总结
计算机网络学习的核心内容就是网络协议的学习.网络协议是为计算机网络中进行数据交换而建立的规则.标准或者说是约定的集合.因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标 ...
- 转帖--计算机网络基础知识大总汇 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是 ...
- 【转】[Network] 计算机网络基础知识总结
阅读目录 1. 网络层次划分 2. OSI七层网络模型 3. IP地址 4. 子网掩码及网络划分 5. ARP/RARP协议 6. 路由选择协议 7. TCP/IP协议 8. UDP协议 9. DNS ...
- 计算机网络基础之OSI参考模型
计算机网络基础之OSI参考模型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.OSI参考模型 OSI是Open System Interconnection的缩写,意为开放式系 ...
- 01 语言基础+高级:1-9 网络编程_day11【网络编程】
day11[网络编程] 主要内容 软件架构CS/BS 网络通信三要素 TCP通信 Socket套接字 ServerSocket 教学目标 能够辨别UDP和TCP协议特点 能够说出TCP协议下两个常用类 ...
- 深入Linux网络核心堆栈(对于netfilter的用法和讲解)
http://blog.csdn.net/wswifth/article/details/5115475 注册一个hook函数是围绕nf_hook_ops数据结构的一个非常简单的操作,nf_hook_ ...
- 【计算机网络基础】数据交换技术和多路复用技术的正(nao)确(can)打开方式
交换的作用 数据交换是计算机网络中两个终端进行数据传输的方式,它又可以分成两种类型:电路交换和分组交换.很显然,问题的核心在于“交换”,那么我们首先要思考的是:交换的作用是什么? “交换”的作 ...
随机推荐
- 嵌入式-C语言基础:快速选择排序实现从大到小排序
#include<stdio.h> int main() { /*简单选择排序:从大到小:一共比较sizeArr-1轮,每一轮的第一个数是arr[i],第一个数依次和它后面的每个数比较*/ ...
- 【DL论文精读笔记】 深度压缩
深度压缩 DEEP COMPRESSION: COMPRESSING DEEP NEURAL NETWORKS WITH PRUNING, TRAINED QUANTIZATION AND HUFFM ...
- 网络编程:多进程实现TCP服务端并发、互斥锁代码实操、线程理论、创建线程的两种方式、线程的诸多特性、GIL全局解释器锁、验证GIL的存在
目录 多进程实现TCP服务端并发 互斥锁代码实操 线程理论 创建线程的两种方式 线程的诸多特性 GIL全局解释器锁 验证GIL的存在 GIL与普通互斥锁 python多线程是否有用 死锁现象 多进程实 ...
- win7修改开机动画
开机动画的修改 首先win7的过场动画是存在于C:\Windows\System32\bootres.dll ,而修改过程动画就需要修改这个dll,我不会改,所以只能用工具美化大师,软媒魔方里面的一个 ...
- nuxt作为主应用接入qiankun的实践(附代码)
上半年一直在倒腾qiankun,在使用nuxtjs接入qiankun时遇到了一些坑,记录并分享出来,希望能帮助到大家. 代码地址:nuxtjs-qiankun-demo Nuxtjs接入qiankun ...
- Springboot整合thymeleaf报错whitelabel page
1.SpringBootApplication未放在最外层 2.application.properties未配置spring.thymeleaf.check-template-location=tr ...
- nginx配置文件讲解及示例(可复制)
详细的配置说明参考:https://www.cnblogs.com/ghl1024/p/9013805.html [示例一] #运行用户user www-data; #启动进程,通常设置成和cpu ...
- MySQL进阶实战6,缓存表、视图、计数器表
一.缓存表和汇总表 有时提升性能最好的方法是在同一张表中保存衍生的冗余数据,有时候还需要创建一张完全独立的汇总表或缓存表. 缓存表用来存储那些获取很简单,但速度较慢的数据: 汇总表用来保存使用grou ...
- Java/JDK各版本主要特性汇总
目录 Java18(2022.3) Java17(2021.9)(LTS版本) Java16(2021.3) Java15(2020.9) Java14(2020.3) Java13(2019.9) ...
- Flask框架(flask-sqlalchemy操作,Migrate作用,Flask迁移数据库,Flaks同步表数据)
目录 一:flask-sqlalchemy操作 1.引入: 2.Flask-Migrate扩展 3.flask-sqlalchemy与slask_migrate作用 4.flask-migrate初始 ...