计算机网络笔记 ——《计算机网络(第7版)》谢希仁

第一章 概述

基本概念

  • 有三大类大家很熟悉的网络,电信网络、有线电视网络和计算机网络。按照最初的服务分工, 电信网络向用户提供电话、电报及传真等服务。有线电视网络向用户传送各种电视节目。计算机网络则使用户能够在计算机之间传送数据文件。

  • 计算机网络的定义。

    • 计算机网络是一些互相连接的、自治的计算机集合。

    • 计算机网络是将不同地理位置上的具有独立功能的多个计算机系统用通信线路连接起来,在协议的控制之下,以实现资源共享和s数据通信为目的的系统。

  • 互连网和互联网

    • 以小写字母i 开始的internet (互连网)是一个通用名词,它泛指由多个计算机网络互连而成的计算机网络。在这些网络之间的通信协议(即通信规则)可以任意选择,不一定非要使用TCP/IP 协议。
    • 以大写字母I 开始的Internet (互联网,或因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定互连网,它采用TCP/IP 协议族作为通信的规则,且其前身是美国的ARPANET 。
  • 协议——为进行网络中的数据交换而建立的规则、标准或约定。 三要素:

    • 语法,即数据与控制信息的结构或格式;
    • 语义,即需要发出何种控制信息,完成何种动作以及做出何种响应;
    • 同步,即事件实现顺序的详细说明。

互联网的组成:边缘部分核心部分

(1) 边缘部分由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。

(2) 核心部分由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。

端系统的通信方式

  • 客户——服务器方式:客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户-服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。
    • 客户程序:
      (1) 被用户调用后运行,在通信时主动向远地服务器发起通信(请求服务)。因此,客
      户程序必须知道服务器程序的地址。
      (2) 不需要特殊的硬件和很复杂的操作系统。
    • 服务器程序:
      (1) 是一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
      (2) 系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址。
      (3) 一般需要有强大的硬件和高级的操作系统支持。
  • 对等连接方式(P2P):是指两台主机在通信时并不区分哪一个是服务请求方哪一个是服务提供方。只要两台主机都运行了对等连接软件(P2P 软件),它们就可以进行平等的、对等连接通信。

经典交换技术

  • 电路交换——整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。
    报文交换——整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。
    分组交换——单个分组(这只是整个报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点。
  • 若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较快。报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。由于一个分组的长度往往远小于整个报文的长度,因此分组交换比报文交换的时延小,同时也具有更好的灵活性。

几种不同类别的计算机网络

  1. 按照网络的作用范围进行分类
    (1) 广域网WAN (Wide Area Network) 广域网的作用范围通常为几十到几千公里,因而有时也称为远程网(long haul network) 。广域网是互联网的核心部分,其任务是通过长距离(例如,跨越不同的国家)运送主机所发送的数据。连接广域网各结点交换机的链路一般都是高速链路,具有较大的通信容量。
    (2) 城域网MAN (Metropolitan Area Network) 城域网的作用范围一般是一个城市,可跨越几个街区甚至整个城市,其作用距离约为5 ~ 50 km。城域网可以为一个或几个单位所拥有,但也可以是一种公用设施,用来将多个局域网进行互连。目前很多城域网采用的是以太网技术
    (3) 局域网LAN (Local Area Network) 局域网一般用微型计算机或工作站通过高速通信线路相连(速率通常在10 Mbit/s 以上),但地理上则局限在较小的范围(如1 km 左右)。
    (4) 个人区域网PAN (Personal Area Network) 个人区域网就是在个人工作的地方把属千个人使用的电子设备(如便携式电脑等)用无线技术连接起来的网络,因此也常称为无线个人区域网WPAN (Wireless PAN) ,其范围很小,大约在10m 左右。
  2. 按照网络的使用者进行分类
    (1) 公用网(public network) 这是指电信公司(国有或私有)出资建造的大型网络。“公用”的意思就是所有愿意按电信公司的规定交纳费用的人都可以使用这种网络。因此公用网也可称为公众网。
    (2) 专用网(private network) 这是某个部门为满足本单位的特殊业务工作的需要而建造的网络。这种网络不向本单位以外的人提供服务

计算机网络的性能指标

  • 速率
    • 网络技术中的速率指的是数据的传送速率,它也称为数据率(data rate)或比特率(bit rate),速率的单位是bit/s (比特每秒,或b/s, 有时也写为bps)
  • 带宽
    • 表示某信道允许通过的信号频带范围就称为该信道的带宽(或通频带)。
    • 在计算机网络中,带宽用来表示网络中某通道传送数据的能力,因此网络带宽表示在单位时间内网络中的某信道所能通过的“最高数据率”。
  • 吞吐量
    • 吞吐量(throughput) 表示在单位时间内通过某个网络(或信道、接口)的实际的数据量
  • 时延
    • 发送时延(传输时延):主机将数据注入到网络所需要的时间
      • 发送时延 = 数据长度(bit)/发送速率(bit/s)
    • 传播时延:数据在信道上传输的速率
      • 传播时延= 信道长度(m)/信号传输速率(m/s)
    • 处理时延:主机或路由器在收到分组时要花费一定的时间进行处理,例如分析分组的首部、从分组中提取数据部分、进行差错检验或查找适当的路由等
    • 排队时延:分组在经过网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发
    • 总时延=发送时延+传播时延+处理时延+排队时延
  • 往返时间RTT:数据在两端点之间往返一次所需时间

五层协议

  • 应用层:通过应用进程间的交互来完成特定网络应用。

  • 运输层:向两台主机中进程之间的通信提供通用的数据传输服务。

    • 1、传输控制协议TCP:提供面向连接的、可靠的数据传输服务,其数据传输单位是报文段。
    • 2、用户数据报协议UDP:提供无连接的、尽最大努力的数据传输服务(不保证可靠性),其数据传输单位是用户数据报。
  • 网络层:为分组交换网上的不同主机提供通信服务。

  • 链路层:解决三个基本问题:封装成帧、透明传输、差错检验。

  • 物理层:确定与传输媒体的接口有关的一些特性,尽可能地屏蔽掉这些传输媒体和通信手段的差异。

  • 分层的好处:①各层之间是独立的;②灵活性好;③结构上可分割开;④易实现和维护;⑤能促进标准化工作。

本章重要概念

  • 计算机网络(可简称为网络)把许多计算机连接在一起,而互连网则把许多网络连接在一起,是网络的网络。
  • 以小写字母i 开始的internet (互连网)是通用名词,它泛指由多个计算机网络互连而成的网络。在这些网络之间的通信协议(即通信规则)可以是任意的。
  • 以大写字母I 开始的Internet (互联网)是专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定互连网,并采用TCP/IP 协议族作为通信规则,且其前身是美国的ARPANET 。Internet 的推荐译名是“因特网”,但很少被使用。
  • 互联网现在采用存储转发的分组交换技术,以及三层ISP 结构。
  • 互联网按工作方式可划分为边缘部分与核心部分。主机在网络的边缘部分,其作用是进行信息处理。路由器在网络的核心部分,其作用是按存储转发方式进行分组交换。
  • 计算机通信是计算机中的进程(即运行着的程序)之间的通信。计算机网络采用的通信方式是客户-服务器方式和对等连接方式(P2P 方式)。
  • 客户和服务器都是指通信中所涉及的应用进程。客户是服务请求方,服务器是服务提供方。
  • 按作用范围的不同,计算机网络分为广域网WAN 、城域网MAN、局域网LAN 和个人区域网PAN 。
  • 计算机网络最常用的性能指标是:速率、带宽、吞吐量、时延(发送时延、传播时延、处理时延、排队时延)、时延带宽积、往返时间和信道(或网络)利用率。
  • 网络协议即协议,是为进行网络中的数据交换而建立的规则。计算机网络的各层及其协议的集合,称为网络的体系结构。
  • 五层协议的体系结构由应用层、运输层、网络层(或网际层)、数据链路层和物理层组成。运输层最重要的协议是TCP 和UDP 协议,而网络层最重要的协议是IP协议。

第二章 物理层

常用术语

  • 数据(data)——运送消息的实体。
  • 信号(signal)——数据的电气的或电磁的表现。
  • 模拟信号,或连续信号(analogous)——代表消息的参数的取值是连续的。
  • 数字信号,或离散信号(digital)——代表消息的参数的取值是离散的。
  • **码元(**code)——代表不同离散数值的基本波形。

通信方式

  • 单向通信又称为单工通信,即只能有一个方向的通信而没有反方向的交互。
  • 双向交替通信又称为半双工通信,即通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。
  • 双向同时通信又称为全双工通信,即通信的双方可以同时发送和接收信息。

编码(基带调制)

  • 仅仅对基带信号的波形进行变换,使它能够与信道特性相适应。变换后的信号仍然是基带信号。这类调制称为基带调制。由于这种基带调制是把数字信号转换为另一种形式的数字信号,因此大家更愿意把这种过程称为编码(coding) 。
  • 以太网使用曼彻斯特编码

在这里插入图片描述

带通调制

  • 使用载波(carrier)进行调制,把基带信号的频率范围搬移到较高的频段,并转换为模拟信号,这样就能够更好地在模拟信道中传输。经过载波调制后的信号称为带通信号

在这里插入图片描述

奈氏准则

  • 在任何信道中,码元传输的速率是有上限的,传输速率超过此上限,就会出现严重的码间串扰的问题,使接收端对码元的判决(即识别)成为不可能。
  • 理想低通信道的最高码元传输速率=2W (Baud)
  • W是理想低通信道的带宽,单位为赫(Hz )
  • Baud是波特,是码元传输速率的单位,1波特为每秒传送1个码元

信噪比和香农公式

  • 信噪比就是信号的平均功率和噪声的平均功率之比,常记为S/N, 并用分贝(dB)作为度量单位。
    • 信噪比(dB) = 10 log10(S/N) (dB)
  • 香农公式:信道的极限信息传输速率 C = W log2(1+S/N) (bit/s) 式中, W 为信道的带宽(以Hz 为单位); S 为信道内所传信号的平均功率; N 为信道内部的高斯噪声功率。

传输媒体

  • 传输媒体也称为传输介质或传输媒介,它就是数据传输系统中在发送器和接收器之间的物理通路。传输媒体可分为两大类,即导引型传输媒体非导引型传输媒体(这里的“导引型”的英文就是guided, 也可译为“导向传输媒体”)。

  • 在导引型传输媒体中,电磁波被导引沿着固体媒体(铜线或光纤)传播

    • 常见的导引型传输媒体有:双绞线、同轴电缆、光缆

    • 存在多条不同角度入射的光线在一条光纤中传输。这种光纤就称为多模光纤。多模光纤只适合于近距离传输。

      若光纤的直径减小到只有一个光的波长,则光纤就像一根波导那样,它可使光线一直向前传播,而不会产生多次反射。这样的光纤称为单模光纤

  • 非导引型传输媒体就是指自由空间,在非导引型传输媒体中电磁波的传输常称为无线传输

    • 传统的微波通信主要有两种方式,即地面微波接力通信卫星通信

信道复用技术

  • 频分复用(FDM):所有用户在同样的时间占用不同的带宽资源(请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。
  • 时分复用(TDM):将时间划分为一段段等长的时分复用帧(TDM 帧)。每一个时分复用的用户在每一个TDM 帧中占用固定序号的时隙。
  • 统计时分复用(STDM):使用STDM 帧来传送复用的数据。但每一个STDM 帧中的时隙数小于连接在集中器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM 帧中。对没有数据的缓存就跳过去。当一个帧的数据放满了,就发送出去。
  • 波分复用(WDMA):就是光的频分复用
  • 码分复用(CDMA):各用户使用不同的码型,因此各用户之间不会造成干扰。每个站分配的码片序列不仅必须各不相同,并且还必须互相正交

码分复用(CDMA)

  • 在CDMA 中,每一个比特时间再划分为m 个短的间隔,称为码片(chip) 。通常m 的值是64 或128 。使用CDMA 的每一个站被指派一个唯一的m bit 码片序列(chip sequence) 。一个站如果要发送比特1, 则发送它自己的m bit 码片序列。如果要发送比特0, 则发送该码片序列的二进制反码。为了方便,我们按惯例将码片中的0 写为-1, 将1 写为+ 1 。
  • 现假定有一个X 站要接收S 站发送的数据。X 站就必须知道S 站所特有的码片序列。假设S码片序列是向量s,X收到的信号是向量x,求sx的规格化内积(两个向量逐位相乘相加之后除位数),如果结果是+1,则S发送的是1,如果是-1则S发送的是0,如果结果是0则S没有发送信息。

宽带接入技术

  • ADSL技术
    • 非对称数字用户线ADSL (Asymmetric Digital Subscriber Line)技术是用数字技术对现有的模拟电话用户线进行改造,使它能够承载宽带数字业务。
    • ADSL 技术把0 ~ 4 kHz 低端频谱留给传统电话使用,而把原来没有被利用的高端频谱留给用户上网使用。
    • 由于用户在上网时主要是从互联网下载各种文档,而向互联网发送的信息量一般都不太大,因此ADSL 的下行(从ISP 到用
      户)带宽都远远大于上行(从用户到ISP) 带宽。“非对称“这个名词就是这样得出的。
  • FTTx技术
    • 光纤到户FTTH (Fiber To The Home):就是把光纤一直铺设到用户家庭
      • 需要注意的是,目前有些网络运营商宣传所推出的“光纤到户“,往往并非真正的FTTH, 而是FTTx, 对居民来说就是FTTB 或FTTF 。有的运营商把这种接入方式叫做“光纤宽带”或“光纤加局域网“,这样可能较为准确。
    • 除了光纤到户FTTH 外,还有光纤到路边FTTC (C 表示Curb) 、光纤到小区FTTZ (Z 表示Zone) 、光纤到大楼FTTB (B 表示Building) 、光纤到楼层FTTF (F 表示Floor) 、光纤到办公室FTTO (O 表示Office) 、光纤到桌面FTTD (D表示Desk) ,等等。
    • 光配线网ODN:为了有效地利用光纤资源,在光纤千线和广大用户之间,还需要铺设一段中间的转换装置,即光配线网ODN (Optical Distribution Network) ,使得数十个家庭用户能够共享一根光纤干线。
    • 无源光网络PON:”无源”表明在光配线网中无须配备电源,因此基本上不用维护,其长期运营成本和管理成本都很低。无源的光配线网常称为无源光网络PON (Passive Optical Network) 。
    • 光线路终端OLT (Optical Line Terminal)是连接到光纤干线的终端设备。OLT 把收到的下行数据发往无源的1:N 光分路器(splitter) ,然后用广播方式向所有用户端的光网络单元ONU (Optical Network Unit) 发送。

本章重要概念

  • 物理层的主要任务就是确定与传输媒体的接口有关的一些特性,如机械特性、电气特性、功能特性和过程特性。
  • 一个数据通信系统可划分为三大部分,即源系统、传输系统和目的系统。源系统包括源点(或源站、信源)和发送器,目的系统包括接收器和终点(或目的站,或信宿)。
  • 通信的目的是传送消息。如话音、文字、图像、视频等都是消息。数据是运送消息的实体。信号则是数据的电气或电磁的表现。
  • 根据信号中代表消息的参数的取值方式不同,信号可分为模拟信号(或连续信号)和数字信号(或离散信号)。代表数字信号不同离散数值的基本波形称为码元。
  • 根据双方信息交互的方式,通信可以划分为单向通信(或单工通信)、双向交替通信(或半双工通信)和双向同时通信(或全双工通信)。
  • 来自信源的信号叫做基带信号。信号要在信道上传输就要经过调制。调制有基带调制和带通调制之分。最基本的带通调制方法有调幅、调频和调相。还有更复杂的调制方法,如正交振幅调制。
  • 要提高数据在信道上的传输速率,可以使用更好的传输媒体,或使用先进的调制技术。但数据传输速率不可能被任意地提高。
  • 传输媒体可分为两大类,即导引型传输媒体(双绞线、同轴电缆或光纤)和非导引型传输媒体(无线或红外或大气激光)。
  • 常用的信道复用技术有频分复用、时分复用、统计时分复用、码分复用和波分复用(光的频分复用)。
  • 最初在数字传输系统中使用的传输标准是脉冲编码调制PCM 。现在高速的数字传输系统使用同步光纤网SONET (美国标准)或同步数字系列SDH (国际标准)。
  • 用户到互联网的宽带接入方法有非对称数字用户线ADSL (用数字技术对现有的模拟电话用户线进行改造)、光纤同轴混合网HFC (在有线电视网的基础上开发的)和FTTx (即光纤到……)。
  • 为了有效地利用光纤资源,在光纤干线和用户之间广泛使用无源光网络PON 。无源光网络无须配备电源,其长期运营成本和管理成本都很低。最流行的无源光网络是以太网无源光网络EPON 和吉比特无源光网络GPON 。

第三章 数据链路层

  • 这三个基本问题是:封装成帧透明传输差错检测
  • 所谓链路(link)就是从一个结点到相邻结点的一段物理线路(有线或无线),而中间没有任何其他的交换结点。
  • 数据链路(data link)则是另一个概念。这是因为当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

三个基本问题

封装成帧

  • 封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限,帧首部SOH(0x01)和帧尾部EOT(0x04))。
  • 每一种链路层协议都规定了所能传送的帧的数据部分长度上限——最大传送单元MTU (Maximum Transfer Unit) 。需要强调的是, MTU是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度。MTU默认值是1500字节

透明传输

  • 为了解决透明传输问题,就必须设法使数据中可能出现的控制字符“SOH" 和“EOT"在接收端不被解释为控制字符。具体的方法是:发送端的数据链路层在数据中出现控制字符"SOH" 或“EOT" 的前面插入一个转义字符“ESC" (其十六进制编码是0x1B, 二进制是00011011) 。而在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。这种方法称为字节填充(byte stuffing)或字符填充(character stuffmg)

差错检验

  • 循环冗余检验(CRC)

    • 循环冗余检验CRC 和帧检验序列FCS 并不是同一个概念。CRC 是一种检错方法,而FCS 是添加在数据后面的冗余码。CRC只检错不纠错

    • 假设要发送的数据M=101001(k=6),冗余码n=3位,事先商定好的除数P=1101(n+1位)。步骤如下:

      • 在M后面添加n个0,得到101001000

      • 用101001000模二除P(1101):

        在这里插入图片描述

      • 最终发送的帧是 101001001 ,此时如果接收方用101001001模二除P(1101),得到的余数R,如果R=0则检验无错,否则检验出错,丢弃此帧

      • 生成多项式:用多项式P(X) =X3+X2+ 1 表示上面的除数P = 1101 (最高位对应于X3,最低位对应于X0)。

PPP协议

  • 特点:①简单(这是首要的要求);②封装成帧 (帧界定符);③透明性;④多种网络层协议(PPP协议必须能在同一条物理链路上同时支持多种网络层协议,如IP、IPX) ;⑤多种类型链路(串行的、并行的,同步的、异步的,高速的、低速的,电的、光的,动态的、静态的) ;⑥差错检测(立即丢弃有差错的帧);⑦检测连接状态(短时间自动检测);⑧最大传送单元(MTU是数据链路层的帧可以载荷的数据部分的最大长度);⑨网络层地址协商;⑩数据压缩协商(不要求标准化)
  • 不需要/支持的功能:①纠错(不可靠传输) ;②流量控制(由TCP负责) ;③序号(不是可靠传输,在无线时可用) ;④多点线路(不支持一主对多从) ;⑤半双工或单工链路(只支持全双工) 。
  • 组成: 1、一个将 IP 数据报封装到串行链路的方法。 2、链路控制协议 LCP (Link Control Protocol)。(用来建立、配置和测试数据链路连接) 3、网络控制协议 NCP (Network Control Protocol)。——其中的每一个协议支持不同的网络层协议

PPP协议帧格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BQuUtpXS-1632552350743)(计算机网络.assets/image-20210712164141069.png)]

