IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络<自顶向下方法>第一章计算机网络和因特网 -> 正文阅读

[网络协议]计算机网络<自顶向下方法>第一章计算机网络和因特网

1.1 什么是Internet?

从具体构成角度

  • 节点
    主机及其上运行的应用程序
    路由器、交换机等网络交换设备

  • 接入网链路:主机连接到互联网的链路
    主干链路:路由器间的链路
  • 协议:控制发送、接收消息
    如TCP、IP、HTTP、FTP、 PPP

协议(protocol)定义了在两个或多个通信实体之间交换的报文的格式和顺 序,以及报文发送和/或接收一条报文或其他事件所采取的动作

  • 数以亿及的,互联的计算设备
    主机 = 端系统
    运行网络应用程序
  • 通信链路
    光纤、同轴电缆、无线电、卫星
    传输速率 = 带宽(bps)
  • 分组交换设备:转发分组 (packets)
    路由器和交换机
  • Internet:“网络的网络”
    松散的层次结构,互连的ISP
    公共Internet vs. 专用intranet
  • Internet标准
    RFC: Request for comments
    IETF: Internet Engineering
    Task Force
    在这里插入图片描述
    在这里插入图片描述

1.2 网络边缘

  • 端系统(主机):
    运行应用程序
    如Web、email在 “网络的边缘”
  • 客户/服务器模式
    客户端向服务器请求、接收服务
    如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电话

1.3 网络核心

网络核心:路由器的网状网络

基本问题:数据怎样通过网络进行传输?

  • 电路交换:为每个呼叫预留一条专用电路:如电话网
  • 分组交换:
    将要传送的数据分成一个个单位分组
    将分组从一个路由器传送到相邻路由器(hop),一段段最近从源端传到目标端
    每段:采用链路的最大传输能力(带宽)

网络核心:电路交换

端到端的资源被分配给从源端到目标端的呼叫"call":
在这里插入图片描述

  • 图中,每段链路有4条线路:
    该呼叫采用了上面链路的第2个线路,右边链路的第1个线路(piece)
  • 独享资源:不同享
    每个呼叫一旦建立起来就能够保证性能
  • 如果呼叫没有数据发送,被分配的资源就会被浪费 (no sharing)
  • 通常被传统电话网络采用
    为呼叫预留端-端资源
  • 链路带宽、交换能力
  • 专用资源:不共享
  • 保证性能
  • 要求建立呼叫连接
    网络资源(如带宽)被分成片
  • 为呼叫分配片
  • 如果某个呼叫没有数据,
    则其资源片处于空闲状态(不共享)
    将带宽分成片
  • 频分(Frequencydivision multiplexing)
  • 时分(Time-divisionmultiplexing)
  • 波分(Wave-divisionmultiplexing)
    在这里插入图片描述

计算举例

在一个电路交换网络上,从主机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 的分组的存储转发延时: L/R s
    Example:
  • L = 7.5 Mbits
  • R = 1.5 Mbps
  • 3次存储转发的延时= 15 s

分组交换: 排队延迟和丢失

在这里插入图片描述

排队和延迟:
如果到达速率>链路的输出速率:

  • 分组将会排队,等待传输
  • 如果路由器的缓存用完了,分组将会被抛弃

网络核心的关键功能

路由:决定分组采用的源到目标的路径
路由算法
转发:将分组从路由器的输入链路转移到输出链路
在这里插入图片描述

分组交换:统计多路复用

在这里插入图片描述
A&B 时分复用 链路资源
A & B 分组没有固定的模式 -> 统计多路复用

分组交换 vs. 电路交换

  • 同样的网络资源,分组交换允许更多用户使用网络!

分组交换是“突发数据的胜利者?”

  • 适合于对突发式数据传输
    资源共享
    简单,不必建立呼叫
  • 过度使用会造成网络拥塞:分组延时和丢失
  • 对可靠地数据传输需要协议来约束:拥塞控制
  • Q: 怎样提供类似电路交换的服务?
    保证音频/视频应用需要的带宽
    一个仍未解决的问题(chapter 7)

Q: 预约服务(线路交换)对比按需服务(分组交换)的例子?

