01计算机网络和因特网
目录
前言
计算机网络(Computer Network)将地理位置分散的、独立自主的计算机用通信链路连接,在通信协议和软件的控制下实现数据通信和资源共享的系统。
- 在这里的计算机是广义定义,即凡是具有CPU、存储并运行程序,进行数据交换和处理的设备均可视为计算机。(联网的设备)
- 被连接的设备–节点或结点
- 用以连接结点或节点–链路
- 因此,网络可抽象为用链路连接结点,或结点与链路的集合。
一、因特网简介
因特网是一种特定的计算机网络,体量庞大,连接数以十亿计的联网设备连接到因特网上。
1.因特网构成
成千上万的端系统end system通过通信链路communication link和分组交换机packet switch相连,端系统上的应用将数据封装成分组,发送给分组交换机,通过多个分组交换机转发forward,最终传送到接收端系统。
- 因特网上的分组交换机主要有路由器和链路层交换机两种
- 路径:由链路和分组交换机构成
- ISP:因特网服务提供商
- 协议:端系统、分组交换机都要运行一些列协议,以控制信息的发送和接收,如TCP/IP
- RFC:Request for comments,因特网标准文档
2.服务视角看因特网
从为应用程序提供服务的角度看,因特网是一个基础设施。
套接字接口:运行于端系统上的程序请求因特网基础设施向另一端程序交付数据的方式。
3.协议
通信双方为进行有效沟通而达成的有关约定。
通常有三要素:语法、语义、时序。
语法:数据的结构、顺序、格式;
语义:需完成的动作或做出的响应,该表达的含义或动作;
时序:时间顺序,各种动作先后顺序
二、网络边缘
端系统=主机:联网的计算机或其他设备,数据的源或宿
客户机和服务器:两种端系统。客户是服务的请求方,服务器是提供方
端系统:产生数据,发送数据,接收数据,存储数据,处理数据——网络的资源子网
网络的其他部分:负责传输数据——通信子网
1.接入网
接入网Access Network:将端系统直接连接到因特网的网络,该网络以路径上的第一台路由器router(边缘路由器)为边界
-
家庭接入(中小企业客户常用)
1)xDSL数字用户线
通常由本地电话公司提供,使用已有电话线,将电话线分为若干数字信道,在其上传输数字信号。
上行速率通常几兆,而下行速率通常十几兆或者几十兆
DSL是一个系列,定义了很多DSL标准,如ADSL,RADSL,HDSL,VDSL
2)电缆接入
通常由有线电视公司提供,使用已有同轴电缆或HFC(光纤同轴混合网)
上下行速率均达到数十兆bps
3)FTTH光纤到户
使用光纤直接连接家庭或中小企业
FTTH可以提供上千兆的速率,但现实远低于此。
4)电话线拨号上网
由本地电话公司提供,使用已有电话线。
线上传输模拟信号,端系统需进行模数转换(发送侧,调制)和数模转换(接收侧,解调)
下行速率至高56kbps,速率太低难以忍受。 -
企业接入(局域网)
1)以太网——速率高达10Gbps,主流桌面接入100-1000Mbps
2)WLAN——即WIFI,基于以太网,主要满足无线移动接入。 -
广域无线接入
由移动电话公司提供。
G=Generation
G可能有以下几个含义
1G=1Gbps=1000Mbps
1G=1GHz=1000MHz
1G=1GB=1Gbyte=1024Mbyte=102410241024*8bit
2.网络介质
数据Data最终需变成信号Signal,在物理介质media(媒体)上传输
三、网络核心
1.分组交换
发送端系统将数据以分组(包)为单位送到分组交换网络,分组交换网络以包为单位通过多个分组交换机接力转发,最终将数据包交付到接收端系统。这种数据交换方案称为分组交换。分组交换采用一种存储转发传输的机制完成上述任务。
1)存储转发传输(store and forward transmission)
端系统将数据包传送给分组交换机的入端口,分组交换机收到整个之后,存储,从适当的出端口沿着出端口相连接的链路转发出去。从源到目的地的路径上的每个分组交换机都按同样方法接收、存储、转发,直至数据包到达目的地。
数据传输率(数据率,传输速率,比特率)
意指:节点(分组交换机或端系统)单位时间内发送/接收的数据量
单位:比特每秒,bit per second, bps
兆比特每秒Mbps,吉比特每秒Gbps...
1k=1000, 1M=1000k, 1G=1000M, 1T=1000G.(通信,计算传输量时)
1k=1024, 1M=1024k, 1G=1024M, 1T=1024G. (机内,计算容量时)
信道(链路)容量
意指:信道或链路支持的最大数据率
2)排队时延和丢包
分组交换机的输出端需要设置缓存(亦称输出队列),用于暂存因出端繁忙而一时不能发出的数据。在此造成的时延称为排队时延。缓冲区满数据包会丢失,导致丢包。
3)转发表和路由选择协议
分组交换机(路由器和链路层交换机)需创建和维护一张转发表,查表决定到来的数据包应发往哪个出端口。
转发表的生成和更新基于路由选择协议(网络层),链路层的转发表则基于链路层转发协议。
网络层(后述)主要基于网络层地址,如IP地址,来寻址;链路层则基于链路层地址如MAC地址来寻址。
2.电路交换
电路交换是通过交换机和链路将数据从发送端系统转移到接收端系统的另一种基本方法。
电路交换以电话网络为基本模型。
当发送端系统需要与接收端系统交换数据时,电路交换网络将为它们预留通信资源(路径上的“电路”,实际可能包含缓存、通信线路或信道),以便端系统传输数据。
这种预留实际上需要在开始数据传输之前就完成,这个过程常称为建立连接。然后开始传输数据。数据传输完成后还要释放这些资源,释放资源的过程常称为拆除连接(或释放连接)
与分组交换完全不一样,分组交换没有预留资源的机制,需要传输的数据只是交给第一个分组交换机,之后,网络是否有足够资源保证数据完美到达,是不确定的。
因此,电路交换这种方式属于面向连接的,而分组交换这种方式属于无连接的。
面向连接的这种服务比较可靠,而无连接的服务不可靠。
注意,分组交换网络上可以建立逻辑的连接(电路交换网络提供一种物理的连接),从而提供可靠的服务。这虽然看起来是矛盾的,但实际不矛盾。
1)电路交换网络中的复用
频分复用
物理链路可以通过的信号频率的宽度(频带宽度=最高频率-最低频率),称为频谱的带宽,单位为赫兹。
数据传输率也常被称为带宽。当你读到带宽这个词,注意上下文,以鉴别其含义。
发送端将多路信号调制到不同的频率,多种不同频率的信号在同一条物理链路/线路上传输,接收端将多路信号分离,解调出各路信号,这种复用方式被称为频分多路复用, 常简称为频分复用FDM(Frequency Division Multiplex)。
时分复用
时分复用则是另一种方式,时间被划分为固定期间的帧,每个帧则又被划分为固定数量的时隙,当网络跨越一条链路创建一个连接时,网络在每个帧中为该连接指定一个时隙,该时隙为该连接专享。
静默期
电路交换(频分和时分)存在静默期,意即,分配给某个连接的资源可能浪费掉,因为此时该连接可能没有需要传输的数据。
统计时分复用可以解决此问题。自行延伸阅读。
2)分组交换与电路交换的对比
分组交换批评者:分组交换不适合实时业务,因分组时延可变而不可预测。
分组交换支持者:分组交换提供更好的带宽共享;比电路交换更简单、更有效、实现成本更低。
实际情况:
两者都广泛存在,但在数据通信领域,分组交换呈现出更好的前景。即使是传统电话网络,其核心网络也在往分组交换转移。具体地,当今电信运营商的核心网络也大量使用IP网络这一典型的分组交换网络。
当今因特网上运行着大量的实时业务(音视频业务),如抖音和其它各种视频分享应用,事实证明分组交换可以胜任实时业务。
3.网络的网络
网络可以相互连接,构成更大的网络,称为网络互联(Network Interconnection, internet),网络的网络。
因特网(the Internet)是一个具体的网络的网络(internet)。
提供连接的服务商:ISP=Internet Service Provider
分一级ISP,区域ISP,接入ISP等。
内容提供商:ICP
因特网的网络结构是一个层次式网状结构
四、分组交换网中的时延、丢包和吞吐量
1.时延概述
时延即时间的延迟,开始发送到接收完成之间的时间长度。
分类-四种时延
1 处理时延dproc
收到分组后,检查首部,检查差错,查转发表等,造成时延,常为微秒级。
2 排队时延dque
分组在出端链路排队等待的时延。取决于流量,在实际中常为毫秒或微秒级。
3 传输时延dtran
分组逐比特被推送出本机的时延。若传输率为R,分组长度为L,则传输时延为L/R,在实际中常为毫秒或微秒级。
4 传播时延dprop
信号在链路上传播的时延。若链路长度为d米,信号传播速率s一般为2-3亿米/秒,传播时延=d/s,广域网中为毫秒量级。
每节点总时延=dproc+dque+dtran+dprop
注意区别传输时延和传播时延
注意:在此,R为链路带宽bps,L为分组长度bits,a为平均分组到达率。
La/R --> 0:平均排队时延很小;
La/R --> 1:平均排队时延大;
La/R > 1:到达比能处理的多,平均时延无穷大。
2.排队时延与丢包
- 队列(缓存)容量有限
- 到达已满队列的分组将会被丢弃(丢失)
- 丢失的分组可能会被上一节点、源端系统重传,或不会被重传
3.端到端时延
从源到目的地路径上各段链路及各个节点中产生的总时延。
若有i个节点,每个节点有四种时延构成该节点的节点时延;
所有i个节点的节点时延之和即为该端到端路径的总时延;
TCP/IP协议内置的tracert程序可用于测度端到端时延。
traceroute程序:提供时延测量,测量从源到目的地整条路径上的各段时延
- 发送三个分组,到达路径上的路由器i
- 由路由器i返回一个分组给源
- 发送者计算传输和回复之间的时间间隔
4.吞吐量
吞吐量(bit):一定时间内通过数据的量。跟时间相关则用吞吐率表示
瞬时吞吐量:给定时间点的值
平均吞吐量:一段较长时间内的平均值
最大吞吐量
实际吞吐量
一条链路,一个节点,一个网络,一条路径均有自己的吞吐量
端到端吞吐量
瓶颈吞吐量
瓶颈链路:端到端链路上,成为端到端平均吞吐率上限那段链路
五、协议分层及服务模型
1.分层的体系结构
分层:将复杂系统需要实现的多种功能由相互协作的多个子系统实现。
协议分层:将网络通信协议分成多个层次协议,各层实现部分功能。
分层的好处:
- 结构清晰,易于理清关系
- 模块化,易于实现、维护、更新
- 一层的改变可不影响其他层
分层的缺点:
- 同样的功能在多层重复,某层的实现可能需要其他层的信息,从而使各层独立难以实现。
TCP/IP 分五层
应用层application 支持网络应用——FTP,SMTP,HTTP
运输层transport 时延进程间数据转移——TCP,UDP
网络层network 选择数据从源到目的地的路径——IP,路由协议
数据链路层link 在相邻网络组成单元之间转移数据——Ethernet,802.111(WiFi),PPP
物理层physical 实现比特的传输,on the wire
OSI 模型分七层
除上面的五层外还有以下两层:
表示层presentation 应用层借以解释数据的含义,如,加密,压缩,特定机器的约定
会话层session 同步,检查点,数据交换的恢复
在TCP/IP中,以上两层的功能可由应用层实现
多层协议的整体称为协议栈
2.封装
封装:各层将上层数据加上本层首部,交予下层,以便传输到对方。
各层封装后的数据名:
应用层:报文
运输层:(报文)段,TCP协议中称为TCP报文段,UDP协议中称UDP数据报
网络层:分组,IP协议中称IP数据报
数据链路层:帧
OSI模型中,各层的数据单位统称为协议数据单元UDP
如:应用层协议数据单元APDU,运输层协议数据单元TPDU等。
OSI相关术语:
层,对等层,分层
协议,对等层协议
层间接口
服务,服务用户,服务提供者
SAP:服务访问点
服务原语
水平通信,通过协议
垂直通信,通过接口
PDU:协议数据单元
协议要素: 语法、语义和时序
六、网络安全问题
因特网设计时,未在意安全问题
最初愿景:一帮互信互助的用户连在一张透明的网络上