资讯专栏INFORMATION COLUMN

计算机网络自顶向下方法(一)——计算机网络和因特网

curlyCheng / 3811人阅读

摘要:参考课程中科大郑老师计算机网络参考书籍计算机网络自顶向下方法原书第七版什么是因特网是一个世界范围的计算机网络,即它是一个互联了遍及全世界数计算设备的网络。

不要成为理想的巨人,行动的矮子

写在前面

为了更好地学习和掌握《计算机网络》这门课程,打算把自己的学习笔记转化为博客,以便于更好地复习,也便于大家一起学习与交流。

参考课程:中科大-郑老师《计算机网络》
参考书籍:《计算机网络自顶向下方法》原书第七版

什么是Internet?

因特网是一个世界范围的计算机网络,即它是一个互联了遍及全世界数计算设备的网络。

具体构成及描述

计算设备 : 主机(端系统)、运行的网络应用程序

节点

  • 主机及其上运行的应用程序
  • 路由器、交换机等网络交换设备

例如:手机、平板、电视、游戏机… 这一些设备都称为主机 ,也可以叫做端系统

: 通信链路

  • 接入网链路:主机连接到互联网的链路
  • 主干链路:路由器间的链路

端系统通过通信链路(communication link)分组交换机(packet switch)连接到一起。 链路的传输速率以比特/秒(bit/s, bps)度量。

通信链路

  • 光纤、同轴电缆、无线电、卫星
  • 传输速率 = 带宽(bps)

分组交换机 : 转发分组(packets)

  • 路由器和交换机

端系统通过**因特网服务提供商(Internet Service Provider, ISP)**接入因特网,例如:本地住宅区ISP,公司ISP,大学ISP…

协议 :控制发送、接收消息, 例如 TCP、IP、HTTP、FTP、PPP都是协议

  • 定义:协议(protocol)定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和/或接收一条报文或其他时间所采取的动作。
  • 网络协议
    • 类似人的协议 : “几点了?”,“我有个问题?”, “你好”(若对面回应,则说明发送成功)
    • 机器之间的协议而非人与人之间的协议
    • Internet中所有的通信行为都受协议制约

什么是Internet: 从服务角度

使用通信设施进行通信的分布式应用:WEB、Voip、email、分布式游戏、电子商务、社交网络…

通信基础设施为apps提供编程接口(通信服务)

  • 将发送和接收数据的apps与互联网连接起来
  • 为app应用提供服务选择,类似于邮政服务
    • 无连接不可靠服务
    • 面向连接的可靠服务

网络边缘

端系统(主机):

  • 运行应用程序
  • 如Web、email
  • 在“网络的边缘”

客户/服务器模式

  • 客户端向服务器请求、接收服务
  • 如Web浏览器/服务器:email客户端/服务器

**对等(peer-peer)**模式

  • 很少(甚至没有)专门的服务器
  • 如Gnutella、KnZaA、Emule

网络边缘:采用网络设施的面向连接服务

目标:在端系统之间传输数据

  • 握手:在数据传输之前做好准备
    • 类似人类协议中:你好、你好
    • 两个通信主机之间为连接建立状态

TCP-传输控制协议(Transmission Control Protocol):TCP向它的应用程序提供了面向连接的服务。这种服务包括了应用层报文向目的地的确保传递和流量控制(即发送方/接收方速率匹配)。TCP也将长报文划分为短报文,并提供无连接服务,因此当网络拥塞时,源抑制其传输速率。

  • Internet上面向连接的服务
  • 可靠地、按顺序地传送数据
    • 确认和重传
  • 流量控制
    • 发送方不会淹没接收方
  • 拥塞控制
    • 当网络拥塞时,发送方降低发送速率

网络边缘:采用基础设施的无连接服务

目标:在端系统之间传输数据

  • 无连接服务

UDP-用户数据报协议(User Datagram Protocol): UDP协议向它的应用程序提供无连接服务。这是一种不提供不必要服务的服务,没有可靠性,没有流量控制,也没有拥塞控制。

  • 无连接
  • 不可靠数据传输
  • 无流量控制
  • 无拥塞控制

