Skip to content

Latest commit

 

History

History
5266 lines (2825 loc) · 226 KB

计算机网络-韩立刚.md

File metadata and controls

5266 lines (2825 loc) · 226 KB

最新自考笔记 : https://github.com/Eished/self-study-exam_notes

课程目标:理解数据通信的过程和TCP、IP协议的工作过程。

适用人群:将来从事IT工作的人群,打算彻底从理论上搞明白计算机网络是如何通信的人群。

课程大纲-2019全新《计算机网络原理》考研视频教程

视频总时长:58:22:56

课程地址&资料下载:https://edu.51cto.com/course/7313.html

第1章 计算机网络和协议

6小时43分钟30节

高端IT运维职位需要学习的技能 04:40

1.1 计算机网络在当今社会的作用

1.2 认识网络

image-20210506175056082

  • 家庭ADSL无线拨号路由器逻辑图

    image-20210506175044107

1.3 理解计算机通信使用的协议

image-20210504021329444

1-3 抓包分析应用层协议 12:37

image-20210504174335974

1-4 协议标准化的好处 10:04

  • 互联网中有很多常见的应用,很多家公司开发服务端程序,也有很多家公司开发客户端程序。为了使不同厂家开发的服务端程序和客户端程序能够通信 ,必须将这些应用程序通信协议的协议进行标准化

  • TCP/IP协议组中知名的应用层协议 ◼ 超级文本传输协议--HTTP ,用于访问Web 服务。 ◼ 安全的超级文本传输协议--HTTPS ,能够将HTTP 协议通信进行加密访问。 ◼ 简单邮件传输协议--SMTP ,用于发送电子邮件。 ◼ 邮局协议版本3 --POP3 ,用于接收电子邮件。 ◼ 域名解析协议--DNS ,用于域名解析。 ◼ 文件传输协议--FTP ,用于在Internet 上传和下载文件。 ◼ 简单文件传输协议--TFTP ,在客户机与服务器之间进行简单文件传输的协议。 ◼ 远程登录--telnet 协议,用于远程配置网络设备和Linux 系统。 ◼ 动态主机配置协议--DHCP ,用于计算机自动请求IP

1-5 以HTTP协议为例理解计算机通信协议 05:55

  • HTTP 协议的甲方乙方分别是 Web 服务器和浏览器 ◼ 该协议就是规定浏览器访问网站方法和规则。 ◼ 定义了客户端能够向服务器发送哪些请求。 ◼ 服务器能够向客户端发送哪些响应。 ◼ 定义了请求报文格式。 ◼ 定义了响应报文格式。

  • 计算机通信使用的协议包含三要素 计算机通信使用的协议包含三要素:语法、语义和同步。

    • 语法
      • 定义协议中每种报文的格式:有哪些字段,字段是定长还是变长,如果是变长,字段分割符是什么,都要在协议中定义。一个协议有可能需要定义多种报文格式,比如ICMP 协议,定义了ICMP 请求报文格式、ICMP 响应报文格式、ICMP 差错报告报文格式。
    • 语义
      • 客户端能够向服务器发送那些请求(方法或命令),服务器有哪些响应(状态代码),每种状态代码代表什么意思。
    • 同步
      • 客户端访和服务器命令交互顺序,比如POP3 协议,需要先验证用户身份才能收邮件。

image-20210504230821305

image-20210504230834336

1.4 TCP/IP 协议

1-6 TCP/IP协议体系结构 17:17

image-20210504230912600

image-20210504230927543

image-20210504230943120

image-20210504230956577

image-20210504231012082

1-20 TCP/IP协议通信过程 28:15

image-20210505173454852

1.5 OSI 参考模型

1-7 OSI参考模型和TCP/IP协议之间的关系 05:51

image-20210504233800655

1.5.2 OSI参考模型每层功能

  1. 应用层 ,根据互联网中需要通信的应用程序的功能,定义客户端和服务端程序通信的规范,应用层向表示层发出请求。
  2. 表示层,定义数据格式、是否加密或压缩。例如,FTP 允许你选择以二进制或ASCII 格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII 格式,发送方将把文本从发送方的字符集转换成标准的ASCII 后发送数据。在接收方将标准的ASCII 转换成接收方计算机的字符集。
  3. 会话层 ,它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的。
  4. 传输层 ,常规数据递送,面向连接或无连接。面向连接实现可靠传输,比如TCP 协议,面向无连接,提供不可靠传输,比如UDP 协议。
  5. 网络层 ,根据网络地址为数据包选择选择转发路径。网络层为传输层提供服务,只是尽力转发数据包,不保证不丢包,也不保证按顺序到达接收端。
  6. 数据链路层 ,数据链路层常简称链路层,两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要专门的链路层的协议。
  7. 物理层 ,在物理层上所传输的数据单位是比特。发送方发送1 (或0 )时,接收方应该收到1 (或0 ),而不是0 (或1 )。因此物理层要考虑用多大电压代表“1 ”或“0 ”,以及接收方如何识别出发送方所代表的比特。物理层还要确定连接电缆的的插头应当有多少根引脚以及各条引脚应如何连接。

image-20210505163555273

1.6.6 用分层的思想考虑问题

◼ 计算机通信按功能分层的好处就是当某一层有变换不会波及其他层。 ◼ 比如单位的网络IP 地址重新规划,不会影响企业内外的服务的访问。 ◼ 要实现这个分层,就不要在应用层包含网络层的信息,比如开发的客户端程序连接服务器就不要写服务器的IP 地址,而是写服务器的名称。如果将服务器的IP 地址写进应用程序,就没有采纳OSI 参考模型的分层思想。网络一旦调整,就需要修改客户端程序。这就是网络层变换引起应用层变化了。

1-15 网络层功能 07:25

image-20210505164002171

image-20210505163504216

1-16 数据链路层功能 07:31

1-17 物理层功能 06:57

1-18 OSI参考模型指导网络排错 31:25

image-20210505163632982

1-21 集线器交换机路由工作在哪一层? 07:29

image-20210505223012038

1.7 计算机网络性能指标

1.7.1 速率

  • 网络技术中的速率指的是每秒钟传输的比特数量,称为数据率(data rate )或比特率(bit rate ),速率的单位为b/s (比特每秒)或bit/s ,有时也写为bps ,即bit per second 。当速率较高时,就可以用kb/s (k=103= 千)、Mb/s (M=106= 兆)、Gb/s (G=109= 吉)或Tb/s(T=1012= 太)。现在人们习惯于用更简洁但不严格的说法来描述速率,比如10M 网速,而省略了单位中的b/s。 。 ◼Windows 操作系统中,速率以字节为单位。大写的B 代表字节,是byte 的缩写,8 比特=1 字节。 ◼ 速率是指的一个发端一个接收端平均每秒中发送多少bit。

1.7.2 带宽

  • 在计算机网络中,带宽用来表示网络通信线路传输数据的能力,即最高速率。
  • 可以设置电脑网卡的带宽。

1.7.3 吞吐量

  • 吞吐量表示在单位时间内通过某个网络或接口的数据量,包括全部上传和下载的流量。

1.7.4 时延

  • 时延(delay 或latency )是指数据(一个数据包或bit )从网络的一端传送到另一端所需要的时间。时延是一个很重要的性能指标,有时也称为延迟或迟延。
  1. **发送时延(transmission delay )**是主机或路由器发送数据帧所需时间,也就是从发送数据帧的第一个比特开始,到该帧最后一个比特发送完毕所需要的时间。下图

    image-20210506175624265

    image-20210506175631938

  2. **传播时延(propagation delay)**是电磁波在信道中传播一定的距离需要花费的时间。如下图所示,从最后一比特发送完毕到最后一比特到达路由器接口需要的时间就是传播时延。

    image-20210506175710730

  3. 排队时延

    • 分组在经过网络传输时,要经过许多的路由器。但分组在进入路由器后要先在输入队列中排队等待处理。
  4. 处理时延

    • 路由器或主机在收到数据包时,要花费一定时间进行处理,例如分析数据包的首部、进行首部差错检验,查找路由表为数据包选定转发出口,这就产生了处理时延。
    • 数据在网络中经历的总时延就是以上四种时延的总和。
    • 总时延= 发送时延+ 传播时延+ 处理时延+ 排队时延

1.7.5 时延带宽积

  • 把链路上的传播时延和带宽相乘,就会得到时延带宽积。这对我们以后计算以太网的最短帧非常有帮助。

  • 时延带宽积= 传播时延×带宽

    image-20210506175811817

1.7.6 往返时间

  • 在计算机网络中,往返时间RTT( Round-Trip Time )也是一个重要的性能指标,它表示从发送端发送数据开始,到发送端接收到来自接收端的确认(发送端收到后立即发送确认),总共经历的时间。
  • 往返时间带宽积,可以用来计算当发送端连续发送数据时,接收端如发现有错误,立即向发送端发送通知使发送端停止,发送端这段时间发送的比特量 。

1.7.7 利用率

  • 利用率是指网络有百分之几的时间是被利用的(有数据通过),没有数据通过的网络利用率为零。网络利用率越高,数据分组在路由器和交换机处理时就需要排队等待,因此时延也就越大。下面的公式表示网络利用率和延迟之间的关系。

image-20210506175900746

1.8 网络分类

1.8.1 按网络的范围进行分类

  1. 局域网(Local Area Network ,LAN )是在一个局部的地理范围内(如一个学校、 工厂和机关内),一般是方圆几千米以内,将各种计算机、外部设备和数据库等 互相连接起来组成的计算机通信网。
  2. 广域网(Wide Area Network ,WAN )通常跨接很大的物理范围,所覆盖的范围从 几十公里到几千公里,能连接多个城市或国家,或横跨几个洲并能提供远距离通 信,形成国际性的远程网络。
  3. 城域网(Metropolitan Area Network ,MAN )的作用范围一般是一个城市,可跨 越几个街区甚至整个城市,其作用距离约为5 ~50km 。城域网可以为一个或几个 单位所拥有,但也可以是一种公用设施,用来将多个局域网进行互连。目前很多 城域网采用的是以太网技术,因此有时也将其并入局域网的范围进行讨论。
  4. 个人区域网(Personal Area Network ,PAN )就是在个人工作的地方把属于个人使 用的电子设备(如便携式电脑等)用无线技术连接起来的网络,因此也常称为无 线个人区域网(Wireless PAN ,WPAN ),比如无线路由器组建的家庭网络,就是 一个PAN

1.8.2 按网络的使用者进行分类

  1. 公用网(public network )是指电信公司(国有或私有)出资建造的大型网络。“公用”的意思就是所有愿意按电信公司的规定交纳费用的人都可以使用这种网络。因此公用网也可称为公众网,因特网就是全球最大的公用网络。
  2. 专用网(private network )是某个部门为本单位的特殊业务工作需要而建造的网络。这种网络不向本单位以外的人提供服务。例如,军队、铁路、电力等系统均有本系统的专用网。
  3. 公用网和专用网都可以传送多种业务。如传送的是计算机数据,则分别是公用计算机网络和专用计算机网络。

1.9 企业局域网设计

1.9.1 二层结构的局域网

  • 接入层连接计算机

  • 汇聚成连接接入层交换

    image-20210506180034187

1.9.2 三层结构的局域网

  • 接入层
  • 汇聚层
  • 核心层

image-20210506180100106

第2章 物理层

4小时29分钟15节

2.1 物理层的基本概念

  • 物理层涉及到的内容

    image-20210506165100529

    物理层涉及到的知识点 数字信号 双绞线 同轴电缆 光纤 时分多路 波分复用 编码方式 模拟信号 频分多路复用 码分复用技术 全双工 半双工 单工通信

  • 物理层实现的功能 12:13

    • 物理层定义了与传输媒体的接口有关的一些特性。
      1. 机械特性 外形
      2. 电气特性 电压
      3. 功能特性 功能
      4. 过程特性 时序、顺序

2.2 数据通信基础

信息-数据-信号 26:53

数字信号和模拟信号 08:47

2.2.1 数据通信模型

  1. 局域网通信模型

    image-20210506171858622

  2. 广域网通信模型

    image-20210506171909197

  3. 广域网通信模型

    image-20210506171919371

2.2.2 数据通信一些常用术语

  • 信息(Message ):通信的目的是传送信息,如文字、图像、视频和音频等都是消息。
  • 数据(Data ):信息在传输之前需要进行编码,编码后的信息就变成数据。
  • 信号(signal ):数据在通信线路上传递需要变成电信号或光信号。

image-20210506171934813

2.2.3 模拟信号和数字信号

  • 模拟信号或连续信号

    image-20210506171950364

  • 数字信号或离散信号

    • 二进制码元

    • 一个码元表示一个二进制数。

    image-20210506172054869

    • 四进制码元

      • 一个码元代表两位二进制数。

      image-20210506172040101

    • 八进制码元

      • 一个码元代表三位二进制数。

      image-20210506172030677

  • 数字信号和模拟信号优缺点

    • 模拟信号在传输过程中如果出现信号干扰发生波形发生变形,很难纠正。

      image-20210506172145250

    • 数字信号 波形失真可以修复

      image-20210506172154555

2.2.4 模拟信号转换成数字信号

  • 模拟信号可以转换成数字信号,转换过程有失真。所以听歌还要去演唱会现场,100% 的音效。使用电脑听的音乐是转换成数字信号后再还原成模拟信号,就达不到现场效果了。

    image-20210506172208295

  • 采样频率和采样精度决定音乐的品质

    image-20210506172222829

2.3 信道和调制

信道复用技术 10:57

调制技术-基带调制和带通调制 19:37

信道极限容量-码元的最高传输速率(奈氏准则) 16:43

信道极限容量-最高数据传输速率(香农公式) 21:16

2.3.1 信道

  • 信道(Channel )是信息传输的通道,即信息进行传输时所经过的一条通路,信道的一端是发送端,另一端是接收端。一条传输介质上可以有多条信道(多路复用)。

    image-20210506172247726

2.3.2 单工和半双工以及全双工通信

  1. 单向通信
    • 又称为单工通信,即信号只能向一个方向传输,任何时候都不能改变信号的传送方向。无线电广播或有线电视广播就是单工通信,信号只能是广播电台发送,收音机接收。
  2. 双向交替通信
    • 又称半双工通信,信号可以双向传送,但是必须是交替进行,一个时间只能向一个方向传。有些对讲机就是用半双工通信,A 端说话B 端接听,B 端说话A端接听,不能同时说和听。
  3. 双向同时通信
    • 又称全双工通信,即信号可以同时双向传送。比如我们手机打电话,听和说可以同时进行。

2.3.3 调制

  • 来自信源的信号通常称为基带信号(即基本频带信号)。

  • 调制可以分为两大类。

    • 一类仅仅对基带信号的波形进行变换,使它能够与信道特性相适应。变化后的信号仍然是基带信号,这类调制称为基带调制。由于这种基带调制十八数字信号转换成另一种形式的数字信号,因此大家更愿意把这种过程称为编码(coding)
    • 另一类则需要使用载波(carrier )进行调制,把基带信号的频率范围搬移到较高的频段以便在信道中传输 , 经过载波调制后的信号称为带通信号(即仅在一段频率范围内能够通过信道),而使用载波的调制称为带通调制
  • 来自信源的信号通常称为基带信号(即基本频带信号) 。

  • 为了把基带信号能够再介质中传输需要对基带信号进行调制。

    • 数字基带信号码型
      1. 单极不归零编码
      2. 双极不归零编码
      3. 单极归零码
      4. 双极归零码
      5. 差分码

    image-20210506172401524image-20210506172338644

  • 调制可以分为两大类。

    • 基带调制又称编码
    • 将基带信号调制成模拟信号
  • 常用编码方式

  • 常用带通调制方法

2.3.4 信道极限容量

  • 有失真但可识别

    image-20210506172704517

  • 失真太大无法识别

    image-20210506172715690

  • 信道带宽

    • 信道带宽= 能够通过的最高频率-最低频率

      image-20210506172732549

  • 模拟信号谐波成数字信号

    数字信号是由基波加上谐波叠加而成

    image-20210506172749814

  • 数字信号高频带宽不能通过

    image-20210506172843652

  • 奈氏准则 (数字信号)

    • 在任何信道中,码元传输的速率是有上限的,否则就会出现码间串扰的问题,使接收端对 码元的判决(即识别)成为不可能 。

    • 如果信道的频带越宽,也就是能够通过的信号高频分量越多,那么就可以使用更高速率传 递码元而不出现码间串扰。

      理想低通信道的最高码元传输速率=2WBaud

      • W 是理想低通信道的带宽,单位为HZ。
      • Baud 是波特,是码元传输速率的单位。
    • 使用奈氏准则给出的公式,可以根据信道的带宽,计算出码元的最高传输速率。

  • 在码元传输速率一定的情况下提高数据传输速率

    • 码元传输速率一定,那就让一码元承载更多信息。8 进制码元,一码元代表三位二进制数,16 进制码元,一码元代表4 进制数。
    • 在工作电压一定的情况下,16 进制码元波形差别就小,更容易受干扰。
    • 要想增加码元之间的电压差别,那就要怎加工作电压,也就是提高发送信号的功率 。

    image-20210506172903385

  • 香农公式 (适用于模拟信号和数字信号)

    • 有噪声的 信道的极限信息传输速率C:$C=W log _2 (1+S/N)\quad(b/s)$
    • 式中,W 为信道的带宽(以Hz 为单位);S 为信道内所传信号的平均功率;N为信道内部的高斯噪声功率
  • 信噪比

    • 所谓信噪比就是信号的平均功率和噪声的平均功率之比,常记为S/N ,并用分贝(dB )作为度量单位。即:$信噪比(dB )=10log _{10} (S/N)\quad(dB)$
    • 例如,当S/N=10 时,信噪比为10dB ,而当S/N=1000 时,信噪比为30dB 。

2.4 传输媒体

导向传输媒体 24:16

非导向传输媒体 10:03

2.4.1 导向传输媒体

  • 导向传输媒体

    • 双绞线

      image-20210506172925707

      image-20210506213902205

    • 同轴电缆

      image-20210506172943315

    • 光缆

      image-20210506173052882

      image-20210506173009444

      • 单一模光纤的光源要使用昂贵的半导体激光器,而不能使用较便宜的发光二极管。但单模光纤的衰耗较小,在2.5Gb/s 的高速率下可传输数十公里而不必采用中继器。

        image-20210506173029733

      • 光纤不仅具有通信容量非常大的优点,而且还具有其他的一些特点 :

        • 传输损耗小,中继距离长,对远距离传输特别经济。
        • 抗雷电和电磁干扰性能好。这在有大电流脉冲干扰的环境下尤为重要。
        • 无串音干扰,保密性好,也不易被窃听或截取数据。
        • 体积小,重量轻。

2.4.2 非引导型传输媒体

  • 无线电频段

image-20210506173105100

image-20210506214615299

  • 短波通信

    • 短波通信即高频通信,主要是靠电离层的反射。
  • 微波通信

    • 微波在空间主要是直线传播
  • 无线局域网 要使用某一段无线电频谱进行通信,通常必须得到本国政府有关无线电频谱管理机构的许可证。 但是,也有一些无线电频段是可以自由使用的(只要不干扰他人在这个频段中的通信),这正好满足计算无线局域网的需求 。

2.5 信道复用技术

频分复用 17:05

时分复用和波分复用 15:35

码分复用 27:33

2.5.1 频分复用

  1. 频分复用FDM (Frequency Division Multiplexing )适合于模拟信号。

    image-20210506173300558

    • A1 →A2 信道使用频率f1调制载波,B1 →B2 信道使用频率f2 调制载波,C1 →C2 信道使用频率f2调制载波,不同频率调制后的载波通过复用器将信号叠加后发送到信道。接收端的分用器将信号发送到三个滤波器,滤波器过滤出特定频率载波信号,再经过解调得到信源发送的模拟信号。

    image-20210506173335487

    • 频分复用 FDM的例子
      • 电话线路就使用的频分复用

    image-20210506173404845

    • 1路语音占用4kHz ,12 路语音信道形成一个组。5 个组形成一个超级组。可以看到频分复用可以进行多次叠加。

    image-20210506173501558

2.5.2 时分复用

  • 数字信号的传输更多使用时分复用(Time Division Multiplexing ,TDM) 技术。

    • 时分复用采用同一物理连接的不同时段来传输不同的信号, 时分复用则是将时间划分为一段段等长的时分复用帧(TDM 帧)。

    image-20210506173529366

    image-20210506173545923

  • 统计时分复用,需要给没有给用户添加一个标记,接收端用来区分用户。

    • 交换机之间使用干道链路连接,可以通过多个VLAN 的帧,就是给每个VLAN 的帧添加帧标记。

    image-20210506173613602

  • 时分复用实现方法

    image-20210506173635366

2.5.3 波分复用

  • 光纤技术的应用使得数据的传输速率空前提高。目前一根单模光纤的传输速率可达到2.5Gb/s 。再提高传输速率就比较困难了 。 为了提高光纤的传输信号的速率,也可以进行频分复用,由于光载波的频率很高,因此习惯上用波长而不用频率来表示所使用的光载波。这样就得出了波分复用这一名词。

    image-20210506173658612

2.5.4 码分复用

  • 码分复用又称码分多址。是扩频通信技术(数字技术的分支)上发展起来的一种崭新而成熟的无线通信技术。

    image-20210506173716716

  • 假如基站发送了码片序列(0 0 -2 +2 0 -2 0 +2) ) 。 A 手机的码片序列为(-1 -1 -1 +1 +1 -1 +1 +1) ) B 手机码片序列为(-1 -1 +1 -1 +1 +1 +1 -1) ) C 手机码片序列为(-1 +1 -1 +1 +1 +1 -1 -1) ) ◼问这三个手机,分别收到了什么信号?

    image-20210506173755624

  • 码片正交

    • 什么是相互正交呢?两个不同站的码片序列正交,就是向量A 和B 的规格化内积(inner product) 都是0 ,令向量A 表示站A 的码片向量,令B 表示其他任何站的码片向量 。

      image-20210506173852252

    • 码片序列,自己和自己的格式化内积,为1。

      image-20210506173901673

    • 自己和自己的反码序列-A 格式化内积,为-1 。

      image-20210506173912505

2.6 宽带接入技术

铜线接入 18:08

光纤同轴混合网 光纤接入和移动互联网接 10:17

2.6.1 铜线接入技术 (电话线接入Internet)

  • 铜线宽带接入技术也就是xDSL (各种类型DSL (Digital Subscriber Line) )数字用户线路的总称)技术,就是用数字技术对现有的模拟电话用户线进行改造,使它能够承载宽带业务。

  • ADSL 属于DSL 技术的一种,全称Asymmetric Digital Subscriber Line (非对称数字用户线路),亦可称作非对称数字用户环路。是用数字技术对现有的模拟电话用户线进行改造,使其能够承载带宽数字业务。ADSL 考虑了用户访问Internet 的主要是获取网络资源,更多的下载流量,较少的上行流量,因此ADSL 上行和下行带宽设计成为不对称。上行指到 从用户到 ISP ,而下行指从ISP 到用户。

  • 电话线中的频繁服用--ADSL 信道

    image-20210506173959614

  • 基于ADSL 的接入网的组成

    image-20210506174026809

