文章目录
1.1 什么是因特网
回答这个问题有两种方式:其一,我们能够描述因特网的具体构成,即构成因特网的基本硬件和软件组件;其二,我们能够根据为分布式应用提供服务的联网基础设施来描述因特网。
1.1.1从具体构成描述看:
数以亿计的、互联的计算设备:
- 主机 = 端系统(host、end_system)
- 运行网络应用程序
通信链路:
- 光纤、同轴电缆、无线电、卫星
- 传输速率 = 带宽(比特/秒:bit/s or bps)
分组交换设备:转发分组(packets) :
- 路由器和交换机
协议(protocol):
- 协议:支撑互联网工作的重要标准,网络设备遵守协议进行交互;不同层有不同的协议,每一层有多个协议。
- 如TCP、IP、HTTP、FTP、PPP
Internet:“网络的网络”:
松散的层次结构,互连的ISP
公共Internet vs. 专用intranet
1.1.2从服务描上看:
分布式应用进程以及为分布式应用进程提供通信服务的基础设施
基础设施包括:主机应用层以下的所有运行中的协议实体、目标主机应用层以下的所有运行中的协议实体、所有的网络部分
- 使用通信设施进行通信的分布式应用
- Web、VoIP、email、分布式游戏、电子商务、社交网络......
- 通信基础设施为apps提供编程接口(通信服务)
- 将发送和接收数据的apps与互联网连接起来
- 为app应用提供服务选择,类似于邮政服务:
- 无连接不可靠服务 —— UDP协议
- 面向连接的可靠服务 —— TCP/IP协议
1.1.3什么是协议
- 人类协议:“几点了?”、“我有个问题”、你好
- ...发送特定的消息
- ...收到消息时采取的特定行动或其他事件
- 网络协议:
- 类似人类协议
- 机器之间的协议而非人与人之间的协议
- Internet中所有的通信行为都受协议制约
协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输和/或接收或其他事件方面所采取的动作。
1.2 网络边缘
- 端系统(主机):
- 运行应用程序
- 如Web、email
- 在“网络的边缘”
- 客户端(Client)/服务器(Server)模式(C/S模式):主-从模式,存在可扩展性的问题
- 客户端向服务器请求、接收服务,通常是桌面PC、移动PC和智能手机等
- 服务器是更为强大的机器,用于存储和发布Web页面、流视频、中继电子邮件等,大部分都属于大型数据中心
- 如Web浏览器/服务器;email客户端/服务器
- 对等(peer-peer)模式:每个节点既是客户端,又是服务器,通讯是分布式的
- 很少(甚至没有)专门的服务器
- 如Gnutella、KaZaA、Emule电驴、迅雷等分布式文件分发系统
基础设施为网络应用提供的服务又有两种方式:
- TCP服务传输控制协议(Transmission Control Protocol):Internet上面向连接的服务
- 可靠地、按顺序地传送数据:不重复、不丢失、不失序
- 确认和重传
- 流量控制(考虑接收方的处理能力)
- 发送方不会淹没接收方,协调发送/接受速度,实现有序通信
- 拥塞控制(考虑网络路径的通行能力)
- 当网络拥塞时,发送方降低发送速率
- TCP的应用:HTTP(Web),FTP(文件传送),Telnet(远程登录),SMTP(email)
- UDP——用户数据报协议(User Datagram Protocol):将主机-主机通过UDP端口细分到进程-进程;速度快,适合于实时多媒体应用
- 无连接
- 不可靠数据传输
- 无流量控制、无拥塞控制:发送速度等于接收速度
- UDP的应用:在很要求时间效率或对可靠性要求不高的场景中一般都会选择UDP来作为资源传输的首选协议什么网络多媒体(直播)、聊天软件、视频电话等等
1.2.1 接入网
接入网是指将端系统物理连接到其边缘路由器(edge router)的网络。边缘路由器是端系统到任何远程端系统的路径上的第一台路由器。
1.家庭接入:DSL、电缆、FTTH、拨号和卫星
2.企业(和家庭)接入:以太网和WiFi
3.无线接入
1.2.2 物理媒体
物理媒体是指用于传输信息的实体媒介,它根据信息传递的方式可以分为两类:
-
导引型媒体(Guided Media):这类媒体需要有导线或管道形式的存在来引导信号的传播。常见的导引型媒体包括:
- 双绞线:如电话线、以太网电缆,数据通过金属芯线传输。
- 光纤:光缆,利用光束在玻璃或塑料纤维中传播,速度更快且干扰较小。
- 同轴电缆:电视天线线等,主要用于有线电视和某些通信系统。
-
非导引型媒体( Unguided Media):也称为无线媒体,信号不依赖于物理导线,而是通过电磁波在空间自由传播。这包括:
- 无线电波:比如广播、手机信号,覆盖范围广但受环境影响大。
- 微波:用于卫星通信和某些短距离无线技术。
- 红外线:适用于短距离的点对点通信,如遥控器。
1.3网络核心
1.3.1 分组交换
分组交换(packet switching):互联网和几乎所有计算机网络都运用分组交换;以分组为单位,存储转发
以分组为单位存储-转发方式
- 网络带宽资源不再分分为一个个片,传输时使用全部带宽
- 主机之间传输的数据被分为一个个单位,这个单位叫分组(packet)
资源共享,按需使用:
- 存储-转发:分组每次移动一跳(hop)
- 在转发之前,节点必须收到整个分组
- 延迟比线路交换要大
- 排队时间:如果到达速率>链路的输出速率(相当于总体上为净流入):
- 分组将会排队,等待传输
- 端口的输出队列可能是一个有限值,如果路由器的缓存用完了,分组将会被抛弃(drop)
分组交换: 分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分成:
- 数据报网络:不用先建立连接;交换节点中不用维护通信状态(无状态路由器);每个分组都携带目标主机的完整地址;每个分组传送都是独立的
- 分组的目标地址决定下一跳
- 在不同的阶段,路由可以改变
- 类似:问路,寄信
- Internet
- 虚电路网络:主机和目标主机通信前先握手,在交换节点之间建立一条虚拟线路(通过信令建立),每个分组携带一条虚电路号而非目标主机的完整地址进行标识;中间的路由器维护通信状态(有连接)(注:分清楚有连接、面向连接和无连接点击跳转)连接称为网络层的连接
- 每个分组都带标签(虚电路标识 VC ID),标签决定下一跳
- 在呼叫建立时决定路径,在整个呼叫中路径保持不变
- 路由器维持每个呼叫的状态信息
- X.25和ATM
数据报(datagram)的工作原理:
- 在通信之前,无须建立起一个连接,有数据就传输
- 每一个分组都独立路由(有可能走不同路径,可能会失序)
- 路由器根据分组的目标地址进行路由
1.3.2 电路交换
- 电路交换(circuit switching):为每个呼叫预留一条专有电路:如电话网
- 独享资源:不同享
- 每个呼叫一旦建立起来就能够保证性能
- 如果呼叫没有数据发送,被分配的资源就会被浪费(no sharing)
- 通常被传统电话网络采用
电路交换不适合计算机之间的通信
- 连接建立时间长
- 计算机之间的通信有突发性,如果使用线路交换/电路交换,则浪费的片较多
- 即使这个呼叫没有数据传递,其所占据的片也不能够被别的呼叫使用
- 可靠性不高
1.3.3 Internet结构和ISP
前面的Internet结构划分是按照节点和链路的类型来划分(边缘、核心和接入网),现在采用一种不同的划分方式,将一些关系较密集的、处于同一网络的设备称之为一个ISP的网络,互联网由很多个ISP的网络构成,通过网络互联设备连接在一起。
互联网络结构:网络的网络
- 端系统通过接入ISPs(Internet Service Providers)连接到互联网:如手机通过移动/联通这个ISP接入互联网
- 住宅,公司和大学的ISPs
- 接入ISPs相应的必须是互联的
- 因此任何2个端系统可相互发送分组到对方
- 导致的“网络的网络”非常复杂
- 发展和演化是通过经济的和国家的政策来驱动的
- 让我们采用渐进方法来描述当前互联网的结构
松散的层次模型
- 中心:第一层ISP(如UUNet, BBN/Genuity, Sprint, AT&T)国家/国际覆盖,速率极高,部署的点少
- 直接与其他第一层ISP相连
- 与大量的第二层ISP和其他客户网络相连(PoP)
- 第二层ISP:更小些的(通常是区域性的)ISP
- 与一个或多个第一层ISPs,也可能与其他第二层ISP
- 第三层ISP与其他本地ISP(local ISP)
- 接入网(与端系统最近)
ISP之间的连接:
- POP: 高层ISP面向客户网络的接入点,涉及费用结算
- 如一个低层ISP接入多个高层ISP,多宿(multi home)
- 对等接入:2个ISP对等互接,不涉及费用结算
- IXP:多个对等ISP互联互通之处,通常不涉及费用结算
- 对等接入
- ICP(Internet Content Provider, 互联网内容提供商)自己部署专用网络,同时和各级ISP连接
1.4分组交换网中的时延、丢包和吞吐量
1.4. 1 分组交换网中的时延概述
相比较于电路交换,分组交换有更多的延时以及可能的丢失。
分组丢失和延时是怎样发生的?
在路由器缓冲区的分组队列发生延时:
- 分组到达链路的速率超过了链路输出的能力
- 分组等待排到队头、被传输
可用的缓冲区:分组到达时,如果没有可用的缓冲区,则该分组被丢掉(分组丢失)。
注:分组直接丢失而非扩大缓冲区存储更多分组:若队列过长,则传输延时过长,此时与其保证信息完整,不如直接丢弃
四种分组延时
- 节点处理延时:
- 检查bit级差错
- 检查分组首部和决定将分组导向何处
- 排队延时
- 在输出链路上等待传输的时间
- 依赖于路由器的拥塞程度,时长随机
- 传输延时:打出分组(L个比特)所需要的时间
- R=链路带宽$(bps)$
- L=分组长度$(bits)$
- 将分组发送到链路上的时间$=L/R$
- 存储转发延时
- 传播延时:1跳/段(hop)的时间
- d=物理链路的长度
- s=在媒体上的传播速度(~$2*10^8m/s$)
- 传播延时$=d/s$
1.4.2 排队时延和丢包
排队延时取决于流量强度:
- 定义: R=链路带宽(bps);
L=分组长度(bits);
a=分组到达队列的平均速率(单位时间到达的分组数量) - 流量强度(Intensity)=La/R,量纲为1,值为0~1
- La/R ~ 0:平均排队延时很小
- La/R -> 1:延时变得很大
- La/R > 1:比特到达队列的速率超过了从该队列输出的速率,平均排队延时将趋向无穷大!
- 设计系统时流量强度不能大于1!
分组丢失:
- 链路的队列缓冲区容量有限
- 当分组到达一个满的队列时,该分组将会丢失
- 丢失的分组可能会被前一个节点(若链路本身可靠)或源端系统(若链路本身不可靠)重传,或根本不重传(若采用UDP协议等)
1.4.3 计算机网络中的呑吐量
吞吐量:在源端和目标端之间传输的速率((有效)数据量/单位时间)
- 瞬间吞吐量:在一个时间点的速率
- 平均吞吐量:在一个长时间内平均值
1.5协议层次及其服务模型
协议层次:
- 网络功能繁杂:数字信号的物理信号承载、点到点、路由、rdt、进程区分、应用等
- 现实来看,网络的许多构成元素和设备:主机;路由器;各种媒体的链路;应用;协议;硬件,软件
- 问题是:如何组织和实现这个复杂的网络功能?
层次化方式实现复杂网络功能!
- 将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务(功能的子集)
- 本层协议实体相互交互执行本层的协议动作,目的是实现本层功能,通过接口为上层提供更好的服务
- 在实现本层协议的时候,直接利用了下层所提供的服务
- 本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的)+ 更下层所提供的服务
服务:
1.服务和服务访问点
- 服务(Service):低层实体向上层实体提供它们之间的通信的能力
- 服务用户(service user):如TCP实体上的多个应用
- 服务提供者(service provider):如TCP实体
- 原语(primitive):上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的---形式
- 服务访问点SAP(Services Access Point):上层使用下层提供的服务通过层间的接口—地点;
- 例子:邮箱
- 地址(address):下层的一个实体支撑着上层的多个实体,SAP有标志、区分不同上层实体(服务用户)的作用
- 可以有不同的实现,队列
- 例子:传输层的SAP:端口(port)
2.服务的类型
- 面向连接的服务和无连接的服务-方式
- 面向连接的服务(Connection-oriented Service)
- 连接(Connection):两个通信实体为进行通信而建立的一种结合
- 面向连接的服务通信的过程:建立连接,通信,拆除连接
- 面向连接的服务的例子:网络层的连接被成为虚电路
- 适用范围:对于大的数据块要传输;不适合小的零星报文
- 特点:保序
- 服务类型:
- 可靠的信息流 传送页面(可靠的获得,通过接收方的确认)
- 可靠的字节流 远程登录
- 不可靠的连接 数字化声音
- 无连接的服务(Connectionless Service)
- 无连接服务:两个对等层实体在通信前不需要建立一个连接,不预留资源;不需要通信双方都是活跃;(例:寄信)
- 特点:不可靠、可能重复、可能失序
- IP分组,数据包;
- 适用范围:适合传送零星数据;
- 服务类型:
- 不可靠的数据报 电子方式的函件
- 有确认的数据报 挂号信
- 请求回答 信息查询
- 面向连接的服务(Connection-oriented Service)
3.服务和协议
- 服务与协议的区别
- 服务(Service):低层实体向上层实体提供它们之间的通信的能力,是通过原语(primitive)来操作的,垂直
- 协议(protocol):对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平
- 服务与协议的联系
- 本层协议的实现要靠下层提供的服务来实现
- 本层实体通过协议为上层提供更高级的服务
Internet协议栈:应用层——传输层——网络层——链路层——物理层
- 应用层:网络应用
- 为人类用户或者其他应用进程提供网络应用服务
- FTP,SMTP,HTTP,DNS
- 传输层:主机之间的数据传输
- 在网络层提供的端到端通信基础上,细分为进程到进程;TCP将IP提供的不可靠的通信变成可靠地通信
- TCP,UDP
- 网络层:为数据报从源到目的选择路由
- 主机主机之间的通信,端到端通信,不可靠
- IP,路由协议
- 链路层:相邻网络节点间的数据传输(从比特流确定一帧的开始和结束,以帧为单位进行传输)
- 相邻两点的通信,点到点通信,可靠或不可靠
- 点对点协议PPP,802.11(wifi),Ethernet
- 物理层:在线路上传送bit
ISO/OSI参考模型:应用层——表示层——会话层——传输层——网络层——链路层——物理层
- 表示层:允许应用解释传输的数据,e.g.,加密,压缩,机器相关的表示转换,应用层就只用关心语义上的信息,在TCP/IP协议栈中通过应用层自己实现。
- 会话层:数据交换的同步,检查点,恢复
- 互联网协议栈没有这两层!
- 这些服务,如果需要的话,必须被应用实现
链路层交换机主要用于组建局域网,而路由器则主要负责连接外网并寻找网络中最合适数据传输的路径。
最后需要说明的是:路由器一般都具有防火墙功能,能够对一些网络数据包选择性的进行过滤。现在的一些路由器都具备交换机的功能,也有具备路由器功能的交换机,称为三层交换机。相比较而言,路由器的功能较交换机要强大,但是速度也相对较慢,价格较为昂贵,而三层交换机既有交换机的线性转发报文的能力,又有路由器的路由功能,因此得到了广泛的应用。
各层次的协议数据单元(PDU)
- 应用层:报文(message)
- 传输层:报文段(segment):TCP段,UDP数据报
- 网络层:分组packet(如果无连接方式:数据报datagram)
- 数据链路层:帧(frame)
- 物理层:位(bit)