使用TCP的应用:HTTP(Web)、FTP(文件传送)、Telnet(远程登录)、SMTP(email)

使用UDP的应用:流媒体、远程会议、DNS、Internet电话

网络核心

网络核心:路由器的网状结构
基本问题:数据怎么通过网络进行传输?

  • 电路交换:为每个呼叫预留一条专有电路:如电话网
  • 分组交换:
    • 将要传送的数据分为一个个单位:分组
    • 将分组从一个路由器传到响铃路由器(hop), 一段段最终从源端传到目标端
    • 每段:采用链路的最大传输能力(带宽)

网络核心:电路交换

在电路交换网络中,在端系统间通信会话期间,预留了端系统间沿路径通信所需要的资源(缓存,链路传输速率)。在分组交换网络中,这些资源则不是预留的。

端到端的资源被分配给源端到目标端的呼叫(call)

如上图中, 每段链路有4条线路:

  • 该呼叫采用了上面链路的第2个线路,右边链路的第1个线路(piece)
  • 独享资源:不同享
    • 每个呼叫一旦建立起来就能够保证性能
  • 如果呼叫没有数据发送,被分配的资源就会被浪费(no sharing)
  • 通常被传统电话网络采用

如上图,每台主机(例如PC和工作站)都与一台交换机直接相连,当两台主机要通信时,该网络在两台主机之间创建一条专用的端到端连接(end-to-end connection)。因此,主机A为了向主机B发送报文,网络必须在两条链路的每条上先预留一条电路。

为呼叫预留端-端资源

  • 链路带宽、交换能力
  • 专用资源:不共享
  • 保证性能
  • 要求建立呼叫链接

电路交换网络中的复用

网络资源(如带宽)被分成片

  • 为呼叫分配片

  • 如果某个呼叫没有数据,则其资源片处于空闲状态(不共享)

  • 将带宽分成片

    • 频分(Frequency-division multiplexing, FDM)
    • 时分(Time-division multiplexing, TDM)
    • 波分(Wave-division multiplexing)

电路交换:FDM与TDM

计算举例

电路交换不适合计算机之间的通信

  • 连接建立时间长
  • 计算机之间的通信有突发性,如果使用线路交换,则浪费的片较多
    • 即使这个呼叫没有数据传递,其所占据的片也不能够被别的呼叫使用

网络核心:分组交换

在各种网络应用中,端系统彼此交换报文(message)

为了从源端系统向目的端系统发送一个报文,源将长报文划分为较小的数据块,称之为分组(packet)

以分组为单位存储-转发方式

  • 网络带宽资源不再分为一个个片,传输时使用全部带宽
  • 主机之间传输的数据被分为一个个分组

资源共享,按需使用:

  • 存储-转发:分组每次移动一跳(hop)
    • 在转发之前,节点必须收到整个分组
    • 延迟比线路交换要大
    • 排队时间

分组交换:存储-转发

被传输到下一个链路之前,整个分组必须到达路由器:存储-转发

一个速率为R bps的链路,一个长度为L bits的分组的存储转发延时:L/R s

考虑一般的情况:通过由N条速率均为R的链路组成的路径(所以,在源和目的地之间有N-1台路由器),从源到目的地发送一个分组,那么端到端的时延是: d t e x t 端 到 端 = N L R d_text{端到端} = N/frac{L}{R} dtext=NRL

Example

L = 7.5 Mbits R = 1.5 Mbps
3次存储转发的延时 = 15 s

分组交换:排队延迟和丢失

排队和延迟

  • 如果到达速率 > 链路的输出速率
    • 分组将会排队,等待传输
    • 如果路由器的缓存用完了,分组将会被抛弃

数据报网络和虚电路网络

分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分成:
数据报网络虚电路网络

数据报网络

  • 分组的目的地址决定下一跳
  • 在不同的阶段,路由可以改变
  • 类似:问路

数据报(datagram)的工作原理

  • 在通信之前,无须建立起一个连接,有数据就传输
  • 每一个分组都独立路由(路径不一样,可能会失序)
  • 路由器根据分组的地址进行路由