2.6.2 光纤同轴混合网(HFC 网) (有线电视同轴电缆)

  • 光纤同轴混合网(HFC 网)在1988 年被提出,HFC 是Hybrid Fiber Coax 的缩写。HFC 是在目前覆盖面很广的有线电视网CATV 的基础上开发的一种居民宽带接入网。HFC 网除可传送CATV 外还提供电话、数据和其他宽带交互型业务。

image-20210506174103661

2.6.3 光纤接入技术 (专门为小区居民铺设光缆)

  • 从技术上讲,光纤到户FTTH (Fiber To The Home )应当是最好的选择。所谓光纤到户,就是把光纤一直铺设到用户家庭,在用户的家中才把光信号转换成电信号,这样用户可以得到更高的上网速率。
  • 根据光纤到用户的距离来分类,可分 成光 纤到小区(Fiber To The Zone 即 即FTTZ )、光纤到路边(Fiber To The Curb 即FTTC )、光纤到大楼(Fiber To The Building 即FTTB )、光纤到户(Fiber To The Home即 FTTH )以及光纤到桌面(Fiber To The Desk 即FTTD )等。

2.6.4 移动互联网接入技术 (手机)

  • 移动互联网,就是将 移动通信 和 互联网 二者结合起来,成为一体。

  • 4G 全IP 网络

    image-20210506174219030

  • 基于子网的4G IP 网络

    image-20210506174257757

第3章 GNS3和VMWare虚拟机搭建学习环境

2小时31分钟12节

  • GNS3 是一款具有图形化界面、可以运行在多平台(包括Windows 、Linux 和Mac OS 等)上的网络虚拟软件。Cisco 网络设备管理员或是想要通过CCNA 、CCNP 、CCIE 等Cisco 认证考试的相关人士可以通过它来完成相关的实验;同时它也可以用于虚拟体验Cisco 网际操作系统IOS 或者检验将要在真实的路由器上部署实施的相关配置。
  • 当然GNS3 对于我们学习计算机网络原理的学生,也是必不可少的工具。下面就讲解如何安装和配置GNS3 ,以及安装Wireshark抓包工具。

3-1 本章的地位 05:40

  1. 思科路由操作系统

    image-20210503224651126

  2. 下载GNS3最新版,默认安装,自带抓包工具

  3. 主要组件说明:

    • WinPCAP :抓包必需组件之一,建议安装,如果已经安装过可忽略;
    • Wireshark :最流行的开源抓包工具,需在线下载,建议安装,也可自行安装;
    • SolarWinds Response Time Viewer for Wireshark :一个Wireshark 的辅助分析工具,需在线下载,文件大耗时较长,新手不建议安装;
    • Dynamips :一个用于模拟思科路由器的工具,必须安装;
    • QEMU :是一套由Fabrice Bellard 所编写的模拟处理器的自由软件,必须安装;
    • VPCS :GNS3 中模拟客户端的工具,必须安装;
    • Cpulimt :一款限制CPU 进程的工具软件,优化系统资源的占用率,可选安装;
    • GNS3 :核心组件,必须安装;
    • SuperPutty :GNS3 自带终端工具,可选安装。

3-2 安装抓包工具分析数据包 12:16

image-20210503230411840

3-3 定义和使用抓包筛选器 16:01

image-20210503230642145

跟换协议过滤器点右上角箭头生效

3-4 安装和配置GNS3 12:45

  1. www.gns3.com

  2. 最新版,默认安装

  3. 新建项目

  4. 安装路由器

    image-20210503231019072

    image-20210506180410845

  5. 非模块化路由器与模块化路由器

    1. 非模块化路由器 Cisco 2500

      image-20210503231111892

      image-20210503231203368

    2. 模块化路由器

      image-20210503231220166

  6. 配置模块

    image-20210503231322037

    1. NM-16ESW 16 个Fastethernet 接口(交换模块,在使用此模块做交换实验时,请 使用no ip routing 关闭端口路由)
    2. NM-1E 1 个Ethernet 接口
    3. NM-1FE-TX 1 个Fastethernet 接口
    4. NM-4E 4 个Ethernet 接口
    5. NM-4T 4 个serial 接口

3-5 配置路由器和VPCS 24:09

PC配置命令和思科路由器命令

PC ip 本机地址 掩码 网关
pc>ip 192.168.10.2 255.255.255.0 192.168.10.10
查看 ip 信息
PC1> show

命令可以不写完整,只要可以对应唯一关键字

配置路由器以太网接口地址
R1#configure terminal
RI(config)#interface fastEthernet 0/0
R1( config-if)# ip address 192.168.10.10 255.255.255.0
R1(config-if)#no shutdown
RI(config-if)#exit
RI(config)#exit
R1#
R1#ping 192.168.0.2

配置广域网接口的命令
R1#show controllers serial 2/0
R1(config)#interface s
R1(config)#interface serial 2/0
RI(config-if)#clock rate
R1(config-if)#clock rate 64000
R1( config-if)# ip address 192.168.20.10 255.25.255.0
RI(config-if)#no shutdown
R1#copy running-config startup-config
R1#show running-config

设置路由表
ip route 目的ip域 掩码 跳板ip地址 
RI#show ip route
R1(config)# ip route 192.168.80.0 255.255.255.0 192.168.20.20

删除路由表
可以不写下一跳
R2(config)#no ip route 192.168.1.0 255.255.255.0 172.16.1.2

路由表转发设置具体地址
R2(config)#ip route 192.168.1.11 255.255.255.255 172.16.1.2

点到点链路路由表直连写法
ip route 目的ip网段 掩码 出口接口

配置路由器以太网接口地址
◼Router>enable -- 进入特权模式
◼Router#config terminal -- 进入全局配置模式
◼Router(config)#interface fastEthernet 0/0 -- 进入接口配置模式
◼Router(config-if)#ip address 192.168.10.10 255.255.255.0 -- 添加IP地址
和子网掩码
◼Router(config-if)#no shutdown --

查看接口是DTE还是DCE
◼ Router(config-if)#exit -- 退出接口配置模式
◼ Router(config)#exit -- 退出全局配置模式
◼ Router#show controller serial 1/0 -- 查看接口是DCE 还是DTE
◼ M4T: show controller:
◼ PAS unit 0, subunit 0, f/w version 1-45, rev ID 0x2800001, version1
◼ idb = 0x643AE70C, ds = 0x643AF7D4, ssb=0x643AFB90
◼ Clock mux=0x0, ucmd_ctrl=0x1C, port_status=0x7B
◼ Serial config=0x8, line config=0x200
◼ maxdgram=1608, bufpool=78Kb, 120 particles
◼ DCD=up DSR=up DTR=up RTS=up CTS=up
◼ line state: up
◼ cable type : V.11 (X.21) DCE cable, received clockrate 64000 -- 可以看到该接口为DCE 需要配置时钟

配置Serial接口时钟频率和IP地址
◼Router#config terminal
◼Router(config)#interface serial 1/0 -- 进入接口配置模式
◼Router(config-if)#clock rate 64000 -- 配置时钟频率,控制带宽
◼Router(config-if)#encapsulation ppp -- 配置帧封装格式为ppp
◼Router(config-if)#ip address 172.16.0.1 255.255.255.0
◼Router(config-if)#no shutdown
◼Router(config-if)#exit
◼Router(config)#exit
◼Router#copy running-config startup-config -- 保存配置

3-6 将配置好的环境保存成快照 10:37

image-20210503231935354

3-7 使用Wireshark捕获GNS3搭建的网络环境中的 06:26

image-20210503232032819

image-20210503232048016

项目名不要用中文,会无法运行抓包工具

  • 可以抓多种传输协议

image-20210503232149537

3-8 详细讲解VMWareWorkstation在你的计算 21:57

image-20210503232328030

  • 桥接模式
    • 和电脑共用网卡,
    • 相当于直接连接外部路由器
  • 仅主机
    • 物理机通过虚拟网卡与虚拟机相连
  • NAT 模式
    • 共享主机 ip 地址
win环境:
运行,
wf.msc,
快速打开防火墙设置

3-9 GNS3路由器连接VMWare虚拟机 18:44

  • 连接形式

image-20210503233239131

  • 主机设置

    image-20210503233352321

  • 新版使用云替代主机

    image-20210503233450134

  • 虚拟机ip地址设置

    image-20210503233543930

  • 路由转发表设置及命令

    show ip route

    ip route 目的ip域 掩码 跳板ip地址

    image-20210503233735179

  • 跟踪路由

    tracert ip

    image-20210503234041144

3-10 思科Packet Tracer 03:20

3-11 Cisco PacketTracer 模拟软件搭建实验环境 15:45

image-20210503234438019

3-12 使用PacketTracer跟踪数据包 04:08

image-20210503234525415

第4章 数据链路层

5小时3分钟26节

4-1 本章主要内容 13:08

4-2 数据链路层功能-封装成帧 17:49

4-3 数据链路层功能-透明传输 10:32

4-4 数据链路层功能-差错检验 11:43

4-5 点到点信道数据链路层 10:56

4-6 配置路由器广域网接口使用PPP协议封装 07:32

4-7 PPP协议帧格式 07:36

4-8 同步传输和异步传输 11:37

4-9 PPP协议透明传输填充方式 06:06

4-10 广播信道的数据链路层-CSMA/CD协议 19:23

4-11 计算以太网最短帧 11:50

4-12 冲突解决方法-退避算法 14:35

4-13 以太网帧格式 11:37

4-14 以太网道利用率 06:18

4-15 网卡的作用-工作在数据链路层和物理层 09:08

4-16 查看 更改网卡的MAC地址 跨网段扫描MAC地址 28:56

4-17 扩展以太网规模和距离 07:31

4-18 使用网桥和交换机优化以太网 08:01

4-19 网桥MAC地址表构建过程 08:34

4-20 实战:查看交换机MAC地址表 06:31

4-21 交换机组网优缺点 13:59

4-22 生成树协议 17:03

4-23 配置生成树协议查看接口状态 10:05

4-24 实战:查看生成树 关闭生成树 观察广播风暴 12:11

4-25 快速以太网-100M以太网 06:21

4-26 千兆万兆以太网 14:29

本章重点:讲解帧在不同链路的封装。 image-20210506223223753

4.1 数据链路层的三个基本问题

4.1.1 数据链路和帧

  • 数据链路 和数据链路的区别

    • **链路(Link )**是指的从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换节点。
    • **数据链路(Data Link )**则是另一个概念,这是因为当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。

    image-20210506223417943

  • 数据链路层把网络层交下来的数据封装成发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。

    在因特网中,网络层协议数据单元就是 IP数据报(或简称为数据报、分组或包)。数据链路层封装的,在物理层变成数字信号在链路上传输。

image-20210506223532183

  • 本章探讨数据链路层,就不考虑物理层如何实现比特传输的细节,我们就可以简单的认为数据帧通过数据链路由节点A发送到节点B。

image-20210506223604931

4.1.2 数据链路层三个基本问题

  1. 封装成帧

    • 封装成帧,就是在将网络层的IP 数据报的前后分别添加首部和尾部,这样就构成了一个帧。
    • 不同的数据链路层协议的帧的首部和尾部包含的信息有明确的规定,帧的首部和尾部有帧开始符和帧结束符,称为帧定界符。接收端收到物理层传过来的数字信号读取到帧开始字符一直到帧结束字符,就认为接收到了一个完整的帧。
    • 在数据传输中出现差错时,帧定界符的作用更加明显。
    • 每一种数据链路层协议都规定了所能够传送的帧的数据部分长度的上限--即最大传输单元MTU (Maximum Transfer Unit ),以太网的 MTU 为 1500 个字节

    image-20210506223831494

  2. 透明传输

    • 帧开始符和帧结束符最好是不会出现在帧的数据部分的字符,通常我们电脑键盘能够输入的字符是ASCII 字符代码表中打印字符,在ASCII 字符代码表中,还有非打印控制字符,在非打印字符中有两个字符专门用来做帧定界符,代码SOH (Start Of Header )作为帧开始定界符,对应的二进制编码为00000001 ,代码EOT (End Of Transmission )作为帧结束定界符

    image-20210506223948413

    • 当数据部分是非ASCII 字符代码表的文本文件时(比如二进制代码的计算机程序或图像等),情况就不同了。如果数据中的某一段二进制代码正好和SOH 或EOT 帧定界符编码一样,接收端就会误认为这就是帧的边界。
    • 现在就要想办法让接收端能够区分帧中EOT 或SOH 是数据部分还是帧定界符,我们可以在数据部分出现的帧定界符编码前面插入转义字符,
    • 如果传输的数据中,出现了帧开始字符和真结束字符,要添加转义字符,告诉接收端后面是数据。
      • 接收端收到后去掉转义字符,收到发送数据,这就是透明传输
      • 不同的数据链路层协议,定义的转义字符不一样。

    image-20210506224048845

    1. ASCII 字符集中“头标开始”和“传输结束”是非打印控制字符。

    2. 避免在用户使用键盘输入帧开始字符和帧结束字符。

      image-20210506224335676

  3. 差错检验

    • 现实的通信链路都不会是理想的。这就是说,比特在传输过程中可能会产生差错:1 可能会 变成0 ,而0 也可能变成1 ,这就叫做比特差错

    • 为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。目 前在数据链路层广泛使用了**循环冗余检验CRC(Cyclic Redundancy Check )**的差错检验技术。

    • 要想让接收端能够判断帧在传输传输过程是否出现差错,需要在传输的帧中包含用于检测 错误的信息,这部分信息就称为帧校验序列FCS (Frame Check Sequence)

    image-20210506224110461

    1. CRC运算示例

      • 首先在要校验的二进制数据M=101001 后面添加n 位0 ,再除以收发双方事先商定好的n+1 位的除数P ,得出的商是Q ,而余数是R (n 位,比除数少一位),这个n 位余数R 就是计算出的FCS。
      • 假如要得到3 位帧校验序列,就要在M 后面添加3 个0 ,就成为101001000 ,假定事先商定好的除数P=1101 (4 位),如图4-10 所示,做完除法运算后余数是001 ,001 将会添加到帧的尾部作为帧校验序列FCS ,得到商Q=110101 ,这个商并没什么用途。
      • 可以整除即正确。

      image-20210506224154358

4.2 点到点信道的数据链路

  • 点到点信道是指的一条链路上就一个发送端和接收端的信道,通常用在广域网链路。

    image-20210506224646645

4.2.1 PPP协议的特点

  1. 简单 不提供可靠传输
  2. 封装成帧 首部和尾部 帧开始符 帧结束符
  3. 透明传输 加转义字符 收到后去掉转移字符
  4. 差错检测 CRC 计算FCS
  5. 支持多种网络层协议 IPv4 和IPv6 网络层协议都可以封装到PPP 帧中
  6. 多种类型链路 光纤 铜线 同步传输 异步传输 串行、并行链路均可
  7. 检测连接状态 检测连接状态
  8. 最大传送单元 最大传输单元 1500 字节
  9. 网络层地址协商 能够为拨号的一段分配IP 地址,子网掩码 网关和DNS
  10. 数据压缩协商

4.2.2 PPP协议的组成

  • PPP 协议有三个组成部分:

    image-20210508150451551

4.2.3 同步传输和异步传输

  • 同步传输

    • **同步传输(Synchronous Transmission )**以数据帧为单位传输数据,可采用字符形式或位组合形式的帧同步信号,在短距离的高速传输中,该时钟信号可由专门的时钟线路传输,由发送端或接收端提供专用于同步的时钟信号。计算机网络采用同步传输方式时,常将时钟同步信号(前同步码)植入数据信号帧中,以实现接收端与发送端的时钟同步。

    image-20210506224949477

  • 异步传输

    • **异步传输(Asynchronous Transmission )**以字符为单位传输数据,发送端和接收端具有相互独立的时钟(频率相差不能太多),并且两者中任一方都不向对方提供时钟同步信号。

    image-20210506225026116

4.2.4抓包查看PPP的帧首部

  1. 查看路由器协议

    image-20210508145858330

    • 物理接口up,数据链路up,HDLC协议

    image-20210508150045330

  2. PPP 首部三个字段

    1. Address 是地址字段
    2. Control 是控制字段
    3. Protocol 是协议字段

    image-20210506225123782

4.2.5 PPP协议帧格式

  • Address 字段的值为0xff ,0x 表示后面的ff 为十六进制数,写成二进制为1111 1111, 占一个字节的长度。点到点信道PPP 帧中的地址字段形同虚设,可以看到没有源地址和目标地址。
  • Control 字段的值为0x03 ,写成二进制为0000 0011 ,占一个字节长度。最初曾考虑以后对地址字段和控制字段的值进行其他定义,但至今也没给出。
  • Protocol 字段占2个字节,不同的值用来标识PPP 帧内信息是什么数据。

image-20210506225212083

4.2.6 PPP帧填充方式

  • 异步传输使用字节填充

    • 在异步传输的链路上,数据传输以字节为单位,PPP 帧的转义符定义为0x7D, 并使用字节填充 。
    • 把信息字段中出现的每一个0x7E 字节转变成为2 字节序列(0x7D ,0x5E )。
    • 若信息字段中出现一个0x7D 的字节(即出现了和转义字符一样的比特组合),则把0x7D 转变成为2 字节序列(0x7D ,0x5D) 。

    image-20210506225341439

  • 同步传输使用零比特填充

    • 在同步传输的链路上,数据传输以帧为单位,PPP 协议采用零比特填充方法来实现透明传输。大家把PPP 协议帧界定符0x7E 写成二进制01111110, 也就是可以看到中间有连续的6 个1, 只要想办法在数据部分不要出现连续的6 个1,就肯定不会出现这界定符。具体办法就是“零比特填充法”。

    image-20210506225415644

4.3 广播信道的数据链路

4.3.1 广播信道的局域网

  • 最初的局域网使用同轴电缆进行组网,总线型拓扑 。

  • 广播信道使用 带冲突检测的载波侦听多路访问( CSMA/CD )机制通信。 。CSMA/CD 就是广播信道使用的数据链路层协议,使用CSMA/CD 协议的网络就是以太网

  • 点到点链路就不用冲突检测,因此没必要使用CSMA/CD 协议。

    image-20210507025958977

  • 使用集线器组建的局域网也是广播信道 , 是 总线型拓扑 。

    image-20210507030047940

4.3.2 以太网标准

  • 以太网(Ethernet )是一种计算机局域网组网技术。IEEE 制定的IEEE 802.3 标准给出了以太网的技术标准,即以太网的介质访问控制协议(CSMA/CD )及物理层技术规范(包括物理层的连线、电信号和介质访问层协议的内容)。

  • 在 在IEEE 802.3 标准中 , 为不同的传输介质制定了不同的物理层标准,在这些标准中前面的数字表示传输速度,单位是“Mbps ”,最后的一个数字表示单段网线长度(基准单位是100m ),Base 表示“基带”的意思。

    image-20210507030120649

4.3.3 CSMA/CD 协议

  • 总线型网络使用CSMA/CD 协议进行通信,即带冲突检测的载波侦听多点接入技术

  • 即便检测出总线上没有信号,开始发送数据后也有可能和迎面而来的信号在链路上发生碰撞。

    • 比如,A 计算机发送的信号和B 计算机发送的信号在链路C 处发生碰撞,碰撞后的信号相互叠加,在总线上电压变化幅度将会增加,发送方检测到电压变化超过一定的门限值时,就认为发生冲突,这就是冲突检测。
  • 使用CSMA/CD 协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工通信)

    image-20210507030321451

4.3.4 以太网最短帧

  • 为了能够检测到正在发送的帧在总线上是否产生冲突,以太网的帧不能太短,如果太短就有可能检测不到自己发送的帧产生了冲突。下面咱们探讨以太网的帧最短应该是多少字节。

    image-20210507030346763

  • 下图因为帧太短不能检测到自己发的帧是否发生了冲突

    image-20210507030408497

  • 以太网设计最大端到端长度为5km (实际上的以太网覆盖范围远远没有这么大),单程传播时延为大约为25.6μs, 往返传播时延为51.2μs ,10M 标准以太网最小帧为

    image-20210507030514046

  • 512 比特也就是64 字节,这就意味着以太网发送数据帧如果前64字节没有检测出冲突,后面发送的数据就一定不会发生冲突。换句话说,如果发生碰撞,就一定在发送前64 字节之内。由于一旦检测出冲突就立即终止发送,这时发送的数据一定小于64 字节,因此凡是长度小于64 字节的帧都是由于冲突而异常终止的无效帧,只要收到了这种无效帧,就应当立即将其终止。

4.3.5 冲突解决方法-- 退避算法

  • 总线型网络中的计算机数量越多,在链路上发送数据产生冲突机会就多。

    image-20210507030558049

  • 计算机要想知道发送的帧在链路上是否发生碰撞必须等待 $2\tau$ 往返时间, $2\tau$ 称为争用期。

  • 以太网使用截断二进制指数退避(truncated binary exponential backoff )算法来解决碰撞问题。

    1. 确定基本退避时间,它就是争用期2τ 。以太网把争用期定为51.2μs 。对于10Mb/s以太网,在争用期内可发送512bit ,即64 字节。也可以说争用期是512 比特时间。1比特时间就是发送1比特所需的时间。所以这种时间单位与数据率密切相关。

    2. 从离散的整数集合$[0 ,1 ,… ,(2 ^k -1 )]$中随机取出一个数,记为 r 。重传应推后的时间就是 r 倍的争用期。上面的参数k 按下面的公式计算:

      $k=Min[ 重传次数,10]$

      可见当重传次数不超过10 时,参数k 等于重传次数;但当重传次数超过10 时,k 就不再增大而一直等于10。

    3. 当重传达16 次仍不能成功时(这表明同时打算发送数据的站太多,以致连续发生冲突),则丢弃该帧,并向高层报告。

4.3.6 以太网帧格式

  • 常用的以太网MAC 帧格式有两种标准,一种是EthernetV2 标准(即以太网V2标 标准),另一种是IEEE 的802.3 标准。使用得最多的是以太网V2 的MAC帧格式。

    image-20210507030902192

  • Ethernet II 的帧比较简单,由五个字段组成。

    1. 前两个字段分别为6 字节长的目的MAC 地址源MAC 地址字段。
    2. 第三个字段是2 字节类型字段,用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。第四个字段是数据字段,其长度在46 到1500 字节之间 。
    3. 最后一个字段是4 字节帧检验序列FCS (使用CRC 检验)

    image-20210507031020466

  • 当数据字段的长度小于46 字节时,数据链路层就会在数据字段的后面加入一个整数字节的填充字段,以保证以太网的MAC 帧长不小于64 字节,接收端还必须能够将添加的字节去掉。

    image-20210507031044095

  • IEEE802.3 标准规定凡出现下列情况之一的即为无效的MAC 帧:

    • 帧的长度不是整数个字节。
    • 用收到的帧检验序列FCS 查出有差错。
    • 收到的帧的MAC 客户数据字段的长度不在46-1500 字节之间。考虑到 到MAC 帧首部和尾部的长度共有18 字节,可以得出有效的MAC 帧长度为64-1518 字节之间。
  • 对于检查出的无效MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。

