计算机网络:自顶向下方法--1.计算机和因特网
2019-07-14 本文已影响0人
做一只快乐的码农1990
计算机网络:自顶向下方法
原博客地址:http://www.code-farmer.tech/archives/1563089944190
GitHub地址:https://github.com/You-Hmily/note-blog/blob/master/docs/computer-science/Computer-Networking-A-Top-Down-Approach/Chapter01-%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%92%8C%E5%9B%A0%E7%89%B9%E7%BD%91.md
第一章:计算机和因特网
1、什么是因特网
1、因特网具体构成
不管是桌面PC、手机、Linux工作站等等,这些所有设备都称为主机或端系统。端系统通过通信链路(communication link)和分组交换机(packet switch)连接到一起,链路的传输速率以比特/秒度量。
当一台端系统要向另一台端系统发送数据时,发送端系统将数据分段,并未每段加上首部字节,由此形成的信息包被称为分组。
分组交换机有最著名的两种类型:路由器(router)和链路层交换机(link-layer switch)。这两种类型的交换机朝着最终目的地转发分钟。从发送端系统到接收端系统,一个分组所经历的一系列通信链路和分组交换机称为通过该网络的路径(route或path)。
端系统通过因特网服务商(Internet Service Provider,ISP)接入因特网。每个ISP 是一个由多个分组交换机和多段通信链路组成的网络。
端系统、分组交换机和其他因特网部件都要运行一系列协议(protocol)。这些协议控制因特网中信息的接收和发送。TCP(Transmission Control Protocol,传输控制协议)和IP(Internet Protocol,网际协议)是因特网中两个最重要的协议。IP协议定义了在路由器和端系统之间发送和接收的分组格式。因特网的主要协议统称为TCP/IP。
因特网标准(Internet standard)由因特网工程任务组(Internet Engineering Task Force,IETF)研发。IETF的标准文档称为请求评论(Request For Comment,RFC)。
2、什么是协议
1、类比人类活动的协议
人类的活动无时无刻不在执行协议。考虑当你想要向某人询问时间将要怎样做。如下图所示
network 1-1.png
2、网络协议
在因特网中,凡是涉及两个或者多个通信实体的所有活动都受协议的制约。一个协议定义了两个或多个通信实体之间的报文格式和次序,以及报文发送和/或接收一条报文或其他时间所采取的动作。因特网广泛的使用了协议。不同的协议用于完成不同的通信任务。
2、网络边缘
通常把与因特网相连的计算机和其他设备称为端系统。因特网的端系统包括了桌面计算机、服务器和移动计算机。端系统也称为主机,因为它们容纳应用程序。主机=端系统,而主机有被分为:客户(client)和服务器(server)。
1、接入网--指将端系统连接到其边缘路由器(edge router)的物理链路。
家庭接入:DSL、电缆、FTTH、拨号和卫星
企业接入:以太网和WiFi
广域无线接入:3G和LTE
2、物理媒介
双绞铜线---最便宜并且使用最为普遍的引导型传输媒体是双绞铜线。
同轴电缆---同轴电缆由两个铜导体组成,但是这两个导体是同心的而不是并行的。
光纤---是一种细而柔软的、能够导引光脉冲的媒体,每个脉冲表示一个比特。
陆地无线电信道---承载电磁波频谱中的信号
卫星无线电信道---一颗通信卫星连接两个或者多个位于地球的微波发射方/接收方,它们被称为地面站。该卫星在一个频段上接收传输,使用一个转发器再生信号,并在另一个频率上传输信号。通信中常使用两类卫星:同步卫星、近地轨道卫星。
3、网络核心
在网络应用中,端系统彼此交换报文(message).
为了从源端系统向目的端系统发送一个报文,源将长报文划分为较小的数据块,称之为分组(packet)。在源和目的之间,每个分组都通过通信链路 和分组交换机传送。
1、分组交换
存储转发传输
多数分组交换机在链路的输入端使用存储转发传输(store-and-forward transmission)机制。转发存储机制是指在交换机能够开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组。
排队时延和分组丢失
每个分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机具有一个输出存储(output buffer)(也称为输出队列 output queue),它用于存储路由器准备发往那条链路的分组。
转发表和路由选择协议
在因特网中,每个端系统具有一个称为IP地址的地址。当源主机要向目的端系统发送一个分组时,源在该分组的首部包含了目的地的IP地址。当一个分组到达网络中的路由器时,路由器检查该分组的目的地址的一部分,并向一台相邻路由器转发该分组。每台路由器具有一个转发表(forwarding table),用于将目的地址映射成为输出链路。当某分组到达一台路由器时,路由器检查该地址,并用这个目的地址搜索其转发表,以发现适当的出链路。路由器则将分组导向该出链路。
2、电路交换
通过网络链路和交换机移动数据有两种基本方法:电路交换(circuit switching)和分组交换(packet switching)。
在电路交换网络中,在端系统间通话期间,预留了端系统间通信沿路径所需要的资源(缓存、链路传输速率)。在分组交换网络中,这些资源则不是预留的;会话的报文按需使用这些资源,其后果可能是不得不等待接入通信线路。
1、电路交换网络中的复用
链路中的电路是通过频分复用(Frequency-Division Multiolexing,FDM)或分时复用(Time-Division Multiplexing,TDM)来实现的。
FDM:链路的频谱由跨越链路创建的所有连接所共享,在连接期间链路为每条连接专用一个频段。
TDM:时间被划分为固定区间的帧,并且每帧又被划分为固定数量的时隙。当网络跨越一条链路创建一条连接时,网络在每个帧中为该连接指定一个时隙。这些时隙专门由该连接单独使用,一个时隙可用于传输该连接的数据。
2、分组交换与电路交换的对比
分组交换的缺点:分组交换不适合实时服务,因为它的端到端时延是可变的和不可预测的。
分组交换的优点:它提供了比电路交换更好的带宽共享;它比电路交换更简单,更有效,实现成本更低。
3、网络的网络
4、分组交换网中的时延、丢包和吞吐量
1、分组交换网中的时延概述
分组从一台主机出发,通过一系列路由器传输,在另一台主机中结束它的历程。当分组在沿途的每个结点将会经受不同类型的时延。
时延的类型
(1)、处理时延---检查首部和决定该分组导向何处所需要的时间是处理时延的一部分。其他因素有检查比特级别的差错所需要的时间。
(2)、排队时延---在队列中,当分组在链路上等待传输时,它经受排队时延。
(3)、传输时延---用L比特表示该分组的长度,用R bps表示链路传输速率,传输时延是 L/R。这是将分组的比特推向链路所需要的时间。
(4)、传播时延---从链路的起点到路由器B传播所需要的时间是传播时延。
(5)、传输时延和传播时延的比较
传输时延是路由器将分组推出所需要的时间,它是分组长度和链路传输速率的函数,而与两台路由器之间的距离无关。传播时延是一个比特从一台路由器向另一台路由器传播所需要的时间,它是两台路由器之间距离的函数,而与分组长度或链路传输速率无关。
2、排队时延和丢包
排队时延:
令a表示分组到达队列的平均速率(a的单位是分组/秒,即pkt/s),R是链路传输速率,分组由L比特组成。则比特到达队列的平均速率是La bps。比率La/R 被称为流量强度(traffic intensity),它在估计排队时延的范围方面经常起着重要的作用。如La/R>1,则比特到达队列的平均速率超过该队列传输出去的速率,此时排队时延会一直增加。因此设计系统时流量强度不能大于1。当流量强度小于等于1时,到达流量的性质影响排队时延。
丢包:
因为排队容量是有限的,当流量强度接近1,达到的分组将发现一个队列满了。由于没有地方存储这个分组,路由器将丢弃(drop)该分组,即该分组会丢失(lost)
3、端到端时延
从源到目的的总时延就是端到端时延。在每台路由器和源主机上的处理时延是dproc,每台路由器和源主机的输出速率是R bps,每条链路的传播时延是dprop。总加起来为d end-end=N(dproc+dtrans+dprop)。其中dtrans=L/R。
4、计算机网络中的吞吐量
计算机网络中必不可少的性能测度是端到端的吞吐量。
瞬时吞吐量(instantaneous throughput):就是指主机接收一个文件的瞬时速率。
平均吞吐量(average throughput):如果该文件由F比特组成,主机接收到所有F比特用于T秒,则F/T bps 为文件传送的平均吞吐量。
5、协议层次及其服务模型
1、分层的体系结构
协议分层:
为了给网络协议的设计提供一个结构,网络设计者以分层(layer)的方式组织协议以及实现这些协议的网络硬件和软件。
每层都有不同的协议,各层所有协议被称为协议栈(protocol stack)。因特网的协议栈由5个层次组成:物理层、链路层、网络层、运输层和应用层。如下图所示:
network 1-2.png
(1)、应用层
应用层是网络应用程序及它们的应用层协议存留的地方。因特网的应用层包括许多协议,例如HTTP,SMTP,FTP。
(2)、运输层
因特网的运输层在应用程序端点之间传送应用层报文。在因特网中有两个协议,即TCP和UDP,利用其中的任一个都能运输应用层报文。
TCP:向它的应用程序提供了面向连接的服务。这种服务包括了应用层报文向目的地的确保传递和流量控制。TCP也将长报文划分为短报文,并提供拥塞控制机制,因此当网络拥塞时,源抑制其传输速率。
UDP:向它的应用程序提供无连接服务。这是一种不提供必要服务的服务,没有可靠性,没有流量控制,也没有拥塞控制。
(3)、网络层
因特网的运输层负责将成为数据报(datagram)的网络层分组从一台主机移动到另一台主机。
因特网的网络层包括著名的IP协议,该协议定义了在数据报中的各个字段以及端系统和路由器如何作用于这些字段。仅有一个IP协议,所有具有网络层的因特网组件必须运行IP协议。因特网的网络层也包括决定路由的路由选择协议,它使得数据报根据该路由从源传输到目的地。
(4)、链路层
因特网的网络层通过源和目的地之间的一系列路由器路由数据报。为了将分组从一个结点移动到路径上的下一个结点,网络层必须依靠该链路层的服务。特别是在每个结点,网络层将数据报下传给链路层,链路层沿着路劲将数据报传递给下一个结点。在下一个结点,链路层将数据报上传给网络层。
由链路层提供的服务取决于应用于该链路的特定链路层协议。
(5)、物理层
虽然链路层的任务是将整个帧从一个网络元素移动到邻近的网络元素,而物理层的任务是将该帧中的一个个比特从一个结点移动到下一个结点。
OSI模型:
国际标准化组织(ISO)提出计算机网络应组织为7层,称为开放系统互连(OSI)模型。
参考模型的七层是:应用层、表示层、会话层、运输层、网络层、数据链路层和物理层。
OSI比互联网分层多了两个层,即表示层和会话层。
表示层:作用是使通信的应用程序能够解释交换数据的含义。
会话层:提供了数据交换定界和同步功能,包括建立检查点和恢复方案的方法。
2、封装
network 1-3.png
上图说明了一个重要的概念:封装(encapsulation)。
在发送主机端,一个应用层报文(application-layer-message)被传送给传输层。
应用层报文和传输层首部信息一道构成了运输层报文段(transport-layer message)。
运输层报文段因此封装了应用层报文。
运输层则向网络层传递该报文段,网络层增加了如源和目的端系统地址等网络首部信息,产生了网络层数据报(newwork-layer message)。
该数据报接下来被传递给链路层,链路层增加它自己的链路层首部信息并创建链路层帧(link-layer frame)。
每一层,一个分组具有两种类型的字段:首部字段和有效载荷字段(payload field)。有效载荷通常是来自上一层的分组。
封装的过程能够比前面描述的更为复杂。