计算机网络第一章
计算机网络第一章
概念、组成、功能和分类p1
计算机网络的概念
计算机网络:是一个将分散、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
计算机系统:包括安卓、iOS、Windows、macOS等都可被称为计算机系统,也叫做端系统
通信设备:通常指的是交换机和路由器
线路:就是端系统与通信设备所联通的一种介质
计算机网络是互连的、自治的计算机集合。
互连:互联互通
自治:无主从关系,虽然可以彼此通信但是不可以控制对方。
计算机网络的功能
-
数据通信(连通性)
-
资源共享
-
分布式处理:多台计算机各自承担同一工作任务的不同部分。比如Hadoop平台
-
提高可靠性:替代机
-
负载均衡
计算机网络的组成
-
组成部分
-
硬件:主机(端系统)、双绞线和光线等(链路)路由器和交换机(通信设备)
-
软件
-
协议
-
-
工作方式
-
边缘部分(用户直接使用)
就是连接在互联网上的所有的主机,主机又可称为“端系统”。
是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享-
c/s方式 客户-服务器方式(CS:Client/Server)
客户-服务器方式描述的是进程之间服务和被服务的关系,客户是服务请求方,服务器是服务提供方。
既然他们是边缘部分,那么仍然需要网络核心提供服务。 -
p2p方式 对等连接(P2P:peer-to-peer)
P2P:即是指两台主机在通信时并不区 分哪一个是服务请求方哪一个是服务提供方。即两方地位对等。
本质上看仍然是使用客户-服务器方式,只是客户和服务器的地位可以随时调换,但是作为服务器只能与一个或几个客户通信,不能同时与大量用户通信。对等连接只要双方都安装了P2P软件就能实现P2P对等连接。
-
-
核心部分(为边缘部分服务)
-
-
功能组成
-
通信子网 :实现数据通信
-
资源子网:实现资源共享/数据处理
-
计算机网络的分类
-
按照分布范围分为 Area Network
广域网WAN:跨国 ( 交换技术 )wide
城域网MAN:一个城市内 Metropolitan
局域网LAN:通常是一千米左右 ( 广播技术) local
个人区域网PAN:自己的智能手机 personal
-
按照使用者来分:
公用网:中国电信等
专用网:军队、政府、铁路
-
按照交换技术
- 电路交换
- 报文交换
- 分组交换
-
按照拓扑结构分:
注:网状型常用于广域网,比如现在的因特网就是属于网状结构
-
按照传输技术分:
广播式网络:共享公共通信信道。一台主机传输数据的时候其他主机也可以收听到。
点对点网络:使用分组存储转发和路由选择机制。一对一。
脑图
标准化工作及相关组织p2
标准化工作
标准化对计算机网络至关重要!!
要实现不同厂商的软、硬件之间相互连通,必须遵从统一的标准。
标准分类
法定标准:有权威机构制定的正式的。合法的标准 OSI
事实标准:某些公司的产品在竞争中占据了主流,时间长了,这些产品的协议和技术就成了标准 TCP/IP
RFC(Request For Comments)--因特网标准的形式
RFC要上升为因特网正式标准的的四个阶段:
-
因特网草案(Internet Draft):这个阶段还不是RFC文档
-
建议标准(Proposed Standard):这个阶段开始成为RFC文档
-
草案标准(Draft Standard)IETF\IAB审核 -
因特网标准(Intenet Standard)
标准化工作的相关组织
国际标准化组织ISO : osi 参考模型、HDLC协议(High-Level Data Link Control,高级数据链路控制)
国际电信联盟 ITU(International Telecommunication Union) :指定通信规则
国际电气电子工程师协会 IEEE : 学术机构、IEEE802 系列标准、5G
Internet 工程任务组 IETF :负责因特网相关标准的指定 RFC XXXX
脑图
性能指标之速率、带宽、吞吐量p3
速率:数据率或称数据传输率或者比特率。
比特 1 / 0 位
连接在计算机网络上主机在数字信道上传输数据位数的速率
单位是 b/s, kb/s,Mb/s,Gb/s,Tb/s
速率
(换算 1000倍)
千 1kb/s = 10^3 b/s
兆 1Mb/s = 10^6b/s
吉 1Gb/s = 10^9 b/s
太 1Tb/s = 10^12 b/s
存储容量
( 1Byte(字节) = 8 bit(比特) )
以Byte(字节) 单位 换算时 2^10次方
1KB = 2^10 B = 1024 B = 1024 *8 b
1MB = 2^10KB = 1024KB
1GB = 2^10 MB = 1024 MB
1TB = 2^10 GB = 1024 GB
带宽(理论)Max net bitrate
-
带宽是指某个信号所具有的频带宽度,即最高频率和最低频率之差,单位是赫兹。
-
计算机网络中,带宽用来表示网络通信线路传输数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。单位是“比特每秒” ,b/s 、kb/s
网络设备所支持的最高速度
链路带宽 = 1Mb/s =>1s发送10^6 b = > 1us(10^-6s) 发送 1bit的数据
带宽是最高能发送的数据率
带宽变大是指单位时间内往链路中注入的数据量变多了,并不能影响这个比特在链路上传播的速度,只能说发送的变快了
吞吐量(实际)throughput
表示在单位时间内通过某个网络(或信道、接口的数据量)。单位b/s,kb/s等
吞吐量受到网络带宽或者网络额定速率的限制。
区分带宽和吞吐量⬇️
带宽是对链路性能的描述,是指链路所能接收的最大速率。
速率就相当于是数据传输的理想状况。
吞吐量就是实际状况。
因为带宽决定了数据传输的最大范围。吞吐量就是实际传输速率。
为何感到下载速率没有达到ISP说的速率???
ISP提供的线路带宽使用的单位是比特,而一般下载软件显示的是字节(1字节=8比特),所以要通过换算,才能得实际值。我们以1M宽带为例,按照换算公式换算一下:
1Mb/s=1000*1000b/s=1000Kb/s=1000/8KB/s=125KB/s
理论上1M(即1Mb/s)宽带理论速率是:125KB/s(即1000Kb/s),实际速率(吞吐量)大约为40---100kB/s;(其原因是受用户计算机性能、网络设备质量、资源使用情况、网络高峰期、网站服务能力、线路衰耗,信号衰减等多因素的影响而造成的)。4M(即4Mb/s)的宽带理论速率是:500KB/s,实际速率(吞吐量)大约为200---440kB/s 。
时延、时延带宽积、RTT和利用率p4
时延
指数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间。也叫做延迟或者迟延。单位是s
发送时延(发生在主机内部的一般就是发生在网络适配器内部):数据比特流是一长串比特数字,存在长度概念(这也是发送时延的来源)将这串数字比特流的第一个比特发送到链路上 再到最后一个比特发送到链路上
= 数据长度/信道带宽(发送速率)
传播时延(发生在机器外,发生在信道上面):数据在信道上传播一定的距离所花费的时间,取决于电磁波的传播速度和链路的长度
= 信道长度/电磁波在信道上的传播速率
注:信号经过一定的调制手法,把该信道以电磁波为载体进行传输。电磁波就像一个工人可以背着这些工人往前跑,所以比特流在信道上传输的速率显示的效果就是电磁波在这个信道上传播的速率。
排队时延:等待输出/入链路可用需要的等待时间
处理时延:检错,找出口
高速链路只是提高了发送时延,传播时延和传播速度都是不变的,他只跟传输介质的速度有关
时延带宽积
时延带宽积 = 传播时延 ×带宽 = RTT/2 ×带宽
bit = s × b/s
称为以比特为单位的链路长度
即“某段链路中现在有多少比特”
容量
往返时延RTT (round-trip time)
从发送方发送数据开始(发送方的第一个比特位刚放上开始),到发送方收到接收方的确认(收到我的第一个比特位置)(接收方收到数据后立即发送确认)总共经历的时延。
时延带宽积是为了描述一个概念。假设你并不知道时延带宽积的公式,现在有这么一个问题:
『对于发送端而言,它使用链路的最大带宽去不断地发送比特数据,那么在发送端所发送第一个比特,到得知第一个比特被接收的这段时间内,一共发送了多少个比特?』
上面的问题中,我们可以使用 R 表示链路的最大带宽,使用 T 表示 『发送端所发送第一个比特,到第一个比特被接收的这段时间』,很明显,R 的单位是 b/s,而 T 的单位是 s,故所发送的比特数 B = R * T
而 B = R * T 中的 T 不就是 RTT 除以二么,RTT有去有回,这个T应该是1/2 的RTT,这就是时延带宽积的意义,就是描述一个概念而已。
注:以上RTT除去末端处理时间
如果将 network circuit 单纯看成一个 pipe 的话,你的理解是对的。但是,实际系统中的 network circuit 应该是一个 end-to-end path(i.e. sendbuf + pipe + recvbuf),因为有 buffer,所以 path 上驻留的数据可以超过 pipe 的 capacity。至于为什么用 RTT,因为 sender 最快在一个 RTT 时间内收到 recver 的 feedback,否则会一直向该 path 注入数据。
RTT越大,需要等很久才能等到这样一个确认,那么在收到确认之前,可以发送的数据越多。
利用率
类比车道的利用率很大,全部都是车,那么车的时延就会急剧增大。
脑图
分层结构、协议、接口、服务P5
为什么 要分层?
发送文件前要完成的事情:
-
发起通信的计算机必须将数据通信的通路进行激活。(要发出一些命令,清理一下这条路,确定好这条路是能够通过的)
-
要告诉网络是如何识别目的主机(主机将资源传输到云端,此时主机已经管不到了所以需要网络去识别出目的主机)
-
发起通信的计算机要查明目的主机是否已经开机,并且与网络是否连接正常。
-
发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。
-
确保差错和意外可以解决。比如文件缺失重复
......
怎么分层?
实体:每层当中的活动元素
同一层的实体叫做对等实体
协议:只有对等实体之间才有
接口:每两层之间的关节处的位置
服务:每两层之间提供的东西就叫做 服务。在计算机网络当中上层是使用下层的服务的。
分层的基本原则:
-
各层之间相互独立,每层只实现一种相对独立的功能。
-
每层之间界面自然清晰,易于理解,相互交流尽可能的少。
-
结构上可以分割开,每层都采用最合适的技术来实现。
-
保持下层对上层的独立性,上层单向使用下层提供的服务。
-
整个分层结构应该能促进标准化工作。
正式认识分层结构
-
实体:第n层的活动元素称为第n层实体。同一层的实体叫做对等实体。
-
协议:为进行网络中对等实体数据交换而建立的规则,标准或者约定称为网络协议。【水平】
-
语法:规定传输数据的格式
-
语义:规定要完成的功能
-
同步:规定各种操作的顺序
水平:每一个协议只是对等层次之间使用的
-
-
接口(访问服务SAP):上层使用下层服务的入口。
-
服务:下层为相邻上层提供的功能调用。【垂直】
每个中间层次它都为上层提供服务,同时使用下面所有层次服务的总和
SDU服务数据单元:为完成用户所要求的功能而应传送的数据(有含金量的数据,真实有用的数据)。
PCI协议控制信息:控制协议操作的信息。
PDU协议数据单元:对等层次之间传送的数据单位。
下一次的SDU就是上一层的PDU
概念总结
-
网络体系结构是从功能上描述计算机网络结构。
-
计算机网络体系结构是分层结构。
-
每层遵循某个/些网络协议以完成本层的功能。
-
计算机网络体系结构是计算机网络的各层及其协议的集合。
-
第n层在向n+1层提供服务时,此服务不仅包含第n层本身 的功能,还包含由下层服务提供的功能。
仅仅在相邻层间有接口,且提供的服务的具体实现细节对上一层完全屏蔽。就是说我的下一层如何实现这个服务我不用管具体的实现细节,只需要使用下层给我提供的服务就可以了。
注:第三层和第五层之间是不存在接口的,也不能进行服务之间的交流。
- 体系结构是抽象的,而实现是指能运行一些软件和硬件。(不同厂家实现采用不同的软硬件来实现)。
脑图
OSI参考模型(1)p6
计算机网络分层结构
ISO/OSI参考模型
---怎么来的?
为了解决计算机网络复杂的大问题 =》分层结构(按功能)
IBM提出了第一个网络体系结构SNA(只有使用他们的产品才能够使用,垄断!)
美国国防部提出 TCP/IP
目的:支持异构网络系统的互联互通
国际标准化组织(ISO)于1984年提出开放系统互连(OSI)参考模型。
但是!理论成功,市场失败。
OSI失败原因:
- 构想好,但实践起来不行。
- 实现复杂,运行效率低。
- 制定模型时间长。
- 层次划分不合理,有些功能重复出现。
ISO/OSI参考模型
ISO/OSI参考模型解释通信过程
注:⬆️
打包:
A的应用层对数据进行包装,贴上了一个头部,里面有控制信息,控制信息可能是下一步的位置,优先级或者检验差错的东西。形成了第七层的PDU,第七层的PDU和第六层的头部共同构成第六层的PDU,然后依次第5、4、3层进行相同的操作。除了数据链路层之外,数据链路层多加了一个尾部。物理层就只是形成比特流进行传输。
拆包:
右边的B的数据链路层因为和左边的A的数据链路层使用的同样的协议,因此他知道如何去掉头部和尾部,形成网络层的首部,同样的道理依次去掉每一层的头部,B就能够得到数据。
OSI参考模型(2)p7
应用层
所有能和用户交互产生网络流量的程序。(联网才能使用的程序)
典型应用层服务:
- 文件传输FTP
- 电子邮件SMTP
- 万维网HTTP
表示层
用于处理在两个通信系统中交换信息的表示方式(语义和语法)
功能1:数据格式变换(充当翻译官的角色)
原因:不同的主机编码方式不同, 为了使其能够交换信息
功能2:数据加密解密
“我的微信支付密码是xxxx”
功能3:数据解压缩和压缩
主要协议:JPEG、ASCII
会话层
向表示层实体/用户进程提供建立连接并在连接上有序地传输数据。
这是会话,也是建立同步SYN。
电脑同时打开两个窗口,主机和其中一个窗口建立会话是不会影响到主机和其他窗口的内容的。
功能1:建立、管理、终止会话
比如打开一个网页就相当于建立了一个会话,关闭一个网页就相当于把一个会话终止了。
功能2:使用校验点可以使会话在通信失效的时候从校验点/同步点继续恢复通信,实现数据同步。
适用于传输大文件,假如传输一个大文件的时候,传输第四章的时候网络忽然断开了,那么我们可以在恢复网络的时候继续从上次的校验点的地方继续传输。
主要协议:ADSP、ASP
传输层
负责主机中两个进程的通信,即端到端的通信。传输单位是报文段或用户数据报。
上面四层像是大老板不需要管具体的,只需要知道最后要去哪就可以,但是下面的三层需要知道下一步该去哪个城市。
端到端通信:只管目的主机
功能1:可靠传输、不可靠传输
功能2:差错控制
功能3:流量控制
功能4:复用分用
可靠传输:发送端每次发送数据,要直到收到接收端发来的确认信息才能进行下一轮的发送,如果接收端没有发送确认信息,发送端就会再次发送一个包来确认信息。
不可靠传输(适用于比较小的数据):比如我们在QQ上面发信息发送“在吗”只需要发送一个包就可以了。
差错控制:有些顺序不对或者缺失的问题可以在传输层进行解决。
流量控制:发送端发送很多数据,但是接收方无法一下子接受这么多数据,就可以采用流量控制来控制发送方的发送速度。
复用分用 :
- 复用:多个应用层进程可以同时使用下面运输层的服务。操作系统的 多个进程(这里一个端口表示一个进程) 利用一个运输层协议(或者称为运输层接口)发送数据称为复用
- 分用:运输层把收到的 信息分别交付给上面应用层中的相应的进程。
每个进程都会有一个端口号来表示它,假如QQ进程端口号为1,微信的端口号2。他们形成响应的报文段中存储端口号,数据就相当于是使用了运输层的服务。
传输之后每个报文段对应的端口号就传输给对应的端口。
传输层的复用和分用是怎么划分的?
同是传输层,为什么有时候是复用,有时候是分用呢?
复用和分用是针对上层,也就是应用层来说的。
如果是接收端的传输层,接到了web应用、email应用的消息,需要交给应用层不同的端口,就要分别交给不同的应用,也就是端口,就是传输层分用。
如果是发送端,不仅要发送web应用的数据段给网络层,还需要发送email应用的数据段网络层,相当于重复利用传输层,就是传输层复用。
主要协议:TCP、UDP
网络层
主要任务就是把分组的源端传到目的端,为分组交换网上的不同主机提供通信服务。
网络层的传输单位是数据报。
分组: 分组是在网络中传输的二进制格式的单元,为了提供通信性能和可靠性,每个用户发送的数据会被分成多个更小的部分。在每个部分的前面加上一些必要的控制信息组成的首部,有时也会加上尾部,就构成了一个分组。它的起始和目的地是网络层。
数据报:面向无连接的数据传输,其工作过程类似于报文交换。采用数据报方式传输时,被传输的分组称为数据报。通常是指起始点和目的地都使用无连接网络服务的的网络层的信息单元。
链路层 | 网络层 | 传输层 | 应用层 |
---|---|---|---|
数据包,packet | 数据段,segment | 消息,message | |
帧,frame | 数据报,Datagram | 报文段 | 报文 |
分组 |
功能1:路由选择
功能2:流量控制
协调发送端和接收端的速度
功能3:差错控制
通信两节点之前所指定的检验规则,能纠错就纠错不能纠错就扔掉
功能4:拥塞控制
若所有节点来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定的措施来缓解这种拥塞。
主要协议:IP 、IPX 、ICMP 、IGMP 、ARP、 RARP 、OSPF
数据链路层
主要任务是把网络层传下来的数据组装成帧。
数据链路层的传输单位是帧。
功能1:成帧(定义帧的开始和结束)
...1000111010100..分别定义几种01的组合。这样才能在接收端的部分提取出帧的部分,进而上交给网络层
功能2:差错控制 帧错+位错
用一些可靠传输协议来纠正差错,也可能直接丢弃出错的帧。
功能3:流量控制
功能4:访问(接入)控制
控制对信道的访问
控制哪一台主机可以接入这个信道,因为在广播式网络中同一时间内只能有一种网络接入信道。只能有一个人发送信息,其他人都是处于一个监听的状态。
协议:SDLC、HDLC、PPP、STP
物理层
主要任务是在物理媒体上实现比特流的透明传输。
物理层的传输单位是比特
只需将比特流变为电信号就可以。
透明传输:指的是不管所传输的数据是什么样的比特组合,都应当能够在链路上进行传输。
功能一:定义接口特性
比如每个插头应该有多少个引脚等等
功能2:定义传输模式:单工、半双工、双工
单工:只能单方向就是说如果两个人进行通信的话,只可以同一时间有一个人在发送,另一个人一直都是在接收的。发送方和接收方是确定好的。
半双工:两个人都可以作为发送方和接收方,但是在同一时刻还是只可以有一个人做为发送方。
双工:两个人可以同时发送。
功能3:定义传输速率
功能4:比特同步
功能5:比特编码
主要协议:Rj45、802.3
脑图
TCP/IP模型 五层参考模型p8
OSI参考模型与TCP/IP参考模型
OSI参考模型与TCP/IP参考模型的相同点
1.都分层
2.都给予独立的协议栈的概念
3.实现异构网络的互连
OSI参考模型与TCP/IP参考模型的不同点
1.OSI定义三点:服务、协议、接口
2.OSI先出现,参考模型先于协议发明。不偏向特定协议
3.TCP/IP设计之初就考虑到异构网络互连的问题,将IP作为重要层次。