4.3.7 以太网信道利用率

  • 利用率是指的发送数据的时间占整个时间的比例。如图所示 , 平均发送一帧所需要的时间,经历了n 倍争用期2τ, T 0 为发送该帧所需时间,τ 为该帧传播时延。]

    image-20210508180545149 $$ 有冲突时信道利用率:S=\frac{T_0}{n2\tau+T_0+\tau} $$

  • 从公式可以看出,要想提高信道利用率最好是n 为0 ,这就意味着以太网上的各个计算机发送数据不会产生碰撞(这显然已经不是CSMA/CD ,而需要一种特殊的调度方法),并且能够非常有效的利用网络的传输资源,即总线一旦空闲就有一个站立即发送数据。这种情况算出来的信道利用率是极限信道利用率。

    image-20210507031308766

  • 要想提高极限信道利用率就要降低公式中 的$\displaystyle \frac{\tau }{t_0}$ 比值

  • τ 值和以太网连线的长度有关,这就意味着τ 值要小, 以太网网线的长度就不能太长。带宽一定的情况下T0 和帧的长度有关,这就意味着,以太网的帧不能太短

4.3.8 网卡的作用

  • 网卡是工作在链路层和物理层的网络组件,是局域网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、帧的差错校验、介质访问控制(以太网使用CSMA/CD 协议)、数据的编码与解码以及数据缓存的功能等。

    image-20210507031624633

4.3.9 MAC 地址

  • 在广播信道实现点到点通信,这就需要网络中的每个网卡有一个地址。这个地址称为物理地址或MAC 地址(因为这种地址用在MAC 帧中)。IEEE802 标准为局域网规定了一种 48 位的全球地址

  • 这种6 字节的MAC 地址已被固化在网卡的ROM 中。因此,MAC 地址也叫作**硬件地址(hardware address )**或物理地址。当这块网卡插入(或嵌入)到某台计算机后,网卡上的MAC 地址就成为这台计算机的MAC地址了。

    image-20210507031705464

  • 网卡有 过滤功能,适配器从网络上每收到一个MAC 帧就先用硬件检查MAC 帧中的目的地址。如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。这样做就不浪费主机的处理机和内存资源。这里“发往本站的帧”包括以下三种帧:

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

4.3.10 实战:查看和更改MAC 地址

image-20210507031940656

image-20210507031947924

  • mac 地址扫描

    image-20210508205407889

4.4 扩展以太网

4.4.1 集线器

  • 传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线。

  • 1990 年IEEE 制定出星形以太网10BASE-T 的标准802.3i 。“10 ”代表10Mb/s 的数据率,BASE 表示连接线上的信号是基带信号,T 代表双绞线。

  • 10BASE-T 以太网的通信距离稍短,每个站到集线器的距离不超过100m。 。

  • 集线器和网线一样工作在物理层 。

    image-20210507032050791

4.4.2 计算机数量和距离上扩展

  • 独立的冲突域

    image-20210507032149707

  • 可以将多个集线器连接在一起形成一个更大的以太网,这不仅可以扩以太网中计算机的数量,还可以扩展以太网的覆盖范围。使用主干集线器连接教室中集线器,形成一个大的以太网,计算机之间的最大距离可以达到400米。

    image-20210507032204153

  • 要是两个集线器的距离超过100 米,还可以光纤从将两个集线器连接起来,集线器之间通过光纤连接,可以将相距几千米的集线器连接起来,需要通过光电转换器,实现光信号和电信号的相互转换。

    image-20210507032232075

4.4.3 使用网桥优化以太网

  • 利用网桥优化以太网

    image-20210507032326350

  • 网桥特点

    1. 网桥基于MAC地址转发帧,工作在数据链路层。
    2. —个接囗—个冲突域。冲突域数量增加,冲突减少。
    3. 实现帧的存储转发,增加了时延。
    4. E1接口和E2接口可以是不同的带宽。

4.4.4 网桥自动构建MAC 地址表

  • 使用网桥优化以太网,对于网络中的计算机是没有感觉的,也就是以太网中的计算机是不知道网络中有网桥存在,也不需要网络管理员配置网桥的MAC 地址表,因此我们称网桥是透明桥接。

  • 网桥接入以太网时,MAC 地址表示空的,网桥会在计算机通信过程中自动构建MAC 地址表,这称为“自学习”。

    1. 自学习
      • 网桥的接口收到一个帧,就要检查MAC 地址表中与收到的帧源MAC 地址有无匹配的项目,如果没有,就在MAC 地表中添加该接口和该帧的源MAC 地址对应关系以及进入接口的时间,如果有,则把原有的项目进行更新。
    2. 转发帧
      • 网桥接口收到一个帧,就检查MAC 地址表中有没有该帧目标MAC 地址对应端口,如果有,就会将该帧转发到对应的端口,如果没有,则将该帧转发到全部端口(接收端口除外)。

    image-20210507032720959

4.4.5 多接口网桥-- 交换机

image-20210507032800886

  • 使用交换机组网与集线器组网相比有以下特点 :

    1. 独享带宽

      • 交换机的每个端口独享带宽,10M 交换机,则每个端口带宽是10M ,24 口10M 交换机,交换机的总体交换能力是240M ,这和集线器不同。
    2. 安全

      • 使用交换机组建的网络比集线器安全,比如计算机A 给计算机B 发送的帧,以及计算机D 给计算机C 发送的帧,交换机根据MAC 地址表只转发到目标端口,E 计算机根本收不到其他计算机的通信的数字信号,即便安装了抓包工具也没用。
    3. 全双工通信

      • 交换机接口和计算机直接相连,计算机和交换机之间的链路可以使用全双工通信。
    4. 全双工不再使用CSMA/CD 协议

      • 用 交换机接口和计算机直接相连接,使用全双工通信数据链路层就不需要使用CSMA/CD 协议,但我们还是称交换机组建的网络是以太网,是因为帧格式和以太网一样。
    5. 接口可以工作在不同的速率

  • 转发广播帧到所有端口

    image-20210507032952944

  • 集线器是冲突域

  • 交换机是广播域

  • 路由器隔绝广播

image-20210507033208321

4.4.6 实战:查看交换机MAC 地址表

  • 交换机能够学习根据帧的源MAC 地址构造MAC 地址表

    image-20210507033235901

4.4.7 实战:验证交换机端口安全

4.4.8 实战:验证集线器不安全

4.4.8 生成树协议

  • 存在单点故障

    image-20210508221835910

  • 双汇聚层

    • 有环路
    • 形成广播风暴

    image-20210508221922785

  • 生成树协议

    1. 选根交换机网桥ID = 优先级+MAC地址 值越小 优先级越高
    2. 其他的交换机 选根端口 距离根交换机近 端口 根端口
    3. 每根网线 哪头距离根交换机更近 指定端口 指定端口和根端口 转发状态
    4. 其他端口 阻断状态

image-20210508223117072

  • 查看生成树

    show spanning-tree vlan 1

    image-20210508224727415

    image-20210508230504776

  • 修改生成树优先级

    spanning-tree vlan 1 priority 4096

    image-20210508225046140

    网桥ID越小,优先级越高

    image-20210508231143688

  • 关闭生成树

    no spanning-tree vlan 1

image-20210508231337149

4.5 高速以太网

4.5.1 100M 以太网

  • 100BASE-T 是在双绞线上传送100Mb/s 基带信号的星型拓扑的以太网,仍使用IEEE802.3 的CSMA/CD 协议,它又称为快速以太网(FastEthernet )。

  • 使用交换机组建的100BASE-T 以太网,可在全双工方式下工作而无冲突发生。因此,CSMA/CD 协议对全双工方式工作的快速以太网是不起作用的 。因为其帧格式和以太网一样,所以依然称交换机组件的网络为以太网。

  • 以太网的最短帧和带宽和链路长度有关,100M 以太网比10M 以太网速率提高10 倍,要想和10M 以太网兼容,就要确保最短帧也是64 字节,那就将电缆最大长度由1000m 降到100m ,因此以太网的争用期依然是5.12μs ,最短帧依然是64 字节。

    1. 快速以太网100M 带宽,有以下标准:

    image-20210507033404630

4.5.2 吉比特以太网

  • 吉比特以太网的标准IEEE802.3 z 有以下几个特点:

    1. 允许在1Gb/s 下全双工和半双工两种方式工作。
    2. 使用IEEE802.3 协议规定的帧格式。
    3. 在半双工方式下使用CSMA/CD 协议(全双工方式不需要使用CSMA/CD 协议)。
    4. 与10BASE-T 和100BASE-T 技术向后兼容。
  • 吉比特以太网1000M 带宽,有以下标准:

    image-20210507033510679

  • 吉比特以太网工作在半双工时,就必须进行碰撞检测,数据速率提高了,要想和10M 以太网兼容,就要确保最短帧也是64 字节,这只能减少最大电缆长度,以太网最大电缆长度就要缩短到10m, 短到几乎没有什么实用价值 。 吉比特以太网为了增加最大传输距离,将最短帧增加到4096 比特 。

  • 当数据帧长度小于**512 字节(即4096 比特)**时,在FCS 域后面添加“载波延伸” 域。主机发送完短数据帧之后,继续发送载波延伸信号,冲突信号传回来时,发送端就能感知到了。

    image-20210507033550750

  • 如果发送的数据帧都是64 字节的短报文,那么链路的利用率就很低,因为“载波延伸”域将占用大量的带宽。

  • 千兆以太网标准中,引入了**“分组突发”(packet bursting )**机制来改善这个问题。这就是当很多短帧要发送时,第一个短帧采用上面所说的载波延伸的方法进行填充,随后的一些短帧则可以一个接一个发送,它们之间只需要留有必要的帧间最小间隔即可 。

    image-20210507033643231

4.5.3 10吉比特以太网

  • 10GE 的帧格式与10Mb/s ,100Mb/s 和1Gb/S 以太网的帧格式完全相同。10GE 还保留了802.3 标准规定的以太网最小和最大帧长。
  • 由于数据率很高,10GE 不再使用铜线而只使用光纤作为传输媒体。它使用长距离(40km )的光收发器与单模光纤接口,以便能够工作在广域网和城域网的范围。
  • 10GE 只工作在全双工模式,因此不存在争用问题,也不使用CSMA/CD 协议。这就使得10GE 的传输距离不再受碰撞检测的限制而大大提高了。
  • 10GE 的物理层有以下标准:

image-20210507033733836

第5章 IP地址和子网划分

4小时11分钟22节

