计算机网络组成复习笔记

      最后更新:2022-06-21 04:26

      第一章-计算机网络和互联网

      在这里插入图片描述

      Internet

      互联网的特殊组成

      数十亿的计算机连接器:

      主机 = 最后系统

      运行网络应用程序

      包交换设备:

      链接:

      fiber, copper, radio, satellite

      传输速率=带宽

      网络:

      由组织管理的设备、路由器、开关和链

      互联网服务说明

      提供网络应用基础设施

      允许分布式应用程序在终端系统上运行并互相交换数据:

      ​ Web, email, games, e-commerce, database, VOIP, P2P file sharing

      为分布式应用程序提供通信服务接口

      • 未连接服务
      • 面向连接
      • 没有数据传输时间保证(从发送者到接收者)服务

      协议

      协议:定义两个或多个通信实体之间交换的讯息的格式和顺序,以及与发送和/或接收讯息或其他事件有关的行动。

      **协议的基本要素:**语法、语义和同步

      网络核心部分

      在这里插入图片描述

      虚拟电路网络必须面向连接。

      **数据报告网络可以提供面向连接服务或提供不连接服务。**例如,互联网为网络应用提供面向连接的传输服务(TCP)和不连接的传输服务(UDP)。

      电路交换:

      每个会议保留其路径(线)-电话网络所需的专属资源

      (一)预设连接,预备资源,以固定的速度发送数据

      (二)电路与通信链之间的差异

      在这里插入图片描述

      链路带宽与电路传输率的关系

      创建两个主机A和B之间一个特殊的端到端连接,每个接口都占有每个链路中的一个电路;

      连接获得1/的带宽n,进行通信

      发送文件时间=创建电路时间+文件传输时间

      文件传输时间:文件长度/电路传输速率

      每个电路的传输速率:链路/时间差数的传输速率

      ​ (1.536M b/s) / 24 = 64kb/s

      文件传输时间:640kb/(64kb/s)=10s

      从A到B的发送总时间是0.5s + 10s = 10.5s

      (五)电路交换的优点和缺点:电路水平的性能,低时间延迟;低效率;复杂连接过程的建立

      分组交换:

      数据通过网络由离散的数据块发送

      (一)报告:申请所应递交的资料,包括控制或数据

      报告分成几个数据块,每个数据块都由标题信息组成。

      特点:每个分支使用链路的所有带宽;传输过程使用存储传输;队列延迟和分支损失;传输发布和路由选择协议

      (一)报告第一部分(二)通过路由器存储(三)在目的地合并的分组

      分组交换网络中延迟、损失和负载

      在这里插入图片描述

      分组到达产出链的速率超过产出链的能力,造成延误甚至损失

      在缓冲区排队并按顺序等待

      有四个类型的团体延迟:

      (1)节点处理时间延迟:误差检测,输出链选择,微秒级

      (2)队列延迟:路由器的拥挤程度

      (3)传输延迟:L/R

      (4)传播时间延迟:d/s,卫星250ms

      在这里插入图片描述

      分组丢失

      •路由器输入和输出链的缓冲区容量有限

      •当一个子组进入路由器输入链路,缓冲器被填满时,路由器必须丢弃子组

      •当一个子集将被转移到路由器内部的输出链路中,并且输出缓冲区队列被填满时,路由器必须丢弃子集

      •丢失的子集可以由前端节点、源点或没有的节点重新传输

      吞吐量

      接收器接收数据的比特率(bps),吞吐量为: min{Rs,Rc}

      协议层及其服务模型

      在这里插入图片描述

      • 实体指任何能够发送或接收信息的硬件或软件过程。
      • 相等层: 网络架构中的层,两个通信实现相同的功能.
      • 协议(英语:Protocol)是一套控制两个相同的实体通信的规则。
      • **客户与服务器**指与通信有关的两个应用程序过程。 客户是服务的请求者,服务器是服务的提供者。
      • 每个层的主要功能通过运行等效层协议实现,每个层可以由多个主要协议代表,而多个层可以像堆栈一样结合起来。
      • 协议数据单元: 数据单元用于与同等实体交换信息.
      • **服务访问点: **与同一系统内相邻的两层实体交互。

      协议和服务的的区分

      (一)本协议的实施确保该服务能够在更高层次提供。 该层次的服务使用者只能看到该服务,并不能看到以下协议。

      (2)协议是“水平”的,即协议是控制两个相同实体的通信的规则,但服务是“垂直”的,即服务由底部通过层接口向顶部提供。

      因特网分层模型

      (1)应用层:网络应用和应用层协议(网络应用[HTTP]、电子邮件[SMTP]、文件传输[FTP]);交换分组(消息);

      (2)传输层:应用端口之间传输应用层信息(TCP [Connection-oriented, Reliable Transportation, Flow Control, Congestion Control], UDP);没有时间保证;传输层分节(报告节)。

      (3)网络层:从一个主机传输一个网络层子集(数据消息)到另一个主机(网络协议IP,路由选择协议)。

      (4)链层:从一个节点(主机或路由器)转移一个子集(帧)到另一个节点(可靠的传输,不同的链路 [ 以太网 、 Wifi 、 电缆 ], 不同的协议, 广播链路和点到点链路)

      (5)物理层:将数据帧从一个节点移动到另一个节点(协议与传输介质有关)。

      各体系结构图

      在这里插入图片描述

      ISO/OSI RM:

      显示层:允许应用程序解释数据的意义,实现数据格式转换,数据压缩和解密等。

      对话层: 管理数据传输, 包括数据交换边界 、 同步 、 建立检查点等.

      在这里插入图片描述

      第2章-应用层

      在这里插入图片描述

      套接字

      一个接口也称为应用程序编程接口API

      用户通过API控制传输层仅限于:

      • 选择传输协议
      • 设定几个参数

      该过程通过其接口通过网络发送和接收消息

      HTTP协议

      HTTP(超文本传输协议)

      客户端/服务器模式

      客户端:浏览器请求,接收,“解释显示”网页对象

      服务器:响应请求的Web服务器,发送一个Web对象

      响应时间模型

      轮流时间:一个子集所花费的从客户端主机到服务器和回到客户端主机的时间。

      HTTP响应时间(每个对象):

      1RTT建立TCP连接

      1RTT用于HTTP请求/答复消息交互

      对象/文件传输时间

      三次握手

      TCP连接的“三手”过程:

      客户端发送TCP连接请求消息

      服务器返回一个TCP确认响应消息

      客户端向服务器发送包含HTTP请求和TCP确认的消息

      在这里插入图片描述

      HTTP报文结构

      初始行:用于区分请求和响应。

      请求消息中的开始行称为请求行;

      响应消息中的开始行称为状态行;

      第一个三行分别由空间分隔,最后的“CR”和“LF”分别代表“返回”和“替换”。

      Cookie

      HTTP协议本身是无状态的,通常使用 cookie-added数据库方法跟踪用户的行为

      1. 在HTTP请求和响应消息中可以找到“cookie header”行
      2. Cookie文件存储在用户主机上并由用户浏览器管理,Cookie也存储在网站的后端数据库中

      电子邮件

      3个主要组成部分:

      • 用户代理:允许用户阅读、回答、发送、保存和编辑邮件的邮件阅读器

      • 邮件服务器邮件服务器:发送/接收在服务器上存储的邮件

      • 简单的邮件传输协议SMTP:通过SMTP协议发送邮件到邮件服务器之间

        • "用户":发送邮件服务器

        • "服务器":收到邮件服务器

      在这里插入图片描述

      邮件访问协议

      在这里插入图片描述

      用户代理使用SMTP将邮件推到其邮件服务器上。邮件服务器然后使用SMTP将邮件转移到接收者的邮件服务器上。

      接收者通过用户代理从他们的邮件服务器中获取邮件(POP, IMAP, HTTP)

      与HTTP的比较:

      HTTP: 拉协议

      用户使用HTTP来从服务器中提取信息,其TCP连接由想要获取文件的机器启动。

      SMTP:推协议

      发送邮件服务器将文件推向接收邮件服务器,该服务器的TCP连接由机器启动发送文件。

      • 具有ASCII命令/响应交互、状态代码
      • HTTP:每个对象被包入其自己的HTTP响应消息中
      • SMTP:消息中的每个对象被放在同一消息的多个部分中

      DNS:域名系统

      一个具有容易记住的特定意义的主机名称(例如ww.web.(com)转换为机器读取的IP地址。

      域名服务器类型

      • 根 DNS 服务器: 目前 全世界 有 13 套 根 DNS 服务器 。
      • 高级域名服务器:负责所有国家的高级域名 com, org, net, edu等,以及所有国家的高级域名 uk, fr, ca, jp
      • 权威的DNS服务器:每个拥有互联网上公开访问的服务器(如网页服务器和邮件服务器)的组织必须提供公开访问的DNS记录,这些记录将这些主机的名称映射到IP地址。组织授权的DNS服务器负责存储这些DNS记录。
      • 本地DNS服务器:每个互联网服务提供商ISP(一个住宅ISP,一个公司,一个大学,甚至一个大学部门)都可以有一个本地DNS服务器。当一个主机发出DNS查询消息时,此消息首先发送到主机的本地域名服务器。

      DNS查询方法

      循环查询:

      名称分析的负担被传递到查询的名称服务器

      在这里插入图片描述

      迭代查询

      请求的名称服务器响应请求的名称服务器的IP地址,"我不知道它的名称,但你可以问服务器xx"

      在这里插入图片描述

      一旦名服务器获得DNS映射,它将将映射存储在本地内存中

      • 服务器将在某个时间后丢弃缓存信息
      • 本地DNS服务器可以缓存TLD服务器的IP地址
      • 所以根 DNS服务器并不经常访问

      第3章-运输层

      在这里插入图片描述

      运输层服务

      在两个不同的主机上运行的应用程序之间提供逻辑通信

      发送方:

      • 传递一个应用层消息
      • 确定报文段头部域值
      • 创建报文段
      • 传递报文段到IP层

      接收方:

      • 从IP层接受报文段
      • 检查头部值
      • 提取应用层消息
      • 通过接口将消息分解为应用程序层

      多路复用和多路分解

      在发送主机多个路径时重复:

      从多个插座收集数据,将第一个数据包装,然后将消息节传递到网络层。

      在接收主机多路分解

      使用标题信息, 接收的消息被传递到正确的接口.

      多路分解如何工作?

      主机收到IP数据报

      • 每个数据报告都有源IP地址和目标IP地址
      • 每个数据报告载有传输层报告段
      • 每个数据段都有一个源和目的地端口号码

      主机的IP地址和端口号指示哪些适当的插座属于消息节

      面向连接的多路分解

      TCP插座有四个部分:

      • 源IP地址
      • 源端口号
      • 目的IP地址
      • 目的端口号

      接收器主机使用四个值定位消息到适当的接口

      无连接多路分解

      在创建接口时必须指定本地主机的端口数目

      当创建将发送到UDP接口的数据消息时,您必须指定:

      • 目的 IP 地址
      • 目的端口号

      在请求声明中提供返回地址(包括IP地址和端口号码)

      无连接传输UDP

      为什么有UDP?:

      无需连接(减少延误)

      简单:不需要连接发送者与接收者

      很小的报文段首部

      没有拥堵控制:UDP可以尽可能快地传输,并且可以在拥堵中运行

      性质

      未修改、未递交的互联网传输协议

      “尽力为”服务的UDP声明可能包括:

      • 丢失
      • 将向应用程序发送一个序列消息

      无连接:

      • UDP接收者与发送者之间没有握手
      • 每个UDP分段的处理与其他分段独立

      UDP:用户数据报告协议

      UDP是面向报告的。面向报告的传输方式是应用层对UDP多长报告,UDP就照样发送,也就是说, 只发送一次消息.因此,应用程序必须选择一个适当大小的报告.若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP向应用程序层报告,既不合并,也不拆分,相反, 这些 报告 的 界限 仍然 存在 。即,应用程序层给UDP一个长报告,UDP就照样发送,也就是说, 只发送一次消息.

      UDP 首部格式

      用户数据报告 UDP有两个字段:数据字段和第一个字段。 第一个字段由8个字段组成,由4个字段组成,每个字段为2个字段。 长度是第一个部分和数据的总长度,所以最小值是8。

      在这里插入图片描述

      UDP校验和

      在计算和测试时,暂时将"假头"连接到UDP用户数据报告中。

      在这里插入图片描述

      在这里插入图片描述

      接收器的增加和校正以及+传输的结果都是1,表明传输是正确的

      可靠数据传输原理

      Rdt1.在完全可靠的通道上可靠的数据传输

      Rdt2.0:带有位数错误的频道

      低级通道可能损坏传输子集中的位数

      使用校正和检测错误

      如何从错误中恢复

      • ACKs:接收器明确告诉发送者分组接收正确
      • 声明(NAK):接收者明确告诉发送者子组已经收到错误
      • 发送者收到NAC后重新提交该分组

      在rdt2.0中的新机制(rdt1).0中没有:

      • 差错检测
      • 接收方反馈: 控制信息 (ACK,NAK) rcvr->sender
      • 重传

      rdt2.1

      如果ACK/NAK被损坏,会发生什么事?

      发送方:

      • 序号 加到分组上
      • 可以满足两个序列(0.1)
      • 你必须检查你是否收到了混淆的ACK/NAK
      • 状态必须记住当前子集是1或0

      接收方:

      • 必须检查子群是否重复:当前状态提供所收到的预期子群。
      • 注:接收者不知道其以前的ACK/NAK是否由发送者正确接收

      rdt2.没有 NAK的邮件协议

      • rdt2.同样的功能,但只用ACKs
      • 接收器通过ACK通知最后正确接收的分组
      • 在ACK消息中明确添加确认组的序列数目
      • 接收重复的ACK后,发送者采取与接收NAK消息相同的行动,并转发当前组

      Rdt3.0:有错误和损失的频道

      新的假设:低级通道也会丢失消息(数据或ACK)。 校正和重复是有益的,但不够的

      发送者等待“合理的”确认时间

      • 如果在此期间没有收到确认,则复发
      • 如果消息(或确认)只延迟(没有损失):
        • 重复会造成重复,但使用序列已经解决了问题
        • 接收者必须指定确认消息的序列编号
      • 需要重新计算计时器:当计时器过时时才触发复发

      性能问题

      使用率-发送者 busy发送时间的一部分的速度

      在这里插入图片描述

      Rdt3.0 我们使用了停止协议,所以效率特别低,所以我们使用了一个简化的技术(发送者允许发送多个,“发送”和未确认的消息)

      流线技术有两种一般形式: go-Back-N,选择性再传输

      Go-Back-N:

      发送方:

      ACK(n):确认所有子群直到(包括)序列数n

      接收到ACK(n):移动窗口到n+1的开始

      为传输的第一个(第一个)子集设置计时器

      timeout(n):重新传输窗口中的一个组和一个具有较高序列的组(只有一个计时器记录了最早未识别组的发送时间)

      在这里插入图片描述

      接收方

      总是将ACK发送到一个具有正确的接收数字的最高序列的子组

      选择性重传

      在这里插入图片描述

      发送方
      • 从上层收到数据 :
        • 如果下一个可用的序列在发送者窗口中,将数据包装并发送,并启动计时器
      • 超时(n):
        • 重复分组n,重新启动计时器
      • 在[sendbase,sendbase+N-1]内接收ACK(n):
        • 标记分组n被接收
        • 如果 n 是最小的未确认组,则将窗口基序列添加到下一个未确认序列
      接收方
      • n组的序列是[rcvbase, rcvbase+N-1]
        • 发送ACK(n)
        • 失序分组: 缓冲
        • 订购分段:提供顶层(包括已缓冲的订购分段),提升窗口到未收到的下一个分段
      • [rcvbase-N,rcvbase-1]中的n组
        • 发送ACK(n)
      • 其他:
        • 忽略

      总结

      在这里插入图片描述

      面向连接的传输:TCP

      概述

      • 点到点:

        发送者,接收者

      • 可靠按序的字节流:

        没有“信息边界”

      • 流水线:

        TCP拥堵和流量控制设置窗口大小

      • 收发缓冲区

      在这里插入图片描述

      • 全双工数据:

        在同一连接上双向数据流

        MSS:最大消息长度

      • 面向连接:

        在数据交换前握手(交换控制信息)

        连接状态只在连接的两端保持,而不是沿途的节点。

        TCP连接包括: 两个主机上的缓存, 连接状态变量, 接口, 等等.

      • 流量控制:

        发送者不会沉没接收者

      TCP消息段的第一格式

      在这里插入图片描述

      1. 序号字段.4B.TCP是一个节点指向的流(即当TCP传输时,它是每节点发送的),所以连接到TCP的数据流中的每个节点发送一个序列。
      2. 确认号字段。 占用4B是另一方在下一个报告段中收到的预期数据的第一个字母的序列。 如果确认号为N,则说明所有数据到序列号N-1已正确收到。
      3. 数据转移(即总部)。占4位,这不是IP数据报告剪贴板的数据转移,而是表示首部长度,它指示了TCP消息段的数据起始点与TCP消息段起始点有多远。数据偏移的单位为32位(计算单位为4B)。因此,当这个字段值为15小时时,达到TCP头的最大长度60B

      TCP可靠数据传输

      基于IP不可靠的服务,TCP创建可靠的数据传输服务

      • 流水线发送报文段
      • 累积确认
      • 使用单个重传计时器

      在这里插入图片描述

      TCP 快速重传

      超时周期往往太长,再发送丢失消息需要很长时间,这增加了网络延迟

      如果发送者接收了三个其他相同数据的ACK(“三个重复ACK”),那么最小序列的未确认消息段将再次发送,而未确认消息段很可能丢失,因此不需要等待超时

      TCP 流量控制

      接收器控制发送者,这样发送者不会因发送太多或发送太快而溢出接收者缓冲区

      TCP接收器通过将rwnd包含在TCP标题中,将接收缓冲区的剩余空间通信(假设TCP接收器丢弃未排序消息段)

      TCP 连接管理

      发送者/接收者必须在数据交换前握手:

      • 同意建立联系(我们知道彼此愿意建立联系)
      • 接受连接参数(例如初始序列 #,接收缓冲大小rcvBuffer)

      在这里插入图片描述

      在这里插入图片描述

      TCP 拥塞控制

      TCP使用的方法是end-to-end拥堵控制:(另一个是路由器使用数据流通过拥堵路由器向发送者/接收者主机提供直接反馈)

      • 没有来自网络的清晰反馈
      • 根据观察到的延误和损失,从终端系统推导的拥挤情况

      AIMD

      方法:发送者增加发送速度,直到发生包(拥挤)事件,然后在发生包事件时降低发送速度

      在这里插入图片描述

      TCP发送者如何感知网络拥塞:

      • 损失事件:加班或3次重复ACK
      • 在数据包丢失发生后,TCP发送器会降低速度(拥挤窗口)

      TCP慢启动

      当连接启动时,在第一个消息丢失事件发生之前增加发送率以索引速度:

      • 最初,拥挤窗口值是cwnd = 1 MSS
      • 每RTT乘 cwnd
      • 每次收到ACK,增加cwnd

      TCP:避免从慢启动到拥挤

      cwnd重新达到慢启动阈值时线性增长的变化

      对拥塞事件的反应

      当超时事件发生时:

      • CongWin立即设置为1MSS;

      • 窗口开始索引(慢启动)

      • 达到阈值后再线性增长

      • ssthresh = cwnd/2, cwnd = 1*MSS,慢启动状态

      收到三次重复确认:

      • CongWin 减少 + 3 (Reno版本)
      • 然后窗口线性增长(快速恢复)
      • ssthresh = cwnd/2, cwnd = ssthresh + 3*MSS

      在这里插入图片描述

      第4章-网络层

      在这里插入图片描述

      网络层的功能

      • 传送:从路由器输入端口转移一个子集到正确的路由器输出端口
      • 路由:确定一个子集从发送器传递到接收器(目标主机)的路径(或路由)
      • 连接建立: 在网络层数据子集开始传输之前,要建立从源到目的地选择路径上的路由器之间的连接状态。

      网络层的服务模型

      在这里插入图片描述

      传输层:在终端系统中实现,面向网络边缘的连接服务。

      网络层:在终端系统和网络核心路由器中实现的面向连接服务。

      数据报

      提供一个未连接的网络级服务,不会预先确定分组的传输路径,每个分组是独立确定的

      路由器不需要维护端到端连接状态

      分配使用 host 的地址

      虚电路

      提供网络层连接服务。每当终端系统创建虚拟电路时,选择未使用的虚电路号分配给虚拟电路, 以区分它与系统中的其他虚拟电路.

      一个假电路是“假”的,因为这个电路不是专门的,而每个节点和另一个节点之间的链路可能有多个假电路同时通过,或者可能同时创建多个节点之间的假电路

      在这里插入图片描述

      路由器

      路由器体系结构

      在这里插入图片描述

      输入输出端口

      第一个线接口模块:将物理连接连接到路由器的物理层;

      第二个数据链处理模块: 实现路由器的数据链层功能;

      第三个搜索和传输模块:实现搜索和传输功能,通过路由器交换结构可以将该组转移到适当的输出端口;

      在这里插入图片描述

      查找/转发模块

      确定通过转换结构将一个到达的子集传递到哪个输出端口。通过搜索转换释放实现,转换释放存储在输入端口的内存中

      传输:每个路由器都有一个目标地址和链接接口的地图。

      最长匹配原则

      对于指定的目标地址,使用最长的地址前缀匹配完成输出终端搜索

      交换结构

      从输入端口缓存到适当的输出端口缓存中转换(传输)一个子集

      汇率: 数据包从输入输出传输的汇率.

      在这里插入图片描述

      输入/输出终端队列

      当开关结构的速度比输入端口的速度慢时,输入端口缓冲区会有队列,导致队列延迟和由于输入缓冲区溢出而丢失的包!

      当交换结构以比输出链速快的速度向输出端口提供一个子集时,需要队列和缓存管理函数。

      IPv4

      数据报结构

      在这里插入图片描述

      • 第一部长级-占4个数字,最多15个字节(一个字节是4字节),因此IP第一部长级最多60字节
      • 部分移位(13位)表示在一个较长的子集之后,原子集中的某个作品的相对位置。 电影由8个字符作为移位单位移动。
      • 存活时间(8位)称为TTL(Time To Live),是网络中通过数据消息的路由器数量的最大值。 每个数据消息通过路由器,TTL值被减少1。
      • 旗帜占了3个位置,
        • 第一名:预定,通常设置为0
        • "Don't Fragment"(PDF)只允许在DF = 0 时。
        • 第三,“更多断片”,MF.MF = 1表示“还有断片”。MF = 0表示最后的断片。
      • 顶层协议(8位)字段指示该数据报告载有哪些协议的数据,该数据的处理过程是目标主机的IP层传输数据的部分

      IP地址

      IP地址:分配给主机或路由器接口的标识符

      接口:主机/路由器与物理链之间的界限

      • 路由器有多个接口
      • 主机可以有多个接口

      每个接口都有IP地址

      • 有两个IP地址:IPV4和IPV6
      • IPV4:32位二进制位长(4字节),常用于十进制点表示
      • IPV6:128位二进制位长(16字节),通常用于表示缩写分离

      特殊IP地址段

      • 本地回环地址

      127.0.0.1-127.255.255.254

      这是一个保留的IP地址集,主要用于识别主机自己的地址,也被称为"localhost",它通常用于测试。

      • 私人地址

      10.x.x.x, 172.16.x.x-172.31.x.x, 192.168.x.x

      这些三个地址段被称为私人IP地址段,即宽带网络使用的地址段,不能在公共互联网上调用

      • 0.0.0.0

      这个地址绝对不是真正的IP地址。 它主要用于识别不清晰的网络和主机。 当系统遇到一个无法识别的网络或主机时,它会与这个地址合并

      • 255.255.255.255

      这个地址是限制广播地址。 主要指在网络段内的所有主机

      互联网中的IP地址

      在这里插入图片描述

      子网划分

      分子网络是单元内部的纯物质,外部的单元仍然是没有分子网络的网络。

      作为子网-ID从主机的几位,以及从主机-ID的几位

      解码器网络简单地重新分配IP地址的 host-id部分,而不改变原来的网络号码 net-id。

      在这里插入图片描述

      定义子网的方法

      将每个接口与其主机或路由器分开,创建一个孤立的“孤立”网络

      每个分离的网络称为子网

      动态主机配置协议

      DHCP概述:

      1. “DHCP DISCOVER”(发现报告)
      2. DHCP服务器以"DHCP OFFER"(提供消息)响应
      3. 主机请求IP地址:"DHCP REQUEST"(请求声明)
      4. DHCP服务器指定IP地址"DHCP ACK/NACK"(确认消息)
      5. 卫生防护署终止期「卫生防护署公告」(终止声明)

      DHCP不仅分发IP地址,也可以分发:

      • 客户端的第一跳路由器地址(网络交换器)
      • DNS服务器的IP地址或域名
      • 子网掩码

      DHCP是一个应用程序层协议

      NAT:网络地址转换

      动机:

      对于外部网络,所有本地网络中的设备只使用一个IP地址

      • 不需要从ISP分配一系列地址--所有设备只使用一个IP地址
      • 在本地网络上,更改设备IP地址不需要通知外界
      • 您可以在本地网络上更改设备地址的情况下更改ISP
      • 本地网络中的内部设备不能由外部世界明确地处理,或者是看不见的(增加安全)

      实现:

      (在NAT转换表中)记录每个(源IP地址、端口号码)到(NATIP地址、新端口号码)转换对

      输入分组:对于每个输入分组,在NAT表中存储的相应的(源IP地址、端口号码)替换了分组中的目标域(NATIP地址、新端口号码)

      IPv6

      IPv6首部

      在这里插入图片描述

      与 IPv4比较,

      • 没有总部:IPv6总部固定为40字节
      • 没有校正:消除所有,减少每次跳跃的处理时间
      • 无选项(将标题设置为40字节):使用扩展标题实现选项函数。
      • 总长度 -> 有效载荷长度
      • 协议字段 -> 下一个首部
      • TTL 字段 -> 跳数限制
      • 无分片/组装

      IPv6地址表示

      IPv6使用16位元初始化

      在16位编码中,允许在数字前面省略0,例如,00中的第一个3个0被省略并写成一个0。

      路由选路方法

      在这里插入图片描述

      控制平面

      每个路由器中的路由算法组件在控制平面中相互作用

      路由算法分类

      在这里插入图片描述

      动态路由算法包括全球路由算法和分布路由算法

      链路状态选路算法

      代克斯特拉最低成本路径算法

      • 所有节点都知道每个链接的网络拓扑和成本信息
        • 通过链式国家广播实现
        • 所有节点都有相同的信息
      • 从任何节点(源节点)到所有其他节点计算最低成本路径
        • 给出该节点的转发表
      • iteration:通过k的迭代可以知道到k目的地节点的最低成本路径
      • 基本概念:从源节点开始,每次找到所有目标节点之前,找到最低成本的源节点。

      距離向量路由算法DV

      距离向量路由算法是一种迭代、非同步和分布式算法.

      • 分布:每个节点接收到与它直接连接的邻居的信息,计算它,并将计算结果分配给邻居。
      • 迭代: 计算过程一直持续,直到邻居之间不再交换信息.
      • 非同步: 不要求所有节点以相同的速度相互操作.
      • 自我终止:算法可以自我停止。

      在这里插入图片描述

      步骤:

      对所有节点:

      • 从邻居接收距离向量
      • 计算新的局部距离向量
      • 向邻居发送新的本地距离向量

      在这里插入图片描述

      层次选路

      网络不平坦。区域的路由器由一系列“自主系统”组成(AS,autonomous system),同一自主系统路由器运行相同的路由协议--区域内路由协议,不同自主系统中的路由器可以运行不同的区域内路由协议

      域名(自动系统)内部路由器选择

      使用基于域的路由协议,也被称为内部门户协议(IGP)。

      标准域基于路由协议:

      • RIP:路由器信息协议-使用UDP传输
      • OSPF:打开最短路径优先级-使用IP传输
      • IGRP:内部网络交换路由协议(Cisco All)

      OSPF (Open Shortest Path First)

      OSPF的优点(在RIP中没有)

      • 安全:所有OSPF消息需要认证(防止恶意入侵)

      • 允许具有相同的成本的多个路径(RIP中只有一个路径)

      • 每条链路都有不同服务类型的TOS的多个消费尺度(例如,在尝试传输时卫星链路的成本设置为“低”,而实时应用的成本设置为高)

      • 单播和多播综合支持

      • 在大区域中使用层次性OSPF

      互联网域名选择路径:BGP

      lBGP(Border Gateway Protocol):事实上,标准区域间路由协议是整个互联网“粘贴”的关键

      lBGP 为 每个 AS 提供 了 手段 :

      • eBGP:从邻近的AS获取子网访问信息
      • iBGP: AS内的所有路由器将现有的信息发送到这些子网
      • 基于这个可访问的信息和AS策略,确定了“好的”通往子网的路径
      • 允许一个子网通知其他互联网的存在“我在这里”

      在这里插入图片描述

      AS互连和AS域任务

      基于内AS和内AS路径选择算法的传输配置

      • AS域中的路径选择项用于选择目的地端域中的路径。
      • AS域与AS域之间的选择项用于在目标的末端选择外部域的路径

      AS1 需要知道:

      • 通过AS2和AS3可以到达哪些端口?
      • 将这些可用的信息发送到AS1的所有路由器中
      • 这是区域间选择路径的任务

      BGP通道

      当AS3通知AS1的一个前缀时:

      • AS3承诺能够向子网传输数据
      • AS3可以在其通知中聚类网络前缀。

      路径属性

      通知包含在前缀时的BGP属性。 prefix + attribute = "route"

      两个重要的属性:

      • AS-PATH:包含已通知的AS的前缀通知,例如AS67、AS17
      • NEXT-HOP:指定特定AS到下一AS之间的边界路由器(可能有多个链从当前AS到下一AS)

      当网络交换机收到路由通知时,输入策略被用来决定是否接收/丢弃通知。

      为什么AS内部选择路径和AS交叉路径采用不同的协议?

      策略:

      • AS:管理员想控制在该AS中生成的通信流程如何进行路由和哪些通信流程通过他的网络
      • AS:单个管理员,因此不需要策略

      规模:

      • hierarchical routing 节省了重新传输的空间,减少了 routing 的更新

      性能:

      • 阿萨斯:重点表现
      • AS之间:策略可能比业绩更重要

      SDN(软件定义网络)

      SDN不是特定的技术,它是规划网络的各个组成部分(软件、硬件、传输和控制)以及它们之间的相互作用的网络设计概念。

      SDN的核心思想是创建一个通用传输系统,每个开关设备都包含一个流程表,流程表由一个逻辑集中控制器(远程控制器)计算和分配。

      SDN系统结构及特点

      在这里插入图片描述

      特征:

      • 基于流动的传输:基于第一个场值的传输
      • 数据平面与控制平面分离: 数据平面由网络开关组成,控制平面由服务器和管理流程表软件组成.
      • 网络控制功能:位于数据交换机外,包括SDN控制器和几个网络控制程序。
      • 可编程网络: 调用API来定义和控制网络设备的数据平面.

      SDN控制器的组件

      在这里插入图片描述

      第5章-数据链路层

      在这里插入图片描述

      链路层提供的服务

      数据链层的功能是通过物理链将数据消息从一个节点直接连接到另一个节点。

      • 框架:

        将数据消息封装为数据帧,并添加标题(例如地址信息、尾部信息(例如错误编码信息 Frame synchronizationg.、 Frame delimiter)

      • 链接访问

        如果你有共享链路, 你需要解决通道访问问题.

        在数据帧标题中, MAC地址用于识别源和目的,与IP地址不同

      • 邻接节点之间的数据帧可靠传输(某些链路可能无法实现)

        极低比特误差链(光纤、双线)很少使用

        无线链:高位误差要求可靠的传输

      • 流量控制:

        从接收节点到直接连接节点传输数据帧的频率控制

      • 错误检测:

        信号衰变和噪声可能导致错误

        接收器检测错误发生时:

        通知发送者重新传输或丢弃数据帧

      • 错误修正:

        接收器识别和纠正比特错误,无需重新传输

      • 半双重和全双重:

        在半双重模式下,链中的两个节点可以发送数据,但不能同时

      差错检测和纠错

      三个主要错误检测技术

      随机检查: 最基本的方法.

      一比特奇偶校验

      发送方:

      在发送的D(d bit)消息之后,添加一个奇数双重检查位数,使得"1"的数目是奇数(双重检查)或偶数(双重检查),同时发送消息(d+1 bit)。

      接收方:

      确定接收信息中的"1"的数目(d+1位)。 双重校正:找到"1"的奇数,至少发生一个错误(一个奇数的错误位)。

      二维奇偶校验

      基本思想:

      发送的信息D(dbit)被分成i行j列(i组,每个组j位数);对每个行和每个列分别计算奇数值;所得的i+j+1奇数位数构成帧的误差检测位数。

      在这里插入图片描述

      互联网检查及:常用于运输层

      发送方:

      每个数据的两个字母都可以分成几个整数,作为16位整数;

      合并所有16个整数;

      反向收到的和按职位, 作为检查, 并放在报告第一部分, 一起发送.

      接收方:

      同发件人一样,搜索收到的信息(包括支票和资产负债表)。

      完整“1”:收到的数据是正确的;

      有一个“0”:接收的数据是错误的。

      循环冗余检测CRC:常用于链层

      计算机网络广泛应用

      基本思想:

      设发送节点要把数据D(d(Bit) 发送到接收节点.

      发送者和接收者先一起选择一个生成多项式G(r+1位元),最大有效性(最左端)为1。

      循环冗余检查CRC编码:

      即多项式编码考虑将发送的位数字符串以0或1的系数为多项式。考虑该位数字符串的操作为多项式操作。

      发送方:

      计算r-bit的额外位数R,并在D之后添加DR(d+r bit)

      DR可以由一个多项式 G-model 2 的操作整数器生成,并一起发送。

      接收方:

      通过生成多项式G去除接收的DR(d+rbit)

      余下的值不是0:传输错误发生;

      余下的值是0: 正确传输, 删除末端r位, 并取得所需的数据D.

      模2运算:
      按位置或(XOR),1001 XOR 1101 = 0100

      R的计算:D之后添加数据rA 0, 除给定生成多项式 G 外, 产生 R(r位)。

      在这里插入图片描述

      在这里插入图片描述

      多路访问链路和协议

      两种网络链路:

      • 指点链(point-to-point chain):链路的每个端都有一个节点,一个发送,另一个接收,例如指点协议P2P。
      • 广播链: 与共享广播频道连接的多个节点.

      广播:当任何节点发送一个帧时,信号在频道上广播,其他节点接收一个复制。 它通常用于LAN,如早期的Ethernet和无线LAN。

      多路访问协议

      • 信道划分协议

        把通道分成小块.

        分发专门件到节点

        时间分割多重访问TDMA:

        将时间划分为时间帧每个时间框架被分成N个时隙(发送子组的长度保证),分别分配给N一个节点.每个节点只能在固定分配的时间空间中传输。

        频率分割多重访问(FDMA):

        总通道Rb/s的带宽被分成N小通道(带宽是频率带中的R/N)并分别分配给N节点。

      • 随机访问协议

        不要分开渠道,并允许冲突

        所有频道速度发送节点(Rb/s)发送;

        当冲突发生时,冲突的每个节点等待一个随机时间,然后重复直到帧(子集)成功发送

        节点间没有协调者

        纯 ALOHA

        如果与另一个帧发生冲突,冲突帧在被传输后会以概率传输p立即重传该帧;

        或者等待一个帧的传输时间,然后按概率计算p发送帧,或 probability 1-p等下一个帧。

      在这里插入图片描述

      时隙ALOHA

      所有帧大小相同

      时间被分成等大小的间隔,其中一个是与传输帧所需的时间等的

      节点只能在时间的开始时传输

      假设有N节点,每个节点在间隔中都有一个概率p发送

      一个节点在时间间隔中成功传输的概率=p(1-p)N-1

      • 轮流协议

        通过路由访问通道避免冲突,路由时间越长,发送的节点就越多

        投票:

        从主节点发送“邀请”从节点到节点

        主要节点首先向1节点发送消息,告诉它(节点1)可以发送的最大帧数。 如果1节点有数据发送,可以发送的最大数据数是允许的;

        然后,主节点将继续请求节点2,节点3。

        托克传递:

        控制从一个节点传递到另一个节点的卡的顺序。

        当一个节点接收一个令牌时,它只在有数据帧发送时保持令牌,否则它会立即发送令牌到下一个节点。

        当一个节点接收一个令牌时,如果它确实有一个数据帧发送,它将发送最大数量的目的地帧,然后将令牌传递到下一个节点。

      多路径访问控制协议的概述

      频道分解:时间、频率、代码

      随机接入:

      • ALOHA, S-ALOHA, CSMA, CSMA/CD
      • 负载检测:在某些技术上易于实现(无线)、在其他技术上更困难(无线)
      • CSMA/CD used in Ethernet
      • CSMA/CA used in 802.11

      轮流

      • 来自中心站的轮询
      • 令牌传递

      局域网

      本地区域网络 ( LAN )

      主要特点:网络属于一个组织,其地理范围和网站数量有限

      网络拓扑结构

      在这里插入图片描述

      •辐射状连接

      •中央连接中心通讯控制

      • 优点: 结构简单, 访问协议简单, 单一节点故障不会影响整个网络.

      缺点:中央连接点的可靠性非常高,有一个故障,整个网络瘫痪。

      在这里插入图片描述

      优点:结构简单,易扩展

      缺点: Troubleshooting是困难的

      在这里插入图片描述

      •站点和点最初是相互连接的,形成一个圆圈,数据只能在一个方向传输

      优点:该结构适用于光纤媒体。

      缺点:如果处理错误,网站的故障会造成网络故障

      在这里插入图片描述

      它降低了通信线路的成本,提高了网络的复杂性,与星状结构相比

      链路层寻址和ARP

      每个节点都有网络层地址和链接层地址。

      • 网络层地址(英语:Network layer address):为网络中的一个节点分配的唯一的地址(IP地址),用于向目标IP网络发送分组。
      • 链接层地址: 也称为MAC地址或物理地址, 或本地网络地址.

      用于将数据帧从一个节点转移到另一个节点(在同一网络中)。

      • MAC地址(LAN地址,物理地址):

      节点“网卡”本身的地址(仅限于)。

      MAC地址通常长6字节(48位),总共248位。

      六位地址由16位表示,每个位代表一对16位

      网络卡的MAC地址是永久的(在生产时固定在其ROM上)

      如何转换地址:

      MAC地址

      MAC地址是平面结构:具有相同的网络卡的节点在任何网络中都有相同的MAC地址。

      IP地址具有层次结构:当一个节点移动到另一个网络时,节点的IP地址会发生变化。

      MAC地址识别
      • 在一个广播频道的本地网络中,一个节点发送的帧在该频道中广播,其他节点可以接收该帧。
      • 在大多数情况下,一个节点只能发送到一个特定的节点。
      • 网络卡负责包装和识别MAC地址.
      • 发送适配器:将目标MAC地址封入一个帧并发送。所有其他适配器将接收这个帧。
      • 接收器适配器:检查帧的MAC地址是否与其MAC地址匹配:

      匹配: 接收帧, 提取数据消息, 并将其传递到顶层.

      不匹配: 丢弃了帧.

      主机名称 → IP地址 → MAC地址

      DNS域名系统: 分析主机名称到IP地址.

      DNS是一个在互联网上任何地方分析主机名称的域名。

      ARP地址分析协议: 分析IP地址到MAC地址.

      ARP只对同一LAN上的节点的IP地址进行分析。

      ARP协议:地址分析协议

      ARP表: 局域网上的每个节点(主机、路由器)都有这个表 < IP address; MAC address; TTL>

      为某些局域网节点进行 IP <-> MAC地址映射:

      TTL(寿命):地址地图将被删除的时间(通常是20分钟)

      两个主机位于同一本地网络中
      1. 主机A想向主机B发送数据,而B的MAC地址不在ARP映射表中
      2. 主机广播ARP查询子集,包含IP地址B。目标MAC地址=FF-FF-FF-FF-FF
      3. LAN中的所有节点接收ARP查询子群
      4. B主机接收ARP查询子集,返回B主机的MAC地址给A主机,并发送包含B主机的MAC地址的帧给A主机(单播)
      在子网外发送数据消息

      在这里插入图片描述

      主机A路由器R发送数据到主机B

      关注地址 - IP层(数据消息)和MAC层(数据框架)

      • 假设主机A知道主机B的IP地址
      • 假设主机A知道第一跳路由器R的IP地址(通过 DHCP协议)
      • 假设主机A知道路由器R的MAC地址(通过ARP协议)
      1. 主机A构造一个IP数据消息,源地址是主机A的IP地址,目标地址是主机B的IP地址

        主机A构造一个链层数据框架,MAC地址是路由器左端端口的MAC地址

      2. 从主机A发送到路由器R的数据帧

        路由器R接收数据帧,提取数据消息并将其传递到IP层

      3. 路由器R发送数据消息,源地址是IP地址A,目的地地址是IP地址B

        路由器R将数据消息封入链层框架中,以主机B的MAC地址为MAC地址

      以太网

      不可靠的无连接服务

      **不连接服务:**在通信时,发送器适配器不需要先与接收器适配器握手。

      不可靠的服务:

      • 收到的帧可能包含位错。
      • 接收正确的帧,不发送确认帧;接收错误帧,放弃帧,不发送负帧。
      • 发送适配器不会重新排出错误的帧。
      • 利用端口传输层的可靠数据传输机制实现丢失数据的恢复.
      • 以太网不知道要发送新的数据还是重新发送数据.

      以太网的帧结构

      在这里插入图片描述

      发送器:发送适配器将IP数据消息封入一个Ethernet帧并将其发送到物理层。

      接收器:接收器适配器接收物理层的帧,提取IP数据消息,并将其传递到网络层。

      早期同步代码(8字节)

      为了同步接收机和发送机时钟,接收机可以确定一个帧在接收连续8位预同步代码后被传递。

      以前的同步代码是“无效信号”,接收器接收并删除它,而不发送到上层。

      源/目标MAC地址(每个6字节)

      主机A向主机B发送IP数据消息

      然后,适配器B只接收与其MA地址或广播地址匹配的目标地址的帧,并将数据字段的内容转移到网络层。

      类型字段(2字节)

      以太网可以“多路径重用”(支持)多个网络层协议,根据“类型”字段接收适配器,将数据字段转移到相应的网络层协议

      数据字段(46至1500字节)

      最大传输单元MTU在Ethernet上是1500字节:如果报告的IP数据超过1500字节,则报告的数据必须分开。

      最小长度为46字节:如果IP数据消息小于46字节,则必须用46字节填充。

      循环冗余检测CRC(4字节)

      检测数据帧中的比特率错误(反向)

      链路层交换机

      支持多节点同时传输

      在这<p>本文由 <a href=在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类