点击返回博客主目录
点击返回计算机网络知识框图
计算机网络概述
1.计算机网络概述
1.1 什么是Internet?
1.1.1 什么是Internet:从具体构成角度
- 网络:节点和边
- 计算机网络:联网的计算机构成的系统,主机节点(数据的源或目标),数据交换节点(路由器或者交换机,中继器,负载均衡设备,转发数据)路由器网络层,交换机工作在数据链路层,把节点连接在一起的叫做链路。边:主机到交换机 接入网 方到圆 路由器到路由器 backbone 骨干链路 圆到圆 协议:各层协议 对等层
- 互联网:以TCP和IP为主的一簇协议,由这些协议支撑起的网络 是计算机网络的一种
- intranet 企业网/内联网
- 数以亿计的、互联的计算设备:主机 端系统 网络程序 end host system switch 交换机 route
- 通信链路
- 对等的实体在通信的过程中需要遵循的规则的集合叫做协议
- 协议可以分为不同的协议
- Internet标准:
- RFC:Request for comments
- IETF:Internet Engineering Task Force
什么是协议?
PDU : message
语义语法时序动作
1.1.2 什么是Internet:从服务角度
- 分布式的应用进程
- 网络存在的理由
- 基础设施向进程提供服务
- 主机应用层以下的所有应用实体
- 所有网络的部分
- 为app应用提供服务选择,类似于邮政服务:
- 面向连接的可靠服务
- 无连接不可靠服务
1.2 网络边缘
1.2.1 网络结构
- 网络边缘:
- 主机
- 应用程序
- 网络核心:
- 互联着的路由器
- 网络的网路
- 大的网络交换系统
- 数据交换
- 全球范围内、几十亿个设备
- 接入网、物理媒体:
- 有线或者无线通信链路
1.2.1 网络边缘
- 客户/服务器模式
- 客户端
- 链路扩容,宕机损失很大
- 可扩展性比较差
- 可靠性问题
- P2P模式 Peer-peer模式,对等模式
- 很少(甚至没有)专门的服务器
- 如Gnutella、KaZaA、Emule
- 迅雷、电驴
- 客户端向其他客户端请求文件片段,自己的片段也可以向别的客户端提供
1.2.2 网络边缘:采用网络设施的面向连接服务
- 目标:在端系统之间传输数据
- 握手:在数据传输之前做好准备
- 人类协议中:你好、你好
- 两个通信主机之间为连接建立状态
- TCP-传输控制协议(Transmission Control Protocol)
- Internet上面向连接的服务
- 握手:在数据传输之前做好准备
- TCP服务[RFC 793]
- 只有端系统知道,两个端
- 可靠性、按顺序地传送数据 TCP自己努力
- 确认和重传
- 流量控制
- 发送方不会淹没接收方
- 拥塞控制
- 当网络路径拥塞时,发送方降低发送速率
1.2.3 网络边缘:采用基础设施的无连接服务
- 目标:在端系统之间传输数据
- 无连接服务
- UDP-用户数据报协议(User Datagram Protocol)[RFC 768]
- 无连接
- 不可靠数据传输
- 无流量控制
- 无拥塞控制
- 使用TCP的应用:
- HTTP(Web),FTP(文件传送),Telnet(远程登录),SMTP(email)
- 使用UDP的应用:
- 流媒体、远程会议、DNS、Internet电话
1.3 网络核心
- 网络核心:路由器的网状网络
- 基本问题:数据怎样通过网络进行传输?
- 电路交换:为每个呼叫预留一条专有电路:如电话网
- 分组交换:
- 将要传送的数据分成一个个单位:分组
- 将分组从一个路由器到相邻路由器(hop),一段段最终从源端传到目标端
- 每段:采用链路的最大传输能力(带宽)
1.3.1 网络核心:电路交换
端到端的资源被分配给从源端到目标端的呼叫“call”:
- 图中,每段链路有4条线路:
- 该呼叫采用了上面链路的第二个线路,右边链路的第一个线路
- 独享资源:不共享
- 每个呼叫一旦建立起来就能够保证性能
- 如果呼叫没有数据发送,被分配的资源就会被浪费(no sharing)
- 通常被传统电话网络采用
- 为呼叫预留端-端资源
- 链路带宽、交换能力
- 专用资源:不共享
- 保证性能
- 要求建立呼叫连接
- 网络资源(如带宽)被分成片
- 为呼叫分配片
- 如果某个呼叫没有数据,则其资源片处于空闲状态(不共享)
- 将带宽分成片
- 频分(Frequency-division multiplexing)
- 时分(Time-division multiplexing)
- 波分(Wave-division multiplexing) 光纤通信
- 电路交换不适合计算机之间的通信
- 连接建立时间长
- 计算机之间的通信有突发性,如果使用线路交换,则浪费的片比较多
- 即使这个呼叫没有数据传递,其所占据的片也不能够被别的呼叫使用
- 可靠性不高?piece的map维护
1.3.2 网络核心:分组交换
- 以分组为单位存储-转发方式 packet piece
- 网络带宽资源不再分为一个个片,传输时使用全部带宽
- 主机之间传输的数据被分为一个个分组
- 资源共享,按需使用:
- 存储-转发:分组每次移动一跳(hop)
- 在转发之前,节点必须收到整个分组
- 延迟比线路交换要大
- 排队时间 排队时延
- 存储-转发:分组每次移动一跳(hop)
- 分组交换:存储-转发
- 被传输到下一个链路之前,整个分组必须到达路由器:存储-转发
- 在一个速率为Rbps的链路,一个长度为Lbits的分组的存储转发延时:L/Rs
- Example:
- L = 7.5Mbits
- R = 1.5Mbps
- 3次存储转发的延时 = 15s
1.3.3 分组交换:排队延迟和丢失
排队和延迟:
- 如果到达速率>链路的输出速率
- 分组将会排队,等待传输
- 如果路由器的缓存用完了,分组将会被抛弃
1.3.4 网络核心的关键功能
- 路由:决定分组采用的源到目标的路径
- 路由算法 路由实体算出来
- 转发:将分组从路由器的输入电路转移到输出链路
1.3.5 分组交换:统计多路复用
A&B时分复用 链路资源
A & B 分组没有固定的模式->统计多路复用
1.3.6 分组交换VS电路交换
分组交换允许更多用户使用网络!
- 1Mb/s链路
- 每个用户:
- 活动时100kb/s
- 10%的时间是活动的
- 电路交换:
- 10用户
- 分组交换:
- 35用户时
-
=10个用户活动的概率为0.0004
1.3.7 分组交换网络:存储-转发
分组交换:分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分成:
- 1.数据报网络:
- 分组的目标地址决定下一跳
- 在不同的阶段,路由可以改变
- 类似:问路
- Internent
- 2.虚电路网络
- 每个分组都带标签
1.3.8 数据报的工作原理
- 在通信之前,无须建立起一个连接,有数据就传输
- 每一个分组都独立路由(路径不一样,可能会失序)
- 路由器根据分组的目标地址进行路由
1.3.9 虚电路的工作原理
1.4 接入网和物理媒体
1.4.1 怎样将端系统和边缘路由器连接?
- 住宅接入网络
- 单位接入网络(学校、公司)
- 无线接入网络
注意: - 接入网络的带宽(bits per second)?
- 共享/专用?
1.4.2 住宅接入:modem
- 将上网数据调制加载音频信号上,在电话线上传输,在局端将其中的数据解调出来;反之亦然
- 调频
- 调幅
- 调相位
- 综合调制
- 拨号调制解调器
- 56Kbps的速录直接接入路由器(通常更低)
- 不能同时上网和打电话:不能总是在线
1.4.3 接入网:digital subseriber line(DSL)
1.4.4 接入网:线缆网络
有线电视信号线缆双向改造
FDM:在不同频段传输不同信道的数据,数字电视和上网数据(上下行)
1.4.5 企业接入网络(Ethernet)
- 经常被企业或者大学等机构采用
- 10Mbps,100Mbps,1Gbps,10Gbps传输率
- 现在,端系统经常直接街道以太网络交换机上
1.4.6 无线接入网络
各无线端系统共享无线接入网络(端系统到无线路由器)
通过基站或者叫接入点
- 无线LANs:
- 建筑物内部(100ft)
- 802.11b/g(WiFi):11.54Mbps传输速率
- 广域无线接入:
- 由电信运营商提供(cellular),10s km
- 1到10Mbps
- 3G,4G;LTE
1.5 Internet结构/ISP
1.5.1 互联网络结构:网络的网络
- 端系统通过接入ISPs(Internet Service Providers)连接到互联网
- 住宅,公司和大学的ISPs
- 接入ISPs相应的必须是互联的
- 因此任何2各端系统可相互发送分组到对方
- 导致的“网络的网络”非常复杂
- 发展和演化是通过经济的和国家的政策来驱动的
- 让我们采用渐进方法来描述当前互联网的结构
- 问题:给定数百万接入ISPs,如何将它们互联到一起
- 选项:将每个接入ISP都连接到全局ISP(全局范围内覆盖)?客户ISPs和提供者ISPs有经济合约
- 但是,如果全局ISP是可行的业务,那会有竞争者,有利可图,一定会有竞争
- 竞争:但如果去那句ISP是有利可图的业务,那会有竞争者
- 合作:通过ISP之间的合作可以完成业务的扩展,肯定会有互联,对等互联的结算关系
- 然后业务会细分(全球接入和区域接入),区域网络将出现,用与将接入ISPs连接到全局ISPs
- 然后内容提供商网络可能会构建它们自己的网络,将它们的服务、内容更加靠近端用户,向用户提供更好的服务,减少自己的运营支出ICP
1.5.2 Internet结构:network of networks
- 松散的层次模型
- 中心:第一层ISP(如UUNet,BBN/Genuity,Sprint,AT&T)国家/国际覆盖,速率极高
- 直接与其他第一层ISP相连
- 与大量的第二层ISP和其他客户网络相连
- 第二层ISP:更小些的(通常是区域性的)ISP
- 与一个或多个第一层ISPs,也可能与其他第二层ISP
1.6 分组延时、丢失和吞吐量
1.6.1 分组丢失和延时是怎样发生的?
在路由器缓冲区的分组队列
- 分组到达链路的速率超过了链路输出的能力
- 分组等待排到队头、被传输
1.6.2 四种分组延时
- 1.节点处理延时:
- 检查bit级差错
- 检查分组首部和决定将分组导向何处
- 2.排队延时:
- 在输出链路上等待传输的时间
- 依赖于路由器的拥塞程度
- 3.传输延时:
- R=链路带宽(bps)
- L=分组长度(bits)
- 将分组发送到链路上的时间=L/R
- 存储转发延时
- 4.传播延时
- d=物理链路的长度
- s=在媒体上的传播速录(~2*10^8m/sec)
- 传播延时 = d/s
1.6.3 节点延时
dnodal = dproc + dqueue + dtrans + dprop
- dproc = 处理延时
- 通常是微妙数量级或者更少
- dqueue = 排队延时
- 取决于拥塞程度
- dtrans = 传输延时
- =L/R,对低速率的链路而言很大(如拨号),通常为微妙级到毫秒级
- dprop = 传播延时
- 几微秒到几百毫秒
1.6.4 排队延时
- R=链路带宽(bps)
- L=分组长度(bits)
- a=分组到达队列的平均速率
流量强度 = La / R - La/R ~ 0:平均排队延时很小
- La/R -> 1:延时变得很大
- La/R > 1:比特到达队列的速度超过了从该队列输出的速率,平均排队延时将趋向无穷大!
设计系统时流量强度不能大于1!
1.6.5 Internet的延时和路由
- Internet的延时和路由是什么样的呢?
- Traceroute诊断程序:提供从源端,经过路由器,到目的的延时测试
- For all:
- 沿着目的的路径,向每个路由器发送3个探测分组
- 路由器i将向发送方返回一个分组
- 发送方对发送和回复之间间隔计时
- For all:
1.6.6 ICMP
TTL:生成时间
1.6.7 关于traceroute
- 在Window系统下
- Tracerert hostname
- 如Tracerert www.gucas.ac.cn
- 更完整的例子
- tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name
- 详见帮助
- http://www.linkwan.com/gb/broadmeter/article/trace-help.htm
- Tracerert hostname
- 测试网址
- www.traceroute.org
- www.linkwan.com
1.6.8 分组丢失
- 链路的队列缓冲区容量有限
- 当分组到达一个满的队列时,该分组将会丢失
- 丢失的分组可能会被前一个节点或源端系统重传,或根本不重传
1.6.9 吞吐量
- 吞吐量:在源端和目标端之间传输的速率(数据量/单位时间)
- 瞬间吞吐量:在一个时间点的速率
- 平均吞吐量:在一个长时间内平均值
- RS < RC 端到端平均吞吐是多少?
- RS
- 瓶颈链路:端到端路径上,限制端到端吞吐的链路
1.6.10 吞吐量:互联网场景
- 链路上的每一段实际可用带宽Ri = ?
- 端到端吞吐量:min{R1,…}
- 每个连接上的端到端吞吐min(Rc,Rs,R/10)
- 实际上:Rc或者Rs经常是瓶颈
1.7 协议层次及服务模型
1.7.1 协议层次
网络是一个复杂的系统!
- 网络功能繁杂:数字信号的物理信号承载、点到点、路由、rdt、进程区分、应用等
现实来看,网络的许多构成元素和设备: - 主机
- 路由器
- 各种媒体的链路
- 应用
- 协议
- 硬件,软件
问题是:如何组织和实现这个复杂的网络功能?
1.7.2 现实生活中的例子:航线系统
- 票务(购买) 票务(投诉)
- 行李(托运) 行李(认领)
- 登机口(登机) 登机口(离机)
- 从跑道起飞 从跑道着陆
- 从航线飞行 按航线飞行 按航线飞行
1.7.3 航线的功能层次
层次化方式实现复杂网络功能:
- 将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务
- 本层协议实体相互交互执行本层的协议动作,目的是实现本层功能,通过接口为上层提供更好的服务
- 在实现本层协议的时候,直接利用了下层所提供的服务
- 本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的)+更下层所提供的服务
1.7.4 服务和服务访问点
- 服务(Service):低层实体向上层实体提供它们之间通信的能力
- 服务用户(service user)
- 服务提供者(service provider)
- 原语(primitive):上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的—形式
- 服务访问点SAP(Services Access Point):上层使用下层提供的服务通过层间的接口—地点:
- 例子:邮箱
- 地址(address):下层的一个实体支撑着上层的多个实体。SAP有标志不同上层实体的作用
- 可以有不同的实现,队列
- 例子:传输层的SAP,端口(port)
1.7.5 服务的类型
- 面向连接的服务和无连接的服务-方式
- 面向连接的服务(Connection-oriented Service)
- 连接(Connection):两个通信实体为进行通信而建立的一种集合
- 面向连接的服务通信的过程:建立连接,通信,拆除连接
- 面向连接的服务的例子:网络层的连接被成为虚电路
- 适用范围:对于大的数据块要传输,不合适小的零星报文
- 特点:保序
- 服务类型:
- 可靠的信息流,传送页面(可靠的通过接收方的确认)
- 可靠的字节流 远程登录
- 不可靠的连接 数字化声音
- 无连接的服务(Connectionless Service)
- 无连接服务:两个对等层实体在通信前不需要建立一个连接,不预留资源;不需要通向双方都是活跃;(例:寄信)
- 特点:不可靠、可能重复、可能失序
- IP分组,数据包
- 适用范围:适合传送零星数据
- 服务类型:
- 不可靠的数据报 电子方式的函件
- 有确认的数据包 挂号信
- 请求回答 信息查询
- 面向连接的服务(Connection-oriented Service)
1.7.6 服务和协议
- 服务和协议的区别
- 服务(Service):低层实体向上层实体提供它们之间的通信的能力,是通过原语(primitive)来操作的,垂直
- 协议(protocol):对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平
- 服务与协议的联系
- 本层协议的实现要靠下层提供的服务来实现
- 本层实体通过协议为上层提供更高级的服务
1.7.7 数据单元(DU)
SAP=Service Access Point
IDU=Interfacce Data Unit
SDU=Service Data Unit
PDU=Protocol Data Unit
ICI=Interface Control Information
1.7.8 分层处理和实现复杂系统的好处?
对付复杂的系统
- 概念化:结构清晰,便于标示网络组件,以及描述其相互关系
- 分层参考模型
- 结构化:模块化更易于维护和系统升级
- 改变某一层服务的实现不影响系统中的其他层次
- 对于其他层次而言是透明的
- 如改变登机程序并不影响系统的其他部分
- 改变2个秘书使用的通信方式不影响2个翻译的工作
- 改变2个翻译使用的语言也不影响上下2个层次的工作
- 改变某一层服务的实现不影响系统中的其他层次
- 分层思想被认为有害的地方?
- 效率低
1.7.9 Internet协议栈
- 应用层:网络应用
- 为人类用户或者其他应用进程提供网络应用服务
- FTP,SMTP,HTTP,DNS
- 传输层:主机之间的数据传输
- 在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠的通信
- TCP,UDP
- 网络层:为数据报从源到目的选择路由
- 主机主机之间的通信,端到端通信,不可靠
- IP,路由协议
- 链路层:相邻网络节点间的数据传输
- 2个相邻2点的通信,点到点通信,可靠或不可靠
- 点对点协议PPP,802.11(wifi),Ethernet
- 物理层:在线路上传送bit
1.7.10 ISO/OSI 参考模型
- 表示层:允许应用解释传输的数据,e.g.,加密,压缩,机器相关的表示转换
- 会话层:数据交换的同步,检查点,恢复
- 互联网协议栈没有这两层!
- 这些服务,如果需要的话,必须被应用实现
- 需要吗?
1.7.11 封装和解封装
1.7.12 各层次的协议数据单元
- 应用层:报文(message)
- 传输层:报文段(segment):TCP端,UDP数据报
- 网络层:分组packet(如果无连接方式:数据报datagram)
- 数据链路层:帧(frame)
- 物理层:位(bit)
1.8 历史
1.8.1 早期(1960以前)计算机网络
- 线路交换网络
- 线路交换的特性使得其不适合计算机之间的通信
- 线路建立时间过长
- 独享方式占用通信资源,不适合突发性很强的计算机之间的通信
- 可靠性不高:非常不适合军事通信
- 三个小组独立地开展分组交换的研究
- 1961:Kleinrock(MIT),排队论,展现了分组交换的有效性
- 1964:Baran(美国兰德公司)-军用网络上的分组交换
- 1964:Donald(英国)等,NPL
1.8.2 Internet历史 1961-1972:早期的分组交换概念
- 1967:美国高级研究计划研究局考虑ARP Anet
- Kleinrock在MIT的同事
- 1969:第一个ARP Anet节点开始工作,UCLA
- IMP:接口报文处理机
- 1969年底:4个节点
- 1972
- ARP Anet 公众演示
- 网络控制协议是第一个端系统直接的主机-主机协议
- NCP协议:相当于传输层和网络层在一起,支持应用开发
- 第一个e-mail程序(BBN)
- ARP Anet有15个节点
1.8.3 Internet历史 1972-1980:专用网络和网络互联
- 出现了很多对以后来说重要的网络形式,雨后春笋
- 1970:ALOHAnet,夏威夷上的微波网络
- 1973:Metcalfe在博士论文中提出了Ethernet
- ATM网络
- ALOHAnet,Telenet,Cyclades法国等
- 1970后期,网络体系结构的必要性
- 专用的体系结构:DECnet,SNA,XNA
- 标准化的体系结构
- 1974:网际互联的Cerf and Kahn体系结构
- Cerf and Kahn 网络互联原则
- 极简、自治
- 尽力而为(best effort)
- 无状态的路由器
- 分布控制
- 定义了今天的Internet体系结构
- Cerf and Kahn 网络互联原则
- 1979:ARPNet的规模在持续增加,体系结构也在酝酿着变化,以支持网络互联和其他目的(性能)需求
- 节点数目增加,有200个节点
1.8.4 Internet历史 1980-1990:体系结构变化,网络数量激增,应用丰富
- 1983:TCP/IP部署,标记日
- NCP分化成2个层次,TCP/IP,从而出现UDP
- 覆盖式IP解决网络互联问题
- 主机设备和网络交换设备分开
- 1982:smtp e-mail协议定义
- 1983:DNS定义,完成域名到IP地址的转换
- 1985:ftp协议定义
- 1988:TCP拥塞控制
- 其他网络形式的发展
- 新的国家级网络:Csnet,BITnet,NSFnet,Minitel
- 1985年:ISO/OSI提出,时机不对且太繁琐,
- 100000主机连接到网络联邦
1.8.5 Internet历史 1990,2000’s:商业化,Web,新的应用
- 1990年代初:NSF对ARP Anet 的访问网,双主干,ARPAnet退役
- 1991:NSF放宽了对NSFnet用于商业目的的限制(1995退役),ASFNET非盈利性机构维护,后面叫Internet
- UNIX中TCP/IP的免费捆绑
- 1990年代初:Web
- hypertext [Bush 1945,Nelson 1960’s]
- HTML,HTTP:Berners-Lee
- 1994:Mosaic(Netscape,andreesen)
- 1990年代后期:Web的商业化
- 1990后期-21世纪
- TCP/IP体系结构的包容性,在其上部署应用便捷,出现非常多的应用
- 新一代杀手级应用(即时讯息,P2P文件共享,社交网络等)更进一步促进互联网的发展
- 安全问题不断出现和修订(互联网的补丁政策)
- 2001网络泡沫,使得一些好公司沉淀下来(谷歌,微软,苹果,Yahoo,思科)
- 主干网的速率达到Gbps
1.8.6 互联网历史 2005-现在
- 50+亿主机:包括智能手机和平板
- 宽带接入的快速部署
- 高速网线接入无处不在:移动互联时代
- 4G部署,5G蓄势待发
- 带宽大,终端性能高,价格便宜,应用不断增多
- 在线社交网络等新型应用的出现:
- Facebook:10亿用户
- 微信,qq:数十亿用户
- 内容提供商(Google,Microsoft)创建他们自己的网络
- 通过自己的专用网络提供对搜索、视频内容和电子邮件的即刻访问
- 电子商务,大学,企业在云中运行他们的服务(eg, Amazon EC2)
- 体系结构酝酿着大的变化,未来网络蠢蠢欲动
1.9 小结
- Internet
- 什么是协议
- 网络边缘,核心,接入网络
- 分组交换VS电路交换
- Internet/ISP结构
- 性能:丢失,延时,吞吐量
- 层次模型和服务模型
- 历史
1.9.1 小结1
- 组成角度看 什么是互联网
- 边缘:端系统(包括应用)+接入网
- 核心:网络交换设备+通信链路
- 协议:对等层实体通信过程中遵守的规则的集合
- 语法,语义,时序
- 为了实现复杂的网络功能,采用分层方式设计、实现和调试
- 应用层,传输层,网络层,数据链路层,物理层
- 协议数据单位:
- 报文,报文段,分组,帧,位
- 从服务角度看互联网
- 通信服务基础设施
- 提供的通信服务:面向连接 无连接
- 应用
- 通信服务基础设施
- 应用之间的交互
- C/S模式
- P2P模式
1.9.2 小结2
- 数据交换
- 分组数据交换
- 线路交换
- 比较线路交换和分组交换
- 分组交换的2中方式
- 虚电路
- 数据报
- 接入网和物理媒介
- 接入网技术
- 住宅:ADSL,拨号,cable modem
- 单位:以太网
- 无线接入方式
- 物理媒介
- 光纤,同轴电缆,以太网,双绞线
- 接入网技术
- ISP层次结构
1.9.3 小结3
- 分组交换网络中延迟和丢失是如何发生的
- 延迟的组成:处理、传输、传播、排队
- 网络的分层体系结构
- 分层体系结构
- 服务
- 协议数据单元
- 封装与解封装
- 历史