0x7E(即二进制0111 1110)是标志字段,表示一个帧的开始或结束。因此标志字段就是PPP 帧的定界符。连续两帧之间只需要用一个标志字段。如果出现连续两个标志字段,就表示这是一个空帧,应当丢弃。地址字段A规定为0xFF,控制字段C规定为0x03

字节填充(异步)

当PPP 使用异步传输时,它把转义符定义为0x7D (即01111101) ,并使用字节填充,RFC 1662 规定了如下所述的填充方法:
(1) 把信息字段中出现的每一个0x7E 字节转变成为2 字节序列(0x7D, 0x5E) 。
(2) 若信息字段中出现一个0x7D 的字节(即出现了和转义字符一样的比特组合),则把0x7D 转变成为2 字节序列(0x7D, 0x5D) 。
(3) 若信息字段中出现ASCII 码的控制字符(即数值小千0x20 的字符),则在该字符前面要加入一个0x7D 字节,同时将该字符的编码加以改变。例如,出现0x03 (在控制字符中是“传输结束“ETX) 就要把它转变为2 字节序列(0x7D, 0x23) 。

其实就是0x7D后面的值是原值和0x20异或的的结果

零比特填充(同步)

只要比特流中出现连续的五个1就自动添加一个0,接收信息时只要遇到连续5个1就把后面的0去掉

