计算机网络学习笔记1
注:课程来自中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程
计算机网络概念
什么是Internet
什么是 Internet :从具体构成角度
- 零件的角度
- 节点
- 主机及其上运行的应用程序
- 路由器、交换机等网络交换设备
- 边:通信链路
- 接入网链路:主机连接到互联网的链路
- 主干链路:路由器间的链路
- 协议
- 网络互联设备的角度
- 数以亿计的、互联的计 算设备:
- 主机 = 端系统
- 运行网络应用程序
- 通信链路
- 光纤、同轴电缆、无线电 、卫星
- 传输速率 = 带宽(bps)
- 分组交换设备:转发分 组 (packets)
- 路由器和交换机
协议控制发送、接收消息:如 TCP、IP、HTTP、FTP、 PPP
Internet:“网络的网络”
- 公共Internet vs. 专用 intranet
- 松散的层次结构,互连的 ISP
Internet标准
- RFC: Request for comments
- IETF: Internet Engineering Task Force
协议
定义了在两个或多个通信实体(对等层的实体)之间交换的报文格式和次序,
以及在报文传输和/或接收或 其他事件方面所采取的动作
什么是Internet:从服务角度
进行通信的分布式应用的角度
- 使用通信设施进行通信的分 布式应用
- Web、VoIP、email、分布式 游戏、电子商务、社交网络 ……
- 通信基础设施为apps提供编 程接口(通信服务)
- 将发送和接收数据的apps与 互联网连接起来
- 为app应用提供服务选择,类 似于邮政服务:
- 无连接不可靠服务
- 面向连接的可靠服务
网络边缘
网络结构
- 网络边缘:
- 主机
- 应用程序(客户端和服务器)
- 网络核心:
- 互连着的路由器
- 网络的网络
- 接入网、物理媒体:
- 有线或者无线通信链路
网络边缘
- 端系统(主机):
- 运行应用程序
- 如 Web、email
- 在“网络的边缘”
- 客户/服务器模式(C/S)
- 客户端向服务器请求、接收服务
- 如 Web 浏览器/服务器;email 客户端/服务器
- 对等(peer-peer )模式
- 很少(甚至没有)专门的服务器
- 如 Gnutella、KaZaA、Emule
采用网络设施的面向连接服务
目标:在端系统之间传输数据,
握手:在数据传输之前 做好准备
就如人类协议中的:你好、你好。两个通信主机之间为连接建立状态
TCP – 传输控制协议( Transmission Control Protocol )
Internet上面向连接的服务
TCP 服务 [RFC 793]
- 可靠地、按顺序地传送数据 —— 确认和重传
- 流量控制 —— 发送方不会淹没接收方
- 拥塞控制 —— 当网络拥塞时,发送方降低 发送速率
采用基础设施的无连接服务
目标:在端系统之间传输数据 —— 无连接服务
- UDP – 用户数据报协议 (User Datagram Protocol) [RFC 768]:
- 无连接
- 不可靠数据传输
- 无流量控制
- 无拥塞控制
使用 TCP 的应用:HTTP (Web), FTP (文件传 送), Telnet (远程登录), SMTP (email)
使用 UDP的应用:流媒体、远程会议、 DNS、 Internet 电话
网络核心
网络核心:路由器的网状网络,主要是用于数据交换
电路交换
电路交换:为每个呼叫预留一条 专有电路:如电话网。端到端的资源被分配给从源端 到目标端的呼叫 “call”:
下图中,每段链路有 4 条线路,该呼叫采用了上面链路的第 2 各线路,右边链路的第 1 个线路(piece)
这种连接资源不会同享但每个呼叫一旦建立起来就能够保证性能。但**如果呼叫没有数据发送,被分配 的资源就会被浪费 (no sharing)**,电路交换通常被传统电话网络采用。
网络资源(如带宽)被 分成片 (把结点的通讯能力分解成小片)
- 为呼叫分配片
- 如果某个呼叫没有数据, 则其资源片处于空闲状态 (不共享)
- 将带宽分成片
- 频分(Frequency-division multiplexing) –> (FDM)
- 时分(Time-division multiplexing) –> (TDM)
- 波分(Wave-division multiplexing) –> (WDM)
FDM 与 TDM
计算举例
在一个电路交换网络上,从主机A到主机B发送 一个640,000比特的文件需要多长时间?
条件:所有的链路速率为1.536 Mbps,每条链路使用时隙数为24的TDM,建立端-端的电路需500 ms。
每条链路的速率(一个时间片):1.536Mbps/24 = 64kbps
传输时间:640kb/64kps = 10s
共用时间:传输时间+建立链路时间= 10s + 500ms = 10.5s
电路交换不适合计算机之间的通信
连接建立时间长
计算机之间的通信有突发性,如果使用线路交换,则浪费的片较多
即使这个呼叫没有数据传递,其所占据的片也不能 够被别的呼叫使用 (非共享)
可靠性不高
分组交换
以分组为单位存储-转发方式
- 网络带宽资源不再分分为一个个片,传输时使用全部带宽
- 主机之间传输的数据被分为一个个分组
资源共享,按需使用:
- 存储-转发:分组每次移 动一跳( hop ) 相当于分段使用链路
- 在转发之前,节点必须收到 整个分组
- 延迟比线路交换要大
- 排队时间
存储-转发
- 被传输到下一个链路之前, 整个分组必须到达路由器:存储-转发
- 在一个速率为R bps的链路 ,一个长度为L bits 的分组 的存储转发延时:
排队延迟和丢失
如果到达速率 > 链路的输出速率,分组将会排队,等待传输。如果路由器的缓存用完了,分组将会被抛弃
网络核心的关键功能
路由: 决定分组采用的源到 目标的路径
转发: 将分组从路由器的输 入链路转移到输出链路
统计多路复用
A&B 时分复用 链路资源 A & B
分组没有固定的模式 –> 统计多路复用
分组交换优缺点
优点:共享性
缺点:排队延迟和可能丢失
相当于多个电路交换,延迟更大(排队延迟,存储/转发延迟),而来换取了共享性
分组交换 vs 电路交换
分组交换与电路交换相比,分组交换更适合计算机之间的通信:
- 分组交换适合于对突发式数据传输
- 资源共享
- 简单,不必建立呼叫
- 在每个交换节点中不用维护主机之间的通信状态
分组交换按照有无网络层的连接分类
分组交换——分组的存储转发一段一段从源端传到目标端
- 数据报网络:
- 分组的目标地址决定下一跳
- 在不同的阶段,路由可以改变
- 类似:问路
- Internent
- 虚电路网络:
- 每个分组都带标签(虚电路标识VC ID),标签决定下一跳
- 在呼叫建立时决定路径,在整个呼叫中路径保持不变
- 路由器维持每个呼叫的状态信息
- X.25和ATM
数据报(datagram) 的工作原理
- 在通信之前,无须建立起一个连接,有数据就传输
- 每一个分组都独立路由(路径不一样,可能会失序)
- 路由器根据分组的目标地址进行路由(不维护主机和主机之间的状态)
虚电路(virtual circuit)的工作原理
网络分类
接入网和物理媒体
把网络边缘接入网络核心。
Q: 怎样将端系统和边缘路由器连接?
- 住宅接入网络
- 单位接入网络 (学校、公 司)
- 无线接入网络
住宅接入:modem
- 将上网数据调制加载音频信号上, 在电话线上传输,在局端将其中的 数据解调出来;反之亦然
- 调频、调幅、调相位、综合调制
- 拨号调制解调器
- 56Kbps 的速率直接接入路由器 (通常更低)
- 不能同时上网和打电话:不能 总是在线
电缆模式
fiber optic transport——光纤传输
接入网: digital subscriber line (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)
家庭网络
物理媒体
Bit: 在发送-接收对间传播
物理链路:连接每个发送-接 收对之间的物理媒体
导引型媒体:信号沿着固体媒介被导引:同轴电缆、光纤、 双绞线
非导引型媒体:开放的空间传输电磁波或者光信号,在电磁或者光信号中承载数字数据
双绞线 (TP)
同轴电缆、光纤
同轴电缆:两根同轴的铜导线、双向、基带电缆:1. 电缆上一个单个信道 2. Ethernet、宽带电缆:1. 电缆上有多个信道 2. HFC
光纤和光缆:
光脉冲,每个脉冲表示一个 bit,在玻璃纤维中传输
高速:点到点的高速传输(如10 Gps-100Gbps传输速率 )
低误码率:在两个中继器之间可以有很长的距离,不受 电磁噪声的干扰
安全
无线链路
- 开放空间传输电磁波,携带要传输的数据
- 无需物理“线缆”
- 双向
- 传播环境效应:反射、吸收、干扰
无线链路类型:
- 地面微波(up to 45 Mbps channels)
- LAN:WiFi(11Mbps, 54 Mbps,540Mbps…)
- wide-area: 蜂窝网络(3G cellular:几Mbps、4G:10Mbps、5G:数Gbps)
- 卫星
- 每个信道Kbps 到45Mbps (或者 多个聚集信道)
- 270 msec端到端延迟
- 同步静止卫星和低轨卫星
** Internet结构和ISP**
按ISP划分互联网
互联网结构:网络的网络
端系统通过接入ISPs (Internet Service Providers)连接到互联网
- 住宅,公司和大学的ISPs
接入ISPs相应的必须是互联的
- 因此任何2个端系统可相互发送分组到对方
导致的“网络的网络”非常复杂
- 发展和演化是通过经济的和国家的政策来驱动的
让我们采用渐进方法来描述当前互联网的结构
Q: 给定数百万接入ISPs,如何将它们互联到一起?
选项: 将每个接入ISP都连接到全局ISP(全局范围内覆盖)? 客户 ISPs 和提供者 ISPs 有经济合约
竞争:但如果全局ISP是有利可为的业务,那会有竞争者
合作:通过ISP之间的合作可以完成业务的扩展,肯定会有互联,对等互联的结算关系
Internet exchange point
然后业务会细分(全球接入和区域接入),区域网络将出现,用与将接入ISPs连接到全局ISPs
然后内容提供商网络 (Internet Content Providers,e.g., Google, Microsoft, Akamai) 可能会构建它们自己的网络,将它们的服务、内容更加靠近端用户,向用户提供更好的服务,减少自己的运营支出
在网络的最中心,一些为数不多的充分连接的大范围网络(分布广、节点有限、 但是之间有着多重连接)
“tier-1” commercial ISPs (e.g., Level 3, Sprint, AT&T, NTT), 国家或者国际 范围的覆盖
content provider network (e.g., Google): 将它们的数据中心接入ISP,方便周边 用户的访问;通常私有网络之间用专网绕过第一层 ISP 和区域
松散的层次模型
中心:第一层ISP(如UUNet, BBN/Genuity, Sprint, AT&T)国家/国际覆盖,速率极高
- 直接与其他第一层ISP相连
- 与大量的第二层ISP和其他客户网络相连
第二层ISP: 更小些的 (通常是区域性的) ISP
- 与一个或多个第一层ISPs,也可能与其他第二层ISP
第三层ISP与其他本地ISP
- 接入网 (与端系统最近)
一个分组要经过许多网络!
很多内容提供商(如:Google, Akamai )可能会部署自己的网 络,连接自己的在各地的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 = 在媒体上的传播速度 (~2x108 m/sec)、传播延时 = d/s
以车队作类比
情况一
汽车以100 km/hr 的速度传播,收费站服务每辆车需 12s (传输时间)
汽车~ bit; 车队 ~ 分组
Q: 在车队在第二个收费站排 列好之前需要多长时间?即:从车队的第一辆车到达第 一个收费站开始计时,到这个车队的最后一辆车离开第二个 收费站,共需要多少时间将车队从收费站输送到公路上的时间 = 12*10 = 120s
最后一辆车从第一个收费站到第二个收费站的传播 时间:100km/(100km/hr)= 1 hr
A: 62 minutes
情况二(局域网)
汽车以1000 km/hr 的速度传播汽车,收费站服务每辆车需 1分钟
Q:在所有的汽车被第一个收费站服务之前,汽车会 到达第二个收费站吗?Yes!7分钟后,第一辆汽车 到达了第二个收费站,而第一个收费站仍有3辆汽车
在整个分组被第一个路由器 传输之前,第一个比特已经 到达了第二个路由器!
节点延时
排队延时
R=链路带宽 (bps),L=分组长度 (bits), a=分组到达队列的平均速率。流量强度 = La/R
- La/R ~ 0: 平均排队延时很小
- La/R -> 1: 延时变得很大,趋近无穷
- La/R > 1: 比特到达队列的速率超过了从该队 列输出的速率,平均排队延时将趋向无穷大! 设计系统时流量强度不能大于1!
Internet的延时和路由
Traceroute 诊断程序: 提供从源端,经过路由器,到目的的延时测量
- For all i:
- 沿着目的的路径,向每个路由器发送3个探测分组
- 路由器 i 将向发送方返回一个分组
- 发送方对发送和回复之间间隔计时
windwos 下可以使用 tracert 目标地址
分组丢失
链路的队列缓冲区容量有限,当分组到达一个满的队列时,该分组将会丢失,丢失的分组可能会被前一个节点或源端系统重传,或根本不重传
吞吐量
吞吐量: 在源端和目标端之间传输的速率(数据量/单位时间)
瞬间吞吐量: 在一个时间点的速率
平均吞吐量: 在一个长时间内平均值
协议层次和服务模型
协议层次
网络功能繁杂:数字信号的物理信 号承载、点到点、路由、rdt、进 程区分、应用等
现实来看,网络的许多构成元素和 设备:主机、路由器、各种媒体的链路、应用、协议、硬件、软件
层次化方式实现复杂网络功能
- 将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务
- 本层协议实体相互交互执行本层的协议动作,目的是实现本层功能,通过接口为上层提供更好的服务
- 在实现本层协议的时候,直接利用了下层所提供的服务
- 本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的+更下层所提供的服务
服务和服务访问点
- 服务( Service):低层实体向上层实体提供它们之间的通信的能力
- 服务用户(service user)
- 服务提供者(service provider )
- 原语(primitive):上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的—形式
- 服务访问点 SAP (Services Access Point) :用于下层的服务提供者,来区分不同上层用户的一些信息,穿过层阶的一些信息称为服务访问点(上层使用下层提供的服务通过层间的接口—地点)
- 如:邮箱
- 地址(address):下层的一个实体支撑着上层的多个实体, SAP有标志不同上层实体的作用
- 可以有不同的实现,队列
- 如:传输层的SAP: 端口(port)
服务的类型
面向连接的服务和无连接的服务:
如果两个用户在通讯之前建立起“握手”的关系,分配好资源,为通讯做好准备,这种就称为面向连接的服务,反之则为无连接的服务
面向连接的服务
连接(Connection):两个通信实体为进行通信而建立的一 种结合
面向连接的服务通信的过程:建立连接,通信,拆除连接
面向连接的服务的例子:网络层的连接被成为虚电路
适用范围:对于大的数据块要传输; 不适合小的零星报文
特点:保序
服务类型:
- 可靠的信息流 传送页面(可靠的获得,通过接收方的确认)
- 可靠的字节流 远程登录
- 不可靠的连接 数字化声音
无连接的服务
无连接服务:两个对等层实体在通信前不需要建 立一个连接,不预留资源;不需要通信双方都是 活跃;(例:寄信)
特点:不可靠、可能重复、可能失序
IP分组,数据包;
适用范围:适合传送零星数据;
服务类型:
- 不可靠的数据报 电子方式的函件
- 有确认的数据报 挂号信
- 请求回答 信息查询
协议和服务
协议和服务的差别
- 服务(Service):低层实体向上层实体提供它们之间的通信的能力,是通过原语(primitive)来操作的,垂直关系
- 协议(protocol) :对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平关系
服务与协议的联系
- 本层协议的实现要靠下层提供的服务来实现
- 本层实体通过协议为上层提供更高级的服务
数据单元(DU)
ICI : 接口控制信息 - Interface Control Information
上层的PDU对于本层是SDU,封装后对于本层是PDU
两者的封装关系:
- 一对一:一个SDU 进行封装变成一个PDU(协议数据单元)
- 一对多:一个较大的SDU分成多个再进行封装,成多个PDU
- 多对一:多个很小的 SDU封装成一个PDU
每一层的协议数据单元都有不同的称呼:
应用层:应用报文(message)
传输层:TCP段:报文段(segmet)或者简称为段,UDP:数据报
网络层:分组(packet),如果网络是无连接的又称为数据报(datagram)
链路层:帧(frame)
物理层:位(bit)
Internet协议栈
应用层:实现各种各样的网络应用
为人类用户或者其他应用进程提供网络应用服务
FTP,SMTP,HTTP,DNS传输层:主机之间的数据传输(UTP、TCP)
- 在网络层提供的端到端通信基础上,细分为进程到进程
- 将不可靠的通信变成可靠地通信
网络层:为数据报从源到目的选择路由(转发、路由)
主机主机之间的通信,端到端通信,不可靠
IP,路由协议链路层:相邻网络节点间的数据传输(相邻两点间,以帧位单位的传输)
2个相邻2点的通信,点到点通信,可靠或不可靠
点对对协议PPP,802.11(wifi),Ethernet物理层:提供相邻两点之间电磁波的承载,能够将链路层传下来的 bit 交给对等的上层把它变为电磁波信号,光信号
ISO/OSI 参考模型
- 表示层: 允许应用解释传输的数据, e.g., 加密,压缩,机器相关的表示转换
- 会话层: 数据交换的同步,检查点,恢复
封装和解封装
链路层交换机主要用于组建局域网,而路由器则主要负责连接外网并寻找网络中最合适数据传输的路径
最后需要说明的是:路由器一般都具有防火墙功能,能够对一些网络数据包选择性的进行过滤。现在的一些路由器都具备交换机的功能,也有具备路由器功能的交换机,称为三层交换机。相比较而言,路由器的功能较交换机要强大,但是速度也相对较慢,价格较为昂贵,而三层交换机既有交换机的线性转发报文的能力,又有路由器的路由功能,因此得到了广泛的应用。