计网第一章:计算机网络和因特网
什么是因特网
从构成角度
计算机网络构成
节点
- 主机及其上运行的应用程序(用□表示)
- 路由器、交换机等网络交换设备(用○表示)
边:通信链路
- 接入网链路:主机连接到互联网的链路(主机→交换机)
- 主干链路:路由器间的链路
协议
互联网
以TCP、IP协议为主的一组协议来支撑工作的特定网络,是计算机网络的一种。
计算设备
- PC、服务器、智能手机等数以亿计、互联的计算设备
- 主机(host)/端系统(end system)
- 运行网络应用程序
通信链路
- 光纤、同轴电缆、无线电、卫星
- 传输速率重要指标:带宽(bps)
分组交换设备
- 转发分组(packets)
- 路由器和交换机
协议
- 协议控制发送、接收消息(TCP、IP、HTTP、FTP、PPP)
Internet:网络的网络
- 松散的层次结构:互联的ISP
- 公共Internet、专用Internet
Internet标准
- RFC:Request for Comments
- IETF:Internet Engineering Task Force
协议
对等层实体在通信过程中应该遵守的规则的集合,协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输与接受或其他事件方面采取的动作。
从服务角度
分布式的应用+为分布式应用提供通讯的基础设置
使用通信设施进行通信的分布式应用
web、email、VoIP、分布式游戏、电子商务、社交网络
通信基础设施为应用提供编程接口(通信服务)
- 将发送和接收数据的应用与互联网连接起来
- 为应用提供服务选择,类似于邮政服务
- 无连接不可靠服务
- 面向连接的可靠服务
网络结构
网络边缘
- 主机
- 应用程序(客户端和服务器)
网络核心
- 互连着的路由器
- 网络的网络
接入网、物理媒体
- 有线或者无线通信链路
网络边缘
端系统(主机)
- 运行应用程序
- 如Web、email
- 在“网络的边缘”
客户/服务器模式(C/S模式)
- 客户端向服务器请求、接收服务
- 如Web浏览器/服务器、email客户端/服务器
对等(Peer-Peer/P2P)模式
- 很少(甚至没有)专门的服务器
- 如Gnutella、KaZoA、Emule
面向连接的通信方式
目标:在端系统之间传输数据
握手:在数据传输之前做好准备,两个通信主机之间为连接建立状态
TCP传输控制协议(Transmission Control Protocol)
- 互联网面向连接的服务
- 可靠地、保序地传送数据:确认和重传
- 流量控制:发送方不会淹没接收方
- 拥塞控制:当网络拥塞时,发送方降低发送速率
- 使用TCP的应用:HTTP(web)、FTP(文件传送)、Telnet(远程登录)、SMTP(email)
UDP用户数据报协议(User Datagram Protocol)
- 无连接的服务
- 不可靠数据传输
- 无流量控制
- 无拥塞控制
- 使用UDP的应用:流媒体、远程会议、DNS、Internet电话
网络核心
电路交换(circuit switching)
特点
- **端到端的资源被分配给从源端到目标端的呼叫(call)**,通过空闲的线路(pieces)进行通信,形成从源端到目标端独享的线路。
- 频分(Frequency-division multiplexing,FDM)、时分(Time-division multiplexing,TDM)、波分(Wave-division multiplexing,WDM)
- 独享资源,每个呼叫一旦建立起来就能够保证性能
- 如果呼叫没有数据发送,被分配的资源就会被浪费
- 通常被传统电话网络采用
例题
在一个电路交换网络上,从主机A到主机B发送一个640000比特的文件需要多长传输时间?一直所有链路速率为1.536Mbps,每条链路使用时隙数为24的TDM,建立端-端的电路需500ms
解
两个节点间带宽为:1.536Mbps,使用时分复用分为24个时隙(slot),每个用户使用一个时隙,所以每个用户能够使用的带宽为:
1.536Mbps / 24 = 64kbps
发送640kb文件需要的传输时间:
640kb / 64kbps = 10s
建立端-端的电路需500ms,共需时间:
10.5s
缺点
电路交换不适合计算机之间的通信
- 连接建立时间长
- 计算机之间的通信有突发性,如果使用电路交换则浪费的片较多。即使这个呼叫没有数据传递,占据的资源也不能被别的呼叫使用
- 可靠性不高
分组交换(packet switch)
特点
- 以分组为单位存储-转发方式
- 网络带宽资源不再分为一个个片,传输时使用全部带宽
- 主机之间传输的数据被分为一个个分组
- 资源共享,按需使用
- 储存-转发:分组每次移动一跳(hop)
- 在转发之前,节点必须收到整个分组
- 延迟比线路交换要大
- 排队时间
- 在一个速率为R bps的链路上,一个长度为L bits的分组的存储转发时间:
L/R
s
- 排队和延迟
- 如果发送端到达速率>链路的输出速率:
- 分组将会排队等待传输
- 如果路由器的缓存用完了,分组将会被抛弃
- 如果发送端到达速率>链路的输出速率:
- 统计多路复用
- 时分复用链路资源但没有固定的模式——统计多路复用
分类
分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分为:
- 数据报(Datagram)网络
- 分组携带目标主机的完整地址,交换节点根据这个目标地址决定下一跳
- 通信之前无需建立起连接,有数据就传输
- 在不同的阶段路由可以改变,每个分组的路径可能不同,可能会导致失序
- 路由器根据分组的目标地址进行路由,类似寄信和问路
- Internet
- 虚电路网络
- 每个分组都带标签(虚电路标识VCID),标签决定下一跳
- 在呼叫建立时决定路径,依靠信令建立虚电路,在整个呼叫中路径保持不变
- 路由器维持每个呼叫的状态信息
- X.25和ATM
网络核心关键功能
- 路由:决定分组采用的源到目标的路径
- 路由算法
- 转发:将分组从路由器的输入链路转移到输出链路。
分组交换 vs 电路交换
若一个链路的带宽是1Mb/s,每个用户活动时所需的带宽是100kb/s,且每个用户只有10%的时间是活动的:
采用电路交换时
最多支持同时使用的用户数:
1Mb/s / 100kb/s = 10
即使用电路交换最多支持10个用户同时使用;
采用电路交换时
若有35个用户使用,同时使用的用户数超过10个的概率约为0.0004,即在99.6%的情况下支持这35个用户的使用
所以分组交换允许更多用户使用网络
分组交换是“突发数据的胜利者”
- 分组交换适合应对突发式数据传输
- 资源共享
- 简单,不必建立呼叫
- 过度使用会造成网络拥堵
- 分组时延和丢失
- 对可靠地数据传输需要协议来约数:拥塞控制
接入网和物理媒体
接入网
住宅接入:modem(电话线)
- 将上网数据调制加载在音频信号上,在电话线上传输,在局端将其中的数据解调出来(调频/调相/调相/综合调制)
- 拨号调制解调器
- 56kbps的速率直接接入路由器(通常更低)
- 不能同时上网和打电话
Digital Subscriber Line,DSL(电话线)
- 采用现存的到交换局DSLAM的电话线
- DSL线路上的数据被传到互联网
- DSL线路上的语音被传到电话网
- <2.5Mbps上行传输速率
- <242Mbps下行传输速率
- 可以同时上网和打电话
线缆网络(有线电视)
- 将有线电视信号同轴电缆数字化+双向改造
- FDM:在不同频段传输不同信道的数据,数字电视和上网数据(上下行)
- HFC:hybrid fiber coax,最高30Mbps的下行传输数据,2Mbps上行传输数据
- 线缆和光纤将家庭用户接入到ISP路由器
- 用户共享到线缆头端的接入网络(与DSL不同)
家庭接入网络
头端——modem——路由器/防火墙/IP——无线接入点
企业接入网络
Access Point(AP)——交换机端口——路由器
- 经常被企业或大学机构采用
- 10Mbps、100Mbps、1Gbps、10Gbps传输率
- 现在端系统经常直接接到以太网络交换机上
无线接入网络
通过基站或者接入点各无线端系统共享无线接入网络(端系统到无线路由器)
广域无线接入
- 由电信运行商提供
- 1~10Mbps
- 3G,4G:LTE
无线LANs
- 建筑物内部
- 802.11b/g(WIFI):11, 54Mbps传输速率
物理媒体
- Bit:在发送-接受对间传播
- 物理链路:连接每个发送-接受对之间的物理媒体
- 导引型媒体:信号沿着固体媒介被导引(同轴电缆、光纤、双绞线)
- 非导引型媒体:开放的空间传输电磁波或者光信号,在电磁或者光信号中承载数字数据
导引型媒体(有线链路)
同轴电缆
- 两根同轴的铜导线
- 双向
- 基带电缆
- 电缆上只有单个信道
- Ethernet
- 宽带电缆
- 电缆上有多个信道
- HFC
光纤和光缆
- 光脉冲,每个脉冲表示一个bit,在玻璃纤维中传输
- 高速:点到点的高速传输(如10Gbps~100Gbps传输速率)
- 低误码率:在两个中继器中间有很长距离,不收电磁噪声干扰
- 安全
双绞线
- 两根绝缘铜导线拧合
- 5类:100Mbps以太网,Gbps千兆位以太网
- 6类:10Gbps万兆以太网
非导引型媒体(无线链路)
- 开放空间传输电磁波,携带要传输的数据
- 无需物理“线缆”
- 双向
- 传播环境效应
- 反射
- 吸收
- 干扰
无线链路类型
- 地面微波
- LAN
- WIFI
- wide-area
- 蜂窝
- 卫星
- 同步静止卫星/地轨卫星
Internet结构和ISP
- 端系统通过接入ISP(Internet Service Providers)连接到互联网
- 住宅、公司、大学的ISP
- 接入ISPs必须是互联的
- 所以任何两个端系统可以互相发送分组给对方
- 发展和演化是通过经济的和国家的政策来驱动的
ISP互联
- 将每个接入ISP都连接到全局ISP,客户ISPs和提供者ISPs有经济合约。
- 全局ISP有利可为,会有竞争者;而通过ISP之间的合作可以完成业务的扩展(Internet exchange point,IXP),会有对等互联的结算关系。
- 业务进一步细分,区域网络出现,然后通过接入ISPs连接到全局ISPs。
- 内容提供商网络(Internet Content Providers,e.g. Google)构建自己的网络,提供更好的服务,减少运营支出
在网络的最中心,一些为数不多的充分连接的大范围网络(分布广、节点有限、但是之间有着多重连接)
- “tier-1” commercial ISPs (e.g., Level 3, Sprint, AT&T, NTT), 国家或者国际范围的覆盖
- content provider network (e.g., Google): 将它们的数据中心接入ISP,方便周边用户的访问;通常私有网络之间用专网绕过第一层ISP和区域ISPs
互联网的结构
松散的层次模型
一个分组要经过许多网络
- 第一层ISP:中心
- 国家/国际覆盖,速率极高
- 直接与其他第一层ISP相连
- 与大量的第二层ISP和其他客户网络相连
- 第二层ISP: 更小些的 (通常是区域性的) ISP
- 与一个或多个第一层ISPs,也可能与其他第二层ISP
- 第三层ISP与其他本地ISP
- 接入网(与端系统最近)
很多内容提供商(如:Google)可能会部署自己的网络,连接自己的在各地的DC(数据中心),走自己的数据,连接若干local ISP和各级(包括一层)ISP,更加靠近用户
ISP之间的连接
- POP: 高层ISP面向客户网络的接入点,涉及费用结算
- 如一个低层ISP接入多个高层ISP,多宿(multi home)
- 对等接入:2个ISP对等互接,不涉及费用结算
- IXP:多个对等ISP互联互通之处,通常不涉及费用结算(对等)
- ICP自己部署专用网络,同时和各级ISP连接
分组延时、丢失和吞吐量
分组延时与分组丢失
分组丢失和延时发生的原因:
在路由器缓冲区的分组队列
- 分组排队产生分组延时,路由器给分组传给别的链路产生传输延时
- 分组到达时如果没有可用的缓冲区会发生分组丢失
四种分组延时
- 节点处理延时
- 检查bit级差错
- 检查分组首部和决定将分组导向何处
- 排队延时
- 在输出链路上等待传输的时间
- 依赖于路由器的拥塞程度
- 传输延时
- R = 链路带宽(bps)
- L = 分组长度(bits)
- 将分组发送到链路上的时间 =
L / R
- 存储转发延时
- 传播延时
- d = 物理链路的长度
- s = 在媒体上的传播速度
- 传播延时 =
d / s
节点延时
d(nodal) = d(proc) + d(queue) + d(trans) + d(prop)
- d(proc):处理延时,通常是微秒数量级或更少
- d(queue):排队延时:取决于拥塞程度
- d(trans):传输延时:
L / R
,对低速率的链路影响较大(如拨号),通常为微秒级到毫秒级 - d(prop):传播延时,几微秒到几百毫秒
排队延时
- R = 链路带宽(bps)
- L = 分组长度(bits)
- a = 分组到达队列的平均速率(即单位时间内希望通过该链路转发的分组的数量)
流量强度 = La / R
- La / R → 0 :平均排队延时很小
- La / R → 1 :排队延时很大
分组丢失
- 链路的队列缓冲区容量有限
- 当分组到达一个满的队列时,该分组将会丢失
- 丢失的分组可能会被前一个结点或源端系统重传或根本不重传
吞吐量
定义
吞吐量:在源端和目标端之间传输的速率(数据量/单位时间)
- 瞬间吞吐量:在一个时间点的速率
- 平均吞吐量:在一个长时间内平均值
瓶颈链路
端到端平均吞吐 = min{R1, R2, R3,……Rn} (短板效应)
瓶颈链路:端到端路径上,限制端到端吞吐的链路
吞吐量:互联网场景
每个连接上的端到端吞吐: min(Rc, Rs, R/10)
- Rc:用户端
- Rs:服务器端
- R:链路
实际上, Rc或者Rs经常是瓶颈
协议层次及服务模型
协议层次
层次化方式实现复杂网络功能
- 将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务
- 本层协议实体相互交互执行本层的协议动作,目的是实现本层功能,通过接口为上层提供更好的服务
- 在实现本层协议的时候,直接利用了下层所提供的服务
- 本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的)+更下层所提供的服务
服务
服务与服务访问点
服务
服务:低层实体向上层实体提供它们之间的通信的能力。
- 服务用户
- 服务提供者
源语
上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的形式
服务访问点
服务访问点SAP(Services Access Point):上层
使用下层提供的服务通过层间的接口地点
服务的类型
面向连接的服务和无连接的服务方式
服务和协议
区别
- 服务:低层实体向上层实体提供它们之间的通信的能力,是通过原语(primitive)来操作的,垂直
- 协议:对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平
关系
- 本层协议的实现要靠下层提供的服务来实现
- 本层实体通过协议为上层提供更高级的服务
分层处理和实现复杂系统的好处
- 概念化:结构清晰,便于标示网络组件,以及描述其
相互关系- 分层参考模型
- 结构化:模块化更易于维护和系统升级
- 改变某一层服务的实现不影响系统中的其他层次
Internet协议栈
- 应用层:网络应用
- 为人类用户或者其他应用进程提供网络应用服务
- FTP, SMTP, HTTP,DNS
- 传输层:主机之间的数据传送
- 在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠地通信
- TCP、UDP
- 网络层:为数据报从源到目的选择路由
- 主机主机之间的通信,端到端通信,不可靠
- IP, 路由协议
- 链路层:相邻网络节点间的数据传输
- 2个相邻2点的通信,点到点通信,可靠或不可靠
- 点对对协议PPP, 802.11(wifi), Ethernet
- 物理层:在线路上传送bit
ISO/OSI参考模型
- 表示层:允许应用解释传输的数据。 e.g., 加密,压缩,机器相关的表示转换。
- 会话层:数据交换的同步,检查点,恢复
- 互联网协议栈没有这两层
各层次的协议数据单元
- 应用层:报文(message)
- 传输层:报文段(segment):TCP段,UDP数据报
- 网络层:分组packet(如果无连接方式:数据报
datagram) - 链路层:帧(frame)
- 物理层:位(bit)