5-1 预备知识-二进制和十进制之间的关系 21:08 5-2 预备知识-十六进制和二进制之间的转换 08:11 5-3 MAC地址的作用和IP地址的作用 08:24 5-4 IP地址格式 08:46 5-5 子网掩码的作用 13:29 5-6 IP地址的分类 14:35 5-7 保留的特殊IP地址 12:29 5-8 实战 验证主机位全1代表本网段所有主机 16:13 5-9 公网IP地址和私网IP地址地址 12:32 5-10 私网地址访问Internet需要进行端口地址转换(P 14:18 5-11 为什么要划分子网 08:50 5-12 等长子网划分 14:46 5-13 等分成4个子网8个子网 18:19 5-14 B类地址和A类地址子网划分 09:39 5-15 变长子网划分 10:14 5-16 点到点网络的子网掩码 04:54 5-17 子网掩码的另外一种表示方法-CIDR 08:21 5-18 判断一个IP地址所在的网段 07:07 5-19 子网划分需要注意的几个问题 07:03 5-20 使用超网合并网段 14:47 5-21 合并网段的规律 10:28 5-22 判断一个网段是超网还是子网 06:40

5.1 学习IP 地址预备知识

5.1.1 二进制和十进制

  • 二进制 十进制 ◼ 1 1 ◼ 10 2 ◼ 100 4 ◼ 1000 8 ◼ 1 0000 16 ◼ 10 0000 32 ◼ 100 0000 64 ◼1000 0000 128
  • 二进制 十进制 ◼1000 0000 128 ◼1100 0000 192 ◼1110 0000 224 ◼1111 0000 240 ◼1111 1000 248 ◼1111 1100 252 ◼1111 1110 254 ◼1111 1111 255

5.1.2 二进制数的规律

  • 画一个0-255 的数轴帮你记忆关键数值

    image-20210509152552414

  • 能够被2 整除的数,写成二进制形式,后一位是0 。如果余数是1 ,则最后一位是1。

  • 能够被4 整除的数,写成二进制形式,后两位是00 。如果余数是2 ,那就把2 写成二进制,后两位10。

  • 能够被 8 整除的数,写成二进制形式,最后三位是000 。如果余5 ,就把5 写成位二进制,后三位101。

  • 能够被16 整除的数,写成二进制形式,最后四位都是0000 。如果余6 ,就把6 写成二进制,最后四位0110。

    image-20210509153357480

5.2 理解IP 地址

5.2.1 MAC 地址和IP 地址

  • 数据包的目标IP 地址决定了数据包最终到达哪一个计算机,而目标MAC 地址决定了该数据包下一跳由哪个设备接收,不一定是终点。

    image-20210509153551447

5.2.2 IP 地址的组成

  • 32 位的二进制作为IP地址,其分为两部分,网络部分和主机部分。就像电话号码有区号和电话号一样。

    image-20210509153630944

  • 计算机的 IP 地址也有两部分组成,一部分为网络标识,一部分为主机标识,同一网段的计算机网络部分相同,路由器连接不同网段,负责不同网段之间的数据转发,交换机连接的是同一网段的计算机。

  • 计算机在和其他计算机通信之前,首先要判断目标IP地 地址和自己的IP 地址是否在一个网段,这决定了数据链层的目标MAC 地址是目标计算机的还是路由器接口的MAC地址。

    image-20210509153711567

5.2.3 IP 地址格式

  • IP 地址用 32 位二进制来表示,也就是 32 比特,换算成字节,就是 4 个字节

  • 这些位通常被分割为4 个部分,每一部分 8 位二进制,中间使用符号“.” 分开,分成4 部分的二进制地址,10101100.00010000.00011110.00111000, IP 地址经常被写成十进制的形式,于是,上面的IP 地址可以表示为“172.16.30.56 ”。IP 地址的这种表示法叫做 “点分十进制表示法” 。

  • 本书为了方便说明,将IP地址分为第1 部分,第2部 部分、第3 部分和第4 部分。

    image-20210509153912268

5.2.4 子网掩码的作用

  • **子网掩码(Subnet Mask )**又叫网络掩码、地址掩码。

    • 它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码
    • 子网掩码只有一个作用,就是将某个IP 地址划分成网络地址主机地址两部分。

    image-20210509154131704

  • 使用自己的子网掩码计算机自己所在的网段

    • 地址和子网掩码做与运算,得网络号

    image-20210509154223855

  • 同一个网段的中的计算机子网掩码相同,计算机的网关就是到其他网段的出口,也就是路由器接口地址。

    • 路由器接口使用的地址可以是本网段中任何一个地址,不过通常使用该网段的第一个可用的地址或最后一个可用的地址,这是为了尽可能避免和网络中的计算机地址冲突。

    image-20210509154421010

5.3 IP 地址分类

5.3.1 A 类地址

  • 网络地址的最高位是0 的地址为A 类地址。网络ID 是0 不能用127 作为保留网段,因此A 类地址的第1 部分取值范围1-126

  • A 类网络默认子网掩码为255.0.0.0 。主机ID 由第2 部分、第3 部分和第4部分组成,每部分的取值范围0-255 ,共256 种取值,你要是学过排列组合就知道,一个A 类网络主机数量是256 ×256 ×256=166777216 ,这里还需减去2 ,主机ID 全0 的地址为网络地址,而主机ID 全部为1 的地址为广播地址

    image-20210509154559490

5.3.2 B 类地址

  • 网络地址的最高位是10 的地址为B 类地址。IP 地址第1 部分的取值范围为128-191

  • B 类网络默认子网掩码为255.255.0.0 。主机ID 由第3 部分和第4部分组成,每个B 类网络可以容纳的最大主机数量256 ×256-2=65023。

    image-20210509154639156

5.3.3 C 类地址

  • 网络地址的最高位是110 的地址为C 类地址。IP 地址第1 部分的取值范围为192-223

  • C 类网络默认子网掩码为255.255.255.0 。主机ID 由第4 部分组成,每个C 类网络可以容纳的最大主机数量256-2=254。

    image-20210509154912473

5.3.4 D 类和E 类地址

  • 网络地址的最高位是1110 的地址为D 类地址。D 类地址第1 部分的取值范围为224-239 。用于多播(也称为组播)的地址,组播地址没有子网掩码

    image-20210509154938392

  • 网络地址的最高位是11110 的地址为E 类地址。第一部分取值范围240-254 ,保留为今后使用,在本书中并不讨论这些类型的地址(并且你也不要求了解这些内容)。

    image-20210509154957516

  • IP地址分类助记图

    image-20210509155110076

5.3.5 保留的IP 地址

  1. 主机ID 全为0 的地址:特指某个网段,比如192.168.10.0 255.255.255.0 ,指192.168.10.0 网段。
  2. 主机ID 全为1 的地址:特指该网段的全部主机,如果你的计算机发送数据包使用主机ID 全是1 的IP 地址,数据链层地址用广播地址FF-FF-FF-FF-FF-FF
  3. 127.0.0.1 :是 本地环回地址 ,指本机地址,一般用来测试使用。回送地址(127.x.x.x) 是本机回送地址(Loopback Address) ,即 主机IP堆栈 内部的IP 地址 。
  4. 169.254.0.0169.254.0.0-169.254.255.255 实际上是自动私有IP地址
  5. 0.0.0.0 :如果计算机的IP 地址和网络中的其他计算机地址冲突,使用ipconfig 命令看到的就是0.0.0.0 ,子网掩码也是0.0.0.0

5.3.6 实战:本地环回地址

image-20210509155458935

5.3.7 实战:给本网段发送广播

image-20210512210740832

5.4 私有地址和公网地址

5.4.1 公网地址

  • 公有地址分配和管理由 **Inter NIC(Internet Network Information Center 因特网信息中心)**负责。各级ISP 使用的公网地址都需要向Inter NIC 提出申请,有Inter NIC 统一发放,这样就能确保地址块不冲突。
    • 公网地址全球统一规划,网段不能冲突和叠加。

5.4.2 私网地址

  • 创建IP 寻址方案的人也创建了私网 IP 地址。这些地址可以被用于私有网络,在Internet 没有这些IP 地址,Internet 上的路由器也没有到私有网络的路由表。

  • 下面是保留的私网地址。

    • A 类:10.0.0.0 255.0.0.0 ,保留了一个A 类网络
    • B 类:172.16.0.0 255.255.0.0 ~172.31.0.0 255.255.0.0 ,保留了16 个B 类网络。
    • C 类:192.168.0.0 255.255.255.0 ~192.168.255.0 255.255.255.0 ,保留了256 个C类网络。
  • 私网地址访问Internet 需要 NAT (Network Address Translation)PAT

    image-20210509155910845

5.5 等长子网划分

5.5.1 地址浪费

  • 按着IP 地址传统的分类方法,一个网段有200 台计算机,分配一个C 类网络,212.2.3.0 255.255.255.0 ,可用的地址范围212.2.3.1—212.2.3.254 ,虽然没有全部用完,这种情况还不算是极大浪费。

  • 如果一个网络中有400 台计算机,分配一个C 类网络,地址就不够用了,那就分配一个B 类网络,131.107.0.0 255.255.0.0 ,该B 类网络可用的地址范围131.107.0.1—131.107.255.254 ,一共有56634 个地址可用,这就造成了极大浪费。

    image-20210509160130211

5.5.2 等长子网划分

  • 子网划分,就是借用现有网段的主机位做子网位,划分出多个子网。子网划分的任务包括两部分:
  • 等长子网划分就是将一个网段等分成多个网段,也就是等分成多个子网。
    • 确定子网掩码的长度。
    • 确定子网中第一个可用的IP 地址和最后一个可用的IP 地址。
  1. 等分成两个子网

    image-20210509160301227

    image-20210509160438123

    • A 和B 两个子网的子网掩码都为255.255.255.128
      • A 子网可用的地址范围为192.168.0.1 ~192.168.0.126 ,IP 地址192.168.0.0 由于主机位全为0 ,不能分配给计算机使用,如图5-36 所示,192.168.0.127 由于其主机位全为1 ,不能分配计算机。
      • B 子网可用的地址范围为192.168.0.129 ~192.168.0.254

    image-20210509160556407

  2. 等分成四个子网

    1. 要想分成4 个子网,你需要将子网掩码往右移动两位,这样第1 位和第2 位就变为网络位。你就可以分成4 个子网,第1 位和第2 位为00 是A 子网,01 是B 子网,10 是C子网,11 是D 子网。

      image-20210509160657598

    2. 每个子网的最后一个地址都是本子网的广播地址,不能分配给计算机使用,的A 子网的63 、B 子网的127 、C 子网的191 和D子网的255。

      image-20210509160739839

  3. 等分为八个子网

    1. 把一个C 类网络等分成8 个子网,如图5-40 所示,子网掩码需要往右移3 位。才能划分出8 个子网,第1 位、第2 位和第3 位都变成网络位。

      image-20210509162835318

5.5.3 B 类网络子网划分

  • 131.107.0.0 255.255.0.0 等分成2 个子网。子网掩码往右移动1 位,就能等分成两个子网。

    image-20210509162956466

    image-20210509163023694

5.5.4 A 类地址子网划分

  • A 类网络42.0.0.0 255.0.0.0 等分成4 个子网为例,写出各个子网的第一个和最后一个可用的IP 地址。

    image-20210509163110827

  • 每个子网第一个和最后一个可用地址

    image-20210509163129258

5.6 变长子网划分

5.6.1 变长子网划分

  • 每个子网的子网掩码取决于该地址块是除了几次2 的到的。

    • 除一次2 ,子网掩码增加一位1。

    image-20210509163234173

  • 变长子网划分规律

    • 规律:如果一个子网地址块是原来网段的 $(\displaystyle \frac{1}{2})^n$,子网掩码就在原网段的基础上后移 n 位,不等长子网 , 子网掩码也不同。

    image-20210509163410811

5.6.2 点到点网络的子网掩码

  • 每个子网是原来网络的$\frac{1}{2}\times \frac{1}{2}\times \frac{1}{2}\times \frac{1}{2}\times \frac{1}{2}\times \frac{1}{2}$ 也就是$(\frac{1}{2})^6$

  • 子网掩码向后移动6 位,11111111.11111111.11111111.11111100 写成十进制子网掩码也就是255.255.255.252

    image-20210509163615923

5.6.3 子网掩码另一种表示方法-CIDR

  • IP 地址有“”的概念,A 类地址默认子网掩码255.0.0.0 、B 类地址默认子网掩码255.255.0.0 、C 类地址默认子网掩码255.255.255.0 。

    • 等长子网划分和变长子网划分,打破了IP 地址“类”的概念,子网掩码也打破了字节的限制,这种子网掩码被称为VLSM (Variable Length SubnetMasking ,可变长子网掩码)
  • 这种方式的也可以使得Internet 上的路由器路由表大大精简,被称为CIDR (无类域间路由,Classless Inter-Domain Routing ),子网掩码中1的个数被称为CIDR 值。

  • 子网掩码的二进制写法以及相对应的CIDR的斜线表示

    image-20210509163747620

    image-20210509163821604

5.6.4 判断IP 地址所属的网段

  • IP 地址中主机位归 0 就是该主机所在的网段。

    • 判断192.168.0.101/26 所属的子网。

    image-20210509163843531

  • 判断192.168.0.101/27 所属的子网。

    image-20210509163956716

  • 总结

    image-20210509164025840

5.6.5 子网划分需要注意几个问题

  • 子网划分需要注意的几点:

    • 将一个网络等分成2 个子网,每个子网肯定是原来的一半。

      image-20210509164105515

    • 子网地址范围不可重叠

      image-20210509164129801

5.7 超网合并网段

5.7.1 合并网段

  • 某企业有一个网段,该网段有200 台计算机,使用192.168.0.0 255.255.255.0 网段,后来计算机数量增加到400 台。

    image-20210509164236360

  • 有没有更好的办法,让这两个C 类网段的计算机认为在一个网段?这就需要将192.168.0.0/24 和192.168.1.0/24 两个C 类网络合并。

    image-20210509164300398

  • 合并网段的规律

    • 合并之后,IP 地址192.168.0.255/23 就可以给计算机使用

      image-20210509164340694

    • 规律:子网掩码往左移1 位,能够合并两个连续的网段,但不是任何连续的网段都能合并。

5.7.2 不是任何连续的网段都能合并

  • 192.168.1.0/24 和 192.168.2.0/24 两个网段就不能通过向前移动一位子网掩码而合并。

    image-20210509164511105

    • 移动两位能够合并成一个网段,实际上合并了4 个网段。

    image-20210509164528552

5.7.3 哪些连续的网段能够合并

  • 判断两个子网是否能够合并。

    image-20210509164706908

  • 结论:判断连续的2 个网段是否能够合并,只要第一个网络号能被2 整除,就能够通过左移1位子网掩码合并。

  1. 思考:

    • 131.107.31.0/24 和131.107.32.0/24 是否能够左移1 位子网掩码合并?
    • 131.107.142.0/24 和131.107.143.0/24 是否能够左移1 位子网掩码合并?
  2. 判断4个网段是否能合并

    image-20210509164902378

    • 规律:要合并连续的四个网络,只要第一个网络的网络号写成二进制后面两位是00 ,这四个网段就能合并,根据5.1.2讲 讲到的二进制数的规律,只要一个数能够被4 整除,写成二进制最后两位肯定是00。
    • 结论:判断连续的4 个网段是否能够合并,只要第一个网络号能被4 整除,就能够通过左移2 位子网掩码合并将这4 个网段合并。
    • 依次类推,要想判断连续的8 个网段是否能够合并,只要第一个网络号能被8 整除,这8 个连续的网段就能够通过左移3 位子网掩码合并。
  3. 思考:

    • 判断 131.107.232.0/24 、131.107.233.0/24 、131.107.234.0/24 和131.107.235.0/24 这四个网段是否能够左移2 位子网掩码合并成一个网段。

5.7.4 网段合并的规律

  • 网段合并的规律,子网掩码左移1 位能够将能够合并两个网段,左移2位,能够合并四个网段,左移3 位,能够合并8 个网段。

    image-20210509165106289

5.7.5 判断一个网段是超网还是子网

  1. 通过左移子网掩码合并多个网段,右移子网掩码将一个网段划分成多个子网,使得IP 地址打破了传统的A 类、B 类、C 类的界限。
  2. 判断一个网段到底是子网还是超网,就要看该网段是A 类网络、还是B 类网络、还是C 类网络,默认A 类子网掩码/8 ,B类子网掩码是/16 ,C 类子网掩码是/24。
  3. 如果该网段的子网掩码比默认子网掩码长,就是子网,如果该网段的子网掩码比默认子网掩码短,则是超网

思考

  1. 12.3.0.0/16 这是A 类网络还是C 类网络呢?是超网还是子网呢?
    • IP 地址的第一部分是12 ,这是一个A 类网络,A 类地址默认子网掩码是/8 ,该网络的子网掩码是/16 ,比默认子网掩码长,所以说这是A 类网的一个子网。
  2. 222.3.0.0/16 这是C 类网络还是B 类网络呢?是超网还是子网呢?
    • 222 属于C类,默认子网掩码24,前移8位,合并了256个网段的超网

第6章 静态路由和动态路由

5小时18分钟28节

6-1 网络层实现的功能 05:42 6-2 网络畅通的条件 11:14 6-3 静态路由 07:13 6-4 搭建静态路由实验环境 14:10 6-5 实战:添加静态路由 18:05 6-6 添加静态路由需要注意的两个地方 09:54 6-7 路由汇总 14:08 6-8 路由汇总例外和**汇总 08:48 6-9 全球最大的网段和默认路由 06:30 6-10 默认路由指向Internet 08:33 6-11 让默认路由代表大多数网段 12:20 6-12 Internet上路由器的路由表 10:08 6-13 管理Windows系统上的路由 16:50 6-14 排查路由引起的网络故障 11:54 6-15 动态路由协议-RIP协议 18:06 6-16 搭建RIP协议实验环境 23:03 6-17 配置RIP协议 11:46 6-18 RIP协议network的作用 16:48 6-19 跟踪RIP协议工作过程 06:43 6-20 验证RIP协议的健壮性 10:49 6-21 RIP协议数据包格式 05:41 6-22 介绍OSPF协议 09:10 6-23 OSPF协议术语和OSPF协议工作过程 15:37 6-24 OSPF支持多区域 06:40 6-25 配置OSPF协议 09:31 6-26 查看OSPF协议邻居表 链路状态表 路由表 16:30 6-27 验证OSPF协议健壮性 04:36 6-28 本章总结 08:09

6.1 IP 路由- 网络层实现的功能

  • 网络层功能就是给传输层协议提供简单灵活的、无连接的、尽最大努力交付的数据包服务
    • 通俗一点来讲,网络中的路由器为每一个数据包单独的选择转发路径,网络层不提供服务质量的承诺 。
    • 也就说路由器直接丢弃传输过程中出错的数据包,如果网络中待发的数据包太多,路由器处理不了就直接丢弃,路由器也不判断数据包是否重复,也不确保数据包按发送顺序到达终点。

image-20210509170254633

6.1.1 网络畅通的条件

  • 计算机网络畅通的条件就是数据包能去能回,道理很简单、也很好理解,却是我们排除网络故障的理论依据。

    image-20210509170420932

  • 以下情况网络不通

    • 目标主机不可到达

      image-20210509170448398

    • 请求超时

      image-20210509170459758

  • 网络排错

    • 明白了网络畅通的条件 ,网络排错就变得简单了。
      • 先检查数据包是否能够到达目标网络
      • 再检查数据包是否能够返回来。
      • 如果网络不通,您就要检查计算机是否配置了正确的IP 地址子网掩码以及网关,再逐一检查沿途路由器上的路由表,查看是否有到达目标网络的路由;
      • 然后逐一检查沿途路由器上的路由表,检查是否有数据包返回所需的路由。

6.1.2 静态路由

  • 要想实现全网通信,也就是网络中的任意两个节点都能通信,这就要求每个路由器的路由表中必须有到所有网段的路由
    • 对于路由器来说,它只知道自己直连的网段,对于没有直连的网段,需要管理员人工添加到这些网段到路由。
    • 管理员人工添加到某个网段如何转发,就是静态路由
  • 后面还会讲到配置网络中的路由器使用动态路由协议(RIP、 OSPF)自动构建路由表,就是动态路由。
  1. 思科路由器添加静态路由的命令

    1. R1 路由器直连A、 B 两个网段,C 、D网段没有直连,你需要添加到C 、D 网段的路由。
    2. R2 路由器直连B 、C两个网段,A 、D网段没有直连,你需要添加到A 、D 网段的路由。
    3. R3 路由器直连C、 D 两个网段,A 、B网段没有直连,你需要添加到A 、B 网段的路由。

    image-20210509170832442

    • 点到点链路添加路由的直连写法

      • 可信度最高

      image-20210513225140263

  2. 点到点链路静态路由下一跳

    1. 点到点链路下一跳可以是数据包的转发出口

      image-20210509171048701

    2. 在 在R1 上添加到192.168.1.0/24 网段的路由可以使用以下命令 R1(config)#ip route 192.168.1.0 255.255.255.0 serial 2/0

    3. 注意:Serial 2/0 是路由器R1 接口

  3. 路由器只关心到某个网段如何转发

    1. 路由器只关心到某个网段如何转发数据包,因此我们在路由器上添加路由,必须是到某个网段(子网)的路由,不能添加到某个特定地址的路由。
    2. 以下命令试图添加到一个IP 地址的路由,路由器报错。
      • R1(config)#ip route 192.168.1.3 255.255.255.0 172.16.0.2
      • %Inconsistent address and mask -- 错误的地址和子网掩码
    3. 如果你就想让路由器转发到一个IP 地址的路由,子网掩码要写成四个255 ,这就意味着IP 地址的32 位二进制是全部的网络位,该网段中就这一个地址。
      • R1(config)#ip route 192.168.1.3 255.255.255.255 172.16.0.2

6.2 实战:配置静态路由

image-20210509171305398

6.2.1 查看路由表

R2#show ip route

6.2.2 添加静态路由

  • 路由器只关心到某一个网段怎么转发,不关心到某网段的地址。
R2#configure t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#ip route 192.168.1.0  255.255.255.0 172.16.1.2
R2(config)#
R2#show
*Mar  1 00:04:57.019: %SYS-5-CONFIG_I: Configured from console by console
R2#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 2 subnets
C       172.16.0.0 is directly connected, Serial2/0
C       172.16.1.0 is directly connected, Serial2/1
S    192.168.0.0/24 [1/0] via 172.16.0.1
S    192.168.1.0/24 [1/0] via 172.16.1.2
  • 转发到某个具体地址 R2(config)#ip route 192.168.1.11 255.255.255.255 172.16.1.2
    • 把子网掩码全设置为网络部分

6.2.3 测试网络是否畅通

  • 没有回来的路由表

image-20210513223041869

  • 通畅

image-20210513222651818

6.2.4 删除静态路由

no ip route 目标网段 掩码 下一跳地址

R2#configure t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#no ip route 192.168.1.0 255.255.255.0 172.16.1.2
R2(config)#

R2#show ip route

6.3 路由汇总

  • Internet 是全球最大的互联网,如果Internet 上的路由器把全球所有的网段都添加到路由表,那将是一个非常庞大的路由表。路由器每转发一个数据包,都要检查路由表为该数据包选择转发接口,庞大的路由表势必会增加处理时延。
  • 通过合理的地址规划,可以通过路由汇总简化路由表 。
  • 将物理位置连续的网络分配地址连续的网段,就可以在边界路由器上将远程的网络合并成一条路由,这就是路由汇总。

6.3.1通过路由汇总简化路由表

  1. 不汇总的路由表

    image-20210509171428563

  2. 汇总后的路由表

    • 可以通过子网掩码前移合并网段

    image-20210509171451840

  3. 将北京的网络汇总成 172.0.0.0 255.0.0.0 网段。

    image-20210509171529730

6.3.2路由汇总例外

  • 针对例外的网段需要单独添加路由。

    • 长子网掩码优先匹配

    image-20210509171607714

6.3.3 无类域间路由(CIDR)

  1. 无类域间路由(CIDR )采用13 ~27 位可变网络ID ,而不是A、B 、C 类网络ID 所用的固定的8 、16 和24 位。
    • 这样我们可以将子网掩码向左移动1 位,合并两个网段;向左移动2 位合并4 个网段;向左移动3 位合并8 个网段;向左移动n位,就可以合并$2 ^n$ 个网段。
  2. 路由汇总一定要能够想起前面讲的超网合并网段,对于R2 路由器来说A 区的就相当于一个合并了四个网段的超网。

image-20210509171709991

6.4 默认路由

6.4.1 全球最大的网段

  • 我们在路由器上添加以下三条路由。
    • R1(config)#ip route 172.0.0.0 255.0.0.0 10.0.0.2 -- 第1 条路由
    • R1(config)#ip route 172.16.0.0 255.255.0.0 10.0.1.2 -- 第2 条路由
    • R1(config)#ip route 172.16.10.0 255.255.255.0 10.0.3.2 -- 第3 条路由
    • 从上面3 条路由可以看出,子网掩码越短(子网掩码写成二进制形式1 的个数越少),主机位越多,该网段的地址数量就越大。
  • 如果想让一个网段包括全部的IP 地址,这就要求子网掩码短到极限,最短就是0 ,子网掩码变成了0.0.0.0 ,这就意味着该网段的32位二进制的IP 地址都是主机位,任何一个地址都属于该网段。因此 此0.0.0.0 子网掩码0.0.0.0 网段包括了全球所有IPv4 地址,也就是全球最大的网段,换一种写法就是0.0.0.0/0
    • 在路由器上添加添加到0.0.0.0 0.0.0.0 网段的路由,就是默认路由
    • R1(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.2 -- 第4 条路由
    • 任何一个目标地址都与默认路由匹配,根据前面讲的**“最长前缀匹配”算法**,默认路由是在路由器没有为数据包找到更为精确匹配的路由,最后匹配的一条路由。

6.4.2 使用默认路由作为指向Internet 的路由

  • 网络末端路由器B 和D 只需添加一条默认路由。

    image-20210509171940153

  • RA路由器上的路由表也可以精简

    • 在 在A 路由器上可以把内网看做是10.0.0.0 255.0.0.0 这个网段。所以只需添加一条路由。

    image-20210509172041047

6.4.3 让默认路由代替大多数网段的路由

  • 对于C 路由器来说,1 和2 两种方式都可以,但1 这种方式路由条目更少。

image-20210509172118103

6.4.4 默认路由和环状网络

image-20210509172137497

6.4.5 默认路由造成的往复转发

image-20210509172152991

6.4.6 使用默认路由和路由汇总简化路由表

image-20210509172217635

image-20210509172234019

6.4.7 Windows 上的默认路由和网关

  • 计算机也有路由表,我们可以在Windows 操作系统上运行route print显示Windows 操作系统上的路由表,也可以运行netstat –r 显示Windows操作系统上的路由表。

    image-20210509172308855

    image-20210509172339816

  • 在Windows上添加默认路由

    image-20210509172406873

  • 在Web服务器上需要添加到内网的路由

    image-20210509172429895

    • 如果想删除到172.16.0.0 255.255.255.0 网段的路由 , 指向以下命令 。
    • route delete 172.16.0.0 mask 255.255.255.0

6.5 网络排错案例

6.5.1 网络排错要有全局观

  1. 网络出现不通的故障,要确保数据包有去有回,确保沿途的路由知道源和目标网络的路由。

  2. 出现网络故障,不要只检查自己所管辖的网络。也要确保远程网络中的路由器的路由表,有返回的路由。

    image-20210509172533879

6.5.2 计算机网关也很重要

  • 计算机不设置网关,只能和本网段的计算机通信。

image-20210509172559702

6.6 动态路由-RIP 协议

6.6.1 RIP 协议

  1. **路由信息协议RIP (Routing Information Protocol )**是一个真正的距离矢量路由选择协议。
    1. 它每隔30 秒就送出自己完整的路由表到所有激活的接口。
    2. RIP 协议选择最佳路径的标准就是跳数,认为到达目标网络经过的路由器最少的路径就是最佳路径。
    3. 默认它所允许的最大跳数为15 跳,也就是说16 跳的距离将被认为是不可达的。
    4. 在小型网络中,RIP 会运转良好,但是对于使用慢速WAN 连接的大型网络或者安装有大量路由器的网络来说,它的效率就很低了。

6.6.2 RIP 协议工作原理

image-20210509172735208

6.6.3 在路由器上配置RIP 协议

  1. 搭建实验环境

    image-20210509172755615

  2. 在R1上的配置

    R1#config t
    Enter configuration commands, one per line. End with CNTL/Z.
    R1(config)#router rip
    R1(config-router)#network 192.168.0.0
    R1(config-router)#network 192.168.1.0
    R1(config-router)#network 192.168.4.0
    R1(config-router)#version 2
  3. network的应该怎么写

    • 就要看接口属于哪个网络,多个接口属于同一个网段(按A、B 、C 分类),只需写一个。

    image-20210509172938847

6.6.4 查看路由表

R3#show ip route
R 192.168.4.0/24 [120/2] via 192.168.6.1, 00:00:08, Serial2/0
[120/2] via 192.168.2.1, 00:00:02, Serial2/1
R 192.168.5.0/24 [120/1] via 192.168.6.1, 00:00:08, Serial2/0
C 192.168.6.0/24 is directly connected, Serial2/0
R 192.168.0.0/24 [120/2] via 192.168.2.1, 00:00:02, Serial2/1
R 192.168.1.0/24 [120/1] via 192.168.2.1, 00:00:02, Serial2/1
C 192.168.2.0/24 is directly connected, Serial2/1
C 192.168.3.0/24 is directly connected, FastEthernet0/0
  • 路由条目的详细说明

    • 管理距离是指一种路由协议的路由可信度。每一种路由协议按可靠性从高到低,依次分配一个信任等级,这个信任等级就叫管理距离(administrative distance, ,缩写:AD )
    • AD 值越低,则它的优先级越高。 一个管理距离是一个从0-255 的整数值,0 是最可信赖的,而255 则意味着不会有业务量通过这个路由。
    • 默认情况下的管理距离值 :直连接口 0 , 由 静态路由 1 ,OSPF 110 ,RIP 120

    image-20210509173059447

6.6.5 观察RIP 协议路由更新活动

  • 默认情况下RIP 协议发送和接收路由更新信息以及构造路由表的细节是不显示的,

    • 如果我们想观察RIP 协议路由更新的活动,可以输入命令debug ip rip 命令,输入该命令后将显示发送和接收到的RIP 路由更新信息,显示路由器使用了RIP 的V1 版还是V2 版本。可以看到发送路由消息使用的多播地址224.0.0.9, 输入undebug all 关闭所有诊断输出。
    R3#debug ip rip
    RIP protocol debugging is on
    *Mar 1 01:22:52.703: RIP: sending v2 update to 224.0.0.9 via FastEthernet0/0
    (192.168.3.1
    *Mar 1 01:22:52.703: RIP: build update entries -- 更新路由表
    *Mar 1 01:22:52.703: 192.168.0.0/24 via 0.0.0.0, metric 3, tag 0
    *Mar 1 01:22:52.703: 192.168.1.0/24 via 0.0.0.0, metric 2, tag 0
    *Mar 1 01:22:52.703: 192.168.2.0/24 via 0.0.0.0, metric 1, tag 0

6.6.6 测试RIP 协议健壮性

  • 动态路由协议会随着网络的变化重新生成到各个网络的路由,当最佳路径没有了,就会从备用路径中重新选择一个最佳路径

image-20210518220632516

6.6.7 RIP 协议排错

  1. 如果网络中的路由配置了RIP 协议,但没有从邻居路由器学习到路由,就要测试网络中的直连的路由之间是否能够通信,确保IP 地址子网掩码配置正确,路由器使用串口相连,还要确保在DCE 端配置了时钟频率。

  2. 再就是检测RIP 协议是否配置正确,网络中的路由最好都使用相同版本的RIP 协议,Network 命令后面的网段是否正确。

  3. 查看路由器上的RIP 协议配置,输入show ip protocols

    R1#show ip protocols
    Routing Protocol is "rip"
    Maximum path: 4
    Routing for Networks:
    192.168.0.0
    192.168.1.0
    192.168.4.0
    Routing Information Sources:
    Gateway Distance Last Update
    192.168.1.2 120 00:00:06
    192.168.4.2 120 00:00:23
    Distance: (default is 120)

6.6.8RIP 协议数据包报文格式

image-20210509173315374

image-20210509173329352

  • RP的首部点4个字节,其中的命令字段指出报文的意义。
    • 例如,1表示请求路由信息,2表示对请求路由信息的响应或未被请求而发出的路由更新报文。首部后面的“必为0”是为了4字节字的对齐。
  • RPV2报文中的路由部分由若干个路由信息组成。每个路由信息需要用20个字节。
    • 地址族标识符(又称为地址类别)字段用来标志所使用的地址协议。如采用P地址就令这个字段的值为2(原来考虑RP也可用于其他非TCPP协议的情况)。
    • 路由标记填入自治系统号ASN( Autonomous System Number),这是考虑使RTP有可能收到本自治系统以外的路由选择信息。
    • 再后面指出某个网络地址、该网络的子网掩码下一跳路由器地址以及到此网络的距离。
    • 一个RP报文最多可包括25个路由,因而RP报文的最大长度是4+20×25=504字节。如果超过,必须再使用一个Rm报文来传送。

6.7 动态路由-OSPF 协议

6.7.1 什么是最短路径优先

  1. 最短路径优先 示意图

    image-20210509173427384

  2. 计算最短路径

    image-20210509173458577

6.7.2 OSPF 术语

  1. outer-ID
    • 网络中运行OSPF 协议的路由器都要有一个唯一的标识,这就是Router-ID ,并且Router-ID 在网络中绝对不可以有重复 。
  2. COST (开销)
    • OSPF 协议选择最佳路径的标准是带宽,带宽越高计算出来的开销越低。到达目标网络的各个链路累计开销最低的,就是最佳路径。
  3. 链路(Link)
    • 就是路由器上的接口,在这里,应该指运行在OSPF 进程下的接口。
  4. 链路状态(Link-State)
    • 链路状态(LSA) 就是OSPF 接口上的描述信息,例如接口上的IP 地址,子网掩码,网类型,Cost 值等等,OSPF 路由器之间交换的并不是路由表,而是链路状态(LSA) 。
  5. 邻居(Neighbor)
    • OSPF 只有邻接状态才会交换LSA。

6.7.3 OSPF 协议工作过程

  • 运行OSPF 协议的路由器有3 张表,邻居表、链路状态表和路由表。下面以这三张表的产生过程为线索,来分析在这个过程中,路由器发生了那些变化,从而说明OSPF 协议的工作过程。

    image-20210509173656882

6.7.4 OSPF 的5 种报文

  1. 类型1 ,**问候(Hello )**数据包,发现并建立邻接关系。
  2. 类型2 ,**数据库描述(Database Description )**数据包,向邻居给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
  3. 类型3 ,**链路状态请求(Link State Request ,LSR )**数据包,向对方请求某些链路状态项目的完整信息。
  4. 类型4 ,**链路状态更新(Link State Update ,LSU )**数据包,用洪泛法对全网更新链路状态。这种数据包是最复杂的,也是OSPF 协议最核心的部分。路由器使用这种数据包将其链路状态通知给相邻路由器。在OSPF 中,只有LSU 需要显示确认。
  5. 类型5 ,**链路状态确认(Link State Acknowledgement ,LSAck )**数据包,对LSU 做确认。

6.7.5 OSPF 支持多区域

  • 划分区域的好处就是把利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。在一个区域内部的路由器只知道本区域的完整网络拓扑,而不需知道其他区域的网络拓扑的情况。

    image-20210509173811953

6.8 配置OSPF

本节实验环境 配置OSPF协议

image-20210509173905478

6.8.1 配置OSPF 协议

R1#config t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#router ospf ?
 <1-65535> Process ID
R1(config)#router ospf 1
R1(config-router)#network 192.168.0.0 0.0.0.255 area 0
R1(config-router)#network 192.168.1.0 0.0.0.255 area 0
R1(config-router)#network 192.168.4.0 0.0.0.255 area 0
R1(config-router)#

6.8.2 查看OSPF 协议三张表

R1#show ip ospf neighbor -- 显示邻居表
Neighbor ID Pri State Dead Time Address Interface
192.168.5.1 0 FULL/ - 00:00:37 192.168.4.2 Serial2/1
192.168.2.1 0 FULL/ - 00:00:34 192.168.1.2 Serial2/0
R1#show ip ospf neighbor detail -- 显示邻居详细信息
R1#show ip ospf database -- 显示链路状态数据库
R1#show ip ospf database router -- 显示完整的链路状态数据库
R1#show ip route ospf -- 只显示OSPF 协议学到的路由

6.8.3 监控OSPF 协议的活动

R1#debug ip ospf hello
R1#undebug all

6.8.4 验证OSPF 协议健壮性

  1. 断开最佳连接,跟踪数据包路径。
  2. 恢复最佳连接,跟踪数据包路径。
  3. 看看在此期间,网络中断的时间。

image-20210519015748449

6.8.5 OSPF 协议配置排错

R1#show ip protocols -- 显示OSPF 协议的配置
Routing Protocol is "ospf 1"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Router ID 192.168.4.1
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Maximum path: 4
Routing for Networks:
192.168.0.0 0.0.0.255 area 0
192.168.1.0 0.0.0.255 area 0
192.168.4.0 0.0.0.255 area 0
Reference bandwidth unit is 100 mbps
Routing Information Sources:
Gateway Distance Last Update
192.168.2.1 110 00:13:59
192.168.5.1 110 00:13:59
192.168.6.2 110 00:13:59
192.168.6.1 110 00:13:59
Distance: (default is 110)

第7章 网络层协议

4小时49分钟26节

7-1 网络层协议本章重点 07:15 7-2 网络层首部 06:10 7-3 网络层首部-版本和首部长度 11:41 7-4 网络层首部-区分服务 17:12 7-5 网络层首部-总长度 09:40 7-6 网络层首部-分片标志 11:40 7-7 网络层首部-片偏移 18:47 7-8 网络层首部-生存时间 13:45 7-9 抓包观察数据包TTL变化 08:30 7-10 网络层首部-协议号 05:33 7-11 ICMP差错报告报文-TTL耗尽和目标主机不可到达 09:49 7-12 ICMP协议数据包类型 10:57 7-13 网络层首部-标识 04:24 7-14 ICMP差错报告报文-路由重定向 11:51 7-15 ICMP差错报告报文格式 05:40 7-16 ICMP差错报告报文-给应用程序返回差错报告 07:01 7-17 使用ping命令测试网络是否畅通 12:45 7-18 跟踪数据包路径-tracert和pathping 12:13 7-19 ARP协议的作用 09:18 7-20 ARP欺骗 25:19 7-21 防止ARP欺骗 12:02 7-22 组播(多播)应用场景 11:39 7-23 搭建点播和多播视频服务器 09:57 7-24 多播IP地址和多播MAC地址 09:23 7-25 IGMP协议功能 04:12 7-26 配置跨网段多播看视频 23:09

image-20210509175130321

7.1 网络层首部

7.1.1 抓包查看网络层首部

image-20210510162707073

7.1.2 网络层首部格式

  • IP 数据包首部的格式能够说明IP 协议都具有什么功能。

  • IP 数据包由首部和数据两部分组成。首部的前一部分是固定长度,共20 个字节,是所有IP 数据包必须有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。

    image-20210510162738389

  • 网络层首部固定部分各个字段

    1. 版本占4 位,指IP 协议的版本。IP 协议目前有两个版本IPv4和 和IPv6 。通信双方使用的IP 协议版本必须一致。目前广泛使用的IP协议版本号为4 (即IPv4 )。

    2. 首部长度占4 位,可表示的最大十进制数值是15 。请注意,这个字段所表示数的单位是32 位二进制数(即4 个字节),因此,当IP 的首部长度为1111 时(即十进制的15 ),首部长度就达到60字节。

    3. 区分服务占8 位,配置计算机给特定应用程序的数据包添加一个标志,然后再配置网络中的路由器优先转发这些带标志的数据包,在网络带宽比较紧张的情况下,也能确保这种应用的带宽有保障,这就是区分服务,为这种服务确保服务质量(Quality of Service ,QoS )。

    4. 总长度: 总长度指IP 首部和数据之和的长度,也就是数据包的长度,单位为字节。总长度字段为16 位,因此数据包的最大长度为$2 ^{16} -1=65535 $字节。实际上传输这样长的数据包在现实中是极少遇到的。

      image-20210510162949170

    5. 标识(identification)占16 位。IP 软件在存储器中维持一个计数器,每产生一个数据包,计数器就加1 ,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP 是无连接服务,数据包不存在按序接收的问题。当数据包由于长度超过网络的MTU 而必须分片时,同一个数据包被分成多个片,这些片的标识都一样,也就是数据包这个标识字段的值就被复制到所有的数据包分片的标识字段中。相同的标识字段的值使分片后的各数据包片最后能正确地重装成为原来的数据包。

    6. 标志(flag)占3 位,但目前只有两位有意义。标志字段中的最低位记为MF (More Fragment )。MF=1 即表示后面“还有分片”的数据包。MF=0 表示这己是若干数据包片中的最后一个。标志字段中间的一位记为DF (Don’t Fragment ),意思是“不能分片”。只有当DF=0 时才一允许分片。

    7. 片偏移占13 位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以8 个字节为偏移单位。这就是说,每个分片的长度一定是8 字节(64 位)的整数倍。

      image-20210510163121194

      • 片偏移示例

      image-20210510163143356

    8. 生存时间: 生存时间字段常用的英文缩写是TTL (Time To Live ),表明是数据包在网络中的寿命。 现在TTL 字段的功能改为“跳数限制” 。

    9. 协议占8 位,协议字段指出此数据包携带的数据是使用何种协议,以便使目的主机的网络层知道应将数据部分上交给哪个处理过程。

      image-20210510163229634

    10. 首部检验和占16 位,这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。

7.1.3 实战:查看协议版本和首部长度

image-20210510163441519

image-20210510163455770

7.1.4 实战:给数据包设置区分服务字段

image-20210510163518858

image-20210510163531468

7.1.5 数据分片详解

  • 在 在IP 层下面的每一种数据链路层都有其特有的帧格式,帧格式也定义了帧中数据字段的最大长度,数据字段最大长度称为最大传送单元MTU (Maximum Transfer Unit )。当一个IP数 数据包封装成链路层的帧时,此数据包的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU 值。例如以太网就规定其MTU 值是1500 字节。若所传送的数据包长度超过数据链路层的MTU 值,就必须把过长的数据包进行分片处理。

  • 在计算机A的数据链路层分片

    image-20210510163612377

  • 在R1 和R2 链路的数据链路层分片

    image-20210510163639098

7.1.6 实战:捕获并观察数据包分片

C:\Users\win7>ping www.cctv.com -l 3500
正在 Ping cctv.xdwscache.ourglb0.com [111.11.31.114]  具有 3500
字节的数据:
来自 111.11.31.114  的回复:  字节=3500  时间=10ms TTL=128
来自 111.11.31.114  的回复:  字节=3500  时间=11ms TTL=128
来自 111.11.31.114  的回复:  字节=3500  时间=10ms TTL=128
来自 111.11.31.114  的回复:  字节=3500  时间=11ms TTL=128

image-20210510163721971

image-20210510163740380

image-20210510163758373

image-20210510163815821

image-20210510163827894

7.1.7 实战:查看和配置链路MTU

  • 可以设置路由器接口的MTU。

    image-20210510163853227

R1#show interfaces serial 1/0
Serial1/0 is up, line protocol is up
Hardware is M4T
Internet address is 172.16.0.1/24
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,

设置接口的MTU
R1(config)#interface serial 1/0
R1(config-if)#mtu 500

7.1.8 数据包生存时间(TTL )详解

  • 各种操作系统发送数据包,在网络首部都要给TTL 字段赋值,用来限制该数据包能够通过的路由器数量,下面列出一些操作系统发送数据包默认的TTL 值。

    Windows NT 4.0/2000/XP/2003 128
    MS Windows 95/98/NT 3.51 32
    Linux 64
    MacOS/MacTCP 2.0.x 60
    

    image-20210510164022971

7.1.9 实战:指定ping 命令发送数据包的TTL值

  • 虽然操作系统会给发送的数据包指默认的TTL 值,但是ping 命令允许我们使用参数-i 指定发送的ICMP 请求数据包的TTL 值。

  • 一个路由器在转发数据包之前将该数据包的TTL 减1 ,如果减1 后TTL变为0 ,路由器就会丢弃该数据包,然后产生一个ICMP 响应数据包给发送者,说明TTL 耗尽。通过这种方式,你能够知道到达目标地址经过哪些路由器。

    image-20210510164105085

    C:\Users\han>ping edu.51cto.com -i 2
    在 Ping yun.dns.51cto.com [120.55.239.108]  具有 32  字节的数据:
    来自 172.16.0.250  的回复: TTL  传输中过期。
    来自 172.16.0.250  的回复: TTL  传输中过期。
    来自 172.16.0.250  的回复: TTL  传输中过期。
    来自 172.16.0.250  的回复: TTL 

    image-20210510164151433

    image-20210510164203235

7.1.10 实战:抓包查看数据包的TTL变化

image-20210510164216654

image-20210510164228619

7.2 ICMP 协议

  • ICMP 协议是TCP/IP 协议栈中的网络层的一个协议,ICMP是(Internet Control Message Protocol )Internet 控制报文协议,用于在IP 主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
  • ICMP 报文是在IP 数据报内部被传输的,它封装在IP 数据报内。ICMP 报文通常被IP 层或上层协议(TCP 或UDP )使用。一些ICMP 报文把差错报文返回给用户进程。

7.2.1抓包查看ICMP报文格式

  • ICMP 报文分为:

    1. ICMP 请求报文
    2. ICMP 响应报文
    3. ICMP 差错报告报文

    image-20210510164337668

  • ICMP 请求报文

    image-20210510164412247

  • ICMP响应报文

    image-20210510164431747

  • ICMP报文类型和代码

    image-20210510164455925

    1. 终点不可到达 当路由器或主机没有到达目标地址的路由时,就丢弃该数据包,给源点发送终点不可到达报文。
    2. 源点抑制 当路由器或主机由于拥塞而丢弃数据包时,就会向源点发送源点抑制报文,使源点知道应当降低数据包的发送速率。
    3. 时间超时 当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把己收到的数据报片都丢弃,并向源点发送时间超过报文。
    4. 参数问题 当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
    5. 改变路由(重定向) 路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。

7.2.2 ICMP报文格式

  • ICMP 报文的前4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着4 个字节的内容与ICMP 的类型有关。

    image-20210510164842228

  • ICMP 差错报告报文的数据字段的内容

    image-20210510164905315

7.2.3 ICMP差错报告报文-TTL过期

image-20210510164955996

7.2.4 ICMP差错报告报文-目标主机不可到达

image-20210510165018275

7.2.5 ICMP差错报告报文-路由重定向

image-20210510165039773

image-20210510165049808

7.2.6 ICMP差错报告报文-给程序返回错误消息

image-20210510165112124

  • ICMP为应用程序返回差错报告

image-20210510165137294

7.3 使用ICMP 排除网络故障案例

7.3.1 使用ping 命令诊断网络故障

image-20210510170630860

7.3.2 使用ping 断定哪一段链路出现故障

image-20210510170651043

  • 测试哪一段链路丢包

image-20210510170718042

  • 断定是整个机房堵塞还是服务器网络堵塞

image-20210510170733525

7.3.3 使用tracert 跟踪数据包路径

  • Ping 命令并不能跟踪从源地址到目标地址沿途经过了哪些路由器,Windows 操作系统中的tracert 命令是路由跟踪实用程序,用于确定IP 数据报访问目标地址路径,能够帮助我们发现到达目标网络到底是哪一条链路出现了故障。Tracert 命令就是ping 命令的扩展,用 IP 报文生存时间(TTL )字段ICMP 差错报告报文来确定沿途经过的路由器。
  • Tracert 工作原理如下图所示。

image-20210510170827807

7.3.4 使用pathping 跟踪数据包路径

  • Pathping 是一个基于TCP/IP 的命令行工具,该命令不但可以跟踪数据包从源主机到目标主机所经过的路径,还可以统计计算机网络延时以及丢包率,帮助我们解决网络问题,跟踪数据包路径的原理和tracert 命令一样。

image-20210510170910338

7.4 ARP 协议

  • ARP 协议的作用,将以太网中的计算机的IP 地址解析成MAC 地址
    • 点到点链路使用PPP 协议,不需要ARP 协议。

image-20210510170936880

7.4.1 ARP协议的工作过程和安全隐患

  • ARP 协议是建立在网络中各个主机互相信任的基础上的,计算机A 发送ARP 广播帧解析计算机C 的MAC 地址,同一个网段中的计算机都能够收到这个ARP 请求消息,任何一个主机都可以给计算机A 发送ARP 应答消息,可以告诉计算机A 一个错误的 的MAC 地址,计算机A 收到ARP 应答报文时并不会检测该报文的真实性,就会将其记入本机ARP 缓存,这就存在一个安全隐患。

7.4.2 ARP欺骗之网络执法官

  • 网络执法官软件可以控制以太网中的计算机通信

image-20210510171040760

image-20210519235135264

  • 查看解析的MAC地址

    • ARP协议在路由器上查看接口缓存的MAC地址
    • 在 Windows上查看缓存的MAC地址

    image-20210519232550221

image-20210510171055729

7.4.3判断和防止ARP欺骗的方法

  • 静态MAC 优先级更高,可以防止ARP欺骗

image-20210510171120394

  • 通过开机脚本自动添加静态MAC地址映射

image-20210519234208168

image-20210519234328902

  • 路由器上绑定mac地址和IP地址防止ARP欺骗
    • R2(config)#arp 192.168.80.40 000C.296D.B2D7 arpa

7.5 IGMP 协议

7.5.1 什么是组播

  • Internet 组管理协议称为 IGMP 协议(Internet Group Management Protocol ),是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间,IGMP协议是网络层协议。
    • 要想搞明白IGMP 协议的作用和用途,先要搞明白什么是组播通信,组播也称为多播

image-20210510171215161

  • 组播节省网络带宽
    • 流媒体服务器就像电视台,多播地址相当于不同的频道。可以使用两个组播地址向网络中发送两个课程的视频。网络的中的计算机绑定哪个多播地址就能收到哪个视频课程。
    • 可以单网卡绑定多个组播地址

image-20210510171242266

7.5.2 组播IP 地址

  • IP 地址中的D 类地址是组播地址。D 类IP 地址的前四位是1110 ,因此D类地址范围是224.0.0.0 到239.255.255.255 。我们就用每一个D 类地址标志一个多播组

  • 多播地址只能用于目的地址,而不能用于源地址。

  • D 类地址中有一些是不能随意使用的,因为有的地址己经被IANA 指派为永久组地址了[RFC3330] 。例如:

    224.0.0.0 基地址(保留)
    224.0.0.1 在本子网上的所有参加多播的主机和路由器
    224.0.0.2 在本子网上的所有参加组播的路由器
    224.0.0.3 未指派
    224.0.0.4 DVMRP 路由器
    ……
    224.0.1.0 至238.255.255.255 全球范围都可使用的组播地址
    239.0.0.0 至239.255.255.255 限制在一个组织的范围
    

7.5.3 组播MAC 地址

  • 目标地址组播IP 地址的数据包到达以太网,就要使用组播MAC 地址封装组播MAC 地址使用组播IP 地址构造。

  • 为了支持IP 组播,因特网号码指派管理局 IANA 已经为 Ethernet 的MAC 地址保留了一个组播地址区间:01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF

    如图7-84 所示,组播MAC 地址48 位的MAC 地址中的高25 位是固定的,为了映射一个IP 多播地址到MAC层的组播地址,IP 多播地址的低23 位可以直接映射为MAC 层组播地址的低23 位。

    image-20210510171427558

  • 不同的组播IP地址可能构造出相同的多播MAC地址

    • 比如组播IP 地址224.128.64.32 ,如 下图 所示,使用上面的方法构造出的 的MAC 地址为01-00-5E-00-40-20

      image-20210510171533847

    • 组播IP 地址224.0.64.32 ,如下图所示,使用上面的方法构造出的MAC地址也为01-00-5E-00-40-20

      image-20210510171548109

7.5.4 组播管理协议(IGMP)

  • IGMP 实现如下双向的功能:
  1. 主机通过IGMP 通知路由器希望接收或离开某个特定组播组的信息。
  2. 路由器通过IGMP 周期性地查询局域网内的组播组成员是否处于活动状态,实现所连网段组成员关系的收集与维护。

image-20210510171632636

7.6 实战:跨网段观看组播视频

7.6.1 搭建流媒体服务器

7.6.2 点播视频

image-20210520000254623

image-20210520000335521

image-20210520000406779

  • 或者

image-20210520000501825

  • Windows 多播视频

image-20210520000613639

image-20210520000631160

image-20210520000921834

  • 访问多个多播站点

image-20210520001155622

7.6.3 访问多播视频

image-20210510171720475

  • 配置路由器支持多播

    R1#config t
    R1(config)#ip multicast-routing
    R1(config)#interface fastEthernet 0/0
    R1(config-if)#ip pim dense-mode
    R1(config-if)#exit
    R1(config)#interface serial 2/0
    R1(config-if)#ip pim dense-mode
    R1(config-if)#^Z
    R1#
  • 查看多播路由表

    R2#show ip mroute
    IP Multicast Routing Table
    Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
    L - Local, P - Pruned, R - RP-bit set, F - Register flag,
    T - SPT-bit set, J - Join SPT, M - MSDP created entry,
    X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
    U - URD, I - Received Source Specific Host Report,
    Z - Multicast Tunnel, z - MDT-data group sender,
    Y - Joined MDT-data group, y - Sending to MDT-data group
    Outgoing interface flags: H - Hardware switched, A - Assert winner
    Timers: Uptime/Expires
    Interface state: Interface, Next-Hop or VCD, State/Mode
    (*, 239.255.255.250), 00:19:26/00:02:36, RP 0.0.0.0, flags: DC
    Incoming interface: Null, RPF nbr 0.0.0.0
    Outgoing interface list:
    Serial2/0, Forward/Dense, 00:18:57/00:00:00
    FastEthernet0/0, Forward/Dense, 00:19:26/00:00:00

image-20210520003512369

image-20210520003553735

7.6.4 跨网段多播

R2#debug ip igmp
*Mar 1 01:04:38.235: IGMP(0): Received Group record for group 239.192.44.166,
mode 2 from 192.168.80.111 for 0 sources
*Mar 1 01:04:38.239: IGMP(0): WAVL Insert group: 239.192.44.166 interface:
FastEthernet0/0Successful
*Mar 1 01:04:38.239: IGMP(0): Switching to EXCLUDE mode for 239.192.44.166 on
FastEthernet0/0
*Mar 1 01:05:06.487: IGMP(0): Send v2 general Query on FastEthernet0/0
*Mar 1 01:05:16.111: IGMP(0): Received v2 Report on FastEthernet0/0 from
192.168.80.111 for 239.192.44.166
*Mar 1 01:06:11.115: IGMP(0): Received Leave from 192.168.80.111
(FastEthernet0/0) for 239.192.44.166
*Mar 1 01:06:11.119: IGMP(0): Send v2 Query on FastEthernet0/0 for group
239.192.44.166

第8章 传输层

6小时18分钟27节

8-1 本章重点 07:16 8-2 传输层两个协议应用场景 24:47 8-3 传输层协议和应用层协议之间的关系 04:22 8-4 服务和端口的关系 09:25 8-5 安装服务查看侦听的端口 14:02 8-6 使用telnet和端口扫描工具扫描远程服务器打开的端 10:06 8-7 服务器和客户端的端口要求本地唯一 07:57 8-8 更改服务使用的端口 15:14 8-9 端口和网络安全 10:52 8-10 Windows防火墙和TCPIP筛选实现网络安全 13:46 8-11 UDP协议特点和首部格式 14:44 8-12 TCP协议特点 17:56 8-13 TCP报文首部字段 18:31 8-14 TCP报文格式-标记位 20:53 8-15 TCP可靠传输的实现-停止等待协议 07:42 8-16 改进的停止等待协议-连续ARQ和滑动窗口 10:42 8-17 以字节为单位的滑动窗口技术详解 14:57 8-18 选择性确认SACK 17:48 8-19 超时重传时间的调整 18:30 8-20 TCP协议流量控制功能-发送端根据接收端的接收能力调 21:24 8-21 TCP协议拥塞控制 14:42

8.1 传输层的两个协议

8.1.1 TCP 和UDP 协议的应用场景

  • 网络中的计算机通信无外乎有以下两种情况:

    1. 要发送的内容多,需要将发送的内容分成多个数据包发送。

    2. 要发送的内容少,一个数据包就能发送全部内容。

  • 针对这两种情况,在传输层有两个协议:

    • TCP (TransmissionControl Protocol 即传输控制协议)
      • 要传输的内容需要分成多个数据包来传输,
      • 分段 编号 流量控制 拥塞避免 可靠传输
      • 客户端和服务器端需要建立TC连接 (协商参数:选择性确认,最大报文)
      • 通信结束需要释放连接
    • UDP(User DatagramProtocol 即用户数据报协议)
      • 要传输的内容一个数据就能全部发送,
      • 实时语音和视频,多播
      • 不需要分段 流量控制 传输成功与否由应用层判断
      • 不需要建立连接节省服务器资源

image-20210520153503611

8.1.2 传输层协议和应用层协议之间的关系

  • 应用层协议很多,传输层就两个协议,如何使用传输层两个协议标识应用层协议呢?
  • 传输层协议加一个端口号来标识一个应用层协议,展示了传输层协议和应用层协议之间的关系。

image-20210510173007022

  • 些常见的应用层协议和传输层协议,以及它们之间的关系。

    • HTTP 默认使用TCP 的80 端口标识。
    • FTP 默认使用TCP 的21 端口标识。
    • SMTP 默认使用TCP 的25 端口标识。
    • POP3 默认使用TCP 的110 端口。
    • HTTPS 默认使用TCP 的443 端口。
    • DNS 使用UDP 的53 端口。
    • 远程桌面协议(RDP )默认使用TCP 的3389 端口。
    • Telnet 使用TCP 的23 端口。
    • Windows 访问共享资源使用TCP 的445 端口。
    • 微软SQL 数据库默认使用TCP 的1433 端口。
    • mySQL 数据库默认使用TCP 的3306 端口。

8.1.3 服务和端口之间的关系

  • Windows 和Linux 操作系统 有些服务为本地计算机提供服务,有些服务为网络中的计算机提供服务。
  • 为网络中计算机提供服务的服务,一旦启动就会使用TCP 或UDP 的某个端口侦听客户端的请求。
  • 查看数字显示侦听的端口:
    • -a 显示所有连接和侦听端口。
    • -n 以数字形式显示地址和端口号。

image-20210520164535650

image-20210510173122938

  • 客户端通过IP 地址定位服务器,通过协议和端口号定位服务器上的服务。

image-20210510173234928

  • 客户端端口的作用
    • 客户端软件可以同时访问多个服务器,客户端会为每个出去的流量分配一个唯一的源端口。

image-20210510173310176

  • telnet 测试端口是否可连接

image-20210520170430857

  • 端口扫描工具

image-20210520170147403

8.1.4 实战:服务器端口冲突造成服务器启动失败

  • 服务器上的服务侦听的端口不能冲突,否则将会造成服务启动失败。

image-20210510173333966

8.1.5 实战:更改服务使用的默认端口

  • 应用层协议也可以不使用默认端口和客户端通信。
  • 如果不适用默认端口通信,客户度需要指明使用的端口。

image-20210510173407929

8.1.6 端口和安全的关系

  • 客户端和服务器之间的通信使用应用层协议,应用层协议使用传输层协议+ 端口标识 ,如果在网络设备封掉TCP 或UDP 的某个端口,就不能访问其对应的服务,就可以实现网络安全。

image-20210510173433410

  • 设置服务器网络安全
    • 设置服务器网络安全,只开放必要的端口。
    • 在Windows 上可以通过设置TCP/IP 筛选和Windows 防火墙来实现。

image-20210510173518985

  • 在网络设备上控制端口

image-20210510173557007

8.1.7 实战:Windows 防火墙和TCP/IP 筛选实现网络安全

  • 防火墙设置

image-20210510173614377

  • TCP/IP 筛选

image-20210510173628593

  • 文件共享

image-20210520173421049

image-20210520173439656

image-20210520173448256

8.2 用户数据报协议UDP

8.2.1 UDP 协议的特点

  1. UDP 是无连接的,即发送数据之前不需要建立连接(当然发送数据结束时也没有连接可放),因此减少了开销和发送数据之前的时延。

  2. UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表(这里面有许多参数),通信的两端不用保持连接,因此节省系统资源。

  3. UDP 是面向报文的,发送方的UDP 对应用程序交下来的报文,在添加首部后就向下交付给网络层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。

    image-20210510173805414

  4. UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。

  5. UDP 支持一对一、一对多、多对一和多对多的交互通信。

  6. UDP 的首部开销小,只有8 个字节,比TCP 的20 个字节的首部要短。

8.2.2 UDP 的首部格式

image-20210510173854267

  • UDP 的首部包括四个字段,源端口、目标端口长度校验和,每个字段的长度是两个字节
    • 伪首部包括:源地址、目的地址、UDP 数据长度、协议类型(0x11 ),协议类型就一个字节,但需要补一个字节的0x0, 构成12字节。

image-20210510173933676

  • 计算UDP检验和的例子

image-20210510173947513

8.3 传输控制协议TCP

8.3.1 TCP 协议的主要特点

  1. TCP 是面向连接的传输层协议。
    • 这就是说,应用程序在使用TCP 协议之前,必须先建立 立TCP 连接。在传送数据完毕后,必须释放已经建立的TCP 连接。这就是说,应用进程之间的通信好像在“打电话”:通话前要先拨号建立连接,通话结束后要挂机释放连接。
  2. 每一条TCP 连接只能有两个端点(endpoint ),每一条TCP 连接只能是点对点(一对一)。
  3. TCP 提供可靠交付的服务。
    • 也就是说,通过TCP 连接传送的数据,无差错不丢失不重复、且按序发送
  4. TCP 提供全双工通信。
    • TCP 允许通信双方的应用进程在任何时候都能发送数据。TCP 连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。在发送时,应用程序把数据传送给TCP 的缓存后,就可以做自己的事,而TCP 在合适的时候把数据发送出去。在接收时,TCP 把收到的数据放入缓存,上层的应用进程在合适的时候读取缓存中的数据。
  5. 面向字节流。
    • TCP 中的“流”(steam )指的是流入到进程或从进程流出的字节序列。
    • 面向字节流

image-20210510174142431

8.3.2 TCP 报文的首部格式

  • TCP 协议是能够实现数据分段传输、可靠传输、流量控制、网络拥塞避免等功能,因此TCP 报文的首部要比UDP 报文首部字段要多,并且首部长度不固定。

  • 传输层首部

    image-20210510174216627

    image-20210510174237256

  1. 源端口目的端口各占2 个字节,分别写入源端口号和目的端口号。和前面图所示的UDP 的分用相似,TCP 的分用功能也是通过端口实现的。

  2. 序号 占4 字节。序号范围是$[0 ,2^{32} -1]$ ,共$2^{32} $(即4294967296 )个序号。序号增加到$2 ^{32} -1 $后,下一个序号就又回到0 。TCP 是面向字节流的。在一个TCP 连接中传送的字节流中的每一个字节都按顺序编号

    • 序号字段的意义

    image-20210510174331850

  3. 确认号 占4 字节,是期望收到对方下一个报文段的第一个数据字节的序号。

    • TCP 协议能够实现可靠传输,接收方收到几个数据包后,就会给发送方一个确认数据包,告诉发送方下一个数据包该发第多少个字节了。
    • 若确认号是N ,则表明:到序号N-1 为止的所有数据都已正确收到。
  4. 数据偏移 占4 位,它指出TCP 报文段的数据起始处距离TCP报文段的起始处有多远。

    • 这个字段实际上是指出TCP 报文段的首部长度。由于首部中还有长度不确定的选项字段,因此数据偏移字段是必要的。
    • 但请注意,“数据偏移”的单位为4 字节,由于4位二进制数能够表示的最大十进制数字是15 ,因此数据偏移的最大值是60 字节,这也是TCP 首部的最大长度,这也就意味着选项长度不能超过40字节
  5. 保留 占6 位,保留为今后使用,但目前应置为0。 。

  6. **紧急URG (URGent)**当URG=l 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据 ) ,而不要按原来的排队顺序来传送。

  7. **确认ACK (ACKnowlegment)**仅当ACK=1 时确认号字段才有效。当ACK=0 时,确认号无效。TCP 规定,在连接建立后所有传送的报文段都必须把ACK 置1。

  8. **推送PSH (PuSH)**当两个应用进程进行交互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应。

  9. 复位RST (ReSeT) 当RST=1 时,表明TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。

  10. **同步SYN (SYNchronization)在连接建立时用来同步序号。**当SYN=1 而ACK=0 时,表明这是一个连接请求报文段。对方若同意建立连接,则应在响应的报文段中使SYN=1 和ACK=1 。因此,SYN置为1 就表示这是一个连接请求或连接接受报文。

  11. **终止FIN (FINish 意思是“完”、“终”) 用来释放一个连接。**当FIN=1 时,表明此报文段的发送方的数据己发送完毕,并要求释放传输连接。

  12. 窗口 占2 字节。窗口值是$[0 ,2^{16} -1]$ 之间的整数。TCP 协议有流量控制功能,窗口值告诉对方:从本报文段首部中的确认号算起,接收方目前允许对方发送的数据量(单位是字节)。

  13. 检验和 占2 字节。检验和字段检验的范围包括首部和数据这两部分。和UDP 用户数据报一样,在计算检验和时,要在TCP报文段的前面加上12 字节的伪首部

  14. 紧急指针 占2 字节。紧急指针仅在URG=1 时才有意义,它指出本报文段中的紧急数据的字节数(紧急数据结束后就是普通数据)。因此紧急指针指出了紧急数据的末尾在报文段中的位置。

  15. 选项 长度可变,最长可达40 个字节。当没有使用选项时,TCP 的首部长度是20 字节。TCP 最初只规定了一种选项,即最大报文段长度MSS (Maximum Segment Size)。

8.4 可靠传输

8.4.1TCP 可靠传输的实现- 停止等待协议

  • 无差错情况

image-20210510174812245

  • 出现差错或丢失

image-20210510174836957

8.4.2 连续ARQ 协议和滑动窗口协议- 改进的停止等待协议

image-20210510174909220

8.4.3 以字节为单位的滑动窗口技术详解

  • 滑动窗口是面向字节流的,为了方便大家记住每个分组的序号,下面的讲解每一个分组就假设100 个字节,为了方便画图表示,将分组进行编号简化表示,如图所示,不过你要记住,每一

    image-20210510174952454

    image-20210510175018050

    image-20210521142414401

8.4.4 改进的确认- 选择确认(SACK) )

  • TCP 通信时,如果发送序列中间某个数据包丢失,TCP 会通过重传最后确认的分组后续的分组,这样原先已经正确传输的分组也可能重复发送,降低了TCP 性能。为改善这种情况,发展出**SACK (Selective Acknowledgment ,选择确认)**技术,使TCP 只重新发送丢失的包,不用发送后续所有的分组,而且提供相应机制使接收方能告诉发送方哪些数据丢失,哪些数据已经提前收到等。

image-20210510175045665

  • 选择性确认最多表示4个边界
    • 由于TCP 首部选项最长40 个字节,而指明一个边界需要用掉4 个字节(因为序号有32 位,需要使用4 个字节表示),因此在TCP 选项中一次最多只能指明4 个字节块的边界信息。这是因为4 个字节块有8 个边界,一个边界占用4 个字节,占用32 个字节,另外还需要2 个字节,一个字节用来指明是SACK 选项,另一个字节指明这个选项占多少字节。

image-20210510175127547

8.4.5 超时重传的时间调整

  • TCP 的发送方在规定的时间内没有收到确认就要重传己发送的报文段。这种重传的概念是很简单的,但重传时间的选择却是TCP 最复杂的问题之一。
  • 传输层的超时计时器的超时重传时间究竟应设置为多大呢?
    • TCP 往返传输时间(RTT) 的测量可以采用两种方法:
  • TCP Timestamp 选项
    • TCP 时间戳选项可以用来精确的测量RTT 。发送方在发送报文段时把当前时钟的时间值放入时间戳字段,接收方在确认该报文段时把时间戳字段值复制到时间戳回送回答字段。因此,发送方在收到确认报文后,可以准确地计算出RTT 来。RTT= 当前时间- 数据包中Timestamp 选项的回显时间。
  • 重传队列中数据包的TCP 控制块
    • 在TCP 发送窗口中保存着发送而未被确认的数据包,数据包skb 中的TCP 控制, 块包含着一个变量, tcp_skb_cb →when ,记录了该数据包的第一次发送时间,当收到该数据包确认,就可以计算RTT ,RTT= 当前时间-when 。这就意味着发送端收到一个确认,就能计算新的RTT。

image-20210510175236658

  • RTT的调整

    • RTT 是随着网络状态动态的变化的,TCP 保留了RTT 的一个加权平均往返时间RTTs (这又称为平滑的往返时间,S 表示Smoothed。 。因为进行的是加权平均,因此得出的结果更加平滑)。每当第一次测量到RTT 样本时,RTTs 值就取为所测量到的RTT 样本值。但以后每测量到一个新的RTT 样本,就按下式重新计算一次RTTs:

      $新的RTTs =(1-α)×(旧的RTTs )+α ×(新的RTT 样本)$

    • 在上式中,$0≤α <1$。若α 很接近于零,表示新的RTTs 值和旧的RTT 值相比变化不大,而对新的RTF 样本影响不大,RTT 值更新较慢)。若选择α 接近于1 ,则表示新的RTTs 值受新的RTT 样本的影响较大( (RTT 值更新较快),RFC2988 推荐的α 值为1/8 ,即0.125 。用这种方法得出的加权平均往返时间RTTs 就比测量出的RTT 值更加平滑。

  • 超时计时器设置的超时重传时间RTO

    • 超时计时器设置的超时重传时间RTO ( RetransmissionTime-Out) )应略大于上面得出的加权平均往返时间RTTs 。RFC2988 建议使用下式计算RTO:

      $RTO=RTTs+4 ×RTT D$

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

    $新的RTT D = (1-β )×(旧的RTT D ) )+ β ×|RTTs- 新的RTT 样本|$

    • 这里β 是s个小于1 的系数,它的推荐值是1/4 ,即0.25。