虚电路网络

  • 每个分组都带标签(虚电路标识VCID), 标签决定下一跳
  • 在呼叫建立时决定路径,在整个呼叫中路径保存不变
  • 路由器维持每个呼叫的状态信息

分组交换和电路交换的对比

同样的网络资源,分组交换允许更多用户使用网络!

Example:

假设多个用户共享一条1Mbps链路,再假定每个用户活跃周期是变化的,某用户时而100kbps恒定速率产生数据,时而静止——这时用户不产生数据,假设该用户仅有10%时间活跃。
对于电路交换,能支持10(=1Mbps/100kbps)个并发的用户。
对于
分组交换
,假如有35个用户,有>=10个用户活动的概率为0.0004
计算公式: 1 − ∑ n = 0 9 ( 35 a ) p n ( 1 − p ) 35 − n 1 - /sum/limits_{n = 0}^9 /begin{pmatrix} 35// a/end{pmatrix} p^n(1-p)^{35-n} 1n=09(35a)pn(1p)35n

分组交换是“突发数据的胜利者”

  • 适合于突发式数据传输
    • 资源共享
    • 简单,不必建立呼叫
  • 过度使用会造成网络拥塞:分组延时和丢失
    • 对可靠地数据传输需要协议来约束:拥塞控制
  • 怎样提供类似电路交换的服务
    • 保证音频/视频应用需要的带宽

接入网和物理媒体

Q:怎样将端系统和边缘路由器连接?

  • 住宅接入网络
  • 单位接入网络(学校、公司)
  • 无线接入网络

家庭接入:DSL、电缆、FTTH、拨号和卫星
宽带住在接入有两种最流行的类型:数字用户线(Digital Subscriber Line, DSL)电缆。住宅通常从提供本地电话接入的本地电话公司处获得DSL因特网接入。

modem

  • 将上网数据调制加载音频信号上,在电话线上传输,在局端将其中的数据解调出来;反之亦然。
    • 调频
    • 调幅
    • 调相位
    • 综合调制
  • 拨号调制解调器
    • 56kbps的速率直接接入路由器(通常更低)
    • 不能同时上网和打电话:不能总是在线

DSL:

  • 采用现存的到交换局DSLAM的电话线
  • DSL线路上的数据被传到互联网
  • DSL线路上的语音被传到电话网
  • < 2.5 Mbps上行传输速率(typically < 1 Mbps)
  • < 24 Mbps下行传输速率(typically < 10 Mbps)

线缆网络:

有线电视信号线缆双向改造
FDM: 在不同频段传输不同信道的数据,数字电视和上网数据(上下行)

  • HFC: hybrid fiber coax (混合光纤同轴系统)
  • 非对称: 最高30Mbps的下行传输速率, 2 Mbps 上行传输
    速率
  • 线缆和光纤网络将个家庭用户接入到ISP 路由器
  • 各用户共享到线缆头端的接入网络
    • 与DSL不同, DSL每个用户一个专用线路到CO(central
      office)

企业接入网络(Ethernet)
以太网(Ethernet)是目前为止,公司、大学和家庭网络中最为流行的接入技术。

  • 经常被企业或者大学等机构采用
    • 10Mbps, 100Mbps, 1Gbps, 10Gbps传输率
    • 现在,端系统经常直接接到以太网络交换机上

无线接入网络

  • 各无线端系统共享无线接入网络(端系统到无线路由器)
    • 通过基站或者叫接入点

物理媒体

对于每个发射器-接收器对,通过跨越一种**物理媒体(physical medium)**传播电磁波或光脉冲来发送该比特。

  • Bit: 在发送-接受对间传播
  • 物理链路:连接每个发送-接收对之间的物理媒体
  • 引导型媒体:
    • 信号沿着固体媒介被导引:同轴电缆、光纤、双绞线
  • 非导引型媒体:
    • 开放的空间传播电磁波或者光信号,在电磁或者光信号中承载数字数据。
  • 双绞线(TP)
    • 两根绝缘铜导线拧合
      • 5类:100Mbps以太网Gbps千兆位以太网
      • 6类:10Gbps万兆以太网