CSMA/CD协议

  • 意思是:载波监听多点接入/碰撞检测

  • 要点:

    • “多点接入”就是说明这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。协议的实质是“载波监听”和"碰撞检测“。
    • “载波监听”就是用电子技术检测总线上有没有其他计算机也在发送。不管在发送前,还是在发送中,每个站都必须不停地检测信道。在发送前检测信道,是为了获得发送权。如果检测出已经有其他站在发送,则自己就暂时不许发送数据,必须要等到信道变为空闲时才能发送。在发送中检测信道,是为了及时发现有没有其他站的发送和本站发送的碰撞。这就称为碰撞检测。
    • "碰撞检测”也就是"边发送边监听“,即适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。
  • 在使用CSMA/CD 协议时,一个站不可能同时进行发送和接收(但必须边发送边监听信道)。因此使用CSMA/CD 协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工通信)。

  • **争用期(碰撞窗口):**站点发送数据后,最迟要经过 2t(总线上单程端到端时延记作t(tao),2t即”总线的端到端往返传播时延“) 时间才能知道自已发送的数据和其他站发送的数据有没有发生碰撞

  • 退避算法
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p9GPBk74-1632552350747)(计算机网络.assets/image-20210714212603667.png)]

  • 规定最小帧长是64bit(争用期51.2us)是为了使数据发送完毕之前能检测出碰撞 。以太网还规定了帧间最小间隔为9.6 μs, 相当于96 比特时间。这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。

  • 要点

在这里插入图片描述

以太网MAC层

硬件地址

  • 在局域网中,硬件地址又称为物理地址MAC 地址,IEEE 802标准为局域网规定了一种48 位(即6字节)的全球地址(一般都简称为“地址”),是指局域网上的每一台计算机中固化在适配器的ROM 中的地址“MAC 地址“实际上就是适配器地址或适配器标识符EUI-48
  • 现在IEEE 的注册管理机构RA (Registration Authority)是局域网全球地址的法定管理机构 ,它负责分配地址字段的6 个字节中的前三个字节(即高位24 位)。世界上凡要生产局域网适配器的厂家都必须向IEEE 购买由这三个字节构成的这个号(即地址块),这个号的正式名称是组织唯一标识符OUI (Organizationally Unique Identifier) ,通常也叫做公司标识符(company_id) [RFC 7042] 。例如, 3Com 公司生产的适配器的MAC 地址的前三个字节是02-60-8C)地址字段中的后三个字节(即低位24 位)则由厂家自行指派,称为扩展标识符(extended identifier) ,只要保证生产出的适配器没有重复地址即可。可见用一个地址块可以生成224 个不同的地址。用这种方式得到的48 位地址称为EUI-48, 这里EUI 表示扩展的唯一标识符(Extended Unique Identifier)

发往本站的帧

包括以下三种帧:
(1) 单播(unicast)帧(一对一),即收到的帧的MAC 地址与本站的硬件地址相同。
(2) 广播(broadcast)帧(一对全体),即发送给本局域网上所有站点的帧(全l 地址)。
(3) 多播(multicast)帧(一对多),即发送给本局域网上一部分站点的帧。

以太网MAC帧格式

在这里插入图片描述

”目的地址“和”源地址“都是MAC地址。类型指IP层使用了什么协议(如IP协议),之后是IP数据报(46~1500字节。为了保证在数据发送完之前检测出碰撞,以太网规定一个帧最短64字节。而以太网帧目的地址、源地址、类型、FCS字段共占用6+6+2+4=18字节,因此数据区部分最短46字节)。FCS用于差错检验

数据链路层扩展以太网

  • 二层交换机:

    • 以太网交换机的每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。
    • 以太网交换机的接口还有存储器,能在输出端口繁忙时把到来的帧进行缓存。
    • 以太网交换机是一种即插即用设备,其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的。
  • 交换机的交换表和自学习功能:

在这里插入图片描述

  • 总线以太网使用CSMA/CD 协议,以半双工方式工作。但以太网交换机不使用共享总线,没有碰撞问题,因此不使用CSMA/CD 协议,而是以全双工方式工作

虚拟局域网(VLAN)

  • 虚拟局域网VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机属于哪一个VLAN 。

在这里插入图片描述

  • 同一个以太网交换机下面的主机的网络号一定是相同的。在设计上述VLAN时,可以让LAN1、LAN2、LAN3的网络号一样,取其中的3位用于分别不同的交换机(楼层),然后交换机对相应的端口设置不同的VLAN

在这里插入图片描述

本章重要概念

• 链路是从一个结点到相邻结点的一段物理线路,数据链路则是在链路的基础上增加了一些必要的硬件(如网络适配器)和软件(如协议的实现)。
• 数据链路层使用的信道主要有点对点信道和广播信道两种。
• 数据链路层传送的协议数据单元是帧。数据链路层的三个基本问题则是:封装成帧、透明传输和差错检测。
• 循环冗余检验CRC 是一种检错方法,而帧检验序列FCS 是添加在数据后面的冗余码。
• 点对点协议PPP 是数据链路层使用最多的一种协议,它的特点是:简单;只检测差错,而不是纠正差错;不使用序号,也不进行流量控制;可同时支持多种网络层协议。
• PPPoE 是为宽带上网的主机使用的链路层协议。
• 局域网的优点是:具有广播功能,从一个站点可很方便地访问全网;便千系统的扩展和逐渐演变;提高了系统的可靠性、可用性和生存性。
• 共享通信媒体资源的方法有二:一是静态划分信道(各种复用技术),二是动态媒体接入控制,又称为多点接入(随机接入或受控接入)。
• IEEE 802 委员会曾把局域网的数据链路层拆成两个子层,即逻辑链路控制(LLC)子层(与传输媒体无关)和媒体接入控制(MAC) 子层(与传输媒体有关)。但现在LLC 子层已成为历史。
• 计算机与外界局域网的通信要通过通信适配器(或网络适配器),它又称为网络接口卡或网卡。计算机的硬件地址就在适配器的ROM 中
• 以太网采用无连接的工作方式,对发送的数据帧不进行编号,也不要求对方发回确认。目的站收到有差错帧就把它丢弃,其他什么也不做。
• 以太网采用的协议是具有冲突检测的载波监听多点接入CSMA/CD 。协议的要点是:发送前先监听,边发送边监听,一旦发现总线上出现了碰撞,就立即停止发送。然后按照退避算法等待一段随机时间后再次发送。因此,每一个站在自已发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。以太网上各站点都平等地争用以太网信道。
• 传统的总线以太网基本上都是使用集线器的双绞线以太网。这种以太网在物理上是星形网,但在逻辑上则是总线形网。集线器工作在物理层,它的每个接口仅仅简单地转发比特,不进行碰撞检测。
• 以太网的硬件地址,即MAC 地址实际上就是适配器地址或适配器标识符,与主机所在的地点无关。源地址和目的地址都是48 位长。
• 以太网的适配器有过滤功能,它只接收单播帧、广播帧或多播帧。
• 使用集线器可以在物理层扩展以太网(扩展后的以太网仍然是一个网络)。
• 交换式集线器常称为以太网交换机或第二层交换机(工作在数据链路层)。它就是一个多接口的网桥,而每个接口都直接与某台单主机或另一个集线器相连,且工作在全双工方式。以太网交换机能同时连通许多对的接口,使每一对相互通信的主机都能像独占通信媒体那样,无碰撞地传输数据。
• 高速以太网有100 Mbit/s 的快速以太网、吉比特以太网和10 Gbit/s 的10 吉比特以太网。最近还发展到100 吉比特以太网。在宽带接入技术中,也常使用高速以太网进行接入。