分组交换网络:存储-转发

  • 分组交换: 分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分成:
  1. 数据报网络:
  • 分组的目标地址决定下一跳
  • 在不同的阶段,路由可以改变
  • 类似:问路
  • Internent
  1. 虚电路网络:
  • 每个分组都带标签(虚电路标识 VC ID),标签决定下一跳
  • 在呼叫建立时决定路径,在整个呼叫中路径保持不变
  • 路由器维持每个呼叫的状态信息
  • X.25 和ATM

数据报(datagram) 的工作原理

? 在通信之前,无须建立起一个连接,有数据就传输
? 每一个分组都独立路由(路径不一样,可能会失序)
? 路由器根据分组的目标地址进行路由

网络分类

在这里插入图片描述

1.4 Internet结构和ISP

互联网结构:网络的网络

  • 端系统通过接入ISPs (Internet Service Providers)连接到互联网
    住宅,公司和大学的ISPs
  • 接入ISPs相应的必须是互联的
    因此任何2个端系统可相互发送分组到对方
  • 导致的“网络的网络”非常复杂
    发展和演化是通过经济的和国家的政策来驱动的
  • 让我们采用渐进方法来描述当前互联网的结构

问题来了:给定数百万接入ISPs,如何将它们互联到一起
在这里插入图片描述

  • 选项: 将每个接入ISP都连接到全局ISP(全局范围内覆盖)?客户ISPs和提供者ISPs有经济合约

  • 但是,如果全局ISP是可行的业务,那会有竞争者有利可图,一定会有竞争
    竞争:但如果全局ISP是有利可为的业务,那会有竞争者
    合作:通过ISP之间的合作可以完成业务的扩展,肯定会有互联,对等互联的结算关系

  • 然后业务会细分(全球接入和区域接入),区域网络将出
    现,用与将接入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

很多内容提供商(如:Google, Akamai )可能会部署自己的网络,连接自己的在各地的DC(数据中心),走自己的数据
连接若干local ISP和各级(包括一层)ISP,更加靠近用户

Internet结构:network of networks

  • 中心:第一层ISP(如UUNet, BBN/Genuity, Sprint,AT&T)国家/国际覆盖,速率极高
    直接与其他第一层ISP相连
    与大量的第二层ISP和其他客户网络相连

  • 第二层ISP: 更小些的 (通常是区域性的) ISP
    与一个或多个第一层ISPs,也可能与其他第二层ISP

  • 第三层ISP与其他本地ISP
    接入网 (与端系统最近)
    一个分组要经过很多很多的网络
    在这里插入图片描述

  • POP: 高层ISP面向客户网络的接入点,涉及费用结算 ? 如一个低层ISP接入多个高层ISP,多宿(multi home)

  • 对等接入:2个ISP对等互接,不涉及费用结算

  • IXP:多个对等ISP互联互通之处,通常不涉及费用结算 ? 对等接入

  • ICP自己部署专用网络,同时和各级ISP连接
    在这里插入图片描述

1.5 分组延迟,丢失和吞吐量

分组丢失和延时是怎样发生的?

在路由器缓冲器的分组队列

  • 分组到达链路的速率超过了链路的能力
  • 分组等待排到头,被传输

四种分组延时

1.节点处理延时:

  • 检查bit级错误
  • 检查分组首部和决定将分组导向何处

2. 排队延迟

  • 在输出链路上等待传输的时间
  • 依赖于路由器的拥塞成都

3. 传输延时:

  • R=链路带宽(bps)
  • L=分组长度(bits)
  • 将分组发送到链路上的时间= L/R
  • 存储转发延时

4. 传播延时:

  • d = 物理链路的长度
  • s = 在媒体上的传播速度(~2x108 m/sec)
  • 传播延时 = d/s

分组丢失

  • 链路的队列缓冲区容量有限
  • 当分组到达一个满的队列时,该分组将会丢失
  • 丢失的分组可能会被前一个节点或源端系统重传,或根本不重传

吞吐量

吞吐量: 在源端和目标端之间传输的速率(数据量/单位时间)

  • 瞬间吞吐量: 在一个时间点的速率
  • 平均吞吐量: 在一个长时间内平均值

1.6 协议层次及服务模型

