计算机网络期末复习知识点整理

目录

第一章 概述

1.1计算机网络的定义、P2P

1.2网络硬件(broadcasting、multicasting、unicasting、LAN、MAN、WAN、Internet、packet switching)

1.3网络软件(protocol、layer、interface、service、差错控制、流量控制、面向连接与无连接的服务、可靠和不可靠的服务、服务与协议的关系、OSI参考模型、TCP/IP参考模型)

1.6  802协议、网络标准化

第二章 物理层

2.1 数据通信的理论基础(bandwidth、尼奎斯特定理,香农定理)

2.2 有导向的传输介质

2.5 数字调制与多路复用

2.6  PSTN电话系统(Modem的调制方式(调幅;调频)、ADSL、干线与复用(FDM;WDM;TDM)、电路交换、分组交换、报文交换三种交换方式的比较)

第三章 数据链路层     

3.1.2 成帧(位填充、字节填充)

3.2 错误检测和纠正(CRC)

3.3 基本数据链路协议(停等协议)

3.4 滑动窗口协议(捎带确认、发送窗口、接收窗口、一位滑动窗口协议、回退N、选择性重发协议)

第四章 介质访问子层

4.1 静态和动态信道分配

4.2 多路访问协议(ALOHA、CSMA、CSMA/CD、最小帧长、MACAW)

4.3 以太网(二进制指数后退算法,最小帧长、曼彻斯特编码、差分曼彻斯特编码、802.3帧格式)

4.4 WLAN(隐藏站和暴露站问题、CSMA/CA、802.11 MAC子层协议)

4.8 数据链路层交换(网桥(散列表;转发算法;逆向学习;动态拓扑结构变化)、生成树网桥、中继器、集线器、交换机、路由器、网关;网络设备与层次的对应关系)

第五章 网络层

5.1 网络层设计要点(虚电路子网、数据报子网)

5.2 路由算法(最优化原则、sink tree、最短路径路由、距离矢量路由及无穷计算问题、链路状态路由、距离矢量路由和链路状态路由的比较、分级路由、广播路由、移动路由)

5.3 拥塞控制(RED)

5.4 服务质量(资源预留、缓冲、抖动、漏桶算法、令牌桶算法)

5.5 网络互连(隧道技术)

5.6 Internet的网络层(IPv4协议、IP地址、子网、子网掩码、子网划分、CIDR、地址聚合技术、NAT、ICMP、ARP工作过程、DHCP、OSPF、BGP)

第六章 传输层

6.2 传输协议的要素(寻址、建立连接三次握手、释放连接三次握手、流控制和缓冲)

6.4 UDP

6.5 TCP(TCP服务模型、TCP协议、TCP连接建立、TCP连接释放、TCP滑动窗口协议、Nagle算法、愚笨窗口综合症、TCP拥塞控制、slow start)

第七章 应用层