第四章 网络层

虚拟互连网络

  • 由于参加互连的计算机网络都使用相同的网际协议IP (Internet Protocol) ,因此可以把互连以后的计算机网络看成一个虚拟互连网络(internet) 。所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP 协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。

分类的IP地址

在这里插入图片描述

  • 第一, A类IP 地址中的全0 表示”这个(this)”。网络号字段为全0 的IP 地址是个保留地址,意思是**“本网络";第二,网络号为127 (即01111111,全1) 保留作为本地软件环回测试**(loopback test)本主机的进程之间的通信之用。
  • 全0 的主机号字段表示该IP 地址是**“本主机**”所连接到的单个网络地址(例如,一主机的IP 地址为5.6.7.8, 则该主机所在的网络地址就是5.0.0.0),而全1表示“所有的(all)", 因此全1 的主机号字段表示该网络上的所有主机.
  • IP地址特点:
    • 第一, IP 地址管理机构在分配IP 地址时只分配网络号(第一级),而剩下的主机号(第二级)则由得到该网络号的单位自行分配。
    • 第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间以及查找路由表的时间。
    • 实际上IP 地址是标志一台主机(或路由器)和一条链路的接口。一个网络是指具有相同网络号net-id 的主机的集合,因此,用
      转发器或网桥连接起来的若干个局域网仍为一个网络,因为这些局域网都具有同样的网络号。具有不同网络号的局域网必须使用路由器进行互连。

地址解析协议ARP

  • ARP 协议的用途是为了从网络层使用的IP 地址,解析出在数据链路层使用的硬件地址。ARP 是解决同一个局域网上的主机或路由器的IP 地址和硬件地址的映射问题
  • 要点:
    • 当主机A 要向本局域网上的某台主机B 发送IP 数据报时,就先在其ARP 高速缓存中查看有无主机B 的IP 地址。
    • 如有,就在ARP 高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC 帧,然后通过局域网把该MAC 帧发往此硬件地址。
    • 如没有,APR进程在本局域网上广播发送一个ARP请求分组。收到ARP响应分组后,将得到的IP地址到硬件地址的映射写入ARP高速缓存
  • 使用 ARP 的四种典型情况:
    • 发送方是主机,要把 IP 数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
    • 发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
    • 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。
    • 发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上另一个路由器的硬件地址。剩下的工作由这个路由器来完成。

IP数据报格式

在这里插入图片描述

  • 版本:IPv4还是IPv6?

  • 首部长度:最大值15,但是单位是4字节,因此实际上首部长度=”首部长度“真值*4,由于首部最小20字节,因此首部长度最小为5

  • 总长度:总长度指首部和数据之和的长度,单位为字节。

  • 标识:相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

  • 标志(flag) 占3 位,但目前只有两位有意义。

    • MF=1代表”后面还有分片“
    • DF=1代表”不能分片“
  • 片偏移占13 位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对千用户数据字段的起点,该片从何处开始。片偏移以8 个字节为偏移单位。这就是说,每个分片的长度一定是8 字节(64 位)的整数倍。

  • 生存时间:占8 位,生存时间字段常用的英文缩写是TTL (Time To Live) ,表明这是数据报在网络中的寿命 。后来就把TTL 字段的功能改为“跳数限制”(但名称不变)。路由器在每次转发数据报之前就把TTL 值减1。若TTL 值减小到零,就丢弃这个数据报,不再转发

  • 首部检验和占16 位。这个字段只检验数据报的首部, 但不包括数据部分。IP首部检验不采用复杂的CRC算法,而是:

在这里插入图片描述

  • 源地址和目标地址各占32位,都是IP地址。数据链路层中源地址和目标地址都是MAC地址

IP层分组转发

  • 如图4-16,路由表指出到某个网络应如何转发,则每个路由器中的路由表就只包含4 个项目(即只有4 行,每一行对应千一个网络)。以路由器R2的路由表为例。由于R2同时连接在网络2 和网络3上,因此只要目的主机在网络2 或网络3 上,都可通过接口0 或1 由路由器R2 直接交付(当然还要利用地址解析协议ARP 才能找到这些主机相应的硬件地址)。若目的主机在网络1 中,则下一跳路由器应为R1 ,其IP 地址为20.0.0.7 。路由器R1和R2由于同时连接在网络2 上,因此从路由器R2 把分组转发到路由器R1是很容易的。同理,若目的主机在网络4中,则路由器R2应把分组转发给IP 地址为30.0.0.1 的路由器R3 。我们应当注意到,图中的每一个路由器都有两个不同的IP 地址。可以把整个的网络拓扑简化为图4-16(b)所示的那样。在简化图中,网络变成了一条链路,但每一个路由器旁边都注明其IP 地址。使用这样的简化图,可以使我们不必关心某个网络内部的具体拓扑以及连接在该网络上有多少台主机,因为这些对于研究分组转发问题并没有什么关系。这样的简化图强调了在互联网上转发分组时,是从一个路由器转发到下一个路由器。总之,在路由表中,对每一条路由最主要的是以下两个信息:(目的网络地址,下一跳地址)
    在这里插入图片描述

  • 特定主机路由:对特定的目的主机指明一个路由

  • 默认路由:只要目的网络是其他网络,就一律选择默认路由

  • 当路由器收到一个待转发的数据报,在从路由表得出下一跳路由器的IP 地址后,不是把这个地址填入IP 数据报,而是送交数据链路层的网络接口软件。网络接口软件负责把下一跳路由器的IP 地址转换成硬件地址(必须使用ARP) ,并将此硬件地址放在链路层的MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。

  • 分组转发算法:

    • (1)从数据报的首部提取目的主机的IP 地址D, 得出目的网络地址为N。
    • (2)若N 就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付目的主机(这里包括把目的主机地址D 转换为具体的硬件地址,把数据报封装为MAC 帧,再发送此帧);否则就是间接交付,执行(3)
    • (3)若路由表中有目的地址为D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4) 。
    • (4)若路由表中有到达网络N 的路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(5) 。
    • (5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6) 。
    • (6) 报告转发分组出错。

划分子网

  1. 从两级IP地址到三级IP地址

    • IP地址的设计不合理:
      • 第一, IP 地址空间的利用率有时很低。(申请了一个A类地址,能分配10万多主机,而实际上只分配了6万)
      • 第二,给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
      • 第三,两级IP 地址不够灵活。
    • 划分子网的基本思路如下:
      • (1) 一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网(subnet) 。划分子网纯属一个单位内部的事情。本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍然表现为一个网络。
      • (2) 划分子网的方法是从网络的主机号借用若干位作为子网号(subnet-id) ,当然主机号也就相应减少了同样的位数。于是两级IP 地址在本单位内部就变为三级IP 地址:网络号、子网号和主机号。也可以用以下记法来表示:
        IP 地址::={<网络号>,<子网号>,<主机号>}
      • (3) 凡是从其他网络发送给本单位某台主机的IP 数据报,仍然是根据IP 数据报的目的网络号(不包含子网号)找到连接在本单位网络上的路由器。但此路由器在收到IP 数据报后,再按目的网络号和子网号找到目的子网,把IP 数据报交付目的主机。
  2. 子网掩码
    在这里插入图片描述

    • 只要将IP与子网掩码逐位相”与“即可得到网络号(两级IP地址的网络号+子网号)
    • 如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码。
      • A类地址网络号8位,子网掩码就是8位,255.0.0.0
      • B类地址网络号16位,子网掩码就是16位,255.255.0.0
      • C类地址网络号24位,子网掩码就是24位,255.255.255.0
  3. 划分子网时的分组转发;

    • 我们应当注意到,使用子网划分后,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳地址。
    • 在划分子网的情况下,路由器转发分组的算法如下:
      • (1) 从收到的数据报的首部提取目的IP 地址D 。
      • (2) 先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D 逐位相”与“(AND 操作),看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付(当然还需要把D 转换成物理地址,把数据报封装成帧发送出去),转发任务结束。否则就是间接交付,执行(3) 。
      • (3) 若路由表中有目的地址为D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4) 。
      • (4) 对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和D 逐位相”与“(AND 操作),其结果为N。若N 与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则,执行(5) 。
      • (5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6) 。
      • (6) 报告转发分组出错。

无分类编址CIDR (构造超网)

  1. 网络前缀

    • CIDR 最主要的特点有两个:
      • (1) CIDR 消除了传统的A 类、B 类和C 类地址以及划分子网的概念,把32 位的IP 地址划分为前后两个部分。前面部分是“网络前缀"(network-prefix) (或简称为“前缀"),用来指明网络,后面部分则用来指明主机。其记法是:
        IP 地址::={<网络前缀>,<主机号>}
      • CIDR 还使用“斜线记法”(slash notation) ,或称为CIDR 记法,即在IP 地址后面加上斜线”/“,然后写上网络前缀所占的位数。斜线记法中,斜线后面的数字就是地址掩码中1 的个数。
        (2) CIDR 把网络前缀都相同的连续的IP 地址组成一个“CIDR 地址块“。由千一个CIDR 地址块中有很多地址,所以在路由表中就利用CIDR 地址块来查找目的网络。这种地址的聚合常称为路由聚合(route aggregation) ,它使得路由表中的一个项目可以表示原来传统分类地址的很多个(例如上千个)路由。路由聚合也称为构成超网(supemetting)
  2. 最长前缀匹配

    • 这时,每个项目由“网络前缀”和“下一跳地址”组成。但是在查找路由表时可能会得到不止一个匹配结果。这样就带来一个
      问题:我们应当从这些匹配结果中选择哪一条路由呢?正确的答案是:**应当从匹配结果中选择具有最长网络前缀的路由。**这叫做最长前缀匹配(longest-prefix matching) ,这是因为网络前缀越长,其地址块就越小,因而路由就越具体。最长前缀匹配又称为最长匹配或最佳匹配