协议层次

网络是一个复杂的系统!

  • 网络功能繁杂:数字信号的物理信号承载、点到点、路由、rdt、进
    程区分、应用等
  • 现实来看,网络的许多构成元素和设备:
    主机
    路由器
    各种媒体的链路
    应用
    协议
    硬件, 软件

层次化方式实现复杂网络功能

  • 将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务
  • 本层协议实体相互交互执行本层的协议动作,目的是实现本层功能,
    通过接口为上层提供更好的服务
  • 在实现本层协议的时候,直接利用了下层所提供的服务
  • 本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的)+更下层所提供的服务

服务和服务访问点

  • 服务( Service):低层实体向上层实体提供它们之间的
    通信的能力
    服务用户(service user)
    服务提供者(service provider )
  • 原语(primitive):上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的—形式
  • 服务访问点 SAP (Services Access Point) :上层
    使用下层提供的服务通过层间的接口—地点;
    例子:邮箱
    地址(address):下层的一个实体支撑着上层的多个实体,
    SAP有标志不同上层实体的作用
    可以有不同的实现,队列
    例子:传输层的SAP: 端口(port)

服务的类型

面向连接的服务( Connection-oriented Service)

  • 连接(Connection):两个通信实体为进行通信而建立的一
    种结合
  • 面向连接的服务通信的过程:建立连接,通信,拆除连接
  • 面向连接的服务的例子:网络层的连接被成为虚电路
  • 适用范围:对于大的数据块要传输; 不适合小的零星报文
  • 特点:保序
  • 服务类型:
    可靠的信息流 传送页面(可靠的获得,通过接收方的确认)
    可靠的字节流 远程登录
    不可靠的连接 数字化声音

无连接的服务(Connectionless Service)

  • 无连接服务:两个对等层实体在通信前不需要建立一个连接,不预留资源;不需要通信双方都是活跃;(例:寄信)
  • 特点:不可靠、可能重复、可能失序
  • IP分组,数据包;
  • 适用范围:适合传送零星数据;
  • 服务类型:
    不可靠的数据报 电子方式的函件
    有确认的数据报 挂号信
    请求回答 信息查询

服务和协议

  • 服务与协议的区别
    服务(Service):低层实体向上层实体提供它们之间的通信的能力,是通过原语(primitive)来操作的,垂直
    协议(protocol) :对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平
  • 服务与协议的联系
    本层协议的实现要靠下层提供的服务来实现
    本层实体通过协议为上层提供更高级的服务

分层处理和实现复杂系统的好处?

对付复杂的系统

  • 概念化:结构清晰,便于标示网络组件,以及描述其相互关系
    ? 分层参考模型
  • 结构化:模块化更易于维护和系统升级
    改变某一层服务的实现不影响系统中的其他层次
    ? 对于其他层次而言是透明的
  • 分层思想被认为有害的地方?他是利大于弊的

Internet 协议栈

  • 应用层: 网络应用
    为人类用户或者其他应用进程提供网络应用服务
    FTP, SMTP, HTTP,DNS
  • 传输层: 主机之间的数据传输
    在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠地通信
    TCP, UDP
  • 网络层: 为数据报从源到目的选择路由
    主机主机之间的通信,端到端通信,不可靠
    IP, 路由协议
  • 链路层: 相邻网络节点间的数据传输
    2个相邻2点的通信,点到点通信,可靠或不可靠
    点对对协议PPP, 802.11(wifi), Ethernet
  • 物理层: 在线路上传送bit

ISO/OSI 参考模型

  • 表示层: 允许应用解释传输的数据, e.g., 加密,压缩,机
    器相关的表示转换
  • 会话层: 数据交换的同步,检查点,恢复
  • 互联网协议栈没有这两层!
  • 这些服务,如果需要的话,必须被应用实现

在这里插入图片描述

各层次的协议数据单元

  • 应用层:报文(message)
  • 传输层:报文段(segment):TCP段,UDP数据报
  • 网络层:分组packet(如果无连接方式:数据报datagram)
  • 数据链路层:帧(frame)
  • 物理层:位(bit)
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:51:07  更:2021-07-24 11:52:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 6:54:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码