7.1 DNS (域名系统、域名服务器) (应用层常见的协议:HTTP、FTP、SMTP、POP

第一章 概述

1.1计算机网络的定义、P2P

  1. 计算机网络:表示一组通过单一技术相互连接起来的自主计算机的集合
  2. Client-server:由高性能计算机服务器和普通计算机客户机组成,服务器负责存储数据并处理客户请求,而客户机可远程访问服务器
    ·数据存储在性能强大的计算机上,这些高性能计算机称为服务器
  3. P2P:对等模型。每台设备既可以是服务器,也可以是客户机,关系对等(平等),用户之间是连接的,每个节点需要有路由功能

1.2网络硬件(broadcasting、multicasting、unicasting、LAN、MAN、WAN、Internet、packet switching)

分类是网络设计中首先考虑的问题,包括当前能够使用的组网技术、网络的规模、组网的目的等都与分类有关。

常见的分类技术:传输技术,网络尺度,介质类型等。 最基本的要求:数据送达;资源使用高效。

  1. 依据传输模式划分网络
    (1)单播/点到点链路(unicasting/point-to-point):将一对单独的机器连接起来。可能中间经过一个或多个中间机器。直接相连的两个机器是点到点链路的最简单的形式。点到点链路的确定过程称为路由。
    (2)广播(broadcasting):一台机器发送的信息,会沿着通信信道传播,到达网络上其它机器。(总线链路)总线网络使用硬件实现。只有预期的接收方会做出应答
    (3)多播/组播(multicasting):将数据包发给一组机器,广播可以看成是一种特殊的组播
  2. 依据网络规模划分网络
    (1)个域网(PAN):允许设备围绕一个人进行通信。例如蓝牙
    (2)局域网(LAN):私有网络,是由一个组织投资、设计、维护、使用的网络。例如校园网和企业网
    ·常见类型根据传输技术和网络设备的不同,分为共享是局域网(一般采用广播链路)和交换式局域网(一般采用点到点链路);根据连接介质的不同,分为有线局域网和无线局域网
    (3)城域网(MAN):范围覆盖一个城市。例如有线电视网
    (4)广域网(WAN):范围覆盖一个国家、地区或大陆
    ·子网(subnet)用于连接不同城市或地区的网络。层次化特征。
    ·通信子网由传输线路和交换节点组成,主要功能集中在交换节点,使用点到点链路传输技术
    ·传输线路负责在机器之间移动比特,它们可以是铜线、光纤、甚至无线链路
    ·交换元素(交换机)是专用的计算机,负责链接两条或两条以上的传输线路,现在一般称为路由器(router)
    (5)互联网(internet):多个不同网络连接起来的网络。例如Internet
    ·主要障碍:不同网络之间使用的技术不同,可能隶属于不同的组织,需要网络软件的支持
  3. 三种交换方式
    (1)电路交换(circuit switching)
    建立连接(占用通信资源)->通话(一直占用通信资源)->释放连接(归还通信资源)
    特点:在通话的全部时间内,通话的两个用户始终占用端到端的通信资源
    (2)分组交换(packet switching)
    采用存储转发技术,把一个报文划分为几个分组后进行传送
    分组:把较长的报文分成更小的等长数据段,再加上必要的控制信息组成的首部后,就构成一个分组;分组又称包,分组的首部又称包头
    存储转发技术:路由器收到分组后,先暂时存储,检查其首部,查找转发表,按照首部中目的地址,选择合适的接口转发出去

优点:
高效:在分组传输过程动态分配传输带宽,对通信链路逐段占用

灵活:为每个分组独立选择最合适的转发路由 迅速:以分组为单位传输,不用建立和释放连接 可靠:保证可靠性的网络协议;分布式多路由器的分组交换网,有很好的生存性
(3)报文交换(message switching)
报文交换中交换结点也采用存储转发方式。但报文交换对报文的大小没有限制,因此要求交换结点需要有较大的缓存空间。


1.3网络软件(protocol、layer、interface、service、差错控制、流量控制、面向连接与无连接的服务、可靠和不可靠的服务、服务与协议的关系、OSI参考模型、TCP/IP参考模型)

网络软件需要支持不同网络之间不同需求的数据传输服务,是一个巨大的工程问题。

一般采用“分而治之”的策略,将整个网络软件功能分为多个小的功能模块分别解决。

解决每个小的问题时工作环境、现有技术手段都可能不同,并会随着时间发生变化,为了限制变化带来的影响,需要采用封装技术。

尽量减少不同模块之间的相互调用。

  1. 协议层次结构
    (1)层次栈(layer):为了降低网络设计的复杂性绝大多数网络都组织成一个层次栈(a stack of layer),每一层建立在下一层的基础上。每一层的目的是向上一层提供特定的服务,而把如何实现这个服务的细节对上一层加以屏蔽。
    ·从分布式系统角度考虑网络软件的设计与实现
    ·网络软件需要支持不同用户之间的通信需求,很多功能需要用户之间协作才能完成。所以,网络软件是一个分布式系统
    ·每个小的功能模块也是一个分布式系统,需要通信双方的对等模块协作完成
    ·对等模块指的是协作完成同样功能的模块,也称为对等体(peer)

(2)协议(protocol):通信双方就如何进行通信的一种约定
·从计算机编程角度,为了完成某种功能,最基本的方式是“数据结构+算法”。数据结构是双方交互的内容,称为协议字段;运行在各个对等体上针对协议格式的处理操作集合称为协议算法。

(3)接口(interface):定义了下层向上层提供哪些原语操作和服务(告诉上面的进程如何访问本层,规定了有哪些参数以及结果是什么,但并未说明过程和服务方式)
·每一层的协议接口和它的对等体之间进行虚拟通信

(4)服务(service):是一组由原语正式说明,用户可以通过这些原语来访问该服务

(5)网络体系结构(network architecture):层和协议的集合

  1. 面向连接与无连接的服务
    (1)面向连接的服务:是按照电话系统建模的。服务用户必须首先建立一个连接,然后使用连接传输数据,最后释放连接,本质上像一个管道。
    (2)无连接的服务:是按照邮政系统建模的。每一个报文都携带着完整的目的地址,每个报文都由系统中的中间节点路由,并且独立于后续的报文
    (3)区别:
    ①面向连接的要求建立连接,因而没有传输数据不用再标明传输的目的地址;无连接的则要对每个报文都有独立的目标地址
    ②一般来说,面向连接的可靠性较高,协议相对复杂,传输数据按照发送顺序到达;无连接的可靠性较差,协议相对简单,常出现乱序、重复和丢失现象
  2. 可靠和不可靠的服务
    (1)可靠服务:从来不丢失数据的一种服务。一般情况下,可靠服务都要求接收方向发送方确认收到的每个报文
    (2)不可靠的服务:不会给发送方反馈任何确认消息,不保证数据不丢失
    (3)为什么要同时存在可靠服务与不可靠服务:
    ·在给定的层次可靠通信并不总是可以使用的
    ·为了提高可靠服务而导致的固有延迟可能是不可接受的
    (4)面向连接的服务是可靠的吗
    面向连接的服务只是在发送方和接收方之间建立连接,它并不能保证发送的数据流能准确无误的到达接收方。面向连接的服务同样可以分为可靠的面向连接服务和不可靠的面向连接服务。前者主要包括报文序列、字节流,后者如数字化语音
  3. 服务和协议的关系
    (1)服务是指某一层向它的上一层提供的一组原语操作,服务定义了该层打算代表其用户执行哪些操作,但不涉及如何实现。服务也会涉及到两层之间的接口,其中底层是服务提供者,上层是服务的用户(上下层之间的联系)
    (2)协议是一组规则,用来规定同一层上的对等体之间所交换的信息或者分组的格式和含义。这些实体利用协议来实现它们的服务定义,它们可以自由的改变协议而不影响它提供给上层的服务(对等体之间的规范)
  4. OSI模型
    OSI参考模型本身不是一个网络体系结构,只是指明了网络分为几层和每层应该做些什么,没有定义详细的服务和实现服务所用的协议
    由低到高分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

    第n层的问题若无法完全解决,则需要依靠上一层。如物理层实现了点到点传输,而链路层使此传输变得可靠;网络层确定了传输路径,而传输层使此传输变得可靠
  5. TCP/IP模型
    由低到高分为:链路层、互联网层、传输层、应用层
    TCP协议用在传输层,IP协议用在网络层。
    以无缝连接多个不同网络、消除信息孤岛为目的之一。实现方式为不关心每个网络内部的工作模式,当需要与其它网络互联时,必须遵守TCP/IP协议。即每个需要连接到互联网的设备必须运行TCP/IP协议。一般情况下,当一个局域网络通过一台网络设备(路由器)连接到互联网时,这台设备必须同时支持局域网协议和互联网协议,提供从局域网协议到互联网协议的转换。(完成接入功能)

采用分组交换(数据包交换)技术,支持在网络部分设备或线路失效时仍能够完成数据递交任务。
为了支持日渐增多的网络应用,不再统一支持会话层和表示层,其功能交由应用层实现


数据链路层与传输层的区别:
①数据链路层是两个相邻节点之间的通信
②传输层是两个主机上的进程之间相互通信,叫做两个端点

  1. 本书使用混合模型,包括五层:物理层、数据链路层、网络层、传输层、应用层

1.6  802协议、网络标准化

802.11协议限定在OSI七层网络模型的最低两层——数据链路层和物理层。

IEEE 802协议簇是指IEEE标准中关于局域网(LAN)和城域网(MAN)的一系列标准。IEEE 802中定义的服务和协议限定在OSI七层网络模型的最低两层,即数据链路层和物理层。实际上,IEEE802又将OSI的数据链路层分成了两个子层,逻辑链路控制层(LLC)和媒介访问控制层(MAC)。

IEEE802协议簇由IEEE802标准委员会维护。其中最广泛应用的协议有以太网(802.3)和WLAN(802.11)。每一个工作组专注一个方向,每个工作组由数字编号,比如目前从802.1编到了802.24。

因此,802.11协议是IEEE802标准委员会下属的无线局域网工作组制定的无线局域网标准。

第二章 物理层

2.1 数据通信的理论基础(bandwidth、尼奎斯特定理,香农定理)

1、带宽(bandwidth):传输过程中能量(振幅)不会明显衰减的频率的宽度,通常引用的带宽是指从0到使得接收能量保留一半的那个频率位置,是传输介质的一种物理特性。通常取决于介质的构成、厚度、电线或者光纤的长度

2、信道:用于传输信号的一个物理通道。可以是一个传输导线,也可以是一个频率范围,或几个传输导线的传输能力的复合。

3、信噪比(SNR):信号功率S与噪声功率N的比值,即为信噪比S/N

4、分贝(dB):通常把信噪比表示成对数的形式10log10S/N,对数的取值单位为分贝。信噪比100可以表示为20dB

5、尼奎斯特定理

用来表示一个有限带宽的无噪声信道的最大数据传输速率

表达式:(每秒2B次采样)最大数据速率=2Blog2V(比特/秒)

B:带宽 V:离散级数,即可识别的信号个数

香农定理

用来表示一条带宽为B Hz,信噪比是S/N的有噪声信道的最大数据传输率或容量

表达式:最大数据传输率=Blog2(1+S/N)

2.2 有导向的传输介质

1、磁介质:良好的带宽,但是延迟高

2、双绞线
原理:两根线绞在一起,噪音对他们的干扰是一样的,所以他们的电压差不会改变,通过电压差来表示信号
①全双工链路:可以双向同时使用的链路
②半双工链路:可以双向使用但一次只能使用一个方向的链路
③单工链路:只允许一个方向上传输的链路

3、同轴电缆
结构:(自内到外)铜芯、绝缘材料、编织外层导体、保护塑料外套
优点:很高的带宽,很好的抗噪性

4、电力线

5、光纤:内部是玻璃纤维
单模光纤:非常细,光在里面以粒子形式传播,没有反射折射,因此传播距离要很长
多模光纤:由于在玻璃和空气之间会发生折射,因此为了降低损失,就要采用全反射,这种光线传输叫多模光纤

2.5 数字调制与多路复用

·数据(Data):传递(携带)信息的实体,信息(Information)则是数据的内容或解释。

–模拟(Analog)数据与数字(Digital)数据

·信号(Signal):数据的物理量编码(通常为电编码),数据以信号的形式传播。

–模拟信号与数字信号

–基带( Base band ) 与宽带( Broadband )信号

  1. 信道及其主要特征
    (1)数字新道和模拟信道
    数字信道:以数字脉冲形式(离散信号)传输数据
    模拟信道:以连续模拟信号形式传输数据
    (2)模拟信号和数字信号
    模拟信号:时间上连续,包含无穷多个值
    数字信号:时间上离散,仅包含有限数目的预定值
    (3)数字数据的传输方式
    基带传输:不调制,编码后的数字脉冲信号直接在信道上传送。
    例如:以太网
    频带传输:调制成模拟信号后再传送,接收方需要解调
    例如:通过电话模拟信道传输
    (4)数据编码
    不同类型的信号在不同类型的信道上传输有4种组合,每一种相应地需要进行不同的编码处理

    (5)模拟传输和数字传输
  2. 编码和调制
    用数字信号承载数字或模拟数据——编码
    用模拟信号承载数字或模拟数据——调制
    (1)数字数据的数字信号编码
    ·不归零(NRZ):简单的将低电平表示为0,高电平表示为1
    问题:带宽效率低;较多连续的0或1导致接收方无法分辨每个比特
    ·不归零逆转(NRZI):0时信号不发生变化,1时信号跳变
    问题:可以对连续的1进行区分,但是不能对连续的0进行区分
    ·曼彻斯特编码:将数据信号与时钟信号通过异或方式混合在一起,用电压变化表示0和1,高跳变到低为0,低跳变到高为1
    问题:带宽效率低(是NRZ的两倍)
    ·差分曼彻斯特编码:相对调相的编码,与时钟表达很相近,不同点是:若1则跳变,若0则不跳变

    (2)基带传输:信号的传输占有传输介质上从零到最大值之间的全部频率(这是有线介质普遍使用的一种调制方式)
    (3)带宽效率:如何使用有限的带宽传递更多的数据:使用多个信号级别
    (4)时钟恢复问题:通信双方需要同样速率的时钟才能正确解析信号
    (5)平衡信号:在一段时间内,正电压与负电压一样多的信号。均值为0,能够避免直流信号
    (6)通带传输:信号占据了以载波信号频率为中心的一段频带(这是无线和光纤最长使用的调制方法)
    (7)数字数据的调制编码
    基本原理:用数字信号对载波的不同参量进行调制。

    · 幅移键控ASK:不同的振幅表示0,1
    ·频移键控FSK:不同的频率表示不同的信号
    ·相移键控PSK:不同的相位表示不同的信号

    ·相对调相:相邻两位之间存在相互影响。若为1则跳变,0则不跳变
  3. 多路复用
    使多个信号可以共享同一传输路线
    分类:
    (1)FDM(频分复用):整个传输频带被划分为若干个频率通道,每个用户占用一个频率通道。频率通道之间留有防护频带。
    (2)WDM(波分复用):整个波长频带被划分为若干个波长范围,每个用户占用一个波长范围来进行传输。
    (3)TDM(时分复用):把时间分割成小的时间片,每个时间片分为若干个通道(时隙) ,每个用户占用一个通道传输数据。

2.6  PSTN电话系统(Modem的调制方式(调幅;调频)、ADSL、干线与复用(FDM;WDM;TDM)、电路交换、分组交换、报文交换三种交换方式的比较)

PSTN通过设置不同层次的交换局,避免全连接

特点:线路减少;按需连接;分布式保存、逐级呼叫,检索效率高;多条可选路径,灵活度高。

  1. 本地回路
    传统双线电话线路上传递模拟信号。本地回路关注如何使用模拟信号尽可能快速的传递数据。主要设备是调制解调器,调制是将数据转换为模拟信号,解调制是将模拟信号转换为数据。根据发展历史,调制解调器可以分为使用4k带宽的电话调制解调器和使用1.1M带宽的宽带调制解调器(ADSL调制解调器)
  2. ADSL调制解调器(非对称数字用户线ADSL)
    ADSL调制解调器使用本地回路的全部1.1M带宽,电话和数据传输能够同时进行。
    采用频分多路复用技术将1.1M带宽划分为256个4k信道,一个用于电话传输,5个空闲(隔离),防止语音信号和数字信号相互干扰,其它用于数据传输。用于数据传输的信道根据信道质量动态采用不同的调制速率,大部分信道用于下行数据传输(到用户),小部分信道用于上行数据传输(从用户)
  3. 交换
    交换局内主要设备是交换机(交换节点),交换机连接多条线路,主要功能是把一条入境线路上来的呼叫交换到一条出境线路上。从而支持呼叫一直到接收方。本小节主要介绍两种交换技术—电路交换和数据包交换(分组交换)
    (1)电路交换:是一种面向连接的工作方式。分为三部:使用前建立一条从发送方到接收方的路径;使用这条路径传输;传输完毕释放路径。
    缺点:
    ·建立连接的时间长
    ·一旦建立连接就独占线路,线路利用率低
    ·无纠错机制
    优点:
    ·建立连接后,传输延迟小
    (2)包(分组)交换:是一种非连接的工作方式。数据被分为多个包(分组),每个包包含完整的目的地址。每个包经过交换节点时,交换节点按照当前网络状况(交换表)为其选择一条输出线路。此过程一直持续直到包被传送到目的地。
    优点:
    ·存储量要求较小,可以用内存来缓冲分组——速度快
    ·转发延时小——适用于交互式通信
    ·某个分组出错仅重发该分组——效率高
    ·各分组可通过不同路径传输,可靠性高
    缺点:
    ·排队延迟,数据包可能会因为存在很多包要转发而需要等待一段时间才能被转发,还可能引起拥塞
    特点:
    ·数据传输前不需要建立一条端到端的通路
    ·有强大的纠错机制、流量控制和路由选择功能
    (3)报文交换(message switching)
    报文交换中交换结点也采用存储转发方式。但报文交换对报文的大小没有限制,因此要求交换结点需要有较大的缓存空间。
    (4)分组交换和电路交换的异同

第三章 数据链路层     

利用物理层提供的不可靠的比特传输服务(功能),在两台相邻机器之间实现可靠高效的数据通信的算法和协议。

1、可靠性:差错控制和流量控制。

(1)差错控制是为了克服线路误差带来的传输错误。

为了确保所有帧按照正确顺序传递给目标机器的网络层:

--发送方发送反馈信息来确保传递可靠

--引入计时器来防止故障或通信信道出错等原因丢失某一帧使发送方持续等待确认

--通过序号保证每一帧按照顺序且不会被接收方重复接收

  1. 流量控制是为了避免快速的发送方淹没慢速的接收方。所谓淹没,则是发送方发送的太快,使得接收方来不及接收所有的数据,造成数据的丢失

--基于反馈的流量控制(链路层):接收方给发送方返回信息,允许它发送更多的数据,或者至少告诉发送方自己的情况怎么样

--基于速率的流量控制(网络层):使用这种方法的协议有一种内置的机制,它能限制发送方传输数据的速率,而无须利用接收方的反馈信息

2、高效性:主要指能够充分利用线路的带宽。主要是克服线路延迟给可靠传送数据带来的限制

3、帧:数据链路层对等体之间交换的协议数据单元

数据链路层从网络层获得数据包,并将之包装成包含:帧头+有效载荷+帧尾的帧

4、主要功能:
·将数据从源机器的网络层传输到目标机器的网络层

(1)无确认的无连接服务:源机器想目标机器发送独立的帧,目标机器不对这些帧进行确认,不需要建立逻辑连接。适用于错误率较低或者实时通信的情况

(2)有确认的无连接服务:源机器向目标机器发送独立的帧,目标机器会对这些帧进行确认。不需要建立逻辑连接。适用于不可靠的通信(无线系统,WiFi)

+(3)有确认的有连接服务:源机器和目标机器在传输任何一个数据之前要建立一个连接,保证目标机器按照正确的顺序接受每一个帧。适用于长距离且不可靠的链路(卫星、长途电话)

·处理传输错误

·调节数据流,确保慢速的接收方不会被快速的发送方淹没,造成数据丢失

3.1.2 成帧(位填充、字节填充)

1、字节计数法
用头部的一个字段来标识该帧中的字符数
问题:计数值有可能因为一个传输错误而被弄混

2、字节填充的标志字节法

发送方使用标志字节(flag)作为开始和结束,使用转义字节(ESC)表示其后的字节为数据字节而不是标志字节或转义字节。接收方将收到的数据中的转义字符删除后再传递给网络层

3、比特填充的标志比特法

使用“01111110”表示帧的开始和结束,并且在数据中,若遇到5个连续的1,就在其后填入一个0。接收方除了要去掉首尾的“01111110”以外,还要将数据中5个连续1后面的0删除

相比于方法二,帧长度增幅更少,降低了传输数据内容

  1. 物理层编码违禁法

使用不会出现在常规数据中的冗余比特作为边界。好处是除了开始和结束的填充以外,不再需要填充额外的数据

3.2 错误检测和纠正(CRC)

循环冗余校验码(CRC)/多项式编码

用于推断是否发生错误。适用于高度可靠的信道,错误偶尔发生时,只需重传整个数据块即可

步骤:

①收发双方商定一个比帧短且头尾都是1的01串,称为生成多项式

②帧的后面附上生成多项式长度减一个0,作为被除数对生成多项式模2除,得到商和余数

③若帧与余数合并以后在接收方被生成多项式整除,那么认为传递过程没有出错

模2除中加法无进位,减法无借位,即加减等同于异或,商0/1由被除数首位决定,首位是1则商1,是0则商0

3.3 基本数据链路协议(停等协议)

·网络层、数据链路层和物理层都是独立的进程

·物理层的功能实现驻留在网络接口卡中,主要功能包括按照一定速率将数据转换为信号发送出去和将接收到的信号转换为数据。硬件实现

·数据链路层的功能实现部分分布在网卡中,部分分布在操作系统中。网卡中的数据链路层功能主要包括对发送的数据生成校验和,对接受的数据检查校验和。硬件实现

·网卡上发送和接收的数据都存放在一个缓冲区中,由网卡上的物理层和数据链路层进程使用。硬件实现

·数据链路层的部分功能(本章关心的协议内容)在操作系统中实现,主要包括可靠性和高效性所涉及的各种功能。如重传、确认、编号、流量控制、流水等。软件实现

·网络层的功能也在操作系统中实现。软件实现

·操作系统中发送和接收的数据都存放在操作系统管理的缓冲区中,由位于操作系统中的数据链路层和网络层进程使用。软件实现

·应用层有单独的缓冲区。数据需要在应用层缓冲区和操作系统缓冲区交换数据。软件实现

·组成帧的四个字段:kind、seq、ack、info,前三个包含控制信息,称为帧头,最后一个可能包含了要被传输的实际数据

  1. 无约束单工协议——不考虑差错和流量控制
    工作在理想情况,不考虑任何错误,几个前提:

·数据单向传输

·发送方无休止工作(要发送的信息无限多)

·接收方无休止工作(缓冲区无限大)

·通信线路(信道)不损坏或丢失信息帧

工作过程

·发送程序:取数据,构成帧,发送帧;

·接收程序:等待,接收帧,送数据给高层

  1. 无错信道上的单工停等协议——考虑流量控制,不考虑差错控制
    增加约束条件:接收方不能无休止接收。
    解决办法:接收方每收到一个帧后,给发送方回送一个响应,发送方需等待接收方确认帧返回后才发送下一帧。如果接收方不返回应答信号,发送方必须一直等待,传输效率低。
    工作过程
    ·发送程序:取数据,成帧,发送帧,等待响应帧;
    ·接收程序:等待,接收帧,送数据给高层,回送响应帧
  2. 有错信道上的单工停等协议——考虑流量控制,考虑差错控制
    增加约束条件:信道(线路)有差错,信息帧可能损坏或丢失。

解决办法:出错重传。

带来的问题:

·什么时候重传 —— 定时

·响应帧损坏怎么办(重复帧)—— 发送帧头中放入序号

·为了使帧头精简,序号取多少位 —— 1位

发方在发下一个帧之前等待一个肯定确认的协议叫做PAR(Positive Acknowledgement with Retransmission)或ARQ(Automatic Repeat reQuest)

3.4 滑动窗口协议(捎带确认、发送窗口、接收窗口、一位滑动窗口协议、回退N、选择性重发协议)

1、基本概念
(1)捎带确认:当到达一个数据帧时,接收方并不是立即发送一个单独的控制帧;而是抑制自己并开始等待,直到网络层传递给它下一个要发送的数据包。然后,确认信息被附加在往外发送的数据帧上(使用帧头的 ack 宇段〉。实际上,确认信息搭了下一个出境数据帧的便车。这种暂时延缓确认以便将确认信息搭载在下一个出境数据帧上的技术就称为捎带确认
(2)发送窗口:发送方总维持着一组序号,分别对应于允许它发送的帧,称这些帧落在发送窗口。上界是要发送的帧的序号,下界是未收到确认的序号最小的帧。大小可变
(3)接收窗口:接收方维持着一个窗口对应于一组允许它接受的帧。上界表示能够接收的序号最大的帧,下界表示希望收到的帧。大小固定

2、一位窗口滑动协议

发送窗口大小为1,1个发送缓冲区;接收窗口大小为1,1个接收缓冲区

源站发送单个帧后必须等待确认,在目的站的确认到达源站之前,源站不能发送其他数据帧。因为发送窗口大小为1,必须用来保存当前未确认的帧以超时重传

3、回退N协议

发送窗口大小大于1,多个发送缓冲区;接收窗口大小为1,1个接收缓冲区

发送方按照顺序向对方发送帧,在收到对方的确认以后窗口向后滑动,若当前窗口中的第一个帧出现超时,那么回退到这个帧,重新发送所有的帧

  1. 选择重传协议

发送窗口大小大于1,多个发送缓冲区;接收窗口大小大于1,多个接收缓冲区

发送方按照窗口的顺序依次发送帧给接收方,而接收方检查该帧是否可以落在接收窗口内,即以前没有接受过且该序号在可接受的范围内,如果可以那么不管这一帧是否为网络层所期待的下一数据包,都接受该帧并暂存于缓冲区内。该帧会一直保存在数据链路层中,直到所有序号比它小的帧已经按顺序递交给网络层,它才被传递给网络层

选择重传有否定确认,当接收方发现坏帧丢弃时,立刻发送一个Nak给发送方,让它重传,以防超时

第四章 介质访问子层

介质访问控制(MAC):当多个使用者共享同一个信道时,确定下一个使用者的问题

4.1 静态和动态信道分配

静态信道假设(FDM,TDM)方式不适用于突发流量,需要动态分配信道的协议实现。

动态信道分配问题的假设:

·流量独立:每个站独立产生流量

·单信道假设:所有站共享同一信道

·冲突假设:如果两帧“同时传输”(传输时间有重叠),会产生信号重叠造成信号混乱、不可识别,称为“冲突”。冲突使所有传输失败。

·时间连续或分槽(离散):如果时间连续,则在任何时刻可以开始传输数据;如果时间离散,则只能在某个时间槽的起始点开始传输。

·载波侦听或不侦听:侦听判断当前信道是否空闲。

4.2 多路访问协议(ALOHA、CSMA、CSMA/CD、最小帧长、MACAW)

1、纯ALOHA(想说就说)

当站点有数据要发送时就发送。如果多个用户同时发送则会发生冲突造成发送失败。发送失败后(发送站会依靠某种方法得知),等待一段随机时间再次发送。

2、分槽ALOHA

是纯ALOHA协议的改进。将时间离散化,分为时间槽(一段事先规定的时间)。只有在时间槽的起始点可以发送。通过推迟发送时间,避免连续时间发送带来的某些冲突。

3、CSMA(载波侦听多路访问协议)(先听后说)

为了不打扰已有的通信,站点在发送数据之前首先侦听信道。如果信道空闲,则发送;如果信道忙,代表有其它站点在发送数据,则不能发送,等待一段随机时间发送

根据贪婪程度和处理策略不同,分为:

·1-坚持CSMA:站点在发送数据之前首先侦听信道。如果信道空闲,则发送;如果信道忙,则继续侦听,直到信道空闲,立即发送

·非坚持CSMA:站点在发送数据之前首先侦听信道。如果信道空闲,则发送;如果信道忙,则等待一段随机时间再来侦听

·p-坚持CSMA:适用于时间分槽系统。站点在发送数据之前首先侦听信道。如果信道空闲,则以概率p发送数据;以概率1-p推迟到下一个时槽;重复以上过程,直到发送出去或听到信道忙。如果信道忙,则等待一段随机时间再来重复以上协议

4、CSMA/CD(带冲突检测的CSMA协议)(边说边听)

发送方一边向信道发送(说)数据,一边从信道上读取(听)数据,通过判断双方是否一致来判断是否发生了冲突。听到冲突的站点立即停止发送(提高效率),运行BEB协议分解冲突。

  1. 二进制指数后退(BEB协议)
    站点运行CSMA/CD协议,听到冲突后进入竞争周期,时间离散为多个时间槽。如果第一次冲突,则参与竞争的站点在随后的两个时间槽内随机选择一个发送,发送前依然要侦听信道是否空闲。
    排在最前面的只有一个竞争者的时间槽对应的竞争者竞争成功,随后抓住信道发送数据,其它竞争者等到选择的竞争时间槽时侦听信道为忙,只能等待已有通信完成再次尝试发送。

当一个时间槽有两个竞争者都会听到冲突,全部竞争失败。竞争失败的站点将随机等待的时间槽数加倍,然后从中随机选择一个参与竞争,直到竞争成功或达到最大竞争次数。
二进制指数后退指的是每次冲突后随即后退的时间槽翻倍,直到1024个时间槽。如果在1024个时间槽运行6次依然解决不了冲突,则认为网络坏了。

竞争周期时间槽的时间应该远远小于普通帧长。这样能够减少冲突带来的消耗,提高信道使用效率。

对每一个站点,选择任何一个时间槽都是公平的。因为一个时间槽的好坏不只是取决于是否靠前,更重要的是是否其它竞争者也选择了这个时间槽(博弈论)。

竞争周期的最后结果是某一个站点获得信道使用权。

  1. 最小帧长
    发送方必须发送足够长时间的数据,才能够检测到发生在“远方”的冲突,从而做出正确的判断。需要至少发满信号跑一个来回的时间,在以太网里,最小帧长是64字节

4.3 以太网(二进制指数后退算法,最小帧长、曼彻斯特编码、差分曼彻斯特编码、802.3帧格式

1、经典以太网MAC子层的帧格式

由于冲突检测要求有效数据必须大于64字节,所以不算前导码的8位,数据段为空时,帧的长度只有18字节。所以存在长为46字节的填充位

Q:以太网不提供可靠的传输,为什么还需要校验和

A:用校验和检查数据是否传输出错。有校验和不代表可靠传输,但是可靠传输一定有校验和

2、交换式以太网

以交换机为核心设备而建立起来的一种高速网络。可在高速与低速网络间转换,实现不同网络的协同。交换机分割了连接不同网络成为不同的冲突域,不同冲突域之间信号不会彼此干扰,所以不用要考虑不同自治域之间的冲突问题

4.4 WLAN(隐藏站和暴露站问题、CSMA/CA、802.11 MAC子层协议)

1、无线和有线局域网的区别

(1)传输介质不同。导致WLAN存在隐藏终端盒暴露终端的问题

(2)传输范围不同。无线局域网站点的信号可能无法覆盖所有的其他站点,而有线局域网任意站点发送的信号都能到达其他所有站点

(3)信道检测方式不同。WLAN中采用能量检测、载波检测和能量载波混合检测三种检测信道空闲的方式;以太网通过电缆中电压的变化来检测

(4)在WLAN中,对某个节点来说,其刚刚发出的信号强度要远高于来自其他节点的信号强度,也就是说他自己的信号会把其他的信号给覆盖掉,但在本节点处有冲突并不意味着在接受节点处就有冲突

2、MACA冲突避免多路访问协议

(1)隐藏终端问题

A给B发,但C的信号接受覆盖范围没法覆盖到A,导致不知道A在给B发,误以为B空闲,一旦发送,那么信号会冲突干扰,导致失效。

问题的关键在于C无法知道B的接受情况,因为之前的监听是在发送方C自己这里进行的。这个问题是致命的

(2)暴露终端问题

B给A发,此时C想要发送信号给D,但C见听到戒指上有信号传输,则会等待B传输结束再进行给D的传输,但实际上这种等待是不必要的,因为C即使发给D也不会干扰A的接收信号,因为干扰只在接收方端产生,所以这种问题带来了效率的降低,根源在于C不知道接收方A的情况,只知道自己附近发送方B的情况。但问题不是致命的,因为并没有破坏传输

  1. RTS和CTS
    MACA的基本思想是发送方刺激接收方输出一个短帧,以便其附近的站能检测到该次传输,从而避免在接下去进行的数据帧传输中也发送数据。这项技术用来替代载波侦听。
    解决的方案就是发送方先发RTS,之后接收方会CTS信号,这个信号中包含这次传输的持续时长信息,保证让此时长内接收方附近站点主动静默,从而不会使其受到干扰

    一个点如果只能听到RTS,没有听到CTS,说明它在发送方的发送范围内,但不在接收方的发送范围内,那么它只要不干扰发送方接收CTS,就可以随便发送。解决了暴露终端问题
    一个点如果只能听到CTS,没有听到RTS,说明它在接收方的发送范围内,那么它要在持续时长内保持静默,知道传输结束才能再进行发送,否则会干扰接收方接受。解决了隐藏终端问题
  1. CSMA/CA
    带有冲突避免的CSMA
    它是802.11MAC子层的核心协议,与之前的MACA相比,它引入了短确认确保每一帧的发送成功,即数据发送后站启动确认计时器,如果计时器时间到但没有收到接收方回复的收到的确认,则试图重新发送,但没有考虑暴露终端问题

    C听到了RTS,设置NAV,不进行数据发送
    D听到CTS,保持静默,不进行数据发送
    CD都保持静默直到ACK信号
    NAV保存在CD内部
    (1)RTS与CTS
    与MACA类似,但是将规则改成了听到RTS之后也停止一切传输,知道此次数据传输结束。
    这样无法解决暴露终端问题,但由于该问题并不致命,所以进行舍弃
    (2)NAV网络分配向量
    每个站保留的信道何时要用的逻辑记录,每个帧携带一个NAV字段,说明这个帧所属的一系列数据将传输多长时间。所有听到数据帧的站将在发送确认期间推迟发送,不管能否真正听到确认的发送
    (3)二进制指数后退的CSMA/CA
    如果两个站点同时发送给一个站点RTS帧,会发生冲突,两个发送站点都接收不到CTS帧。这时需要分解冲突。
    无线局域网采用了随机后退策略,类似于p-坚持的CSMA协议+二进制指数后退协议。P-坚持用于事先尽量避免冲突,二进制指数后退用于发生冲突后的随机时间选择。
    侦听很短的一段时间后发现没有信号,则随机选择0-15个时间槽进行倒计时倒数,当听到有帧发送时暂停倒计时,空闲时计数,到0时就发送,如果发送成功则目标站会发送一个短确认,如果没收到确认,则发送方加倍自己选择的时间槽数,重新试图发送。如此反复,直到发送成功或达到最大重传次数

4.8 数据链路层交换(网桥(散列表;转发算法;逆向学习;动态拓扑结构变化)、生成树网桥、中继器、集线器、交换机、路由器、网关;网络设备与层次的对应关系)

1、工作原理

·网桥(交换机)的功能是将连接的网段断开,需要时连接(桥、桥接)。这样,发生在一个网段的通信信号不会“自动”(像中继器、集线器那样)转发到另外的网段。网桥具有中继器的功能,在此之上添加新的功能。网桥(交换机)的交换功能主要由三个模块组成:转发模块、自学习模块和MAC-端口映射表(也称MAC地址表)

·转发模块依据映射表决定入境的帧应该从哪个端口转出。转发规则为:

--当发送方和接收方在同一个端口,则不转发;

--否则,如果查找映射表成功,按照映射表转发;

--否则,向其余全部端口转发。

·自学习模块负责实时地将网络拓扑的情况和MAC-端口映射表同步,即让映射表能动态反应网络拓扑的变化。采用后向学习机制。动态学习机制,映射表是动态建立的,开始时为空,随着流量的增多,映射表不断完善

· 网桥实现机制:网桥(交换机)的交换功能主要位于交换机概念模型中的中继功能中,三个模块的相互关系为:

转发模块使用MAC-端口映射表(MAC地址表)进行转发,使用入境帧中携带的目的地址查找映射表,将帧转发到相应表项对应的端口

自学习模块执行后向学习算法,建立入境帧的源地址与入境端口的映射关系

映射表将转发模块和自学习模块的实现解耦合。其他网络设备的工作机制大体如此(表驱动)

2、目的地-端口哈希表的获得

泛洪算法:不需要知道网络的拓扑结构和相关的路由计算,仅要求接收到的信息的节点以广播的形式转发数据包

对于每个发向未知目的地址的入境帧,网桥将他输送到所有的端口,除了它到来的那个端口,慢慢的网桥学习到目的地址在哪

向后学习法:通过检查每个窗口上发送的所有帧的源地址,网桥就可以获知通过哪个窗口能访问到哪些机器

  1. 中继器/集线器/网桥/交换机/路由器/网关——对比

·中继器:物理层,模拟设备,用于连接两根电缆段,放大信号

·集线器:物理层,有许多输入线路,它将这些输入线路连接起来,在任何一条线路上到

达的帧都被发送到其他线路上。

·交换机:数据链路层,多端口的网桥。根据帧的目的地址转发,常被用来连接独立计算

机。

·路由器:网络层,当一个分组进入到一个路由器中的时候,帧头和帧尾被剥掉,位于帧

的 IP 分组被传递给路由软件,路由软件利用分组的头信息来选择一条输出线路。

·网关:传输层,应用层。应用网关是将一个网络与另一个网络进行相互连通,提供特定

应用的网际间设备,应用网关必须能实现相应的应用协议。应用网关可设在应用层或传输层。

设在应用层的叫应用层网关,也称代理服务器。设在传输层的叫传输层网关

第五章 网络层

5.1 网络层设计要点(虚电路子网、数据报子网)

网络层关注的是如何将源端数据包一路送到接收方。为了将数据包送到接收方,可能沿途要经过许多跳(hop)中间路由器。这种功能显然与数据链路层的功能不同,数据链路层的目标没那么宏伟,只是将帧从线路一边传送到另 边。因此 网络层是处理端到端数据传输的最底层。

网络层为了顺利实现数据从一端到另一端传输必须知道网络的拓扑结构(即所有路由器和链路的集合),并从中选出适当的路径。同时要仔细选择路由器,避免某些路由器和通信线路负载过重,有些线路和路由器空闲。

  1. 存储转发与数据包交换
    路由器是网络层设备,除了具有网络层的功能以外,还具有物理层和数据链路层的功能。
    存储转发:将入境数据缓存(存储),根据一定的规则调度到出境端口并发送(转发)的过程
    网络层向传输层提供的服务包括无连接的服务和面向连接的服务。
    (1)无连接服务
    所有的数据包都被独立地注入到网络中,并且每个数据包独立路由,不需要提前建立任何设置
    在这样的上下文中,数据包通常称为数据报(datagram ),它类似于电报(telegram),对应的网络称为数据报网络( datagram network )
    (2)面向连接的服务
    发送数据包之前,必须首先建立起一条从源路由器到目标路由器之间的路径。这个连接称为虚电路 (VC, virtual circuit ),它类似于电话系统中建立的物理电路,对应的网络称为虚电路网络( virtual-circuit network) 
    虚电路背后的思想是避免为每个要发送的数据包选择一条新路径。
    当建立一个连接时,从源机器到目标机器之间的一条路径就被当作这个连接的一部分确定了下来,并且保存在这些中间路由器的表中。所有需要在这个连接上通过的流量,都使用这条路径,这与电话系统的工作方式完全一致。当连接被释放之后,虚电路也随之消失。在面向连接的服务中,每个数据包包含一个标识符,指明了它属于哪一条虚电路。

5.2 路由算法(最优化原则、sink tree、最短路径路由、距离矢量路由及无穷计算问题、链路状态路由、距离矢量路由和链路状态路由的比较、分级路由、广播路由、移动路由)

1、最优化原则
如果路由器J在从路由器I到路由器K的最优路径上,那么从J到K的的这一段子路径必定是从J到K的最优路径。
最优化原则可以避免环路。即遵循最优化原则计算的路径没有环路,但是当网络拓扑收集不准确时,可能造成环路。
汇聚树:从所有源节点到一个指定目标节点的最优路径的集合构成一棵以目标节点为根的树。

2、最短路径算法
用于计算任意两个节点之间的最短路径,网络中经常使用的是迪杰斯特拉算法,当然还有其它的算法。
迪杰斯特拉算法工作在加权无向图或有向图上,先决条件是加权图已知。
迪杰斯特拉算法不适用于权值为矢量或权值为负值的情景。

3、泛洪算法
每个路由节点把从一个端口收到的数据从其它所有端口转发出去。泛洪算法不需要事先知道网络的拓扑结构图,所以适用于协议开始时传递拓扑信息

4、距离矢量路由算法
每个路由器维护一张表(即一个矢量〉,表中列出了当前己知的到每个目标的最佳距离,以及所使用的链路。这些表通过邻居之间相互交换信息而不断被更新,最终每个路由器都了解到达每个目的地的最佳链路。

无穷计算问题:

·整个网络最佳路径的寻找过程称为收敛( convergence )。

·有一个严重的缺陷:虽然它总是能够收敛到正确的答案,但速度可能非常慢。

·尤其是,它对于好消息的反应非常迅速,而对于坏消息的反应异常迟缓。

5、链路状态路由算法

每个路由器通过定期或触发式扩散自己的邻接信息给所有节点,从而得到完整的网络拓扑图,依据完整拓扑图计算自己的路由表。

算法思想:

·发现自己的邻居节点,了解其网络地址。

·设置每个邻居节点的距离

·构造一个数据包,包含获得的所有链路信息

·将这个包发送给所有的路由器,并接受来自其他路由器的信息包。

·计算出到每个其他路由器的最短路径。

6、层次路由

一个路由部署问题:一个路由器要回答的目的地址太多了
路由器的数据结构存储在内存中,存储空间非常昂贵。
路由器要回答可扩展问题
解决方法就是分层路由,分层多个区域,区域内部详细路由,区域之间使用域间路由。

  1. 广播路由
    找到支持数据广播的转发路径。
    当一个节点收到广播分组,判断这个分组是否从自己到广播源节点的最短路径的端口上收到。如果是,则认为是第一份收到的数据,转发给所有其他邻居节点;否则,则认为是重复分组,不再转发。
  2. 组播路由
    找到支持数据组播的转发路径。
    如果一个路由器连接的主机没有组成员,并且没有收到其它路由器的关于组的连接请求,则认为本节点与组无关,通知上游路由器剪枝掉自己;如果一个路由器原来位于组的转发树(结构)上,现在所有下游节点都提交了剪枝请求,并且自己直接连接的主机再没有组成员,则也向上游路由器发送剪枝掉自己的请求
  3. 选播路由
    当节点向一个组传递数据时,只需要向距离最近的一个组节点发送即可;反之,当从一个组接收数据时,也是选择距离自己最近的节点。
  4. 移动主机路由
    支持主机的移动:能够找到它并将数据传送给它。
    初始时,每个地点的管理服务器分为三个部分:本地主机在本地,本地主机在外地,外地主机在本地。各个地点的服务器定期交换部分内容,完成路由。

5.3 拥塞控制(RED)

1、拥塞:网络中存在太多数据包导致数据包被延迟和丢失,从而降低了传输性能

2、拥塞产生的原因

·传输层注入太多的、超过网络处理能力(网络容量)的数据

·网络层路由协议不能充分使用网络资源、不能适应流量的分布变化

·网络资源不足以支持流量

3、随机早期检测协议(RED)

每个路由器实时检测队列长度,如果超过一定的阈值,代表将要发生拥塞,尽早地随机选择一些分组丢弃。RED协议尤其适用于不支持ECN的网络中。现在新的拥塞控制主要集中在基于ECN的拥塞控制(新的路由器支持)。
当拥塞时,若路由器向发送方发送抑制包,那么大量的抑制包反而会加重拥塞。所以网络层解决拥塞的思路就是防患于未然,在局面变得毫无希望之前让路由器舍弃负担。后面配合传输层可以降低用户发送速率,从根本上解决拥塞

5.4 服务质量(资源预留、缓冲、抖动、漏桶算法、令牌桶算法)

服务质量(QoS)机制是根据网络实际状态和用户的需求,确定用户数据的传输方案,使之与要求尽量匹配的一些方法的统称。

①可靠性:网络信息系统能够在规定时间和条件下完成规定功能的特性(丢包率)

②延迟:数据(报文或分组)从网络的一端到另一端的时间

③抖动:延迟的变化(标准方差)或数据包到达时间的变化

④带宽:网络通信线路所能传送数据的能力

流量整形:将随机的用户流量进行规则化处理,以便网络路由。包括漏桶和令牌桶算法。掌握。

  1. 漏桶算法:容量固定,无论注入桶内的速率是大是小,出桶的速率总是恒定的。当请求到达时,放入桶中,以恒定速率处理请求,即出桶。当入桶速率过大时,会丢弃请求,即拒绝服务
  2. 令牌桶算法:桶内存放发送数据的令牌,每单位时间获得一定量的令牌,发送数据时取出令牌,流量大小受限于积累的令牌数量。桶满时丢掉令牌,不丢弃数据包,没有令牌时拒绝服务。一般令牌桶下面会有一个用于平滑发送速率

5.5 网络互连(隧道技术)

1、隧道技术

·隧道技术是解决不同种类网络互联一个特例的方法。

·隧道技术用于解决发送和接收网络属于同一类型网络,但是中间经过不同类型网络的情况。

·隧道技术是一种封装技术,在中间网络传输时将整个数据包使用中间网络的协议类型封装。

·网络种类不同,则封装数据包的头部和对头部的处理方法不同,而数据包的头部和对头部处理的方法驱动数据在网络中被路由,不同的头部及其处理方法对应于汽车的引擎。

2、数据包分段

不同类型的网络互联还会带来另外一个问题,即不同网络支持的最大传输单元(MTU)不同。通俗讲,就是每个网络一次数据传输的最大能力不同。
问题:当一个大的分组经过一个MTU较小的网络时不能直接把这个分组传输,无法承载大于MTU的数据。
可能的解决方案是在网络的入口路由器将其分成小的部分(分段),在出口路由器或以后的某个地方重新组装。(切分数据,每一段数据再配上IP头)
组装是难点。需要分段时做一些额外数据结构和算法(具体见IPv4)

5.6 Internet的网络层(IPv4协议、IP地址、子网、子网掩码、子网划分、CIDR、地址聚合技术、NAT、ICMP、ARP工作过程、DHCP、OSPF、BGP)

1、IPv4协议

层与层之间数据的传递,上层整段消息内容是下一层的数据,对下一层透明

IPv4协议对应的协议数据单元是数据包(分组),包括头和数据两个部分。数据来自于上层协议(传输层协议)或IPv4服务的网络层协议(网络控制信息协议)等。

IPv4协议分为协议头和处理算法,头格式规定了数据传递时必须携带的信息,处理算法根据这些信息完成数据的递交。

提供尽最大努力的数据传输服务(不可靠)

IPv4协议岁赢得协议数据单元式数据包(分组),包括IP头和数据两部分。数据来自上层协议(传输层)

IP头

1)版本:记录数据报属于什么版本,Ipv4 Ipv6

2)IHL:IP 头长,单位为 4 字节,因为头部至少 20 字节定长,所以值域 5~15。

3)区分服务:前 6 位标识数据报服务类型,后 2 位携带显示拥塞信息,了解。

4)总长度:数字报总长度,单位是 1 字节(8bit),包括头和数据,最大长度 2 16字节