物理媒体:同轴电缆、光纤

同轴电缆

  • 两根同轴的铜导线
  • 双向
  • 基带电缆:
    • 电缆上一个单个信道
    • Ethernet
  • 宽带电缆:
    • 电缆上有多个信道
    • HFC

光纤和光缆

  • 光脉冲,每个脉冲表示一个
    bit,在玻璃纤维中传输
  • 高速:
    • 点到点的高速传输(如10 Gps-100Gbps传输速率)
  • 低误码率:在两个中继器之间可以有很长的距离,不受电磁噪声的干扰
  • 安全

物理媒介:无线链路

  • 开放空间传输电磁波,携带要传输的数据
  • 无需物理“线缆”
  • 双向
  • 传播环境效应:
    • 反射
    • 吸收
    • 干扰

无线链路类型

  • 地面微波
    • e.g. up to 45 Mbps channels
  • LAN (e.g., WiFi)
    • 11Mbps, 54 Mbps,540Mbps…
  • wide-area (e.g., 蜂窝)
    • 3G cellular: ~ 几Mbps
    • 4G 10Mbps
    • 5G 数Gbps
  • 卫星
    • 每个信道Kbps 到45Mbps (或者多个聚集信道)
    • 270 msec端到端延迟
    • 同步静止卫星和低轨卫星

Internet结构和ISP

网络的网络

  • 端系统通过**接入ISP(Internet Service Providers)**连接到互联网
    • 住宅,公司和大学的ISP
  • 接入ISP相应的必须是互联的
    • 因此任何两个端系统可相互发送分组到对方
  • 导致的“网络的网络”非常复杂
    • 发展和演化是通过经济的国家的政策来驱动的
  • 采用渐进方法来描述当前互联网的结构

如何建立“网络的网络”: 将每个接入ISP都连接到全局ISP(全局范围内覆盖)?

  • 客户ISPs和提供者ISPs有经济合约

  • 但是,如果全局ISP是可行的业务,那会有竞争者有利可图,一定会有竞争

  • 竞争:但如果全局ISP是有利可为的业务,那会有竞争者;合作:通过ISP之间的合作可以完成业务的扩展,肯定会有互联,对等互联的结算关系。

  • 然后业务会细分(全球接入和区域接入),区域网络将出现,用与将接入ISPs连接到全局ISPs。

  • 然后内容**提供商网络(Internet Content Providers,e.g., Google,Microsoft, Akamai)**可能会构建它们自己的网络,将它们的服务、内容更加靠近端用户,向用户提供更好的服务,减少自己的运营支出。

  • 在网络的最中心,一些为数不多的充分连接的大范围网络(分布广、节点有限、
    但是之间有着多重连接)

    • “tier-1” commercial ISPs (e.g., Level 3, Sprint, AT&T, NTT), 国家或者国际范围的覆盖。
    • provider network (e.g., Google): 将它们的数据中心接入ISP,方便周边用户的访问;通常私有网络之间用专网绕过第一层ISP和区域ISPs.

总结

  • 松散的层次模型
  • 中心:第一层ISP(如UUNet, BBN/Genuity, Sprint,AT&T)国家/国际覆盖,速率极高。
    • 直接与其他第一层ISP相连
    • 与大量的第二层ISP和其他客户网络相连

  • 第二层ISP: 更小些的(通常是区域性的) ISP

    • 与一个或多个第一层ISPs,也可能与其他第二层ISP
  • 第三层ISP与其他本地ISP

    • 接入网(与端系统最近)
  • 一个分组要经过许多网络

ISP之间的连接

  • POP: 高层ISP面向客户网络的接入点,涉及费用结算
    • 如一个低层ISP接入多个高层ISP,多宿(multi home)
  • 对等接入:2个ISP对等互接,不涉及费用结算
  • IXP:多个对等ISP互联互通之处,通常不涉及费用结算
    • 对等接入
  • ICP自己部署专用网络,同时和各级ISP连接

分组延时、丢失和吞吐量