路由选择协议

  • 从路由算法能否随网络的通信量或拓扑自适应地进行调整变化来划分,则只有两大类,即静态路由选择策略与动态路由选择策略。
    • 静态路由选择也叫做非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。对千很简单的小网络,完全可以采用静态路由选择,用人工配置每一条路由。
    • 动态路由选择也叫做自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。因此,动态路由选择适用于较复杂的大网络。
  • 分层次的路由选择协议
    • (1) 内部网关协议IGP (Interior Gateway Protocol) 即在一个自治系统内部使用的路由选择协议,而这与在互联网中的其他自治系统选用什么路由选择协议无关。目前这类路由选择协议使用得最多,如RIP 和OSPF 协议。
    • (2) 外部网关协议EGP (External Gateway Protocol) 若源主机和目的主机处在不同的自治系统中(这两个自治系统可能使用不同的内部网关协议),当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议EGP 。目前使用最多的外部网关协议是BGP 的版本4 (BGP-4) 。
    • 自治系统之间的路由选择也叫做域间路由选择(interdomain routing) ,而在自治系统内部的路由选择叫做域内路由选择(intradomain routing) 。

内部网关协议RIP

  • IP 是一种分布式的基千距离向量的路由选择协议,RIP 协议要求网络中的每一个路由器都要维护从它自已到其他每一个目的网络的距离记录(因此,这是一组距离,即“距离向量”)。RIP 协议将“距离“定义如下:从一路由器到直接连接的网络的距离定义为1 。从一路由器到非直接连接的网络的距离定义为所经过的路由器数加1 。“加1" 是因为到达目的网络后就进行直接交付,而到直接连接的网络的距离已经定义为1 。

  • RIP 协议的特点是:

    • (1) 仅和相邻路由器交换信息。
    • (2) 路由器交换的信息是当前本路由器所知道的全部信息,即自己现在的路由表。(路由表应包含目的网络、距离、下一跳地址。下一跳地址就是相邻路由器入口的IP地址)
    • (3) 按固定的时间间隔交换路由信息
  • 距离向量算法:
    在这里插入图片描述

内部网关协议OSPF

  • 这个协议的名字是开放最短路径优先OSPF (Open Shortest Path First) 。

  • 三个要点:

    • 向本自治系统中所有路由器发送信息。这里使用的方法是洪泛法(flooding) ,这就是路由器通过所有输出端口向所有相邻的路由器发送信息。而每一个相邻路由器又再将此信息发往其所有的相邻路由器(但不再发送给刚刚发来信息的那个路由器)。这样,最终整个区域中所有的路由器都得到了这个信息的一个副本

    • 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。

    • 只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此信息

  • 其他特点:

    • OSPF 允许管理员给每条路由指派不同的代价(距离、费用、时延、带宽等)。
    • 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫做多路径间的负载平衡
    • 所有在OSPF 路由器之间交换的分组(例如,链路状态更新分组)都具有鉴别的功能,因而保证了仅在可信赖的路由器之间交换链路状态信息。
    • OSPF 支持可变长度的子网划分和无分类的编址CIDR 。
    • 由于网络中的链路状态可能经常发生变化,因此OSPF 让每一个链路状态都带上一个32 位的序号,序号越大状态就越新

外部网关协议BGP

  • 边界网关协议BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。BGP 采用了路径向量(path vector)路由选择协议

    • 在配置BGP 时,每一个自治系统的管理员要选择至少一个路由器作为该自治系统的**“BGP 发言人”**

    • 一个BGP 发言人与其他AS(自治区域) 的BGP 发言人要交换路由信息,就要先建立TCP 连接(端口号为179) ,然后在此连接上交换BGP 报文以建立BGP 会话(session) ,利用BGP 会话交换路由信息,如增加了新的路由,或撤销过时的路由,以及报告出差错的情况等等。

本章的重要概念

• TCP/IP 体系中的网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络层不提供服务质量的承诺,不保证分组交付的时限,所传送的分组可能出错、丢失、重复和失序。进程之间通信的可靠性由运输层负责。
• IP 网是虚拟的,因为从网络层上看, IP 网就是一个统一的、抽象的网络(实际上是异构的)。IP 层抽象的互联网屏蔽了下层网络很复杂的细节,使我们能够使用统一的、抽象的IP 地址处理主机之间的通信问题。
• 在互联网上的交付有两种:在本网络上的直接交付(不经过路由器)和到其他网络的间接交付(经过至少一个路由器,但最后一次一定是直接交付)。
• 一个IP 地址在整个互联网范围内是唯一的。分类的IP 地址包括A 类、B 类和C类地址(单播地址),以及D 类地址(多播地址)。E 类地址未使用。
• 分类的IP 地址由网络号字段(指明网络)和主机号字段(指明主机)组成。网络号字段最前面的类别位指明IP 地址的类别。
• IP 地址是一种分等级的地址结构。IP 地址管理机构在分配IP 地址时只分配网络号,而主机号则由得到该网络号的单位自行分配。路由器仅根据目的主机所连接的网络号来转发分组。
• IP 地址标志一台主机(或路由器)和一条链路的接口。多归属主机同时连接到两个或更多的网络上。这样的主机同时具有两个或更多的IP 地址,其网络号必须是不同的。由于一个路由器至少应当连接到两个网络,因此一个路由器至少应当有两个不同的IP 地址。
• 按照互联网的观点,用转发器或网桥连接起来的若干个局域网仍为一个网络。所有分配到网络号的网络(不管是范围很小的局域网,还是可能覆盖很大地理范围的广域网)都是平等的。
• 物理地址(即硬件地址)是数据链路层和物理层使用的地址,而IP 地址是网络层和以上各层使用的地址,是一种逻辑地址(用软件实现的),在数据链路层看不见数据报的IP 地址。
• IP 数据报分为首部和数据两部分。首部的前一部分是固定长度,共20 字节,是所有IP 数据报必须具有的(源地址、目的地址、总长度等重要字段都在固定首部中)。一些长度可变的可选字段放在固定首部的后面。
• IP 首部中的生存时间字段给出了IP 数据报在互联网中所能经过的最大路由器数,可防止1P 数据报在互联网中无限制地兜圈子。
• 地址解析协议ARP 把1P 地址解析为硬件地址,它解决同一个局域网上的主机或路由器的IP 地址和硬件地址的映射问题。ARP 的高速缓存可以大大减少网络上的通信量。
• 在互联网中,我们无法仅根据硬件地址寻找到在某个网络上的某台主机。因此,从IP 地址到硬件地址的解析是非常必要的。
• 无分类域间路由选择CIDR 是解决目前IP 地址紧缺的一个好方法。CIDR 记法把IP 地址后面加上斜线”/“,然后写上前缀所占的位数。前缀(或网络前缀)用来指明网络,前缀后面的部分是后缀,用来指明主机。CIDR 把前缀都相同的连续的IP地址组成一个“CIDR 地址块"。IP 地址的分配都以CIDR 地址块为单位。
• CIDR 的32 位地址掩码(或子网掩码)由一串l 和一串0 组成,而1 的个数就是前缀的长度。只要把IP 地址和地址掩码逐位进行“逻辑与(AND)" 运算,就很容易得出网络地址。A 类地址的默认地址掩码是255.0.0.0 。B 类地址的默认地址掩码是255.255.0.0 。C 类地址的默认地址掩码是255.255.255.0 。
• 路由聚合(把许多前缀相同的地址用一个来代替)有利千减少路由表中的项目,减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能。
• “转发”和“路由选择“有区别。”转发”是单个路由器的动作。”路由选择“是许多路由器共同协作的过程,这些路由器相互交换信息,目的是生成路由表,再从路由表导出转发表。若采用自适应路由选择算法,则当网络拓扑变化时,路由表和转发表都能够自动更新。在许多情况下,可以不考虑转发表和路由表的区别,而都使用路由表这一名词。
• 自治系统(AS) 就是在单一的技术管理下的一组路由器。一个自治系统对其他自治系统表现出的是一个单一的和一致的路由选择策略。
• 路由选择协议有两大类:内部网关协议(或自治系统内部的路由选择协议),如RIP 和OSPF; 外部网关协议(或自治系统之间的路由选择协议),如BGP-4 。
• RIP 是分布式的基千距离向量的路由选择协议,只适用千小型互联网。RIP 按固定的时间间隔与相邻路由器交换信息。交换的信息是自己当前的路由表,即到达本自治系统中所有网络的(最短)距离,以及到每个网络应经过的下一跳路由器。
• OSPF 是分布式的链路状态协议,适用千大型互联网。OSPF 只在链路状态发生变化时,才向本自治系统中的所有路由器,用洪泛法发送与本路由器相邻的所有路由器的链路状态信息。”链路状态”指明本路由器都和哪些路由器相邻,以及该链路的“度量”。”度量”可表示费用、距离、时延、带宽等,可统称为“代价”。所有的路由器最终都能建立一个全网的拓扑结构图。
• BGP-4 是不同AS 的路由器之间交换路由信息的协议,是一种路径向量路由选择协议。BGP 力求寻找一条能够到达目的网络(可达)且比较好的路由(不兜圈子),而并非要寻找一条最佳路由。
• 网际控制报文协议ICMP 是IP 层的协议。ICMP 报文作为IP 数据报的数据,加上首部后组成IP 数据报发送出去。使用ICMP 并非为了实现可靠传输。ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP 报文的种类有两种,即ICMP 差错报告报文和ICMP 询问报文。
• ICMP 的一个重要应用就是分组网间探测PING, 用来测试两台主机之间的连通性。PING 使用了ICMP 回送请求与回送回答报文。
• 要解决IP 地址耗尽的问题,最根本的办法就是采用具有更大地址空间的新版本的IP 协议,即IPv6 。
• 1Pv6 所带来的主要变化是: ( 1) 更大的地址空间(采用128 位的地址); (2) 灵活的首部格式; (3) 改进的选项; (4) 支持即插即用; (5) 支持资源的预分配; (6) 1Pv6首部改为8 字节对齐。
• 1Pv6 数据报在基本首部的后面允许有零个或多个扩展首部,再后面是数据。所有的扩展首部和数据合起来叫做数据报的有效载荷或净负荷。
• IPv6 数据报的目的地址可以是以下三种基本类型地址之一:单播、多播和任播。
• 1Pv6 的地址使用冒号十六进制记法。
• 向1Pv6 过渡只能采用逐步演进的办法,必须使新安装的1Pv6 系统能够向后兼容。向1Pv6 过渡可以使用双协议栈或使用隧道技术。
• 与单播相比,在一对多的通信中, IP 多播可大大节约网络资源。IP 多播使用D 类IP 地址。IP 多播需要使用网际组管理协议IGMP 和多播路由选择协议。
• 虚拟专用网VPN 利用公用的互联网作为本机构各专用网之间的通信载体。VPN 内部使用互联网的专用地址。一个VPN 至少要有一个路由器具有合法的全球IP 地址,这样才能和本系统的另一个VPN 通过互联网进行通信。所有通过互联网传送的数据都必须加密。
• 使用网络地址转换NAT 技术,可以在专用网络内部使用专用IP 地址,而仅在连接到互联网的路由器使用全球IP 地址。这样就大大节约了宝贵的IP 地址。
• MPLS 的特点: ( 1) 支持面向连接的服务质量; (2) 支持流量工程,平衡网络负载; (3)有效地支持虚拟专用网VPN 。
• MPLS 在入口结点给每一个IP 数据报打上固定长度的“标记“,然后根据标记在第二层(链路层)用硬件进行转发(在标记交换路由器中进行标记对换),因而转发速率大大加快。