5)标识(ID,16位)标识一个数据包。如果数据包需要分段,则需要将数据包的数据字段分成多份,每份数据再封装为一个数据包(添加数据包头部,为了能够路由转发),分段的数据包(子数据包)中的标识字段与被分段数据包(父数据包)的标识一致(继承)。重新组装时,将标识一样的数据包组装。

6)不分段(DF,1位):标识数据包不能分段。如果携带此标识的数据包进入一个小分组网络(MTU不支持携带的数据量),则被拒绝转发,并发送相应消息。

7)更多段(MF,1位):标识后面是否还有分段,置位标识还有,否则没有,自己就是最后一段。

8)分段偏移量(fragment offset,13位):标识本分段数据在原来数据包数据中的位置(偏移量),8字节为单位。

9)生存期 TTL:计数单位为跳数,每经过一跳减一,递减到 0 的时候数据包被丢弃并由路由器给源地址发送一个报警包。设定目的主要解决环路问题,避免数据包被永远都留在网络中。不同协议的技术单位不同,有的还设定为秒,这是为了控制拥塞,但是秒不好实现。

10)协议:记录 IP 分组携带数据的协议类型,即传输层协议的编号,如 TCP、UDP 等

11)头校验和:对 IP 头信息进行校验,检测数据包穿过网络时是否发生错误。但是由于只校验了头,所以 IP 数据报整体依旧不可靠