分组丢失和延时是怎样发生的?
在路由器缓冲区的分组队列

  • 分组到达链路的速率超过了链路输出的能力
  • 分组等待排到队头、被传输

四种分组延时

节点处理延时:

  • 检查bit级差错
  • 检查分组首部和决定将分组导向何处

排队延时:

  • 在输出链路上等待传输的时间
  • 依赖于路由器的拥塞程度

传输延时:

  • R = 链路带宽(bps)
  • L = 分组长度(bits)
  • 将分组发送到链路上的时间 = L/R
  • 存储转发延时

传播延时:

  • d = 物理链路的长度
  • s = 在媒体上的传播速度(~ 2 × 1 0 8 m / s e c 2/times 10 ^8 m/sec 2×108m/sec
  • 传播延时 = d / s

传输时延和传播时延的比较
传输时延是路由器推出分组所需要的时间,它是分组长度和链路传输速率的函数,而与两台路由器之间的距离无关。

传播时延是一个比特从一台路由器传播到另一台路由器所需要的时间,它是两台路由器之间距离的函数。

节点延时

d n o d a l = d p r o c + d q u e u e + d t r a n s + d p r o p d_{nodal} = d_{proc} + d_{queue} + d_{trans} + d_{prop} dnodal=dproc+dqueue+dtrans+dprop

  • d p r o c d_{proc} dproc = 处理延时
    • 通常是微妙数量级或更少
  • d q u e u e d_{queue} dqueue = 排队延时
    • 取决于拥塞程度
  • d t r a n s d_{trans} dtrans = 传输延时
    • = L/ R, 对低速率的链路而言很大(如拨号), 通常为微秒级到毫秒级
  • d p r o p d_{prop} dprop = 传播延时
    • 几毫秒到几百毫秒

排队延时

  • R = 链路带宽(bps)
  • L = 分组长度(bits)
  • a = 分组到达对列的平均速率
    流量强度 = La/R
  • La / R ~ 0: 平均排队延时很少
  • La / R -> 1: 延时变得很大
  • La / R > 1:比特到达队列的速率超过了从该队列输出的速率,平均排队延时将趋向无穷大!

Internet的延时和路由

Traceroute 诊断程序: 提供从源端,经过路由器,到目的的延时测量。

  • For all i:
  • 沿着目的的路径,向每个路由器发送3个探测分组
  • 路由器i 将向发送方返回一个分组
  • 发送方对发送和回复之间间隔计时


分组丢失

  • 链路的队列缓冲区容量有限
  • 当分组到达一个满的队列时,该分组将会丢失
  • 丢失的分组可能会被前一个节点或源端系统重
    传,或根本不重传

吞吐量

吞吐量: 在源端和目标端之间传输的速率(数据量/单位时间)

  • 瞬间吞吐量: 在一个时间点的速率
  • **平均吞吐量: ** 在一个长时间内平均值
    R s R_s Rs:表示服务器于路由器之间的链路速率
    R c R_c Rc: 表示路由器于客户端之间的链路速率

例如上图,对于两链路网络,其吞吐量为: min ⁡ R s , R c /min{R_s, R_c} minRs,Rc.

瓶颈链路: 端到端路径上,限制端到端吞吐的链路。

对于N条链路的网络,其吞吐量为 min ⁡ R 1 , R 2 , ⋯   , R N /min{R_1, R_2, /cdots, R_N} minR1,R2,,RN

互联网场景
对于10个连接(公平地)共享Rbps的瓶颈链路

其每个连接上的端到端的吞吐量为 min ⁡ R c , R s , R / 10 /min{R_c, R_s, R/10} minRc,Rs,R/10

协议层次及服务模型

网络是一个复杂的系统!

  • 网络功能繁杂:数字信号的物理信号承载、点到点、路由、rdt、进
    程区分、应用等
  • 现实来看,网络的许多构成元素和设备:
    • 主机
    • 路由器
    • 各种媒体的链路
    • 应用
    • 协议
    • 硬件, 软件

Q:如何组织和实现这个复杂的网络功能

层次化方式时延复杂网络功能:

  • 将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务
  • 本层协议实体相互交互执行本层的协议动作,目的是实现本层功能,通过接口为上层提供更好的服务
  • 在实现本层协议的时候,直接利用了下层所提供的服务
  • 本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的)+更下层所提供的服务