第五章 运输层

用户数据报协议UDP

  • UDP特点:

    (1) UDP 是无连接的,即发送数据之前不需要建立连接(当然,发送数据结束时也没有连接可释放),因此减少了开销和发送数据之前的时延。
    (2) UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表(这里面有许多参数)。
    (3) UDP 是面向报文的。发送方的UDP 对应用程序交下来的报文,在添加首部后就向下交付IP 层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这就是说,应用层交给UDP 多长的报文, UDP 就照样发送,即一次发送一个报文

    (4) UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。

    (5) UDP 支持一对一、一对多、多对一和多对多的交互通信。
    (6) UDP 的首部开销小,只有8 个字节,比TCP 的20 个字节的首部要短。

  • UDP数据报
    在这里插入图片描述

传输控制协议TCP概述

  • TCP特点:

    (1) TCP 是面向连接的运输层协议。这就是说,应用程序在使用TCP 协议之前,必须先建立TCP 连接。在传送数据完毕后,必须释放已经建立的TCP 连接。

    (2) 每一条TCP 连接只能有两个端点(endpoint) ,每一条TCP 连接只能是点对点的(一对一)。
    (3) TCP 提供可靠交付的服务。通过TCP 连接传送的数据,无差错、不丢失、不重复,并且按序到达。
    (4) TCP 提供全双工通信。TCP 允许通信双方的应用进程在任何时候都能发送数据。TCP 连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。在发送时,应用程序在把数据传送给TCP 的缓存后,就可以做自己的事,而TCP 在合适的时候把数据发送出去。在接收时, TCP 把收到的数据放入缓存,上层的应用进程在合适的时候读取缓存中的数据。
    (5) 面向字节流。TCP 中的“流”(stream)指的是流入到进程或从进程流出的字节序列。

  • TCP连接对象

    • TCP 连接的端点叫做套接字(socket)或插口。套接字socket = (IP 地址:端口号)

    • 每一条TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定。即:

      TCP 连接::= {socket1, socket2} = {(IP1: port1), (IP2: port2)}

  • TCP协议如何保证可靠传输?

    (1)应用数据被分割成TCP认为最适合发送的数据块。

    (2)TCP给发送的每一个数据块进行编号,接收方对数据块进行排序,把按序到达的数据传送给应用层。

    (3)校验和:TCP有首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到TCP报文段的检验和有差错,TCP将丢弃这个报文段且不会确认收到的此报文段。

    (4)TCP的接收端会丢弃重复的数据。

    (5)流量控制:TCP连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据时,能提示发送方降低发送的速率,防止包丢失。TCP使用的流量控制协议是可变大小的滑动窗口协议。(TCP利用滑动窗口实现流量控制)

    (6)拥塞控制:当网络拥塞时,减少数据的发送。

    (7)停止等待协议:也是为了实现可靠传输,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。

    (8)超时重传:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。

停止等待协议

  • “停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。

  • 如果某个分组在传输过程中出现差错或者其他原因导致被丢弃,接收方没有收到分组,自然什么也不知道,什么也不做。发送方如果在一定时间内没有收到确认就认为分组丢失了,自动重传这个分组,这就是超时重传。发送方为发送的每一个分组都设置一个超时计时器,如果在超时计时器过期之前收到确认就会撤销计时器

  • 应当注意:

    第一, A 在发送完一个分组后,必须暂时保留已发送的分组的副本(在发生超时重传时使用)。只有在收到相应的确认后才能清除暂时保留的分组副本。
    第二,分组和确认分组都必须进行编号,这样才能明确是哪一个发送出去的分组收到了确认,而哪一个分组还没有收到确认。
    第三,超时计时器设置的重传时间应当比数据在分组传输的平均往返时间更长一些。(太短会导致不必要的重传)

  • 确认丢失和确认迟到
    在这里插入图片描述

  • 自动请求重传:像上述的这种可靠传输协议常称为自动重传请求ARQ (Automatic Repeat reQuest) 。意思是重传的请求是自动进行的。接收方不需要请求发送方重传某个出错的分组。

  • 通道利用率
    在这里插入图片描述

  • 流水线传输
    在这里插入图片描述

  • 连续ARQ协议

    连续ARQ 协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。接收方一般都是采用累积确认的方式。这就是说,接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认,这就表示:到这个分
    组为止的所有分组都已正确收到了。例如,如果发送方发送了前5 个分组,而中间的第3 个分组丢失了。这时接收方只能对前两个分组发出确认。发送方无法知道后面三个分组的下落,而只好把后面的三个分组都再重传一次。

TCP报文段的首部格式

在这里插入图片描述

  • 序号:占4 字节。序号范围是[0, 232 - 1] ,共232 (即4 294 967296) 个序号。序号增加到232 - 1 后,下一个序号就又回到0 。首部中的序号字段值则指的是本报文段所发送的数据的第一个字节的序号。
  • 确认号:占4 字节,是期望收到对方下一个报文段的第一个数据字节的序号。若确认号= N,则表明:到序号N-1 为止的所有数据都已正确收到。
  • 数据偏移:占4 位,它指出TCP 报文段的数据起始处距离TCP 报文段的起始处有多远。这个字段实际上是指出TCP 报文段的首部长度。注意单位是32位,即4字节。
  • 紧急URG(URGent) :紧急指针字段有效,尽快传送
  • 推送PSH (PuSH) :立即收到对方的响应。
  • 复位RST (ReSeT) :释放连接,然后再重新建立运输连接。
  • 同步SYN (SYNchronization) :在连接建立时用来同步序号。
  • 终止FIN (FINis, 意思是“完“、“终”): 用来释放一个连接。
  • 窗口:窗口值作为接收方让发送方设置其发送窗口的依据。窗口字段明确指出了现在允许对方发送的数据量。窗口值经常在动态变化着。
  • 检验和:占2 字节。检验和字段检验的范围包括首部和数据这两部分。和UDP用户数据报一样,在计算检验和时,要在TCP 报文段的前面加上12 字节的伪首部。伪首部的格式与UDP 用户数据报的伪首部一样。但应把伪首部第4 个字段中的17 改为6(TCP 的协议号是6) ,把第5 字段中的UDP 长度改为TCP 长度
  • 紧急指针:占2 字节。紧急指针仅在URG = 1 时才有意义,它指出本报文段中的紧急数据的字节数(紧急数据结束后就是普通数据)。因此,紧急指针指出了紧急数据的末尾在报文段中的位置。
  • 时间戳选项占10 字节,其中最主要的字段是时间戳值字段(4 字节)和时间戳回送回答字段(4 字节)。时间戳选项有以下两个功能:
    第一,用来计算往返时间RTT (见后面的5.6.2 节)。发送方在发送报文段时把当前时钟的时间值放入时间戳字段,接收方在确认该报文段时把时间戳字段值复制到时间戳回送回答字段。因此,发送方在收到确认报文后,可以准确地计算出RTT 来。
    第二,用于处理TCP 序号超过232 的情况,这又称为防止序号绕回PAWS

滑动窗口

在这里插入图片描述