8.5 流量控制

image-20210510175432449

image-20210521150941747

8.6 拥塞控制

8.6.1 拥塞控制的原理

  1. 有拥塞控制的网络

image-20210510175547674

8.6.2 拥塞控制方法- 慢开始和拥塞避免

  1. 慢开始

    image-20210510175627928

  2. 拥塞避免

    image-20210510175650805

8.6.3 拥塞控制方法- 快重传和快恢复

  1. 快重传

    • 快重传算法首先要求接收方每收到一个失序的分组后就立即发出重复确认(为的是使发送方及早知道有分组没有到达对方)而不要等待自己发送数据时才进行捎带确认。
    • 快重传算法规定,发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段M3 ,而不必继续等待为M3 设置的重传计时器到期。

    image-20210510175733166

  2. 与快重传配合使用快恢复算法

    image-20210510175752254

8.6.4 发送窗口的上限

  • 如果把本节所讨论的拥塞控制和接收方对发送方的流量控制一起考虑,那么很显然,

    • 发送方的窗口的上限值应当取为 接收方窗口rwnd拥塞窗口cwnd 这两个变量中较小的一个,也就是说:

      $发送方窗口的上限值 = Min [rwnd ,cwnd]$

    • 当 rwnd<cwnd 时,是接收方的接收能力限制发送方窗口的最大值。

    • 反之,当 cwnd<rwnd 时,则是网络的拥塞限制发送方窗口的最大值。

    • 也就是说,rwnd 和cwnd 中较小的一个控制发送方发送数据的速率。