12)源地址和目的地址:源地址可以用于丢包时给源地址发消息;目的地址用于寻找路径时查路由表

13)选项:给出对寻址过程中要求必须经过的路由器,如今,几乎已经不再使用 IP 选项

14)IP 头第二行都是关于分段的处理,其用途就是:不同网络的最大帧长的要求可能不同,从而大数据进入小网络需要对大的数据进行分段。标识表示这段分段属于哪个数据报:DF 表示是否允许分段,DF=1 表示该数据报不允许分段,到达需要分段的地方就丢包返回消息;MF 表示所属于的数据报是否还有更多的段。MF=0 表示当前分段是该数据报的最后一段;分段偏移量表示该分段在整个数据包中的位置,以 8 字节为单位。

·分段举例:一个大的IP分组经过小分组网络时,被分成了多个小的分组。

--分段过程:将大的分组的数据分成若干部分,为每部分封装一个IP头。子分组的头部字段取值与父分组头部字段的关系:如版本号、头长度、区分服务、标识、生存期、协议、源地址、目标地址等字段直接继承;跟分段相关的字段如总长度、MF、分段偏移量等需要根据分段情况填写。

①source address和identification唯一标识一个分组,这样到达时就可以把同一个分组的碎片放在一起

②fragment offset偏移量可以将碎片按顺序排好