超时重传时间的选择

  • TCP 采用了一种自适应算法,它记录一个报文段发出的时间,以及收到相应的确认的时间。这两个时间之差就是报文段的往返时间RTT 。TCP 保留了RTT 的一个加权平均往返时间RTTs

    新的RTTs = (1 - a) x (旧的RTTs) + a x (新的RTT 样本)

    0≦a<1,推荐值1/8

  • 超时计时器设置的超时重传时间RTO (RetransmissionTime-Out)应略大千上面得出的加权平均往返时间RTTs。

    RTO = RTTs + 4 x RTTD

  • 而RTTD 是RTT 的偏差的加权平均值,它与RT飞和新的RTT 样本之差有关。当第一次测量时, RT几值取为测量到的RTT 样本值的一半。在以后的测量中,则使用下式计算加权平均的RTTD

    新的RTTD = (1- ß) x (旧的RTTD)+ ß x |RTTs - 新的RTT 样本|

    ß<1,推荐值1/4

TCP流量控制

  • 所谓流量控制(flow control)就是让发送方的发送速率不要太快,要让接收方来得及接收。

  • 方法是滑动窗口。发送方维护一个发送窗口,窗口内的表示可以发送的报文段,窗口前表示不能发送的报文段,窗口后代表已发送并收到确认的报文段,可以删除;接收方维护一个接收窗口,发送方的发送窗口不能大于接收方的接收窗口
    在这里插入图片描述

TCP传输效率

  • Nagle算法:若发送应用进程把要发送的数据逐个字节地送到TCP 的发送缓存,则发送方就把第一个数据字节先发送出去,把后面到达的数据字节都缓存起来。当发送方收到对第一个数据字符的确认后,再把发送缓存中的所有数据组装成一个报文段发送出去,同时继续对随后到达的数据进行缓存。只有在收到对前一个报文段的确认后才继续发送下一个报文段。当数据到达较快而网络速率较慢时,用这样的方法可明显地减少所用的网络带宽。Nagle 算法还规定,当到达的数据已达到发送窗口大小的一半或已达到报文段的最大长度时,就立即发送一个报文段。这样做,就可以有效地提高网络的吞吐量。

TCP拥塞控制

  • 所谓拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载
  • 拥塞控制是一个全局性的过程,流量控制往往是指点对点通信量的控制,是个端到端的问题(接收端控制发送端)

TCP拥塞控制方法

  • 传输轮次:一个传输轮次所经历的时间其实就是往返时间RTT (请注意, RTT 并非是恒定的数值)。使用“传输轮次“是更加
    强调:把拥塞窗口cwnd 所允许发送的报文段都连续发送出去,并收到了对已发送的最后一个字节的确认。

  • 基于窗口的拥塞控制:为此,发送方维持一个叫做拥塞窗口cwnd (congestion window) 的状态变量。拥塞窗口的大小取决千网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。判断网络拥塞的依据就是出现了超时。

  • 慢开始和拥塞避免算法:

    • 使用慢开始算法后,每经过一个传输轮次(transmission round) ,拥塞窗口cwnd 就加倍。

    • 当cwnd=ssthresh后使用拥塞避免算法,每次cwnd加1,而不是翻倍

    • 为了防止拥塞窗口cwnd 增长过大引起网络拥塞,还需要设置一个慢开始门限ssthresh状态变量。慢开始门限ssthresh 的用法如下:
      当cwnd < ssthresh 时,使用上述的慢开始算法。
      当cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。
      当cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。

  • 快重传和快恢复算法:

    • 快重传:接收方收到分组就要立即确认,如果分组丢失则重复发送按序到达的分组编号,当发送方收到连续三个重复确认(实际是四个,因为成功接收到还有一次),就立刻重传相应的分组
    • 快恢复:发送方调整ssthresh=cwnd/2,之后令cwnd=ssthresh,开始慢开始拥塞避免算法
  • 在拥塞避免阶段,拥塞窗口是按照线性规律增大的,这常称为加法增大AI (Additive Increase) 。而一旦出现超时或3 个重复的确认,就要把门限值设置为当前拥塞窗口值的一半,并大大减小拥塞窗口的数值。这常称为**“乘法减小“MD**(Multiplicative Decrease) 。二者合在一起就是所谓的AIMD 算法

  • 发送方窗口的上限值= Min [ rwnd, cwnd] rwnd是接收方的接收窗口值

  • 举例:

    设刚开始时拥塞窗口cwnd=1,(单位是报文段个数,而不是字节)。慢开始门限ssthresh=16.纵轴表示拥塞窗口cwnd大小,横轴表示传输轮次
    在这里插入图片描述

    • 传输轮次为0,从cwnd=1开始进行慢开始算法,每个传输轮次翻倍
    • ①传输轮次为4时,cwnd=ssthresh=16,开始拥塞避免算法,每次加一
    • ② cwnd=24很大,发生了一次超时,之后ssthresh=cwnd/2=24/2=12,并进行慢开始算法
    • ③cwnd=ssthresh=12,开始拥塞避免算法
    • ④此时收到了三次重复确认,执行快恢复算法。令ssthresh=cwnd/2=16/2=8,之后cwnd=ssthresh=8,之后执行拥塞避免算法
    • ⑤开始拥塞避免算法

TCP的连接和释放

TCP连接的建立

在这里插入图片描述

TCP连接的释放

在这里插入图片描述

本章的重要概念

• 运输层提供应用进程间的逻辑通信,也就是说,运输层之间的通信并不是真正在两个运输层之间直接传送数据。运输层向应用层屏蔽了下面网络的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。
• 网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。
• 运输层有两个主要的协议: TCP 和UDP 。它们都有复用和分用,以及检错的功能。当运输层采用面向连接的TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当千一条全双工通信的可靠信道。当运输层采用无连接的UDP 协议时,这种逻辑通信信道仍然是一条不可靠信道。

• 运输层用一个16 位端口号来标志一个端口。端口号只具有本地意义,它只是为了标志本计算机应用层中的各个进程在和运输层交互时的层间接口。在互联网的不同计算机中,相同的端口号是没有关联的。
• 两台计算机中的进程要互相通信,不仅要知道对方的IP 地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)。
• 运输层的端口号分为服务器端使用的端口号(0 ~ 1023 指派给熟知端口, 1024 ~4915] 是登记端口号)和客户端暂时使用的端口号(49152 ~ 65535) 。
• UDP 的主要特点是: ( 1) 无连接; (2) 尽最大努力交付; (3) 面向报文; (4) 无拥塞控制; (5) 支持一对一、一对多、多对一和多对多的交互通信; (6) 首部开销小(只有四个字段:源端口、目的端口、长度、检验和)。
• TCP 的主要特点是: ( 1) 面向连接; (2) 每一条TCP 连接只能是点对点的(一对一); (3) 提供可靠交付的服务; (4) 提供全双工通信; (5) 面向字节流。
• TCP 用主机的IP 地址加上主机上的端口号作为TCP 连接的端点。这样的端点就叫做套接字(socket) 或插口。套接字用(IP 地址:端口号)来表示。
• 停止等待协议能够在不可靠的传输网络上实现可靠的通信。每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。分组需要进行编号。
• 超时重传是指只要超过了一段时间仍然没有收到确认,就重传前面发送过的分组(认为刚才发送的分组丢失了)。因此每发送完一个分组需要设置一个超时计时器,其重传时间应比数据在分组传输的平均往返时间更长一些。这种自动重传方式常称为自动重传请求ARQ 。
• 在停止等待协议中,若接收方收到重复分组,就丢弃该分组,但同时还要发送确认。
• 连续ARQ 协议可提高信道利用率。发送方维持一个发送窗口,凡位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认。接收方一般采用累积确认,对按序到达的最后一个分组发送确认,表明到这个分组为止的所有分组都已正确收到了。
• TCP 报文段首部的前20 个字节是固定的,后面有4N 字节是根据需要而增加的选项(N 是整数)。在一个TCP 连接中传送的字节流中的每一个字节都按顺序编号。首部中的序号字段值则指的是本报文段所发送的数据的第一个字节的序号。
• TCP 首部中的确认号是期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N, 则表明:到序号N-1 为止的所有数据都已正确收到。
• TCP 首部中的窗口字段指出了现在允许对方发送的数据量。窗口值是经常在动态变化着的。
• TCP 使用滑动窗口机制。发送窗口里面的序号表示允许发送的序号。发送窗口后沿的后面部分表示已发送且已收到了确认,而发送窗口前沿的前面部分表示不允许发送。发送窗口后沿的变化情况有两种可能,即不动(没有收到新的确认)和前移(收到了新的确认)。发送窗口前沿通常是不断向前移动的。
• 流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。
• 在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种情况就叫做拥塞。拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。
• 流量控制是一个端到端的问题,是接收端抑制发送端发送数据的速率,以便使接收端来得及接收。拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。
• 为了进行拥塞控制, TCP 的发送方要维持一个拥塞窗口cwnd 的状态变量。拥塞窗口的大小取决千网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口取为拥塞窗口和接收方的接收窗口中较小的一个。
• TCP 的拥塞控制采用了四种算法,即慢开始、拥塞避免、快重传和快恢复。在网络层,也可以使路由器采用适当的分组丢弃策略(如主动队列管理AQM) ,以减少网络拥塞的发生。
• 运输连接有三个阶段,即:连接建立、数据传送和连接释放。
• 主动发起TCP 连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫做服务器。TCP 的连接建立采用三报文握手机制。服务器要确认客户的连接请求,然后客户要对服务器的确认进行确认。
• TCP 的连接释放采用四报文握手机制。任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后就进入半关闭状态。当另一方也没有数据再发送时,则发送连接释放通知,对方确认后就完全关闭了TCP 连接。

第六章 应用层

域名系统DNS