8.7 TCP连接管理

8.7.1 TCP 的连接建立

两次握手浪费服务器资源

  • 请求建立TCP 连接的数据包

    image-20210510175943257

  • TCP连接确认数据包

image-20210510180003968

  • 确认的确认

    image-20210510180018888

  • TCP的连接建立的过程

    image-20210510180048054

8.7.2TCP 连接释放

三次握手:

TCP连接请求 SYN=1 ACK=0

TCP连接确认 SYN=1 ACK=0

确认的确 认传输数据的TCP数据包 SYN=0

  • TCP 协议通信结束后,需要释放连接,TCP 连接释放过程比较复杂,我们仍结合双方状态的改变来阐明连接释放的过程。

    • 数据传输结束后,通信的双方都可释放连接。
  • 如图8-74 所示,现在A 和B 都处于ESIABLISHED 状态,A 的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP 连接。四次握手。

    1. A 把连接释放报文段首部的FIN 置1 ,其序号seq=u ,它等于前面已传送过的数据的最后一个字节的序号加1 。
    2. A 进入 FIN-WAIT-1 (终止等待1 )状态,等待B的确认。
    3. B 发送确认,seq=v,ack=u+1。进入 CLOSE-WAIT。
    4. A 进入 FIN-WAIT-2 (终止等待2 )状态,等待B的确认进入关闭等待状态。
    5. B 发送 FIN=1,ACK=1,seq=w,ack=w+1。进入 LAST-ACK。
    6. A 发送确认,ACK=1,seq=u+1,ack=w+1。A 等待 TIME-WAIT, 两个最长报文时间 2MSL。关闭CLOSED。
    7. B 关闭 CLOSED。

    image-20210510180151006

8.7.3 实战:查看TCP 释放连接的数据包

image-20210510180206903

image-20210510180216176

8.7.4 实战:SYN 攻击

伪造地址大量请求连接

image-20210510180227224

image-20210510180236398

  • land 目标地址源地址一致攻击

image-20210521164906444

image-20210521164929656

第9章 应用层协议

7小时44分钟40节

9-15 查看释放刷新IP地址以及抓包观察DHCP协议定义的四 07:20 9-16 跨网段分配IP地址 06:56 9-17 配置跨网段分配IP地址 11:13 9-18 telnet协议 16:22 9-19 Windows远程桌面协议RDP 10:32 9-20 http协议和html文档 11:50 9-21 定位全球资源-统一资源定位符URL 17:35 9-22 很路径和相对路径 04:21 9-23 创建Web站点 17:48 9-24 HTTP协议的版本 09:50 9-25 HTTP请求报文和响应报文 09:21 9-26 HTTP请求报文-POST和GET方法 05:25 9-27 http响应报文状态代码 04:59 9-28 记录用户身份-Cookie 13:54 9-29 通过web代理访问网站 14:37 9-30 Web代理服务器应用场 25:40 9-31 FTP协议主动模式被动模式 12:33 9-32 更改FTP客户端主动模式被动模式 14:14 9-33 抓包分析FTP数据包 15:19 9-34 隔离用户的FTP 11:34 9-35 收发电子邮件使用的协议 09:08 9-36 配置邮件客户端收发电子邮件 10:13 9-37 使用telnet直接发送邮件 14:38 9-38 POP3协议和IMAP协议 03:26 9-39 POP3协议和IMAP协议 20:07 9-40 通过抓包工具分析SMTP协议和POP协议数据包格式 08:05

9.1 域名系统DNS

9.1.1 什么是域名

  • 整个Internet 网站和各种服务器数量众多,各个组织的服务器都需要给一个名称,这就很容易重名。如何确保Internet 上的服务器名称在整个Internet 唯一呢?
    • 这就需要Internet 上有域名管理认证机构进行统一管理。
    • 如果你的公司在互联网上有一组服务器(邮件服务器、FTP 服务器、Web 服务器等),你需要为你的公司先申请一个域名,也就是向管理认证机构注册一个域名。
    • 域名的注册遵循先申请先注册为原则,管理认证机构要确保每一个域名的注册都是独一无二、不可重复的。

9.1.2 域名的结构

  1. 一个域名下可以有多个主机,域名全球唯一

    • 主机名+ 域名肯定也是全球唯一的,主机名+ 域名称为完全限定域名(FQDN )
  2. FQDN 是Fully Qualified Domain Name 的缩写, 含义是完整的域名。

    • 例如,一台机器主机名(hostname )是www, 域名后缀(domain )是51cto.com, 那么该主机的FQDN 应该是www.51cto.com.。

    image-20210510203938233

  3. 域名的层次结构

    image-20210510204010128

  4. 企业或个人申请了域名后,可以在该域名下添加多个主机名,也可以根据需要创建子域名,子域名下面,亦可以有多个主机名,

    image-20210510204044999

  5. 所有域名都是以 www 开始,不过我们在使用时,域名最后的 . 经常被省去,如图所示,在命令提示符下ping www.91xueit.com.ping www.91xueit.com 是一样的。

    image-20210510204112736

9.1.3Internet 中的域名服务器

  • 当我们通过域名访问网站或点击网页中的超链接跳转到其他网站,计算机需要将域名解析成IP 地址才能访问这些网站。DNS服 服务器负责域名解析,因此你必须配置计算机使用哪些 些DNS 服务器进行域名解析。

    image-20210510204222670

  • DNS服务器的层次

    image-20210510204251491

9.1.4 域名解析过程

  • 域名解析过程

    image-20210510204315593

    image-20210510204324204

9.1.5 实战1 :搭建企业内网的DNS 服务

  • 搭建内网DNS服务器解析内网服务器域名

    image-20210510204352018

  • 查看DNS服务器缓存

    image-20210522210056719

    image-20210522210013363

  • DNS服务器上创建正向查找区(域名解析到IP地址)

    image-20210522210255447

    image-20210522210333492

    • 重复添加主机解析到不同ip实现负载均衡

    image-20210522210752906

    • 解析到别名

    image-20210522210805742

    image-20210522210841932

    • 解析DNS到邮件服务器

    image-20210522212057215

    • 屏蔽域名

      内网DNS服务器权威解析为空

    image-20210522213812700

    • 屏蔽所有域名( . 自己当根服务器)

    image-20210522214018882

    image-20210522214030569

  • 反向查找区(IP地址解析到域名)

    image-20210522212320264

    image-20210522212340046

    image-20210522212424091

    • 建立反向查找区域

    image-20210522213251762

    image-20210522213316339

    image-20210522213333802

    image-20210522213355714

9.1.6 实战2 :测试域名解析

  • 使用ipconfig /displaydns 显示本地缓存的域名解析结果 。
  • 使用ipconfig /flushdns 清空缓存的结果 。
  • 使用nslookup 命令测试域名解析,在DNS 服务器查看缓存的结果。

image-20210522142108107

9.1.7 实战3 :抓包分析域名解析的过程

image-20210510204507578

  • DNS解析的最终结果

image-20210510204519123

9.2 动态主机配置协议DHCP

9.2.1 静态地址和动态地址应用场景

  • 使用静态地址的情况:
    • IP 地址不经常更改的设备就使用静态地址。比如企业中服务器会单独在一个网段,很少更改IP 地址或移动到到其他网段,这些服务器通常使用静态地址,使用静态地址还方便企业员工使用地址访问这些服务器。比如学校机房,都是台式机,很少移动,这些计算机最好也使用静态地址 。
  • 使用动态地址的情况:
  • 网络中的计算机不固定,就应该使用动态地址。
  • 无线设备最好也使用动态地址。
  • ADSL 拨号上网通常也是使用自动获得IP 地址。

9.2.2DHCP 地址租约

  • 地址以租约的形式提供给客户端

    image-20210510204652662

9.2.3DHCP 租约生成过程

  • DHCP 客户端会在以下所列举的几种情况下,从DHCP 服务器获取一个新的IP 地址。
    • 该客户端计算机是第一次从DHCP 服务器获取IP 地址。
    • 该客户端计算机原先所租用的IP 地址已经被DHCP 服务器收回,而且已经又租给其他计算机了,因此该客户端需要重新从DHCP 服务器租用一个新的IP 地址。
    • 该客户端自己释放原先所租用的IP 地址,并要求租用一个新的IP地 地址。
    • 客户端计算机更换了网卡。
    • 客户端计算机转移到另一个网段。
  1. DHCP DISCOVER DHCP 客户端会先送出 DHCPDISCOVER 的广播信息到网络,以便寻找一台能够提供IP 地址的DHCP 服务器。

  2. DHCP OFFER 当网络中的 DHCP 服务器收到DHCP 客户端的DHCP DISCOVER 信息后就会从IP 地址池中,挑选一个尚未出租的IP 地址,然后利用广播的方式传送给DHCP 客户端。

  3. DHCP REQUEST 当DHCP 客户端挑选好第一个收到的DHCPOFFER 信息后,它就利用播的方式,响应一个DHCPREQUEST 信息给DHCP 服务器。

  4. DHCP ACK DHCP 服务器收到DHCP 客户端要求IP 地址的DHCPREQUEST 信息后,会利用广播的方式送出DHCPACK 确认信息给DHCP 客户端。

    image-20210510204806959

