网络(Network)由若干结点(Node) 和连接这些结点的链路(link)组成。
互联网 ( Network of Networks ):多个网络通过路由器互连构成的覆盖范围更大的网络(网络的网络)。
因特网(Internet):世界上最大的互连网络
区分
- internet(互联网):通用名词,泛指多个计算机网络互连的网络,通信协议随意。
- Internet (因特网):专有名词,指一个前身为ARPANET的特定计算机网络,采用TCP/IP协议族作为通信规则。
单个网络ARPANET → 三级结构因特网 → 多层次ISP结构因特网
因特网服务提供者ISP:Internet Service Provider (联通、移动、电信)
ISP 拥有通信线路和路由器(大型)等网络设备,因此普通用户往往通过 ISP 接入因特网,这时 ISP 会从因特网管理机构为用户申请IP地址。
另:用户也能作为ISP。你只需要购买些调制解调器之类的东西,让其他人连接你。
相关部门: ISOC —— IAB —— IETF 和 IRTF
因特网制定标准面向公众。
正式标准制定阶段:
因特网草案
建议标准 (RFC文档)
草案标准
因特网标准
电话交换机接通电话线的方式称为电路交换。
交换即按照某种方式动态分配传输线路的资源。
电路交换三个步骤:
这个连接是一条专用的物理通路。
建立连接的传输:比特流直达。
传输信息在发送时,将信息分段,每一段根据一定规则添加首部信息(包头),构成分组,称为包。分组交换机会根据包头信息进行合理传输。到达目的地后去掉包头,还原信息。
合理传输意味着包的传输可以走不同路径。
分组传输意味着传输有乱序性:分组到达目的地后顺序可能不同。
(这会造成潜在的分组丢失、误码、重复问题)
三个主体:发送方,路由器,接收方。
主体 | 任务 |
---|---|
发送方 | 构造分组,发送分组 |
路由器 | 缓存分组,转发分组 |
接收方 | 接收分组,还原报文 |
分组存储转发:减少了转发时延,避免长报文长时间占用链路,方便差错控制。
主要用于早期电报通信网络。现已被分组交换取代。
随时发送报文,不需要建立连接。先传送到相邻结点交换机,存下来后存储转发到下一相邻结点交换机。
**报文存储转发:**不限制报文大小,需要结点交换机有较大缓存空间。
交换方式 | 优点 | 缺点 |
---|---|---|
电路交换 | 1) 通信时延小 2) 有序传输 3) 没有冲突 4) 适用范围广 5) 实时性强 6) 控制简单 | 1)建立连接时间长 2)线路独占,使用效率低 3)灵活性差 4)难以规格化 |
报文交换 | 1)无需建立连接 2)动态分配线路 3)提局线路可靠性 4)提高线路利用率 5)提供多目标服务 | 1)起了转发时延 2)需要较大存储缓存空间 3)需要传输额外的信息量 |
分组交换 | 1)无需建立连接 2)线路利用率高 3)简化了存储管理 4)加速传输 5)减少出错概率和重发数据量 | 1)引起了转发时延 2)需要传输额外的信息量 3)对于数据报服务,存在失序、丢失或重复分组的问题:对于虚电路服务,存在呼叫建立、数据传输和虚电路释放三个过程 |
计算机网络精确定义未统一。
简单定义:一些互相连接的、自治的计算机的集合。
- 互连:计算机间可以通过有线或无线的方式进行数据通信;
- 自治:指有自己硬件软件的,单独运行使用的独立计算机
- 集合:至少两台计算机。
精准定义:计算机网络主要由一些通用的,可编程的硬件互连而成的。这些可编程的硬件能够用来传送多种不同类型的数据,并能够支持广泛和日益增长的应用。
这些硬件并非专门用来实现某一特定目的 (例如,传送数据或视频信号),而是能传送不同类型数据,包括应用。
硬件包括智能手表等。
按交换技术分类:
按使用者分类:
按传输介质分类:
按覆盖范围分类:
广域网WAN(Wide Area Network)
作用范围通常为几十到几千公里,因而有时也称为远程网(long haul network)。
任务是通过长距离(例如,跨越不同的国家)运送主机所发送的数据。
广域网是互联网的核心部分。
城域网MAN
作用范围一般是一个城市,可跨越几个街区甚至整个城市
局域网LAN
一般用微型计算机或工作站通过高速通信线路相连(速率通常在 10 Mbit/s 以上),但地理上范围较小(1 km 左右)
个域网PAN
就是在个人工作的地方把个人使用的电子设备用无线技术连接起来的网络。
(无线耳机,蓝牙设备)
按拓扑结构分类:
总线型网络
优点:建网容易,增减结点方便。节省线路。
缺点:1.重负载通信效率不高。2.一处故障,全线瘫痪。
星型网络
中央设备:早期计算机,中期集线器,后期路由器/交换机。
优点:便于网络集中控制和管理。
缺点:成本高,中央设备对故障敏感。
网状型网络
优点:可靠性高
缺点:控制复杂、线路成本高
商家声称的的250G硬盘买来在电脑上显示的居然是236G。不是商家作假,而是因为两个数据单位不同。
现实中的测量单位,1k = 1000b,计算机中资源单位,1K = 1024 Bit ,这是视角问题。
速率单位和比特单位的视角同理。
(注意区分M、K等单位后 B和b 的大小写)
比特:计算机的数据量单位,信息学的信息量单位。
Byte,bit , 1KB = 2^10B
速率:计网主机在数字信道上,传送比特的速率单位,也称比特率、数据率。
bit/s, bps , b/s , 1kb/s = 1000 b/s
示例题:
在模拟信号系统:不同频率成分占据的频率范围
单位:Hz (kHz , MHz , GHz)
在计网中:网络带宽,表示单位时间内从网络一点到另一点所能通过的“最高数据率”
单位:b/s (kb/s , Mb/s , Gb/s , Tb/s)
表示网络通信线路传送数据的能力
两者有密切联系。一条通信线路的频带宽度越宽,传输效率的最高数据率越高。
朋友问:你家出口网速有多大,回答是200M(兆) ,这里省略了比特每秒。
正确描述:完整速率为200M/bs
速率和带宽的区分:
speed 速率:指硬件的物理角度上,这个网络线路最大能承载的 bit/s 值。
bandwidth 带宽:指逻辑上,这个线路在一秒里面能接收到多少bit的数据。
一个管子,速率是数据往外跑的速度。
带宽是有多少数据往外跑。
所以如果有两个通信线路,每个线路速率是 X,那么可以说整个线路的带宽是2X。
而且存在带宽小于速率的情况:数据有效传输信息仅仅占所有数据的5/4,那同一条线路,带宽在数值上是速率的4/5。
这里的有效指真正要发送和接收的数据。
吞吐量:在单位时间内通过某个网络(信道、接口)的数据量。
经常用于描述测量网络的情况,也就是有多少数据量能通过网络。
吞吐量受网络带宽和额定速率限制。
带宽1 Gb/s的以太网,代表其额定速率是1 Gb/s,这个数值也是该以太网的吞吐量的绝对上限值。因此,对于带宽1 Gb/s的以太网,可能实际吞吐量只有 700 Mb/s,甚至更低。
注意:吞吐量还可以用每秒传送的字节数或帧数表示
时延 : 数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。
网络时延由几部分组成:
主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
计算:分组长度(b)/发送速率(b/s)
电磁波在信道中传播一定的距离需要花费的时间。
计算:信道长度(m)/电磁波传播速率(m/s)
主机或路由器在收到分组时要花费一定时间进行处理
分组在进过网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。
有时会把排队时延看成处理时延 一部分
总时延 = 发送时延 + 传播时延 + 处理时延 (处理时延 + 排队时延)
注意点
构建设备时,不同设备和传输介质的传送速率的速度应该近似。否则速度快的会制约于速度慢的部分。
主机发送速率受网卡发送速率和信道带宽、接口速率影响,其中速率最慢的部分会决定整个发送速率。
电磁波在自由空间和网络传输介质中的传播速度是不一样的。
介质 | 速度 |
---|---|
自由空间 | 3.0 * 10^8 |
铜线 | 2.3 * 10^8 |
光纤 | 2.0 * 10^8 |
当处理时延忽略不计时,发送时延 和 传播时延 谁占主导,要具体情况具体分析。
例如同样传播距离和带宽,数据块长度不同会导致决定因素的不同。
真题
时延带宽积 = 传播时延 * 带宽
类似圆柱体体积,物理意义上的单位比特数量
互联网上的信息不仅仅单方向传输而是双向交互的。因此,我们有时很需要知道双向交互一次所需的时间。
RTT: Round Trip Time
利用率有信道利用率和网络利用率两种。
1.利用率并非越高越好
根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加,因此利用率并非越高越好
2.利用率不能太低
这会浪费通信资源
因此要使用一些机制动态调整网络通信量。
丢包率:分组的丢失率, 指在一定时间范围内,传输过程中丢失的分组数量与总分组数量的比率 。
具体分为:接口丢包率,节点丢包率,链路丢包率,路径丢包率,网络丢包率等。
丢包的两种情况:
丢包率反应网络拥堵情况 :
无拥塞时丢包率为0
轻度拥塞,1%~4%
严重拥塞,5%~15%
OSI体系结构:七层,国际标准化组织设计,是法律上的国际标准
结构从下往上是物理层,数据链路层,网络层,运输层,会话层,表示层,应用层
会话层:解决进程之间进行会话的问题
表示层:解决通信双方交换信息的表示问题
TCP/IP体系结构:因特网结构,事实上的国际标准(市场决定)。
从下往上依次是网络接口层,网际层,运输层,应用层
对于TCP/IP:
网际层:IP是TCP/IP体系结构是网际层的核心协议。
这个协议可以将不同的网络接口进行互连,并向其上的TCP协议和UDP协议提供网络互连服务 。
IP中文意思叫网际,所以网络层又称网际层。
运输层:TCP和UDP是TCP/IP体系结构是运输层 的两个重要协议。
TCP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议提供可靠传输的服务;UDP协议在……可向应用层的相关协议提供不可靠传输服务。
应用层:TCP/IP体系结构的应用层包含了大量的应用层协议HTTP-SMTP DNS-RTP
路由器和主机都带有TCP/IP协议族,路由器一般只包括网络接口层和网际层
网络接口层没什么具体内容,目的是为了连接世界上各种不同接口。
这也意味着该体系结构本质上只有上面三层,
TCP和IP两个协议的承上启下重要作用说明了为什么该结构叫TCP/IP协议。
(网际层实际上还有一个ICMP协议,该协议封装后的数据,还需要通过IP协议的服务再封装,才能发送)
(网络接口层还有一个PPP协议,直接为IP协议服务)
五层协议原理体系结构,适用于教学,从下到上依次是物理层,数据链路层,网络层,运输层,应用层
TCP/IP协议的网络接口层为了灵活性没有什么具体内容,不方便学习。结合OSI和TCP/IP诞生了原理体系结构,将网络接口层换成了数据链路层和物理层。
物理层 :使用何种信号来传输比特的问题
采用什么传输媒体(介质)
采用什么物理接口
使用什么信号
第一,严格来说,传输媒体并不属于物理层
计算机传输的信号,并不是图示的方波信号
数据链路层 :分组在一个网络上传输的问题
如何标识网络中的各个主机-例如IP地址(前三段标识网络,最后一个数标识主机)
这样也能知道目的地址和发送地址
如何从信号所表示的一连串比特流中区分出地址和数据
如何协调各主机征用总线(两个异向信号碰撞)
总线型现已淘汰,代替的是交换式以太网:以太网交换机将多台主机互联。
网络层:分组在多个网络上传输的问题
192.168.1 这前三个数据就是一个共同网络编址
运输层:进程之间基于网络的通信问题
如何解决进程之间基于网络的通信问题
出现传输错误,如何处理
应用层:通过应用进程的交互来实现特定网络应用的问题
制定应用层协议,按之编写app,通过应用进程间的交互完成特定网络应用。
? 例子:通过计算机访问一个网站
? 1:应用层按HTTP协议的规定构建一个HTTP请求报文,然后交付给运输层处理
? 2:运输层给HTTP请求报文添加一个TCP首部,使之成为TCP报文段,然后 将TCP报文段 交付给网络层处理
TCP报文段的首部格式作用是区分应用进程以及实现可靠传输
? 3:网络层给TCP报文段添加一个IP首部,使之成为IP数据报,然后交付给数据链路层
IP数据报的首部格式作用是使IP数据报可以在互联网传输,也就是被路由器转发
? 4:数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧,然后交付给物理层
- 该首部的作用主要是为了让帧能够在一段链路上或一个网络上传输,能够被相应的目的主机接收
- 该尾部的作用是让目的主机检查所接收到的帧是否有误码
? 5:物理层先将帧看做是比特流,会在该比特流前面添加前导码,然后物理层将比特流变换成相应的信号发送给传输媒体,
这里的网络N1假设是以太网
前导码的作用是为了让目的主机做好接收帧的准备
? 6:信号通过传输媒体到达路由器
? 7:路由器会把这些反向操作一遍再转换成比特流给Web服务器,Web服务器接收到后经过层层筛选接收HTTP请求报文
路由器中:
物理层将信号变为比特流,然后去掉前导码后,将其交付给数据链路层
数据链路层将帧的首部和尾部去掉后,将其交付给网络层,这实际交付的是IP数据报
网络层解析IP数据报的首部,从中提取目的网络地址
提取目的网络地址后查找自身路由表。确定转发端口, 以便进行转发
网络层将IP数据报交付给数据链路层
数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧
数据链路层将帧交付给物理层
物理层先将帧看成比特流,这里的网络N2假设是以太网,所以物理层还会给该比特流前面添加前导码
物理层将装有前导码的比特流变换成相应的信号发送给传输媒体,信号通过传输媒体到达Web服务器
?8: 然后Web服务器给主机发送HTTP响应报文啊吧啊吧,方法和请求一样
注意:报文和帧都是通过底层内存的固定排布,来让计算机理解数据哪一部分对应的东西。
注意报文上的位
定义:控制两个对等实体进行逻辑通信的规则的集合
协议三要素:语法,语义,同步
应用层使用应用层协议(例如HTTP, SMTP)进行通信,运输层应用运输层协议(例如TCP, UDP)进行通信,依次类推
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务、
要实现本层协议,还需要使用下面一层所提供的服务
协议是水平的,服务是垂直的
实体看的见相邻下层所提供的服务,但并不知道实现该服务的具体协议,也就是说,下面的协议对上面的实体是透明的【就好比我们可以享受 手机提供的服务,但不需要弄懂手机运行的原理】
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令
服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型,
如数据链路层的服务访问点为帧的“类型”字段;
网络层的服务访问点为IP数据包首部中的“协议字段”;
运输层的服务访问点为“端口号”。
协议数据单元-PDU:对等层次之间传送的数据包称为该层的协议数据单元,
例如物理层的数据包就是比特流,以此类推有帧,分组/IP数据报
服务数据单元-SDU:同一系统内,层与层之间交换到数据包称为服务数据单元。
多个SDU可以合成为一个PDU;一个SDU也可划分为几个PDU。