③第一篇偏移量为0;最后一片MF为0;

前一片的偏移量*8 + total length - IHL*4 + 1 = 下一片的偏移量

--组装过程:根据与分段相关的字段将各分段携带的数据组装在一起,为其封装一个IP头。组装时,标识号一致的分段需要组装为一个分组;判断所有数据是否都已经收到,根据总长度、分段偏移量、MF、IHL计算判断。碎片在传输过程中可能丢失,等碎片全部到达且按顺序排好后才进行组装

2、IP地址
IP地址是一种逻辑地址,长度为32位,为了减少为每个IP地址单独路由引发的路由器表项过多,通常采用层次地址。即IP地址的一部分用于标识所在的网络,另一部分标识在网络中的编号,分别称为网络地址和主机地址。位于同一个网络的主机之间具有相同的网络号,称为(网络)前缀
IP地址中的网络号需要某种声明:一种是子网掩码,一种是分类的IP地址。

(1)分类寻址

IP地址被分为5类。如A类允许27个网络,每个网络中允许有224台主机,由于每类网络中允许的主机数量是固定的,所以造成了IP地址极大的浪费,所以引入了后面的CIDR

(2)子网掩码

用于声明IP地址中网络前缀的长度

使用点分十进制表示,如18.0.31.0/24,24代表网络号位数。子网掩码是网络号长度个1和主机号长度个0组成的,子网掩码与IP按位与可以得到网络号