域名系统概念

  • 域名系统DNS是互联网使用的命名系统,用来把便于人们使用的机器名字(www.baidu.com)转换为IP 地址
  • 域名解析过程:
    • 当某一个应用进程需要把主机名解析为IP 地址时,该应用进程就调用解析程序(resolver) ,并成为DNS 的一个客户,把待解析的域名放在DNS 请求报文中,以UDP 用户数据报方式发给本地域名服务器(使用UDP 是为了减少开销)。
    • 本地域名服务器在查找域名后,把对应的IP 地址放在回答报文中返回。应用进程获得目的主机的IP 地址后即可进行通信。
    • 若本地域名服务器不能回答该请求,则此域名服务器就暂时成为DNS 中的另一个客户,并向其他域名服务器发出查询请求。这种过程直至找到能够回答该请求的域名服务器为止。

互联网的域名结构

在这里插入图片描述

  • DNS规定:

    • 每一个标号不超过63 个字符(但为了记忆方便,最好不要超过12 个字符),也不区分大小写字母(例如, CCTV 或cctv 在
      域名中是等效的)。
    • 标号中除连字符(-)外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的顶级域名则写在最右边。由多个标号组成的完整域名总共不超过255 个字符。
  • 顶级域名: 在这里插入图片描述

  • 二级域名
    在这里插入图片描述

  • 互联网域名空间(树)
    在这里插入图片描述

域名服务器

  • 一个服务器所负责管辖的(或有权限的)范围叫做(zone) 。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器(authoritative name server) ,用来保存该区中的所有主机的域名到IP 地址的映射。总之, DNS 服务器的管辖范围不是以“域”为单位,而是以“区”为单位。区是DNS服务器实际管辖的范围。区可能等于或小于域,但一定不能大于域。
    在这里插入图片描述

  • (1) 根域名服务器(root name server) :根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP 地址。

  • (2)顶级域名服务器(即TLD 服务器):这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。

  • (3)权限域名服务器:当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的DNS 客户,下一步应当找哪一个权限域名服务器。

  • (4)本地域名服务器(local name server) :当一台主机发出DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。当所
    要查询的主机也属于同一个本地ISP 时,该本地域名服务器立即就能将所查询的主机名转换为它的IP 地址,而不需要再去询问其他的域名服务器。

域名解析过程

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 为了提高DNS 查询效率,并减轻根域名服务器的负荷和减少互联网上的DNS 查询报文数量,在域名服务器中广泛地使用了高速缓存(有时也称为高速缓存域名服务器)。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。

文件传送协议FTP

  • 其工作过程是︰
    • 首先,服务器端运行的守护进程(主进程)打开熟知端口21,等待并接收来自客户端的连接请求。
    • 当有客户端连接请求到达时,服务器端主进程启动第一个从属进程(控制进程)并建立与客户端的第一个连接(控制连接)来处理该客户端的请求,主进程则继续侦听其它客户端的连接请求从属进程可根据需要创建其它子进程。
    • 控制连接在会话期间一直保持打开,用于客户端和服务端之间发送有关命令并得到命令的响应,但它不负责实际数据文件的传送。当客户端选择并要求服乡器端传送文件时,服务器端就为该客户端创建第二个从属进程(数据进程)并建立与客户端的第二个连接(数据连接)。数据连接实际负责传送数据文件,数据文件传送结束后数据连接就被关闭。
  • 带外传送:由于FTP 使用了一个分离的控制连接,因此FTP 的控制信息是带外传送的。

统一资源定位符URL

  • 统一资源定位符URL 是用来表示从互联网上得到的资源位置和访问这些资源的方法。URL给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。
  • URL 的一般形式由以下四个部分组成:<协议>://<主机>:<端口>/<路径>
    • 协议可以是http,或者ftp
    • 主机字段可以是IP也可以是域名
    • 端口默认是80可以省略

超文本传送协议HTTP

  • HTTP 协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看, HTTP 是面向事务的应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
  • 要点:
    • HTTP 使用了面向连接的TCP 作为运输层协议,保证了数据的可靠传输。HTTP 不必考虑数据在传输过程中被丢弃后又怎样被重传。但是, HTTP 协议本身是无连接的。这就是说,虽然HTTP 使用了TCP 连接,但通信的双方在交换HTTP 报文之前不需要先建立HTTP 连接。
    • HTTP 协议是无状态的。也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同(假定现在服务器还没有把该页面更新),因为服务器并不记得曾经访问过的这个客户,也不记得为该客户曾经服务过多少次。

电子邮件

  • 一些标准:

    • 发送邮件协议:
      • 简单邮件传送协议SMTP:只能传送可打印的7 位ASCII 码邮件
      • **通用互联网邮件扩充MIME **: 在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视像等)。在MIME 邮件中可同时传送多种类型的数据。
    • 读取邮件协议:
      • 邮局协议POP3:邮局协议POP 是一个非常简单、但功能有限的邮件读取协议。
      • 网际报文存取协议IMAP
  • 组成构件:

    • 用户代理(UA):用户与电子邮件系统的接口,在大多数情况下它就是运行在用户电脑中的一个程序。因此用户代理又称为电子邮件客户端软件。具备撰写、显示、处理、通信功能
    • 邮件服务器:24小时不间断工作。邮件服务器的功能是发送和接收邮件,同时还要向发件人报告邮件传送的结果(已交付、被拒绝、丢失等)。一个邮件服务器既可以作为客户,也可以作为服务器
    • 邮件发送协议(如SMTP) 和邮件读取协议(如POP3) 。
  • 电子邮箱工作过程:

    1. 发件人调用计算机中的用户代理撰写和编辑要发送的邮件。
    2. 用户代理把邮件用SMTP 协议发给发送方邮件服务器,用户代理充当SMTP 客户,而发送方邮件服务器充当SMTP 服务器。
    3. SMTP 服务器收到用户代理发来的邮件后,就把邮件临时存放在邮件缓存队列中,等待发送到接收方的邮件服务器
    4. 发送方邮件服务器的SMTP 客户与接收方邮件服务器的SMTP 服务器建立TCP 连接,然后把邮件缓存队列中的邮件依次发送出去
    5. 运行在接收方邮件服务器中的SMTP 服务器进程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取。
    6. 收件人在打算收信时,就运行计算机中的用户代理,使用POP3 (或IMAP协议读取发送给自己的邮件。)
  • 两种不同的通信方式:一种是**“推" (push): SMTP 客户把邮件“推“给SMTP 服务器。另一种是“拉”(pull)**: POP3 客户把邮件从POP3 服务器“拉”过来。

SMTP

  1. 连接建立:
  • 发送方客户代理和发送方邮件服务器建立连接、发送方服务器和接收方服务器建立连接

  • 用户的邮件首先存储在发送方邮件服务器的缓冲中,然后发送方邮件服务器定期检查邮件缓存,若有待发邮件则主动与接收方邮件服务器发起连接并将邮件发送到接收方邮件服务器。(SMTP不使用中间的邮件服务器)

  1. 邮件传送:

    • MAIL 命令:MAIL FROM + 发送方地址(如xxxxxx@qq.com)

    • 一个或多个RCPT (recipient)命令:RCPT TO+ 接收方地址

      (先弄清接收方系统是否己做好接收邮件的准备,然后才发送邮件。)

    • DATA 命令,表示要开始传送邮件的内容了。

    • 注意:SMTP虽然使用了TCP传送,但并不能保证不丢失邮件(如服务器故障)

  2. 释放连接:

    • 邮件发送完毕后, SMTP 客户应发送QUIT 命令

POP3和IMAP

  • POP3:邮局协议POP 是一个非常简单、但功能有限的邮件读取协议。现在使用的是第三个版本POP3

    • 在接收邮件的用户计算机中的用户代理必须运行POP3 客户程序,而在收件人所连接的ISP 的邮件服务器中则运行POP3 服务器程序。当然,这个ISP 的邮件服务器还必须运行SMTP 服务器程序,以便接收发送方邮件服务器的SMTP 客户程序发来的邮件

    • POP3 协议的一个特点就是只要用户从POP3 服务器读取了邮件, POP3 服务器就把该邮件删除。但是进行了一些功能扩充,其中包括让用户能够事先设置邮件读取后仍然在POP3 服务器中存放的时间

  • IMAP:也是客户服务器工作方式,但是比POP3复杂

    • 在用户的计算机上运行IMAP 客户程序,然后与接收方的邮件服务器上的IMAP 服务器程序建立TCP 连接。用户在自己的计算机上就可以操纵邮件服务器的邮箱,就像在本地操纵一样,因此IMAP 是一个联机协议
    • 当用户PC机上的IMAP客户程序打开IMAP服务器的邮箱时,用户就可看到邮件的首部。若用户需要打开某个邮件,则该邮件才传到用户的计算机上
    • 除非用户使用删除命令,否则邮件将在服务器上一直保存
    • 用户可根据自己的需要进行邮件的分类管理和移动

动态主机配置协议DHCP

  • 每一台主机都需要配置IР地址和子网掩码才能进行网络通信,DHCP协议又称为动态主机配置协议,它为主机提供了即插即用连网的机制,允许每台主机加入新网络时能通过该协议自动地获取IP地址等而不用手工配置。除了普通主机可使用该协议外,还可用于无盘工作站以获取IP地址。
  • 当一台计算机第一次运行引导程序时,其ROM中并没有该主机的IP地址、子网掩码或某个域名服务器的IP地址,因为这些网络上使用的信息都是通过软件配置的,也称为逻辑地址或软件地址。只要主机所连接的网络上有运行DHCP协议的服务器,那么计算机就可以通过广播方式发送发现报文,而由DHCP服务器单播提供报文,从而使计算机得到IP地址等信息。
  • 11
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值