服务和服务访问点

服务( Service):低层实体向上层实体提供它们之间的通信的能力

  • 服务用户(service user)
  • 服务提供者(service provider )
    原语(primitive):上层使用下层服务的的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的—形式。

服务访问点SAP (Services Access Point):上层使用下层提供的服务通过层间的接口—地点;

  • 例子:邮箱
  • 地址(address):下层的一个实体支撑着上层的多个实体,SAP有标志不同上层实体的作用
  • 可以有不同的实现,队列
  • 例子:传输层的SAP: 端口(port)

服务的类型:

面向连接的服务无连接的服务 方式

面向连接的服务( Connection-oriented Service)

  • 连接(Connection):两个通信实体为进行通信而建立的一种结合
  • 面向连接的服务通信的过程:建立连接,通信,拆除连接
  • 面向连接的服务的例子:网络层的连接被成为虚电路
  • 适用范围:对于大的数据块要传输; 不适合小的零星报文
  • 特点:保序
  • 服务类型:
    • 可靠的信息流传送页面(可靠的获得,通过接收方的确认)
    • 可靠的字节流远程登录
    • 不可靠的连接数字化声音

无连接的服务(Connectionless Service)

  • 无连接服务:两个对等层实体在通信前不需要建立一个连接,不预留资源;不需要通信双方都是活跃;(例:寄信)
    • 特点:不可靠、可能重复、可能失序
    • IP分组,数据包;
    • 适用范围:适合传送零星数据;
    • 服务类型ÿ

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/119193.html

相关文章

  • 当我们谈网络时,我们谈些什么(1)--我们如何接入特网

    摘要:从如何接入网络到数据返回给我们这个过程。路由器是根据网络地址进行转发,属于网络层。此时我们就拿到和服务器的地址,和我们默认网关的地址。 博客新址,这里更有趣 之前对于黑砖头书,一直有种抵触感,看着看着就不想看了,总感觉TM这么厚,什么时候能看完,看着就愁,暑假,硬着头皮啃了《Thinking in Java》,还有《Head First设计模式》,边做笔记,边读,这样还是蛮有成就感的,...

    dabai 评论0 收藏0
  • 计算机网经典面试题30问

    摘要:简述计算机网络中的七层模型常见的状态码有哪些的三次握手过程为什么会采用三次握手,若采用二次握手可以吗的三次握手过程主机向发送连接请求主机对收到的主机的报文段进行确认主机再次对主机的确认进行确认。面向字节流面向报文。 ...

    jimhs 评论0 收藏0
  • 计算机网基础

    摘要:协议位于传输层,提供可靠的字节流服务。字节流服务是指为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。 分分钟让你理解HTTPS 计算机网络的基本组成 硬件系统:计算机、传输介质、网络设备 软件系统:网络操作系统、通信协议、网络软件 计算机网络的分类 1.按网络覆盖的地理范围分类 局域网(LAN) 城域网(MAN) 广域网(WAN) 2.按网络中计算机所处的地位分类 对等...

    Joyven 评论0 收藏0
  • 计算机网安全(

    摘要:在计算机网络发展面临重大机遇的同时,网络安全形式也日益严峻,国家政治经济文化社会国防安全及公民在网络空间的合法权益面临着风险和挑战。最早的计算机网络也被称为计算机通信网。现阶段,一个完整的计算机网络结构体系由两部分组成。 ...

    isaced 评论0 收藏0
  • 你确定你了解应用层吗?(每日补充中ing)

    摘要:服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户机。客户机相互之间不直接通信例如应用中两个浏览器并不直接通信可扩展性不佳。一个进程可以被认为是运行在端系统的一个程序。 ?首先得说! ?1.本专栏的计算机网络文稿主要是因为爱好,顺便包含了408考试的全部内容,如果可以将其内容全...

    hyuan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<