9.2.4DHCP 地址租约更新

  1. 当租约时间过去一半时,客户机向DHCP 服务器发送一个请求,请求更新和延长当前租约。客户机直接向DHCP 服务器发请求,最多可重发三次,分别在4 、8 和16s 时。
  2. 如果某台服务器应答一个DHCP Offer 消息,以更新客户机的当前租约,客户机就用服务器提供的信息更新租约并继续工作。
  3. 如果租约终止而且没有连接到服务器,客户机必须立即停止使用其租约IP 地址。然后,客户机执行与它初始启动期间相同的过程来获得新的IP 地址租约。生成169.254.0.0网段地址
  • 更新方法

    1. 方法一:自动更新
      • DHCP 服务自动进行租约的更新,也就是前面部分描述的租约更新的过程,当租约期达到租约期限50 %时,DHCP 客户端将自动开始尝试续租该租约。
      • 每次DHCP 客户端重新启动的时候也将尝试续租该租约。为了续租其租约,DHCP客户端为它提供租约的DHCP 服务器发出一个DHCPREQUEST 请求数据包。
      • 如果该DHCP 服务器可用,它将续租该租约并向DHCP 客户端提供一个包含新的租约期和任何需要更新的配置参数值的DHCPACK 数据包。
      • 当客户端收到该确认数据包后更新自己的配置。如果DHCP 服务器不可用,客户端将继续使用现有的配置。
      • 如果DHCP 服务器不可用,当租约期达到租约期限75 %时,DHCP 客户端将发送广播寻找可用的 DHCP 服务器。
    2. 方法二:手动更新
      • 如果需要立即更新DHCP 配置信息,可以手工对IP 地址租约进行续租操作,
        • 例如:如果我们希望DHCP 客户端立即从DHCP 服务器上得到一台新安装的路由器的地址,只需简单地在客户端做续租操作就可以了。
      • 直接在客户机上的命令提示符下,执行命令:Ipconfig /renew

9.2.5 实战1 :安装和配置DHCP 服务

  • 单网段环境下安装DHCP服务器,网络环境如图所示,配置DHCP 服务器给本网段计算机分配IP地址。
    • 将演示如何配置DHCP 作用域,查看DHCP客户端记录的租约和DHCP 服务器记录的租约,在DHCP 服务器上使用抓包工具捕获生成租约、更新租约、释放租约的数据包。

image-20210510205042194

  • 安装DHCP服务

    image-20210522224332964

    image-20210522224414665

    image-20210522224524541

    image-20210522224544788

    image-20210522224606267

9.2.6 实战2 :查看 刷新 释放租约

  • 唯一ID 即 MAC 地址

    image-20210522224746259

  • 获DHCP 客户端请求地址的产生的数据包 。

image-20210510205110529

  • ipconfig /all 可以 查看地址 租约。
  • ipconfig /release 能够释放租约 。
  • ipconfig /renew 更新租约 。

image-20210510205153792

image-20210510205200576

9.2.7 实战3 :跨网段分配IP

image-20210510205213758

  • 需要在路由器上为VMNet8 和VMNet6 启用DHCP

    Router (config )#interface fastEthernet 0/0
    Router (config-if )#ip helper-address 192.168.10.20
    Router (config-if )#exit
    Router (config )#interface fastEthernet 0/1
    Router (config-if )#ip helper-address 192.168.10.20
  • 在接口模式下输入ip helper-address 192.168.10.20 ,就是告诉路由器,该接口如果收到DHCP Discover 广播,就由该接口产生一个DHCP 请求包,目标地址是192.168.10.20, 源地址是收到该广播包的接口地址。DHCP 服务器收到这样的一个DHCP Discover ,就知道这是来自哪个网段的请求,就会从相应的作用域选择一个地址提供。

