第一章 计算机网络和因特网
目录:
- 目标:
- 了解基本属于和概念
- 掌握网络的基本原理
- 为后续章节更深入的学习打下基础
- 方法:以Internet为例
- 提纲:
- 什么是Internet
- 什么是协议
- 网络边缘
- 网络核心:分组交换、线路交换
- 接入网、物理媒介
- Internet/ISP结构
- 性能:丢包、延时、吞吐量
- 协议层次、服务模型
1. 什么是Internet
1.1 从具体构成描述
- 网络边缘:位于互联网边缘与互联网相连的计算机和其他设备,如桌面计算机、移动计算机、服务器、其他智能终端设备。
- 网络核心:由互联端系统的分组交换设备和通信链路构成的网状网络。如:分组交换路由器、链路层交换机、通信链路(光纤、铜缆、无线电、激光链路)
1.2 从服务描述
为分布式应用提供服务的联网基础设施。
2 什么是协议
协议:定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和/或接受一条报文或其他时间所采取的动作。
对等层实体通信过程中遵守的规则的集合
3 网络边缘
网络边缘其实就是端系统(主机host)。
端系统:位于互联网边缘与互联网相连的计算机和其他设备,如桌面计算机、移动计算机、服务器、其他智能终端设备。
主机又被分为两类:客户端、服务器
3.1 采用网络设施的面向连接服务
- 目标:在端系统之间传输数据
- 握手:在数据传输之前做好准备
- 两个通信主机之间为连接建立状态
- TCP – 传输控制协议(Transmission Control Protocol )
- Internet上面向连接的服务
- TCP 服务
- 可靠地、按顺序地传送数据(确认和重传)
- 流量控制(发送方不会淹没接收方)
- 拥塞控制(当网络拥塞时,发送方降低发送速率)
- 使用TCP的应用
- HTTP (Web), FTP (文件传送), Telnet (远程登录),SMTP (email)
3.2 采用基础设施的无连接服务
- 目标:在端系统之间传输数据
- UDP – 用户数据报协议(User Datagram Protocol) [RFC 768]
- 无连接
- 不可靠数据传输
- 无流量控制
- 无拥塞控制
- 使用UDP的应用
- 流媒体、远程会议、DNS、Internet电话
4 网络核心:分组交换、线路(电路)交换
网络核心:由互联端系统的分组交换设备和通信链路构成的网状网络。
基本问题:数据怎样通过网络进行传输?
4.1 分组交换
将要传送的数据分成一个个单位:分组
将分组从一个路由器传到相邻路由器(hop),一段段最终从源端传到目标端
每段:采用链路的最大传输能力(带宽)
4.1.1 存储-转发
多数分组交换机在链路的输入端使用存储转发机制。
存储转发机制是指在交换机能够开始向输出链路传输该分组的比特之前,必须接受到整个分组。
好处:提高线路的共享性。不会出现一次传输一直占用一整条链路的情况。
坏处:网络延时,排队延时
4.1.2 排队延迟和丢失
由于存储-转发转发机制的存在,分组交换机具有输出缓存(输出队列),因此除了存储转发的时延外,还有承担排队时延。
- 存储转发时延:由于要所有分组全部到交换机后才能转发,造成的时延
- 排队时延:有很多其他分组还未转发排队,造成的时延
由于输出缓存大小是有限的所以当缓存已满时再来分组会出现分组丢失(丢包)
4.1.3 转发表和路由选择选择协议
每个分组首部包含了目标ip地址,路由器会根据转发表将目的地址映射成输出链路。
转发表由一些特殊的路由选择协议自动设置
4.1.4 网络核心的关键功能
- 路由: 决定分组采用的源到目标的路径(全局操作)
- 转发: 将分组从路由器的输入链路转移到输出链路(本地操作)
路由选择是转发的基础,数据转发是路由的结果。
4.2 线路(电路)交换
为每个呼叫预留一条专有电路(端到端连接e2e):如电话网
端到端的资源被分配给从源端到目标端的呼叫“call”:
- 独享资源:不同享,每个呼叫一旦建立起来就能够保证性能
- 如果呼叫没有数据发送,被分配的资源就会被浪费(no sharing)
- 通常被传统电话网络采用
为呼叫预留端-端资源:
- 链路带宽、交换能力
- 专用资源:不共享
- 保证性能
- 要求建立呼叫连接
网络资源(如带宽)被分成片
- 为呼叫分配片
- 如果某个呼叫没有数据,则其资源片处于空闲状态(不共享)
将带宽分成片
- 频分(Frequency-division multiplexing)
- 时分(Time-division multiplexing)
- 波分(Wave-division multiplexing)
电路交换不适合计算机之间的通信:
- 连接建立时间长
- 计算机之间的通信有突发性,如果使用线路交换,则浪费的片较多
- 即使这个呼叫没有数据传递,其所占据的片也不能够被别的呼叫使用
4.3 分组交换VS线路交换
分组交换
缺点:
1、不具有实时性。
2、存在延时。
3、会造成通信阻塞。
4、存在无用的重复数据。
5、会出现丢包的情况。
优点:
1、设计简单。
2、资源利用率很高。
电路交换
电路连接的三个阶段:
1、建立连接。
2、数据传输。
3、释放连接。
优点:
1、传输速度快、高效。
2、实时。
缺点:
1、资源利用率低。
2、新建连接需要占据一定的时间,甚至比通话的时间还长。
5 接入网、物理媒介
接入网:将端系统物理连接到其边缘路由器的网络
5.1 家庭接入:DSL、电缆、FTTH、拨号和卫星
宽带住宅接入由两种最流行的类型:数字用户线(Digital Subscriber Line,DSL)和电缆
DSL:用电话线代替网线
电缆接入:利用有线电视的同轴电缆、共享广播媒体
光纤到户(FTTH):本地中心局直接到家庭提供了一条光纤路径
5.2 企业(和家庭接入):以太网和WIFI
5.3 物理媒介
- 双绞铜线
- 同轴电缆
- 光纤
- 陆地无线电信道
- 卫星无线电信道
6 Internet/ISP结构
端系统通过接入ISPs (Internet Service Providers)连接到互联网。
问题:给定数百万接入ISPs,如何将它们互联到一起?
最容易想到的就是所以端系统两两相连。
但端系统数量过大时就显得不可能了,所以这时出现了ISP统一进行管理。
但是随着互联网的发展一个ISP显然不足以解决问题,所以出现了多个ISP。
但多个ISP也有问题,每个ISP之间相互独立,这样一个ISP的端系统就不能发送信息到另一个ISP的端系统了,因此出现了IXP,用于ISP间的相互连接。
但对于大公司来讲(比如谷歌)又出现了一个成本,ISP收费过高,于是内容提供商就自己部署服务器拉网线,节约成本。
7 性能:丢包、延时、吞吐量
7.1 四种分组延时
- 节点处理延时(检查首部和分组导向查路由表的时间):
- 检查bit级差错
- 检查分组首部和决定将分组导向何处
- 排队延时(分组在链路上等待的时间):
- 在输出链路上等待传输的时间
- 依赖于路由器的拥塞程度
- 传输延时(分组离开路由器的时间):
- R=链路带宽(bps)
- L=分组长度(bits)
- 将分组发送到链路上的时间= L/R
- 存储转发延时
- 传播延时(分组在网线中传播的时间):
- d = 物理链路的长度
- s = 在媒体上的传播速度(~2x108 m/sec)
- 传播延时= d/s
7.2 分组丢失
链路的队列缓冲区容量有限,当分组到达一个满的队列时,该分组将会丢失,丢失的分组可能会被前一个节点或源端系统重传,或根本不重传
7.3 吞吐量
吞吐量: 在源端和目标端之间传输的速率(数据量/单位时间)
- 瞬间吞吐量: 在一个时间点的速率
- 平均吞吐量: 在一个长时间内平均值
8 协议层次、服务模型
8.1 协议分层
8.1.1 层次化方式实现复杂网络功能
- 将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务
- 本层协议实体相互交互执行本层的协议动作,目的是实现本层功能,通过接口为上层提供更好的服务
- 在实现本层协议的时候,直接利用了下层所提供的服务
- 本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的)+更下层所提供的服务
8.1.2 分层处理和实现复杂系统的好处
- 概念化:结构清晰,便于标示网络组件,以及描述其相互关系
- 分层参考模型
- 结构化:模块化更易于维护和系统升级
- 改变某一层服务的实现不影响系统中的其他层次
- 对于其他层次而言是透明的
- 如改变登机程序并不影响系统的其它部分
- 改变2个秘书使用的通信方式不影响2个翻译的工作
- 改变2个翻译使用的语言也不影响上下2个层次的工作
- 改变某一层服务的实现不影响系统中的其他层次
8.2 服务和服务访问点
- 服务( Service):低层实体向上层实体提供它们之间的通信的能力
- 服务用户(service user)
- 服务提供者(service provider )
- 原语(primitive):上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的形式
- 服务访问点SAP (Services Access Point) :上层使用下层提供的服务通过层间的接口
- 例子:邮箱
- 地址(address):下层的一个实体支撑着上层的多个实体,SAP有标志不同上层实体的作用
- 可以有不同的实现,队列
- 例子:传输层的SAP: 端口(port)
8.3 服务的类型
8.3.1 面向连接的服务和无连接的服务-方式
- 面向连接的服务( Connection-oriented Service)
- 连接(Connection):两个通信实体为进行通信而建立的一种结合
- 面向连接的服务通信的过程:建立连接,通信,拆除连接
- 面向连接的服务的例子:网络层的连接被成为虚电路
- 适用范围:对于大的数据块要传输; 不适合小的零星报文
- 特点:保序
- 服务类型:
- 可靠的信息流传送页面(可靠的获得,通过接收方的确认)
- 可靠的字节流远程登录
- 不可靠的连接数字化声音
8.3.2 面向连接的服务和无连接的服务
- 无连接的服务(Connectionless Service)
- 无连接服务:两个对等层实体在通信前不需要建立一个连接,不预留资源;不需要通信双方都是活跃;(例:寄信)
- 特点:不可靠、可能重复、可能失序
- IP分组,数据包;
- 适用范围:适合传送零星数据;
- 服务类型:
- 不可靠的数据报电子方式的函件
- 有确认的数据报挂号信
- 请求回答信息查询
8.4 服务和协议
8.4.1 服务与协议的区别
- 服务(Service):低层实体向上层实体提供它们之间的通信的能力,是通过原语(primitive)来操作的,垂直
- 协议(protocol) :对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平
8.4.2 服务与协议的联系
- 本层协议的实现要靠下层提供的服务来实现
- 本层实体通过协议为上层提供更高级的服务
8.5 Internet协议栈与ISO/OSI 参考模型
8.5.1 应用层: 网络应用
- 网络应用程序以及他们的应用层协议存留的地方
- 为人类用户或者其他应用进程提供网络应用服务
- FTP, SMTP, HTTP,DNS
8.5.2 表示层: 允许应用解释传输的数据
例:加密,压缩,机器相关的表示转换
8.5.3 会话层: 数据交换的同步,检查点,恢复
8.5.4 传输层: 主机之间的数据传输
- 在应用程序端点间传输应用层报文
- 在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠地通信
- TCP, UDP
8.5.5 网络层: 为数据报从源到目的选择路由
- 将数据报从一台主机移动到另一台主机
- 主机主机之间的通信,端到端通信,不可靠
- IP, 路由协议
8.5.6 链路层: 相邻网络节点间的数据传输
- 将分组从一个节点移动到另一个节点
- 2个相邻2点的通信,点到点通信,可靠或不可靠
- 点对对协议PPP, 802.11(wifi), Ethernet
8.5.7 物理层: 在线路上传送bit
- 将帧中的一个个比特从一个节点移动到另一个节点
8.6 各层次的协议数据单元
- 应用层:报文(message)
- 传输层:报文段(segment):TCP段,UDP数据报
- 网络层:分组packet(如果无连接方式:数据报datagram)
- 数据链路层:帧(frame)
- 物理层:位(bit)
传输过程中数据被不断的封装和解封装