子网划分:在内部将一个网络划分成几个部分供多个内部网络使用,但对外部世界仍然像是单个网络一样。从主机位的最高位置根据需要拿出一位或几位作为子网的编号。划分的原则是每个划分后的子网必须具有相同的网络号,并且主机空间满足子网要求。

转发过程:数据报到达后,路由器检查该数据报的目的地址,将该目的地址与路由表中每个子网目标的子网掩码按位与看是否匹配

3、CIDR-地址分配
按需分配:解决地址短缺,提高地址使用效率。
子网划分与聚合的一个实例:以下页图为例

用一块从 194.24.0.0 开始的大小为 213的地址分配三个大学的地址。计算过程如下。

其中每个地点的两行分别代表该地的起始和终止 IP 地址。竖虚线为网络号和主机号划分。

分配的原则是:一个网路只能有一个网络号,进行 IP 地址分配时尽可能连续分配。以

牛津大学为例,尽管前面余下 210个空白,但是依旧选择向后

路由聚合 rounte aggregation:为了减小路由表长度,将多个小前缀地址块合并为

一个大前缀地址块,如上面的三个地址就可以聚合成一个地址,方法是将三者网络号最大公

共部分聚合为新网络号

聚合的条件:具有相同转发端口的表项

如此,就可以将三个路由表项合成一个,其下一跳是伦敦。但由此带来一个问题:如果