9.3 Telnet 协议

  • TELNET 是一个简单的远程终端协议,它也是因特网的正式标准。用户使用telnet 客户端就可以连接到远程运行Telnet 服务的设备(可以是网络设备比如路由器、交换机,也可以是操作系统,比如 如Windows 或Linux ),进行远程管理。
  • TELNET 能将用户的键盘指令传到远地主机,同时也能将远地主机的输出通过TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。因此,TELNET 又称为终端仿真协议。
  • TELNET 并不复杂,以前应用得很多。现在由于操作系统( (Windows 和Linux )功能越来越强,用户己较少使用TELNET 了。不过配置Linux 服务器和网络设备还是需要TELNET 来实现远程管理和配置

9.3.1Telnet协议工作方式

  1. TELNET 也使用客户端- 服务端方式。在本地系统运行TELNET 客户进程,而在远地主机则运行TELNET 服务器进程。服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接。
  2. TELNET 能够适应许多计算机和操作系统的差异。例如,对于文本中一行的结束,有的系统使用ASCII 码的回车(CR ),有的系统使用换行(LF) 。 还有的系统使用两个字符,回车- 换行(CR-LF)。又如,在中断一个程序时,许多系统使用Control-C ,但也有系统使用ESC 按键。
  3. TELNET 定义了数据和命令应怎样通过网络。这些定义就是所谓的网络虚拟终端NVT (Network Virtual Terminal ),还有的系统使用两个字符,回车- 换行(CR-LF)。

image-20210510205454366

9.3.2实战:telnet管理Windows系统

  • 开启telnet 服务
  • 在客户端telnet 服务器

image-20210510205550883

image-20210510205557769

9.3.3实战:telnet管理网络设备

  • 在R1 路由器上配置telnet 虚拟接口,设置telnet 密码和enable 密码。
Router#config t -- 进入全局配置模式
Enter configuration commands, one per line. End with CNTL/Z.
Router (config )#line vty 0 ? -- 查看telnet 虚拟接口数量
<1-871> Last Line number
<cr>
Router (config )#line vty 0 871 -- 进入虚拟接口配置模式
Router (config-line )#password 91xueit -- 设置telnet 连接密码
Router (config-line )#login -- 必须登录才能telnet 连接
Router (config-line )#exit -- 退出telnet 虚拟接口
Router (config )#enable password 51cto -- 设置enabled 密码
Router (config )#exit

9.4 远程桌面协议(RDP)

  • 现在Windows 操作系统很少使用telnet 进行远程管理了,更多是使用远程桌面进行远程管理。
  • Windows 系统启用远程桌面,客户端使用远程桌面客户端(mstsc )进行连接。它们之间使用 用RDP 协议进行通信,RDP 协议默认使用TCP 的3389 端口。
    • WindowsXP、 Windows7、 Windows8和 Windows10是单用户操作系统,同时只能有一个用户使用程用户连接过来,当前用户就锁定了。
    • Windows server2003、 Windows server2008、 Windows server2012 是多用户操作系统,远程桌面连接过来并不影响当前用户,可以多个账户同时登录服务器。

image-20210510205716307

9.5 超级文本传输协议HTTP

9.5.1 创建网页

  • HTTP 协议是超级文本传输协议,先看看什么是超级文本。
    • 一个网站通常是由一组网页组成,其中一个网页是首页,通过首页的超链接可以访问到该网站的其他网页,超链接也可以链接到其他网站。

image-20210510210615897

  • HTML文件结构
    • HTML 文件均以<html> 标记开始,以</html> 标记结束。
    • <head>...</head> 标记之间的内容用于描述页面的头部信息,如页面的标题、作者摘要、关键词、版权、自动刷新等信息。
    • <body>...</body> 标记之间的内容为页面的主体内容。
    • HTML 文件的整体结构及对应的预览效果如图所示。

image-20210510210706391

9.5.2 统一资源定位符URL

  • **统一资源定位符URL (Uniform Resoure Locator )**是用来表示从因特网上得到的资源位置和访问这些资源的方法。URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性。

  • 统一资源标识符(Uniform Resource Identifier,URI)是一个用于标识某一互联网资源名称的字符串。

    • img
  • URL 是与因特网相连的机器上的任何可访问对象的一个指针。由于访问不同对象所使用的协议不同,所以URL 还指出读取某个对象时所使用的协议。URL 的一般形式由以下四个部分组成:

    < 协议>://< 主机>:< 端口>/< 路径>

  • 下面是使用得最多的两种URL

    1. HTTP 的URL 的一般格式是:

      • http://< 主机>:< 端口>/< 路径>

      • 如果HTTP 使用的是默认端口号是80 ,通常可省略。若再省略文件的<路径>项,则URL 就指到该网站的根目录下的主页(homepage )。

      • 更复杂一点的URL 是指向网站第二级或第三级目录的网页。

      • http://edu.51cto.com/member/id-2_1.html

    2. FTP 的URL 的一般格式:

      • ftp:// < 主机>:< 端口>/< 路径>
      • 比如北京邮电FTP 服务器,ftp://ftp.bupt.edu.cn
        • FTP 的 URL 中还可以包括登录FTP 服务器的账户和密码
        • 比如ftp://stargate:sg1@61.155.39.141:9921 ,其中登录名为stargate ,密码为sg1 ,FTP 服务器 IP 地址61.155.39.141 ,端口为 9921

9.5.3 绝对路径和相对路径

  • 在Internet 上访问资源时使用URL ,网页中的超级链接指向其他网站的资源时也需要使用URL ,网页中的超链接如果指向的同一个网站下的其他网页,就可以使用相对路径或根路径。在网页中添加超级链接需要搞明白使用绝对路径、相对路径还是根路径,需要确定当前文档同站点根目录之间的相对路径关系。链接可以分为以下3 种:
    1. 绝对路径,如http://www.webjx.com
    2. 相对路径,如news/default.htm
    3. 根路径,如/website/news/default.htm

9.5.4 创建Web 站点

  • 将网页通过网站发布出去,网络中的用户才能访问。IIS 、Apache 、Tomcat 都可以搭建Web 服务器,IIS服 服务是Windows 操作系统的一个组件,安装后就可以创建Web 站点,将编辑好的网页发布出去。
  • 在WindowsServer2003上 上安装IIS 服务,创建Web站点。

image-20210510211045926

  • 网卡绑定多ip地址

image-20210523014951699

  • 通过域名区分同一台主机同端口的网站
    • 设置主机头
    • 设置本地DNS服务器,把域名(主机头)解析到指定ip

image-20210523015626379

9.5.5 HTTP 协议版本

  • 设计HTTP 最初的目的是为了提供一种发布和接收HTML 页面的方法。HTTP 协议有三个版本HTTP/0.9、HTTP/1.0 、HTTP/1.1 ,HTTP2.0 目前HTTP/1.0 和1.1 被广泛应用。
  • HTTP 1.0 与HTTP 1.1的比较:
    • 一个WEB 站点每天可能要接收到上百万的用户请求,为了提高系统的效率,HTTP 1.0 规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP 连接,服务器完成请求处理后立即断开TCP 连接,服务器不跟踪每个客户也不记录过去的请求 。

image-20210510211137414

  • HTTP 1.1支持持续连接

    • 为了克服HTTP 1.0的这个缺陷, HTTP 1.1支持持续连接,持续连接就是Web 服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。

      image-20210510211226108

  • HTTP/1.1协议的持续连接有两种工作方式

    image-20210510211246513

9.5.6 HTTP 请求报文和响应报文

  • HTTP 有两类报文:
    1. 请求报文- 从客户端向服务器发送请求报文。
    2. 响应报文-从服务器到客户端的应答。

image-20210510211327973

  • HTTP请求报文由三个部分组成

    • 由于HTTP 是面向文本的(text-oriented ),因此在报文中的每一个字段都是一些ASCII 码串,因而各个字段的长度都是不确定的。
    • HTTP 请求报文由三个部分组成。可以看出,这两种报文格式的区别就是开始行不同。
      1. 开始行,用于区分是请求报文还是响应报文。在请求报文中的开始行叫做请求行(Request-Line ),而在响应报文中的开始行叫做状态行(status-Line )。在开始行的三个字段之间都以空格分隔开,最后的“CR ”和“LF ”分别代表“回车”和“换行”。
      2. 首部行,用来说明浏览器、服务器或报文主体的一些信息。首部可以有好几行,但也可以不使用。在每一个首部行中都有首部字段名和它的值,每一行在结束的地方都要有“回车”和“换行”。整个首部行结束时,还有一空行将首部行和后面的实体主体分开。
      3. 实体主体(entity body ),在请求报文中一般都不用这个字段,而在响应报文中也可能没有这个字段。
  • HTTP请求报文特点和方法

    • 先介绍HTTP 请求报文最主要的一些主要特点。请求报文的第一行“请求行”只有三个内容,即方法,请求资源的URL ,以及HTTP 的版本。
    • HTTP/1.1 协议中共定义了八种方法(有时也叫“动作”)来表明Request-URL指 指定的资源的不同操作方式:
      • GET :请求获取Request-URL 所标识的资源。在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET 方法向服务器请求网页
      • POST :在Request-URL 所标识的资源后附加新的数据。要求被请求服务器接受附在请求后面的数据,常用于提交表单。比如向服务器提交信息、发帖、登录。
      • HEAD :请求获取由Request-URL 所标识的资源的响应消息报头。
      • PUT :请求服务器存储一个资源,并用Request-URL 作为其标识。
      • DELETE :请求服务器删除Request-URL 所标识的资源。
      • TRACE :请求服务器回送收到的请求信息,主要用于测试或诊断。
      • CONNECT :用于代理服务器。
      • OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求。

9.5.7 HTTP 响应报文:

  • 状态码(Status-Code )都是三位数字的,分为5 大类共33 种,例如:
    • lxx 表示通知信息的,如请求收到了或正在进行处理。
    • 2xx 表示成功,如接受或知道了。
    • 3xx 表示重定向,如要完成请求还必须采取进一步的行动。
    • 4xx 表示客户端错误,如请求中有错误的语法或不能完成。
    • 5xx 表示服务器的差错,如服务器失效无法完成请求。
  • 下面三种状态行在响应报文中是经常见到的。
    • HTTP/1.1 200 Success (成功)
    • HTTP/1.1 202 Accepted (接受)
    • HTTP/1.1 400 Bad Request (错误的请求)
    • HTTP/1.1 404 Not Found (找不到)

9.5.8 Cookie

  • Cookie 意为“甜饼”,是由W3C 组织提出,最早由Netscape社区发展的一种机制。目前Cookie 已经成为标准,所有的主流浏览器如IE 、Netscape 、Firefox 、Opera 等都支持Cookie。
  • 由于HTTP 是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie 的工作原理。
  • Cookie 可以导出导入。

9.5.9 通过代理服务器访问网站

  • 代理服务器英文全称是(Proxy Server ),其功能就是代理网络用户去取得网络信息。我们可以配置计算机通过Web 代理服务器访问Web站 站点,而不直接访问网站。

image-20210510211724324

9.6 文件传输协议FTP

  • **FTP 是File Transfer Protocol (文件传输协议)**的英文简称。用于Internet 上的控制文件的双向传输。基于不同的操作系统有不同的FTP 应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
    • 在FTP 的使用当中,用户经常遇到两个概念:“下载”(Download )和“上传”(Upload )。
    • “下载”文件就是从远程主机拷贝文件至自己的计算机上;
    • “上传”文件就是将文件从自己的计算机中拷贝至远程主机上。
    • 用Internet 语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
  • 简单地说,支持FTP 协议的服务器就是FTP 服务器。

9.6.1 FTP主动模式和被动模式

  • FTP 协议和其他协议不一样的地方就是客户端访问FTP 服务器需要建立两个TCP 连接,一个是用来传输FTP 命令,一个用来传输数据。

    • 在FTP 服务器上需要开放两个端口,一个命令端口(或称为控制端口)和一个数据端口。
    • 通常21 端口是命令端口,20 端口是数据端口。
    • 当混入主动/ 被动模式的概念时,数据端口就有可能不是20 了。
  • FTP主动模式

    image-20210510212008182

  • 被动模式FTP

    image-20210510212025191

9.6.2 安装和创建FTP站点

image-20210510212311574

9.6.3 访问FTP服务器

  • 被动模式

    image-20210510212333126

  • 更改成主动模式

    image-20210510212349768

9.6.4 FTP命令访问FTP服务器

C:\Documents and Settings\han>ftp
ftp> open 192.168.80.20 -- 连接到FTP 服务器
Connected to 192.168.80.20.
220 Microsoft FTP Service
User(192.168.80.20: (none )): administrator -- 输入账户
331 Password required for administrator.
Password: -- 输入密码,不回显输入,不能是空密码
230 User administrator logged in.
ftp> ls -- 列出FTP 服务器上的内容
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
01  地址分配方式OK.mp4 -- 一个MP4 文件
226 Transfer complete.
  • 隔离用户的FTP
    • 匿名登录 public分区
  • 多用户共享分区
    • 另外一个硬盘挂载到多用户文件夹

image-20210523144747347

image-20210523144806272

9.7 发送电子邮件的协议SMTP

9.7.1 电子邮件发送和接收过程

发送电子邮件使用SMTP

接收电子邮件使用 POP3 Imap Http

image-20210510212513682

9.7.2 电子邮件信息格式

image-20210510212527713

9.7.3 SMTP 协议

  • SMTP 规定了14条命令和21 种应答信息。每条命令用4 个字母组成,而每一种应答息一般只有一行信息,由一个3位数字的代码开始,后面附上(也可不附上)很简单的文字说明。

image-20210510212603438

  • 使用nslookup查找某个域名的邮件服务器

    image-20210510212621588

  • 使用telnet发送一封电子邮件

    image-20210510212637805

9.7.4 POP3 协议和IMAP 协议

  • 邮局协议POP 是一个非常简单、功能有限的邮件读取协议。邮局协议POP 最初公布于1984 年[RFC 918] 。经过几次更新,现在使用的是1996 年的版本POP3[RFC1939] ,它已成为因特网的正式标准。大多数的ISP 都支持POP ,POP3 可简称为POP。
  • 另一个读取邮件的协议是网际报文存取协议IMAP ,它比POP3 复杂得多。IMAP 和POP 都按客户服务器方式工作,但它们有很大的差别。现在较新的版本是2003 年3 月修订的版本4 ,即IMAP4[RFC 3501] ,它目前还只是因特网的建议标准。

9.7.5 部署企业内部邮件服务器

  1. 第一种情况:在内网部署一个邮件服务器,实现内网员工之间用户相互发送接收邮件,向Internet 发送电子邮件,不需要接收来自Internet 的邮件。

    • 这种情况,内网的邮箱后缀可以随便指定,不用考虑和Internet上 上的域名是否冲突的问题,企业在内网部署了一个邮件服务器,邮箱后缀为abc.com ,内网的计算机使用域名mail.abc.com 访问内网邮件服务器,因此在内网部署一个DNS 服务器,创建abc.com 正向查找区,添加主机记录mail ,添加邮件交换记录MX ,指向mail.abc.com。
  2. 第二种情况:如图所示,在内网部署一个能够向Internet 发送邮件,也能够接收来自Internet 的邮件的服务器。

    • 要想让内网的邮件服务器收到来自Internet 的邮件,需要满足两个条件:
      1. 第一、需要企业在Internet 上注册一个域名(比如是abc.com ),添加邮件交换记录(MX 记录),指向企业的公网地址。
      2. 第二、在企业具有公网地址的网络设备上做端口映射,将TCP 的25端口映射到内网的SMTP 服务器。这样发给企业公网地址的邮件便能到达内网SMTP 服务器。

    image-20210510212818361

9.8 接收电子邮件的协议POP3 和IMAP

  • 在内网部署邮件服务器向Internet发送邮件

image-20210510212846168

9.8.1 安装邮件服务器

  • 安装POP3 和SMTP

image-20210510212923059

image-20210510212934237

9.8.2 在DNS服务器上添加MX记录

  • 要想让内网中的计算机通过DNS 服务器解析到abc.com 邮件服务器,需要在DNS 服务器上的abc.com 区域添加邮件交换记录(MX 记录)。

    image-20210510213007518

9.8.3 为用户创建邮箱

image-20210510213027280

image-20210510213033719

9.8.4 配置SMTP服务允许向Internet发送电子邮件

  • 在 在WindowsServer2003 上安装了SMTP 服务,默认情况下,是不允许向Internet 发送电子邮件的,需要配置SMTP 服务器,指定可以向远程哪些域名转发电子邮件。

image-20210510213106338

image-20210510213114499

9.8.5 配置邮件客户端连接邮件服务器

image-20210510213135656

9.8.6 向Internet发送电子邮件

image-20210510213207908

  • 发送电子邮件的数据包

image-20210510213229065

9.9 总结

  • 通本章给大家介绍了几个常见的应用层协议,我们能够的到什么结论呢?
    • 每个应用层协议都是为了解决特定问题、实现特定功能。
      • 比如HTTP协 协议为了让了浏览器请求网页、Web 服务器给客户端返回网页,DNS 协议为了实现域名解析,FTP 协议为了实现文件上传下载,SMTP 协议为了实现发送电子邮件,POP3 为了实现让电子邮件客户端从服务器下载电子邮件,DHCP 协议为了DHCP 服务器给计算机分配IP 地址。
    • 应用层协议就是为了让客户端和服务器端能够交换信息提前定义好一些规范。
      • 比如客户端需要向服务器发送哪些操作请求(比如HTTP 协议定义的访问网站的GET 、POST 等方法,SMTP 协议定义的发送邮件的命令HELO 、RCPT TO 等),服务器向客户端发送哪些响应(比如网站响应状态代码,SMTP 服务器给SMTP 客户端返回的状态代码,客户端要能够明白代码代表的意思)。
  • 咱们在第一章,讲到协议三要素,语法、语义和同步。那时你可能不好理解这是什么意思,学完本章再来理解协议三要素。
    • 请求报文和响应报文格式就是协议的语法。
    • 报文中的每个字段不同的值的所代表的意义就是协议的语义。
    • 客户端和服务器交互顺序(比如命令执行的顺序)就是协议的同步。

第10章 网络安全

5小时34分钟18节

10.1 网络安全问题概述

10.1.1 网络安全介绍 14:34

10.1.2 网络安全4个威胁 20:34

  • 计算机网络上的通信面临以下的四种威胁:

    1. 截获一—从网络上窃听他人的通信内容

      • Cain:arp欺骗

      image-20210523213839656

      • 网络执法官
    2. 中断一一有意中断他人在网络上的通信

      • 分布式拒绝服务攻击 DDOS

      image-20210523215714711

      • arp欺骗
    3. 篡改一一故意篡改网络上传送的报文

      image-20210523214611277

    4. 伪造一一伪造信息在网络上传送

      • 改IP
  • 截获信息的攻击称为被动攻击,而更改信息和拒绝用户使用资源的攻击称为主动攻击

image-20210523214123256

10.1.3 篡改和伪造 22:59

10.1.4 病毒和木马 22:25

  1. 计算机病毒:会“传染”其他程序的程序,“传染”是通过修改其他程序来把自身或其变种复制进去完成的。
  2. 计算机蠕虫:通过网络的通信功能将自身从个结点发送到另一个结点并启动运行的程序
  3. 特洛伊木马程序:它执行的功能超出所声称的功能。
  4. 逻辑炸弹:一种当运行环境满足某种特定条件时执行其他特殊功能的程序

image-20210523220730127

10.2 两类密码体制

10.2.1 对称加密 11:13

  • 对称加密

    • 优点:效率高
    • 缺点:秘钥维护麻烦 ,缺点秘钥不适合在网上传输
    • 加密算法 加密秘钥
  • 数据加密标准DES

    • 数据加密标准DES属于常规密钥密码体制,是一种分组密码。 在加密前,先对整个明文进行分组。每一个组长为64位。 然后对每一个64位二进制数据进行加密处理,产生一组64位密文数据最后将各组密文串接起来,即得出整个的密文。 使用的密钥为64位(实际密钥长度为56位,有8位用于奇偶校验)。
  • DES的保密性

    • DES的保密性仅取决于对密钥的保密,而算法是公开的。尽管人们在破译DES方面取得了许多进展,但至今仍未能找到比穷举搜索密钥更有效的方法。
    • DES是世界上第一个公认的实用密码算法标准,它曾对密码学的发展做出了重大贡献。
    • 目前较为严重的问题是DES的密钥的长度现在已经设计出来搜索DES密钥的专用芯片。
    • DES算法公开取决于密钥长度56位密钥破解需要3.5或21分钟128位密钥破解需要$5.4*10^{18}$次方年

10.2.2 非对称加密

  • 非对称加密
    • 加密秘钥和解密秘钥是不同密钥对,公钥和私钥
    • 公钥加密 私钥解密
    • 私钥加密 公钥解密
  • 效率提高:非对称加密对称加密密钥,使用对称加密文件。

10.3 数字签名

10.3.1 数字签名 28:41

  • 数字签名:防止抵赖,保证不被更改
    1. 原文
    2. 单向散列函数生成摘要
    3. 私钥加密摘要

10.3.2 证书颁发机构 14:26

  • 证书颁发机构作用
    • 为全业和用户颁发数字证书
    • 确认这些企业和个人的身份
    • 发布证书吊销列表
    • 企业和个人信任证书颁发机构

10.3.3 安装CA并申请证书和邮箱 26:50

操作系统注册用户

image-20210523225658240

image-20210523225713751

image-20210523225745791

image-20210523225833796

image-20210523225934197

image-20210523225955328

image-20210523230100602

image-20210523230129117

  • 颁发证书

image-20210523230240236

  • 安装证书

image-20210523230324991

image-20210523230349818

10.3.4 发送签名加密电子邮件 20:50

  • 邮箱添加证书

image-20210523230855088

  • 发送签名的邮件

image-20210523231004388

  • 查看签名的邮件

image-20210523231358928

  • wang下载证书

image-20210523231435977

  • wang发送加密邮件
    • 公钥加密

image-20210523231609384

  • 查看加密邮件
    • 私钥解密

image-20210523231808035

  • wang也可以申请证书,发签名+加密邮件

image-20210523231946904

  • 数字证书导出备份

    • 导出私钥
    • 密码
  • 证书吊销

    image-20210523232226808

    image-20210523232247933

    image-20210523232345018

    image-20210523232418690

10.4 因特网使用的安全协议

10.4.1 安全套接字SSL 19:10

传输层安全性协议(英语:Transport Layer Security,缩写:TLS)及其前身安全套接层(英语:Secure Sockets Layer,缩写:SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。

image-20210524230812534

  • HTTPS:使用安全套接字
    • TCP,443
  • SSL 证书安装在服务器上,但浏览器上会显示可视提示,告知用户其受到 SSL 的保护。首先,如果网站上存在 SSL,用户可以看到网站地址以 https:// 开头,而不是以 http:// 开头(多出来的“s”代表“secure”,安全)。根据证书为企业提供的验证等级,安全连接会用挂锁图标或绿色的地址栏标志表示。
  • 传输层安全 (TLS) 是 SSL 的继承协议。TLS 是 SSL 的升级版。其工作方式与 SSL 极为相似,都是通过加密来保护数据和信息的传输。尽管 SSL 的应用仍然非常广泛,在业内这两个术语通常可以互换使用。当您购买DigiCert的“SSL”证书时,您当然可以配合使用 SSL 和 TLS 协议。
  • imaps tcp-993 pop3s tcp-995 smtp tcp-465 https tcp-443

SSL 提供的三个功能:

  1. SSL服务器鉴别:允许用户证实服务器的身份。具有SSL功能的浏览器维持一个表,上面有一些可信赖的**认证中心CA( Certificate authority)**和它们的公钥。
  2. 加密的SSL会话:客户和服务器交互的所有数据都在发送方加密,在接收方解密。
  3. SSL客户鉴别:允许服务器证实客户的身份。

10.4.2 配置网站使用SSL通信 17:23

  • 申请web服务器证书

    image-20210525000629957

    image-20210525000725189

  • 提交申请

image-20210525000818434

image-20210525000851537

image-20210525000919295

  • 证书服务器颁发证书

  • web服务器下载和安装证书

    image-20210525001024652

    image-20210525001037692

    image-20210525001059838

10.4.3 验证http不加密 08:06

10.4.4 验证https的安全性 18:32

10.4.5 使用抓包工具验证https安全性 06:27

10.4.6 网络层安全IPSec介绍 20:04

  • 安全关联 SA(Security Association)
    • 在使用AH或ESP之前,先要从源主机到目的主机建立一条网络层的逻辑连接。此逻辑连接叫做安全关联SA
    • IPsec就把传统的因特网无连接的网络层转换为具有逻辑连接的层。
    • SA(安全关联)是构成Psec的基础,是两个通信实体经协商(利用KE协议)建立起来的一种协定,它决定了用来保护数据分组安全的安全协议(AH协议或者ESP协议)、转码方式、密钥及密钥的有效存在时间等。
  • IPsec中最主要的协议
    1. 鉴别首部AH( Authentication Header)
      • AH鉴别源点和检査数据完整性,但不能保密。
    2. 封装安全有效载荷ESP( Encapsulation Security Payload)
      • ESP比AH复杂得多,它鉴别源点、检查数据完整性提供保密

image-20210525153709081

image-20210525153926286

10.4.7 搭建IPSec实验环境 10:28

image-20210525154305663

10.4.8 配置IPSec 29:09

  • AH

image-20210525155614323

image-20210525155539247

image-20210525155826756

image-20210525155854435

image-20210525155925394

image-20210525155948955

image-20210525160028603

  • ESP

image-20210525160433634

  • 不加密

image-20210525160545097

  • xp1配置IPSec

image-20210525160751047

image-20210525160822579

  • 查看和管理安全连接

image-20210525164724907

  • 抓包查看AH增加的协议头

image-20210525165149699

  • 抓包查看ESP增加的协议头
    • 加密了传输层内容

image-20210525165630826

10.5 链路加密与端到端加密

10.5. 数据链路层安全 22:39

image-20210525173116263

image-20210525173204599

image-20210525173324805

10.6 防火墙

  • 防火墙是由软件、硬件构成的系统,是一种特殊编程的路由器,用来在两个网络之间实施接入控制策略。接入控制策略是由使用防火墙的单位自行制订的,为的是可以最适合本单位的需要。
  • 防火墙内的网络称为**“可信赖的网络”( trusted network),而将外部的因特网称为“不可信赖的网络”(untrusted network)**。
  • 防火墙可用来解决内联网和外联网的安全问题。

image-20210525173650517

  • 防火墙技术一般分为两类
    1. 网络级防火墙
      • 用来防止整个网络出现外来非法的入侵。属于这类的有分组过滤和授权服务器。前者检查所有流入本网络的信息,然后拒绝不符合事先制订好的一套准则的数据,而后者则是检查用户的登录是否合法。
      • 基于数据包 源地址 目标地址 协议和端口 控制流量
    2. 应用级防火墙
      • 从应用程序来进行接入控制。通常使用应用网关或代理服务器来区分各种应用。
      • 例如,可以只允许通过访问万维网的应用,而阻止FTP应用的通过。
      • 数据包源地址 目标地址 协议 端口 用户名 时间段 内容 防病毒
  • 防火墙网络拓扑
    1. 边缘防火墙
    2. 三向外围网
    3. 背靠背防火墙
    4. 单一网卡防火墙

image-20210525173933231

image-20210525174006211

image-20210525174054797

image-20210525174153525

第11章 Internet上音频视频

1小时31分钟5节

  1. 流式( streaming)存储音频/视频一一边下载边播放。
  2. 流式实况音频/视频一一边录制边发送。
  3. 交互式音频/视频一一实时交互式通信

11-1 安装流媒体服务器 15:46

11-2 通过网站访问流媒体服务器上的视频 15:36

11.1 流媒体实现现场直播 26:26

image-20210525180958223

11.2 IP电话 17:15

  • 狭义的 IP电话
    • 就是指在 IP网络上打电话。所谓“IP网络”就是“使用 IP协议的分组交换网”的简称。
  • 广义的 IP电话
    • 则不仅仅是电话通信,而且还可以是在P网络上进行交互式多媒体实时通信(包括话音、视像等),甚至还包括即时传信 IM( instant Messaging)
  • 改进“尽最大努力交付”的服务
    • 服务质量QoS
      • 是服务性能的总效果,此效果决定了一个用户对服务的满意程度。
      • 因此在最简单的意义上,有服务质量的服务就是能够满足用户的应用需求的服务
    • 服务质量可用若干基本的性能指标来描述,包括可用性、差错率、响应时间、吞吐量、分组丢失率、连接建立时间、故障检测和改正时间等。
      • 服务提供者可向其用户保证某一种等级的服务质量

image-20210525204350679

  • QoS 方式
    1. 需要给不同性质的分组打上不同的标记
      • 当H1和H2的分组进入R1时,R1应能识别实时数据分组,并使这些分组以高优先级进入输出队列,而仅在队列有多余空间时才准许低优先级的FTP数据分组进入。
    2. 数据应当使路由器增加分类( classification)机制
      • 即路由器根据某些准则(例如,根据发送数据的地址)对输入分组进行分类,然后对不同类别的通信量给予不同的优先级
    3. 路由器应能将对数据流进行通信量的管制(policing),使该数据流不影响其他正常数据流在网络中通过。
      • 例如,可将H1的数据率限定为1Mb/s。R1不停地监视H1的数据率。只要其数据率超过规定的1Mb/s,R1就将其中的某些分组丢弃。
    4. 总数据率已超过了1.5Mb/s链路的带宽。比较合理的做法是让一个数据流通过1.5Mb/s的链路,而阻止另个数据流的通过。
      • 这就需要呼叫接纳( call admission)机制
      • 数据流要预先声明所需的服务质量,然后或者被准许进入网络,或者被拒绝进入网络。

11.3 Internet上的音频视频面临的问题 16:33

  • 音视频信息:
    • 占用带宽高,网速需恒定,延迟需低。
    • 缓存和延迟播放技术

第12章 无线网络

32分钟2节

12-1 创建临时网络 12:17

12.1 无线网络 20:20

  • 几种无线网络比较

    image-20210525211518452

  • 无线局域网的组成

    • 有固定基础设施的无线局域网

    image-20210525211751475

    • 基本服务集内的基站叫做接入点
    • 当网络管理员安装AP时,必须为该AP分配一个不超过32字节的服务集标识符SSID和一个信道。

第13章 IPv6

5小时48分钟22节

13.1 为什么需要IPv6

13.1.1 IPv6网络层协议

  • 从20世纪70年代开始,互联网技术就以超出人们想像的速度迅猛发展。
    • Internet迅速发展,互联网出现安全性不高、路由表过度膨胀,特别是IPV4地址的匾乏的现象。
    • 随着互联网的进一步发展特别是未来电子、电器设备和移动通信设备对IP地址的巨大需求,IPV4的约42亿个地址空间是根本无法满足要求的。
    • 有预测表明以目前 Internet的发展速度计算,所有 IPV4地址将在2012年分配完毕。这也是推动下一代互联网协议 IPv6 研究的主要动力
  • IPV4的不足主要体现在以下几个方面:
    1. 地址空间的不足在:
      • Internet发展的初期,人们认为网络地址是不可能分配完的,这就导致了对于网络地址分配时的随意性,其结果就是IP地址的利用率较低。
    2. 对现有路由技术的支持不够:
      • 由于历史的原因,今天的P地址空间的拓扑结构都只有两层或者三层,这在路由选择上来看是非常糟糕的。 各级路由器中路由表的数目过度增长,最终的结果是使路由器不堪重负, Internet的路由选择机制因此而崩溃。
    3. 无法提供多样的QoS:
      • PV4的设计时没有引入QoS这样的概念,在设计上的不足使得它很难相应地提供丰富的、灵活的QoS选项。

13.1.2 IPv6改进

  • 扩展的地址空间和结构化的路由层次
    • 地址长度由PV4的32位扩展到128位,全局单点地址采用支无分类域间路由的地址聚类机制,并且使自动配置地
  • 简化了报头格式
    • IPv6的基本报头只是IPv4报头长度的两倍,取消了对报头中可选项长度的严格限制,增加了灵活性。
  • 简单的管理
    • 概括起来就是即插即用,通过实现列的自动发现和自动配置功能,简化冈络节点的管理和维护。
  • 安全性
    • 在制定IPv6技术规范的同时,产生了 IPsec( IP Security),用于提供IP层的安全性。
  • QoS能力
    • 报头中的“标签”字段允许属于鉴别同一数据流的所有报文,因此路径上所有路由器可以鉴别一个流的所有报文,实现非默认的服务质量或实时的服务等特殊的处理。
  • 改进的多点寻址方案
    • 通过在组播地址中增加了“范围”字段,允许将组播的路由限定在正确的范围之内。
  • 定义了一种新的群通信地址方式 Anycast
    • 在点到多点的通信中,将报文传递到一组节点中的一个,从而允许在源点路由中允许节点控制传递路径。
  • 可移动性
    • IPv6协议设计的若干技术有利于移动计算的实现,包括:信宿选项头、路由选项头、自动配置等等。

13.2 IPv6地址体系

13.2.1 IPv6基本首部和扩展首部

image-20210525215746731

  • IPv6 Internet层的核心协议包括以下几种:
    1. IPv6取代IPv4,作为可路由协议,为数据包进行寻址、路由、分段和重组。
    2. ICMPv6,取代 ICMP,报告错误以帮助您诊断不成功的数据包传送。
    3. 邻居发现协议(ND)取代 ARP,它管理相邻 IPv6节点间的交互。
    4. 多播侦听器发现协议(MLD)取代 IGMP,它管理 IPv6多播组成员身份。

13.2.2 IPv6地址格式

  • IPv6 地址一共有 $2^{128}$ 个,这个地址数是足够每人拥有上千个 IP地址Pv6使

    • 用冒号将其分割成 8个16比特的数组,每个数组表示成 4位十六进制数。一般有四种文本表示形式
    1. 首选的格式

      128比特划分成8段,每段为16比特用十六进制表示,并使用冒号等间距分隔。例如: F00D:4598:7304:3210:FEDC:BA98:7654:32102

    2. 压缩格式

      在某些 IPv6的地址形式中,很可能地址包含了长串的“0”。为书方便,可以允许“0”压缩,即一连串的0可用一对冒号来取代。

      例如,以下地址:10800:0:0:8:8000200c:417A可以表示为: 1080::8:8000:200c:417A。 但要注意,为了避免出现地址表示的不清晰,一对冒号::在个地址中只能出现一次。

    3. 包含 IPv4的IPv6地址

      当涉及IPV4和IPv6的混合环境时,有时使用地址表示形式 x:x:x:x:x:x:d.d.d.d,这里六个“x'’分别代表地址中的用十六进制的一位数,四个“d’’分别代表地址中的8比特,用十进制表示。

      例如:0:0:0:0:0:0:218.129.100.10,或者以压缩形式表示218.129.100.10

    4. “地址/前缀长度”表示法

      表示形式是:IPV6地址/前缀长度。其中“前缀长度”是一个十进制数,表示该地址的前多少位是地址前缀。

      例如:F00D:4598:7304:3210:FEDc:BA98:7654:3210,其地址前缀是64位,就可以表示为:F00D459873043210:FEDC:BA98:76543210/64

  • IPv6的地址类型

    RFE2373中定义了三种IPv6地址类型:单播地址、多播地址、任播地址

    1. 单播地址(UNICAST)

      单播地址是点对点通信时使用的地址,此地址仅标识一个接口单播

      地址包含∶全球单播地址、未指定地址、环回地址等。一般的全球单播地址的格式如图所示。

      image-20210525221020277

      • 全球路由:根据 IsP来组织,用来分配给站点,是子网链路的集合。
      • 子网:站点内子网的标识符,由站点的管理员分层地构建。
      • 接口ID:用来标识链路上的接口,在同一子网内是唯一的。
    2. 链路本地地址

      • IPV6中有种地址类型叫做 rlink loca地址,该地址用于在同一网中的PV6计算机进行通信。
    3. 多播地址

      • 多播地址标识一组接口当数据报的目的地址是多播地址时,网络尽量将其发送到该组的所有接口上。多播地址以111111升开头。
    4. 任播地址( Anycast)

      • 任播地址标识一组接口,它与多播的区别在于发送数据报的方法。向任播地址发送的数据报并未被分发给组内的所有成员,而是发往该地址标识的“最近的”那个接口
  • IPv6中特殊的地址

    下面这些地址一定要记住,这是为特定使用目的而保留的。

    • 0:0:0:0:0:0:0:0等于::
      • 这是 IPv4中0.0.0.0的等价物,当正在使用有状态的地址配置时,典型情况下是主机的源地址。
    • 0:0:0:0:0:0:0:1等于::1
      • 这是 IPV4中127.0.0.1的等价物。
    • 0:0:0:0:0:0:192.168.100.1
      • 这是在 IPV6/IPV4混合网络环境中IPV4地址的表示式。
    • 2000::/3 全球单播地址范围。
      • 写成二进制,0010 0000 0000::3 要前三位是001就是全球单播地址。
    • FE80::/10
      • 链路本地单播地址范围。
    • FF00∷/8
      • 组播地址范围。
    • 3FFF:FFFF::/322001:0DB8::/32
      • 为示例和文档保留的地址。
    • 2002∷/16
      • 用于 IPV6到 IPv4的转换系统,这种结构允许 IP6包通过IPv4网络进行传输,而无需显式地配置隧道。

13.2.3 IPv6计算机地址配置方法

  • IPv6协议的一个突出特点是支持网络节点的地址自动配置,这极大地简化了网络管理者的工作。
    • 定要牢记,有状态自动配置与IPV4中使用的DHCP服务器配置十分相像。

13.3 IPv6地址配置方式

13.3.1 实战1:无状态IPv6地址自动配置

无状态路由器
Router config)#ipv6 unicast-routingu
Router(config-if)#ipv6 address 2001:13:1 /64
路由器配置
Router(config-if)#ipv6 nd manged-config-flag
Router(config-if)#ipv6 nd other-config-flag
  • 自动向路由器发送路由前缀请求
    • 配置lpv6地址的路由器接口收到 发送 路由通告
    • 获得网络部分+自己的MAC地址
    • 构造 Ipv6地址

13.3.2 实战2:有状态IPv6地址自动配置

  • 有状态 有DHCP服务器
    • 路由通告中M=1,向DHCP服务器请求IP地址
    • O=1 向DHCP服务器请求,其他设置:DNS服务器、搜索后缀等

13.3.3 使用接口物理地址构造IPv6地址接口ID

13.4 IPv6的静态路由和动态路由

13.4.1 实战3:配置IPv6静态路由

image-20210526152804896

查看接口的lpv6地址
RA#show ipv6 interface fastEthernet 0/0
查看lpv6路由表
RA#Show ipV6 route.
添加lv6路由表
RA( config)#ipv6 route2001:3:/642001:2:24
添加|P地址方法
RA(config-if)#ipV6 address 2001: 1: /64 eui-64.
RA(config-if)#ipv6 address 2001: 1: 1 /64

13.4.2 实战4:IPv6动态路由-RIPng

RA(config )#ipv6 router rip 1
RA(config)#interface fastEthernet 0/0.
RA(config-if) #ipv6 rip 1 enable.

13.4.3 实战5:配置EIGRPv6支持IPv6

RA(config)#ipv6 router eigrp 10
RA(config-rtr)#no shutdown
RA(config-rtr)#router-id 4.0.0. 1
RA(config-rtr)#exi-
RA(config)interface fastEthernet 0/0.
RA(config-if)#ipv6 eigrp 10.

13.4.4 实战6:配置OSPFv3支持IPv6

RA(config)#ipv6 router ospf 1
RA(config-rtr)#router-id 4.0.0. 1
RA(config-rtr)#exit.
RA(config)interface fastEthernet 0/0.
RA(config-if) #ipv6 ospf 1 area 0

13.5 IPv6和IPv4共存技术

13.5.1 双协议栈

image-20210526153904209

13.5.2 6to4隧道技术

image-20210526154126973

  • 6to4隧道配置

image-20210526160333947

13.5.3 ISATAP隧道

image-20210526161300116

  • ISATAP 隧道 IPv4和IPv6 配置

image-20210526161507006

R2 (config) #interface tunnel 1
R2(config-if)#ipv6 address 2001:3::64 eui-64
R2(config-if)#tunnel mode ipv6ip isatap
R2(config-if)#tunnel source 192.168.0.2
R2(config-if) #no ipv6 nd suppress-ra
R2(config- if)#no shutdown
R2 (config-if)#exi
  • 在 Windows7上配置 ISATAP隧道

image-20210526174513310

C: Windowssystem32>netsh
netsh>interface ipv6
netsh interface ipv6>isatap set router 192. 168.0.2
确定.
netsh interface ipv6>

image-20210526174147295

image-20210526174227261

image-20210526174255564

13.5.4 动态NAT-PT

image-20210526175058629

13.5.5 配置静态NAT-PT

image-20210526174712726

13.5.6 验证NAT-PT

RA(config)#interface fast 0/0.
RA(config-if)#ipv6 nat.
RA(config)#interface serial 1/0.
RA(config-if)#ipv6 nat.
RA(config)#ipv6 nat v4v6 source 10.0.1.122 2001:3:122
RA(config)#ipv6 nat v6v4 source 2001:2::2 10.0.2.2

13.5.7 动态NAT-PT配置

13.5.8 配置ISATAP路由器 为Windows指定ISATAP

image-20210526175509070

image-20210526175238910

附录:

win命令

netstat -aon|findstr "10010"
UDP127.0.0.1:10010*:*18308
tasklist|findstr "18308"
NVIDIA Web Helper.exe18308 Console1 14,544 K