第一章 计算机网络概述
什么是Internet?
从具体构成角度
- 节点
- 主机及其上运行的应用程序
- 路由器、交换机等网络交换设备
- 边
- 主干链路:路由器间的链路
- 接入网链路:主机连接到互联网的链路
- 协议
- 控制发送、接收消息
- 如TCP,IP,HTTP,FTP,PPP
- 协议定义了在两个或多个通信实体间交换的报文格式和次序,以及在报文传输或接收其他事件所采用的动作
Internet:“网络的网络”
- 松散的层次结构,互联的ISP
Internet标准
- RFC : Request for comments
- IETF : Internet engineering Task Force
从服务角度
- 使用通信设施进行通信的分布式应用
- 将应用层通信看做是分布式进程通信
- 将应用层以下各层及路由网络看作是为分布式进程通信服务的基础设施,通信基础设施为应用程序提供编程接口
网路边缘
- 主机
- 应用程序
采用网络设施的面向连接服务
目标:在端系统之间传输数据
TCP服务:
- 可靠地、按顺序地传达数据
- 流量控制
- 发送发不会淹没接收方
- 拥塞控制
- 当网络拥塞时,发送方降低发送速率
面向连接和有连接
面向连接:指接入网的网络边缘进程看起来是建立连接的,主机通信之前会通知对方
有连接:在网络中心建立了一条“线路”
采用基础设施的无连接服务
目标:在端系统之间传输数据
UDP:
- 无连接
- 不可靠数据传输
- 无流量控制
- 无拥塞控制
使用TCP的应用:
使用TCP服务用作建立端到端的连接,目的是保证数据传输的可靠性,但是会损失性能
HTTP(Web),FTP(文件传输),Telnet(远程登录),SMTP(email)
使用UDP的应用
流媒体、远程会议、DNS、InterNet电话,讲求一个实时性
网络核心
核心功能
路由
:决定分组采用的源到目标的路径转发
:将分组从路由器的输入
链路转移到输出
链路
描述
:路由器的网状结构
基本问题:数据怎样通过网络进行传输
- 电路交换:为每个呼叫预留一条专有电路
- 分组交换
- 将要传送的数据分成一个个单位,分组
- 将分组从一个路由器传到相邻路由器,一段段最终从源端传到目标端
- 每段:采用链路的最大传输能力,而不是向电路交换那样需要对线路带宽进行划分
电路交换
端到端的资源被分配给从源端到目标端的呼叫
- 独占资源,不共享
- 即使呼叫没有数据传输,分配的资源仍被占用
- 保证性能
- 要求建立呼叫连接
网络资源被分成片
- 频分 (Frequency division multiplexing)
- 时分 (Time-division multiplexing)
- 波分 (Wave-division multiplexing
电路交换不适合计算机之间的通信
- 连接建立时间长
- 通信的突发性
分组交换
以分组为单位存储-转发方式,资源共享,按需使用
- 网络带宽资源不在分为一个个片,传输时使用全部带宽
- 主机之间传输的数据被分成一个个分组
存储-转发:分组每次移动一跳
- 在转发之前,节点必须收到整个分组
- 延迟比线路交换要大
分组交换
:分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分成- 数据报网络
- 在通信之前,无需建立起一个连接,有数据就传输
- 每个分组都有独立路由(路径不一样,可能会失序)
- 路由器根据分组的目标地址进行路由
- Internet
- 虚电路网络
- 每个分组都带标签,标签决定下一跳
- 在
呼叫建立
时决定路径,在整个呼叫路径保持不变(提前规划号路线,不需要对分组进行排序) - 路由器维持每个呼叫的状态信息
- X.25和ATM
- 数据报网络
排队延迟和丢失
如果到达速率>链路的输出速率
- 分组将会排队,等待传输
- 如果路由器的缓存用完了,分组将会被抛弃
统计多路复用
可以理解为特殊的时分复用,不同在于只对有输入数据的终端分配时间片
分组交换 vs 电路交换
- 同样的网路资源,分组交换允许更多用户使用网络
- 分组交换是“突发数据的胜利者”
- 适合于对突发式数据传输
- 资源共享
- 简单,不必建立呼叫
- 过度使用会造成网络拥塞:分组延时和丢失
- 对可靠的数据传输需要协议来约束—拥塞控制
- 怎样提供类似电路交换的服务
- 保证音频/视频应用需要的带宽
- 适合于对突发式数据传输
接入网和物理媒体
住宅接入网络
DSL(digital subscriber line)
采用现存的到交换局DSLAM(DSL 访问复用器)的电话线,将上网数调制加载到音频信号上,在电话线上传输,在交换局将其中的数据解调出来
- DSL线路上的数据被传到互联网
- DSL线路上的语音被传到电话网
- 不能同时上网和打电话;不能总是在线
线缆网络
HFC(hybrid fiber coax):混合光纤同轴电缆
- 非对称:采用频分复用技术,在不同的频段传输不同信道的数,据最高30Mbps的下行传输速率, 2 Mbps 上行传输速率
- 线缆和光纤网络将家庭用户接入到ISP路由器
- 各用户共享到线缆头端的接入网络
- 与DSL不同,DSL每个用户一个专用线路
企业接入网络
以太网(Ethernet)
端系统直接接入以太网络的交换机上
无线接入网络
各无线端系统共享无线接入网络
- 无线LANs
- 广域无线接入
物理媒体
导引型媒体
:信号沿着固体媒介被导引,同轴电缆、光纤、双绞线
非导引型媒体
:开放空间传输电磁波或者光信号,在电磁或者光信号中承载数字数据
Internet结构和ISP
互联网络结构:网络的网络
松散的层次模型
中心:第一层ISP(如UUNet, BBN/Genuity, Sprint, AT&T) 国家/国际覆盖,速率极高
- 直接与其他第一层ISP连接
- 与大量的第二层ISP和其它客户网络相连
第二层ISP: 更小些的 (通常是区域性的) ISP
第三层ISP与其他本地ISP
例子:
很多内容提供商(如:Google, Akamai )可能会部署自己的网络,连接自己的在各地的DC(数据中心),走自己的数据 连接若干local ISP和各级(包括一层)ISP,更加靠近用户(例如google)
ISP之间的连接
-
POP: 高层ISP面向客户网络的接入点,涉及费用结算
- 如一个低层ISP接入多个高层ISP,多宿(multi home)
-
对等接入:2个ISP对等互接,不涉及费用结算
-
IXP:不同电信运营商之间为连通各自网络而建立的集中交换平台,多个对等ISP互联互通之处,通常不涉及费用结算
- 对等接入
-
ICP自己部署专用网络,同时和各级ISP连接
分组延时、丢失和吞吐量
分组丢失和延时的产生
在路由缓冲区的分组队列
- 分组到达链路的速率超过了链路输出的能力
- 分组等待排到队头,等待传输
四种分组延时
- 处理延时
- 检查bit级差错
- 检查分组首部和决定将分组导向何处
- 排队延时
- 依赖于路由器的拥塞程度
- 传输延时
- 依赖于报文长度和链路带宽
- 传播延时
- 依赖媒体的传播速度和链路长度
排队延时
流量强度 = La/R ,设计系统的流量强度不能大于1
- R = 链路带宽
- L= 分组长度
- a = 分组到达队列的平均速率
Internet的延时和路由
traceroute
方法:可以查看从源端到目的段的路由信息和路径延时信息,基于ICMP信息,ICMP大概传输过程,设置ttl(time ot live),当生存时间结束且没到目标返回ICMP报文,若生存时间结束前到达目标,返回ICMP报文。
分组丢失
- 链路的队列缓冲区容量有限
- 当分组到达一个满的队列时,该分组将会丢失
- 丢失的分组可能会被前一个节点(可靠链路)或源端系统重传(不可靠链路),或根本不重传
吞吐量
在源端和目标端之间传输的速率
- 瞬间吞吐量
- 平均吞吐量
瓶颈链路
:端到端路径上,限制端到端吞吐的链路
端到端平均吞吐 = min{R1,R2,…,Rn}
协议层次及服务模型
层次化方式实现复杂网络功能
- 将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务
- 本层协议实体相互交互执行本层的协议动作,目的是实现本层功能,通过接口为上层提供更好的服务
- 在实现本层协议的时候,直接利用了下层所提供的服务
- 本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的)+更下层所提供的服务
服务和服务访问点
服务
:低层实体向上层实体提供他们之间的通信的能力
- 服务用户
- 服务提供者
原语
:上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的—形式
服务访问点SAP
:上层使用下层提供的服务通过层间的接口—地点
服务类型
面向连接的服务和无连接的服务–方式
- 面向连接的服务
- 连接:两个通信实体为进行通信而建立的一种结合
- 面向连接的服务通信过程:建立连接,通信,拆除连接
- 适用范围:对于大的数据块要传输,不适合小的零星报文
- 特点:保序
- 无连接的服务
- 无连接:两个对等层实体在通信前不需要建立一个连接,不预留资源,不需要通信双方都是活跃
- 特点:不可靠、可能重复、可能失序
- 适用范围:适合传送零星数据
服务和协议
区别
:
- 服务:低层实体向上层实体提供它们之间的通信的能力,是通过原语(primitive)来操作的,垂直
- 协议:对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平
联系
:
- 本层协议的实现要靠下层提供的服务来实现
- 本层实体通过协议为上层提供更高级的服务
数据单元(DU)
分层处理和实现复杂系统的好处
- 概念化
- 概念化:结构清晰,便于标示网络组件,以及描述其相互关系
- 结构化
- 模块化更易于维护和系统升级
- 改变某一层服务的实现不影响系统中的其他层次
- 对于其他层次而言是透明
Internet协议栈
应用层
: 网络应用- 为人类用户或者其他应用进程提供网络应用服务
- FTP,SMTP,HTTP,DNS
传输层
: 端到端的数据传输- 在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠地通信
- TCP,UDP
网络层
: 为数据报从源到目的选择路由- 同样是提供端到端的服务,但是服务是不安全的,不保序,不可靠的
- IP,路由协议
链路层
: 相邻网络节点间的数据传输- 2个相邻2点的通信,点到点通信,可靠或不可靠
- 点对对协议PPP, 802.11(wifi), Ethernet
物理层
: 在线路上传送bit
ISO/OSI 参考模型
表示层:允许应用解释传输的数据, e.g., 加密,压缩,机器相关的表示转换
会话层:数据交换的同步,检查点,恢复
各层次的协议数据单元
应用层 :报文
传输层 :报文段:TCP段,UDP数据报
网络层 :分组(如果无连接方式:数据报)
链路层 : 帧(frame)
物理层 :位(bit)