上面空白的那部分被分配给非洲某学校,那么空白部分就会被错误的聚合。因此要在路由表

中新增一项单独指明空白部分的下一跳。

所以,在没有聚合时,查路由只需要找到匹配的一项就可以跳到下一跳,但是有聚合以

后,需要寻找路由表项中的最长匹配

路由器的转发过程完善如下:当新的消息进入路由器时,首先进入等待队列,通过一定

的调度策略进行调度。调度到这个消息时,获取其目的地址,将目的地址分别与路由表中的

每一项网络号的子网掩码进行比对,选取最长匹配的网络表项进行转发。当然,没有查询到

匹配的时候,转发到缺省表项,也就是给上一层路由,继续寻找。

4、NAT 网络地址转换
NAT工作的基础是预留了一部分私有地址。私有地址只允许网络内部使用
(1)IP地址短缺问题解决策略
--动态分配IP

--迁移到IPv6 (IPv6的地址为16字节,IPv4为4字节)
--多台共用一个IP

(2)NAT:它的思想是设定两套 IP 地址,内网相对于外网来说共用一个 public 地址,而在内网中,每台机器对应一个 private 地址

(3)内网之间的通信使用private地址,当需要向外网发送消息时,只需将源地址替换为内网共用的public地址

(4)当外网向内网发送消息是,为了区分内网的主机,引入了port。私有IP与端口号映射成新的port,当与这个端口号交互时,根据映射算法可以知道私有IP

(5)缺点:

①违反了最基本的协议分层原则,传输层的数据不再对网络层透明

②私有IP与port对公有port的映射关系不是一一对应的

③违反IP唯一性原则。

5、ICMP 控制消息协议
为了提高 IP 数据报交付成功的机会,在网络层使用了网络控制报文协议来允许主机或者路由器来报告差错和异常情况。了解即可。ICMP 是通过向数据包的源地址报告有关事件使网络运行正常。

6、ARP 地址解析协议

是一个连接二三层的协议,可以说是 IP 分组-帧连接协议

某一层的地址只在本层有效,网络层负责寻找路径,而真正实现消息传递的是链路层,

所以要实现两层地址之间的映射。

  1. 路由器之间的消息传递

    现在的关键在于已知源IP、源MAC和目的IP的情况下怎样获取目的MAC
  2. 交换机原理

    上图交换机中存储着一张MAC和port的对应表,交换机的一个端口和一台主机一一对应。只有发送过消息的端口的对应关系才会被交换机所知道,一个广播能同时将一个子网的全部对应关系都传送给交换机
  3. 同一子网的消息传递
    主机E1给主机E2发消息,经过如下两个过程:
    ①主机1进行ARP广播,广播只能在一个子网内传递,无法穿透路由器。这时,E3将自己看做一个普通的主机

    ②主机2进行ARP应答(单播)
  4. 不同子网消息的传递
    ①与同一子网的①相同
    ②E3作为通往外网的代理,分析广播的接收方是否在这个子网中。若目的IP与E3所在的网络号相同,那么E3就当做一个普通主机,都则提交到路由器的网络层,而E3则作为这条消息的代理与外界进行交互
    在路由表中找到对方所属的子网之后,在该子网中通过ARP广播找到该IP

7、DHCP为主机分配本地IP地址

通过自动配置主机来启动主机

主机向服务器发送请求,服务器授予租约

  1. MPLS(多协议标签交换)

沿已建立的路径发送数据包;ISP 可用于 QoS IP 层下方用标签指示的路径

在进入 MPLS 网络(例如 ISP)时根据 IP 地址添加标签,并在离开时将其删除转发 仅在 MPLS 网络内使用标签

  1. OSPF 内部网关协议
    在路由器的小团体之间进行通信所使用的协议

计算单个网络(例如ISP)的路由

将网络建模为加权边图

将一个大型网络(自治系统)划分为连接到骨干区域的区域 有助于扩展;摘要跨越区域边界

  1. BGP 外部网关协议
    小团体与小团体之间交流所使用的协议

计算跨互连自治网络的路由 关键作用是尊重网络的政策约束

第六章 传输层

6.2 传输协议的要素(寻址、建立连接三次握手、释放连接三次握手、流控制和缓冲)

1、寻址

端口映射器(名字服务器):将服务名字解析为端口

初始连接协议(进程服务器):代理不常使用的进程

2、建立连接三次握手

①正常的三次握手建立连接过程

②第一段是一个旧连接上被延迟了的重复CONNECTION REQUEST。该段到达主机2,但主机1对此并不知情,主机2对这个段的回应是给主机1发送一个ACK段,即验证主机1是否真的请求建立一个连接,主机1拒绝主机2的连接请求确认后,主机2就意识到一个延迟的重复段所欺骗了,于是放弃连接

③跟②一样,主机2收到了一个延迟的CR,并回应了该请求,这里主机2已经使用序号y作为从2到1之间流量的初始序号,同时现在并没有包含序号y的段或者对y的确认,昂第二个延迟段到达主机2时,确认的是z而不是y,这时主机2意识到这也是一个旧的重复数据包

  1. 释放连接三次握手


    ①正常情况下,一个用户发送DR段来请求启动释放连接过程。当该段到达对方时,接收端也返回一个DR段,并启动一个计时器,设置计时器的目的是防止它的DR丢失。当这个DR段到达时,最初的发送端发送一个ACK段,并且释放连接,当ACK到达后,接收端也释放连接
    ②如果最后的ACK段丢失,可以通过计时器来补救,当计时器超时,无论如何都要释放连接
    ③若第二个DR丢失,发起释放连接的用户收不到期望的响应,所以它会超时,然后再次尝试释放连接
    ④若第二个DR丢失,且发送端所有重传DR的尝试都失败,经过N次重试后,发送端放弃,并且释放连接,同时,接收端超时,退出连接

4、差错控制和流量控制
差错控制的基础是一个滑动窗口(来自链接层),具有校验和和重传功能

流量控制管理发送方/接收方的缓冲 问题是数据在不同的时间进出网络和应用程序 窗口告诉发送方在接收方有可用的缓冲 制作可变大小的滑动窗口

5、拥塞控制
目标:

一个好的拥塞控制算法应该能够提供理想的带宽分配

①有效:能够充分利用网络的可用带宽

②公平:公平对待整个竞争的传输实体

③收敛:能够快速收敛到公平有效的带宽分配上

实现:

通过调整发送速率,获得一个理想的带宽分配

①流量控制:能够反应接收方缓存能力(已讲)

②拥塞控制:能够反应网络传输能力

③依赖于网络返回的反馈形式(显示、隐式,精确、不精确)

6.4 UDP

1、UDP,用户数据报协议,协议号是17

2、特点

(1)UDP是无连接的,不可靠的

(2)分组头部开销小,IP和TCP有20字节的头部开销,UDP只有8字节

(3)UDP尤其是用的一个领域是在client-server情形下

(4)UDP的一个应用是DNS(域名系统)<程序与DNS服务器之间>

(5)UDP不考虑流控制、差错控制,在收到一个坏的数据段之后它也不重传。所有这些工作都留给用户进程

6.5 TCP(TCP服务模型、TCP协议、TCP连接建立、TCP连接释放、TCP滑动窗口协议、Nagle算法、愚笨窗口综合症、TCP拥塞控制、slow start

1、TCP模型
·使用TCP的应用程序只能看到字节流(右),看不到作为单独IP数据包发送的段(左)


·TCP头

·第一行是源端口(Source port)和目标端口(Destination port)信息。

·第二行是序列号(Sequence number),表示此次发送数据的第一个字节的编号

·第三行是确认号(Acknowledge number),表示下次想要接收数据的第一个字节的编号。

·第四行由几个部分组成,第一部分是 TCP 头长度(TCP header length),它占 4 位,单位是“4 字节”,所以我们可以简单计算一下:2 4*4B=64B(其中有 20B 是 TCP 数据段的头的固定长度,另外 44B 是可选项 Options);第二部分是未使用的 4 位域;第三部

分是 8 个 1 位标志:CWR 和 ECE 用作拥塞控制的信号、URG 置 1 表示使用了紧急指针、 ACK 置 1 表示确认号字段是有效的、PSH 位表示这是带有 PUSH 标志的数据、RST 位被用于重置一个已经混乱的连接(一般而言,如果得到的数据段被设置了 RST 位,那说明你这一端有了问题)、SYN 被用于建立连接的过程、FIN 被用于释放一个连接;第四部分是窗口大小(Window size),它表示这个 TCP 数据段发送方当前可用的缓冲区大小,表示

的是这一方的接收能力。

·第五行由两部分组成:第一部分是校验和(Checksum),它校验的范围包括TCP数据段的头部、数据以及伪 TCP 头

伪 TCP 头的第一行是源地址,第二行是目标地址,第三行由三部分组成:8 位 0,TCP

的协议号(6)以及 TCP 数据段(包括 TCP 头)的字节计数。第五行的第二部分是紧急指针(Urgent pointer),它指向一段程序,调用后清除内存里的相关内容。

2、TCP连接建立(三次握手)

TCP是面向连接的,所以有三个重要阶段:建立连接、使用连接和释放连接

由于网络中节点的缓存能力的影响,使得分组可能滞留在网络之中,由于超时重传机制等原因产生的重复分组可能会引起严重的问题,于是我们利用选号和三次握手来保证可靠的传输

这分别是正常情况下的TCP连接建立和两端同时建立连接的情形

3、TCP连接释放

4、拥塞控制与慢启动算法

网络的拥塞里存在两个方面的问题,对应着每个发送方维护的两个窗口:网络容量(对应拥塞窗口)和接收方的容量(对应接收方准许的窗口)。拥塞控制的本质是降低发送方的发送速率,所以发送方的速率应该取以上两者里的小值。

拥塞控制实际上是由网络层(RED)和传输层(TCP 慢启动)共同完成的。

以上图示即展示了 TCP 慢启动的过程,一开始通过成倍增加(指数级)拥塞窗口的大小不断试探网络连接情况,当到达阈值的时候,开始线性地增长拥塞窗口的大小。当一次超时发生的时候,将阈值设置成为当前拥塞窗口的一半,而拥塞窗口被重置为初始的值。

拥塞窗口一直增长,直至发生超时或达到接收方准许的窗口大小。

·网络层和传输层是如何合作完成拥塞控制,降低发送方的发送速率的?

当网络中路由器的被使用缓冲区的大小到达路由器的阈值的时候,路由器开始执行 RED协议,随意丢弃某些分组,被丢弃的分组的发送方因此会超时,这时通过 TCP 慢启动会降低发送方速率

第七章 应用层

7.1 DNS (域名系统、域名服务器) (应用层常见的协议:HTTP、FTP、SMTP、POP)

DNS:一种层次的、基于域的将主机名(域名)映射成IP的命名方案

根域名服务器:包含每个顶级域名的有关信息。启动域名层次结构顶部的查询。为了支持域名解析,每个域名服务器必须包含一个或多个根域名服务器的信息。

没有根域名服务器,就无法进行域外的名字解析。建立根域名服务器是战略高点。

顶级域名服务器包含一个行业或一个国家所有子域的有关信息,给出子域的域名服务器的权威记录。包含通用和国家、地区两类。

域名服务器包含域内所有子域的有关信息。

  • 23
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

社恐的西蓝花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值