2.第二天、第三天、第四天笔记

1.传输层:

  • 传输层是核心层

  • 传输层为分布在不同地理位置计算机的进程通信提供可靠的端-端连接数据传输服务

  • 作用:提供端口号,数据分段(受MTU限制 (MTU:最大传输单元,默认1500字节))

  • 端口号:

    • 作用:标识不同进程

    • 静态端口:1-1023,固定给网络上常见的某个协议使用

      • elnet:23,ftp:20/21,http:80
      • https:443,dns:53,dhcp:67/68
    • 动态端口:1024-65535,某些协议自动随机生成的端口

  • 数据传输单元:

  • 协议:TCP/UDP协议

2.网络层:

  • Internet协议--IP

  • 数据传输单元:

  • 与IP协议有关的网络层协议:

    • ARP:地址解析协议,通过对方的IP地址来获取对方的MAC地址
    • RARP反地址解析协议:已知本地的MAC,通过对端来获取本地的IP地址
    • ICMP网络控制报文协议:用来在网络设备间传递各种差错,控制,查询等信息,对于收集各种网络信息,诊断盒排除各种网络故障
    • IGMP网际组管理协议:是用于管理网络协议多播组成员的一种通信协议
  • IP报文内容:

    • MTU(最大传输单元,在以太网中,MTU值为46~1500字节(IP报文头+IP分片))

    • IP报文头部:

      • IP头部最小20字节,最大60字节
      • Version:版本号(4:IPv4,6:IPv6)
      • DS Field:服务类型
      • IP Options:IP的可选项
      • Time to Live:生存时间
      • Protocol:上一层所使用的协议
      • Header Checksum:校验盒(验证完整性)

2.第二天、第三天、第四天笔记_第1张图片

- IP分片:

    -   标识字段:作用相当于序号,假设给第一个分片的报文序号随机为X,则后续每个报文+1

    -   标志位:3bit,0;DF;MF

        -   DF代表该报文是否被分片,0代表分片;1代表不分片
        -   MF代表该报文是否为最后一片报文,0代表最后一片;1代表后面还有报文

    -   片偏移:((分片开始位置-0) / 8)

        -   表示一个相对位置

    -   例题:

        ```
        一个数据段,5000字节;MTU,1500字节
        分为了多个片,每一个报文片的标识字段,标志位和片偏移分别是多少
                  0   -   1479      1480 -
        标识字段:     X                 X+1
        标志位:   DF:0,MF:1       DF:0,MF:1
        片偏移:       0                  185
        
        
复制代码

3.TCP/UDP协议:

1.TCP传输控制协议

  • TCP是一个面向连接的、可靠的、基于字节流的传输层协议

  • 面向连接:通过TCP的三次握手建立端到端的虚链路

  • 可靠传输机制:

    1. 确认机制:每接收到一个数据段,都需要进行一次确认

    2. 重传机制:当一个数据段中的某个包丢失,发出者会重新发送这个报文

    3. 排序机制:传输一个数据段,被分为多个报文后;从不同路径传输,最终到达目的地的顺序会被打乱;所以需要重传排序,依靠TCP首部中的序列号字段

    4. 流控机制(滑动窗口机制):调节窗口大小来对流量进行控制的,接收方的数据处理有限

      • 窗口大小:指无需等待确认就可以连续发送数据的最大量
  • TCP分段:

    • 作用:用来代替IP分片,TCP分段后IP不能分片

    • MSS(最大传输段)=MTU(最大传输单元)-IP头部-TCP头部

    • 下图中个字段的意义和作用:

      • seq:序列号
      • ack:确认序列号
      • PST:重置连接
      • PSH:接收方应该尽快将这个报文交给应用层
      • URG:紧急指针(URG开启时,urgent point有效)
      • SYN=1:建立连接,FIN=1:断开连接,
      • window:滑动窗口长度
      • checksum:效验盒,效验有效

2.第二天、第三天、第四天笔记_第2张图片

  • 面向连接:

    • SYN=1:请求建立连接,FIN=1:请求断开连接,seq:序列号,ACK:确认,ack:确认序列号

    • 三次握手:

      1. 第一次握手:客户端向服务端发送报文,请求建立客户端到服务端的数据通道(SYN=1,seq=X)

      2. 第二次握手:服务端向客户端发送确认报文,确认数据通道,请求建立服务端到客户端的数据通道(SYN=1,ACK=1,seq=Y,ack=X+1)

      3. 第三次握手:客户端向服务端发送报文,确认通道(ACK=1,seq=X+1,ack=Y+1)

2.第二天、第三天、第四天笔记_第3张图片

- 四次挥手:

    0.  客户端 告诉 服务器端我要关闭连接(FIN=1,seq=u)

    0.  服务器端 响应 说 我知道了(ACK=1,seq=v,ack=u+1);取消客户端到服务端的数据通道

    0.  服务器端 说 我现在要关闭链接了(FIN=1,ACK=1,seq=w,ack=u+1)

    0.  客户端说 可以关闭了(ACK=1,seq=u+1,ack=w+1); 取消服务端到客户端的数据通道
复制代码

2.第二天、第三天、第四天笔记_第4张图片

2.UDP用户数据报协议,

  • UDP是一个面向无连接的传输层协议。

  • 仅完成传输层的基本工作(分段,提供端口号)

2.第二天、第三天、第四天笔记_第5张图片

3.TCP与UDP的区别:

  • TCP协议面向连接;而UDP是面向无连接
  • TCP协议可靠的;UDP是不可靠
  • TCP具备流控和拥塞控制;而UDP没有
  • TCP可以分段
  • TCP消耗资源多,速度慢;UDP消耗资源少,速度快

4.ICMP协议:

  • ICMP网络控制报文协议

  • 用来在网络设备间传递各种差错,控制,查询等信息,对于收集各种网络信息,诊断盒排除各种网络故障

2.第二天、第三天、第四天笔记_第6张图片

  • ping:检测网络联通性:

    -a(-S) 指定ping包中的源IP地址,如果不指定源IP地址,则采用出接口的IP地址作为报文源IP
    -c(-n/-t) 指定发送报文次数,缺省情况下是五次
    -h 指定TTL值,缺省为255
    复制代码
  • tracert---用于逐跳检测追踪报文的转发路径
    ```

1.华为模拟器:

1.操作模式:

  • 用户视图模式(第一级别模式,可以对设备进行所有的查看及测试):

    
    复制代码
  • 配置模式(第二级别模式,改名,设置密码等)

    [Huawei]
    复制代码
  • 专用配置模式(第三级别模式)

    [Huawei-?????]
    复制代码
  • 专用配置模式(第四级别模式)

    [Huawei-?????-?????]
    复制代码
  • 高级模式可以执行低级模式命令

2.用户视图配置命令:

  • 查看接口配置简介:

    display interface brief
    复制代码
    Interface                   PHY   Protocol InUti OutUti   inErrors  outErrors
    GigabitEthernet0/0/0        up    up          0%     0%          0          0
    # PHY(物理状态,通电即为up)
    #Protocol(协议,配置IP地址即为up)
    复制代码
  • 保存配置:

    save
    复制代码
  • 重启设备:

    reboot
    复制代码

3.配置模式:

  • 查看当前配置

    display current-configuration
    复制代码
  • 设置主机名

    # 如将[Huawei]改成[r1]
    sysname [name]
    复制代码
  • 设置时间和时区:

    clock datetime [YY:MM:TT]
    clock timezone [时区名称] add [YY:MM:TT]   # 更改时区
    复制代码
  • 查看时间和时区:

    display clock
    复制代码
  • 查看系统版本:

    display version
    复制代码
  • 查看路由表:

    display ip routing-table
    display ip routing-table protocol [协议类型]   # 只查看其中一种协议的路由表
    复制代码
  • 查看DHCP地址池:

    display ip pool
    复制代码
  • 查看DHCP获取报文情况

    display dhcp statistics 
    复制代码

4.接口配置命令:

  • 进入端口:

    interface ???Ethernet [端口号]
    复制代码
  • undo取消此命令:

    undo shutdown # 开启端口
    shutdown  # 关闭端口
    undo ip address [IP地址] [网路地址长度/子网掩码]
    复制代码
  • 配置端口IP地址和子网掩码或网络号长度

    ip address [IP地址] [网路地址长度/子网掩码]
    复制代码
  • 查看当前接口的所有配置

    display this
    复制代码

5.帮助命令:

  • ?:查看该模式或该单词后可以配置的命令及注解
  • Tab键:自动补全单词

6.命令级别:

参观级:0,监控级:1,配置级:2,管理级:3级以上
用户等级:0-15
复制代码

2.Telnet(用户):

  • telnet是基于TCP协议的,端口号23

  • 开启用户接口空间(先配置各接口IP地址):写在被登录的设备

    [Huawei]user-interface vty 0 4
    复制代码
  • 修改认证模式为AAA

    authentication-mode aaa
    复制代码
  • 进入AAA接口模式

    [Huawei]aaa
    复制代码
  • 创建本地用户及密码

    [Huawei-aaa]local-user huawei password cipher 123456
    复制代码
  • 修改huawei用户的权限等级

    [Huawei-aaa]local-user huawei privilege level 15
    复制代码
  • 修改huawei用户的服务类型为telnet

    [Huawei-aaa]local-user huawei service-type telnet
    复制代码
  • 测试:连接telnet服务器

    telnet 192.168.1.2
    Press CTRL_] to quit telnet mode
    Trying 192.168.1.2 ...
    Connected to 192.168.1.2 ...
    ​
    Login authentication
    ​
    Username:huawei
    Password:
    复制代码

3.DHCP服务:

  • 基本概念:

    • 动态主机配置协议

    • C/S架构:响应速度快

    • 基于UDP,67/68(68用于客户端,67、用于服务端)

    • 报文类型:八种

      1. DHCP discover:客户端用于寻找DHCP服务器
      2. DHCP offer:DHCP服务器回复客户端的DISCOVER报文,该报文携带了网络参数
      3. DHCP request:客户端请求配置确认或续租
      4. DHCP ack:服务器对request确认
      5. DHCP nak:服务器对reqeust拒绝
      6. DHCP release:客户端请求释放地址
      7. DHCP decline:客户端用于检测IP地址冲突后,发送给服务器的
      8. DHCP inform:当客户端获取IP报文后,使用哦个此报文获取其他配置信息
    • 工作过程:

      1. 客户机广播DHCP discover报文来发现当前网络中的DHCP服务器
      # 源IP地址:0.0.0.0,目的IP地址:255.255.255.255
      # 源MAC地址:他自己,目的IP地址:fffffff
      复制代码
      1. DHCP服务器发送DHCP offer报文,携带即将分配给客户机的IP地址和
      # 源IP地址:他自己IP地址,目的IP地址:分配的IP地址(华为),255.255.255.255(其他厂家)
      # 源MAC地址:他自己,目的IP地址:客户机MAC地址(华为),fffffff(其他厂家)
      复制代码
      1. 客户机接受此分配,广播DHCP request报文,向服务器请求使用该IP地址
      # 源IP地址0.0.0.0,目的IP地址:255.255.255.255
      # 源MAC地址:他自己,目的IP地址:fffffff
      复制代码
      1. DHCP服务器收到后,发送DHCP ack报文,告知客户机允许使用该IP地址
      # 源IP地址:他自己IP地址,目的IP地址:分配的IP地址(华为),255.255.255.255(其他厂家)
      # 源MAC地址:他自己,目的IP地址:客户机MAC地址(华为),fffffff(其他厂家)
      复制代码
      1. 客户机使用无故ARP来检测是否有人使用此IP地址,若没有人响应就使用。
    • DHCP租期:

      • 租期更新计时器:

        • 华为默认24小时:

        • 租期到达一半(12小时)

          1. PC发送一个DHCP request报文,是单播发送
          2. 若服务器回复ACK报文,则租期更新计时器刷新
          3. 若服务器回复MAK报文,PC等待下一个更新周期
      • 租期重绑计时器:

        • 当租期到达87.5%(21小时),此时PC进行第二次续租

        • PC发送DHCP Request,使用广播

          • 如果收到ACK报文,则刷新各类计时器,并绑定新的服务器
          • 如果收到NAK报文,则PC必须立刻停止使用现在使用的IP地址,然后重新申请IP地址
      • 租期失效计时器:

        • PC在租期内正常到期,服务器没有回复,PC才停止使用该IP地址,并发送DHCP release报文

          • PC重新进入DHCP工作流程,发送DHCP discover报文申请IP地址
        • PC主动放弃使用分配得的IP地址,此时发送DHCP release报文

    • 地址池:

      • 全局地址池:为所有连接到服务器的PC提供地址
      • 接口地址池:为连接到该接口
  • 先给路由器端口和服务器配置IP地址子网掩码

  • 全局地址池配置:

    • 开启DHCP服务(在配置模式下):

      dhcp enable
      复制代码
    • 创建名为...的全局地址池:

      ip pool [name]  # 一台设备上可以创建多个池塘,但一个池塘只能服务一个广播域
      复制代码
    • 配置IP地址池的子网地址和子网掩码

      network [IP网段] mask [子网掩码/网络地址长度] 
      复制代码
    • 配置默认网关:

      gateway-list [IP地址]
      复制代码
    • 配置DNS服务器IP地址:

      dns-list [IP地址1] [IP地址2]
      复制代码
    • 设置地址租约时间(可选,默认24小时):

      lease day [num] hour [num]
      复制代码
    • 排除IP地址:

      excluded-ip-address 192.168.1.253 192.168.1.253   # 将192.168.1.253排除在地址段外
      复制代码
    • 进入相对应的端口,启动dhcp服务

      dhcp select global
      复制代码
    • 在终端上设置IPv4设置为DHCP

  • 接口地址池配置:(了解)

    [Huawei]dhcp enable
    [Huawei-GigabitEthernet0/0/0]dhcp select interface //开启接口DHCP功能
    [Huawei-GigabitEthernet0/0/0]dhcp server dns-list 114.114.114.114
    [Huawei-GigabitEthernet0/0/0]dhcp server excluded-ip-address 192.168.1.10 192.168.1.253
    [Huawei-GigabitEthernet0/0/0]dhcp server static-bind ip-address 192.168.1.5 mac-address 5489-9842-3FA4
    复制代码

5.路由:

1.静态路由:

  • 查看路由表详情:

    目的地址/掩码         协议      优先级  开销值           下一条           接口
    Destination/Mask    Proto     Pre    Cost      Flags  NextHop         Interface
    127.0.0.0/8         Direct    0      0         D      127.0.0.1       InLoopBack0
    127.0.0.1/32        Direct    0      0         D      127.0.0.1       InLoopBack0
    复制代码
  • 若匹配上多条路由项,则按照 "最长掩码匹配规则" 进行选择

  • 路由的来源:

    • 直连路由:设备自动发现
    • 静态路由:手工配置
    • 动态路由:通过动态协议算法计算得出
  • 路由优先级:

    路由来源 缺省优先级(华为) 缺省优先级(思科)
    直连路由 0 0
    OSPF 10 110
    静态路由 60 100
    RIP 100 120
    BGP 255 255
    EIGRP 90
  • 如果时跳转到下一个路由器的下一个路由器的相连网段,下一跳路由器端口的IP地址写(下一个路由器)

  • 可以对多个网段进行聚合,减少路由表的条数

  • 配置了源路由到目标路由的静态路由,还需配置目标路由到源路由的静态路由

  • 配置:

    ip route-static [目标IP网段] [子网掩码/网络地址长度] [下一跳路由器端口的IP地址]
    复制代码
    ip route-static 172.16.1.0 24 GigabitEthernet 0/0/1 192.168.1.2   # 接口配置静态路由(了解)
    复制代码

2.路由扩展配置:

  1. 负载均衡(等价鲈鱼):当访问相同目标,具有多条开销相等路径时,可以让设备将流量拆分后延多条路径同时传输,起到带宽叠加的作用,减少单条链路数据传输压力

  2. 环同接口:创建后,可用于路由器测试TCP/IP协议组件是否能封装与解封;同时可用于实验环境中,模拟连接PC终端的用户接口,来减少实际设备成本需求。

    • 创建LoopBack虚拟接口(配置模式下):

      interface LoopBack [0~2147483647]
      复制代码
    • 设置虚拟接口IP地址

      ip address 1.1.1.1 24
      复制代码
    • 创建环回接口可以在本设备上ping通本设备上的所有端口,相当于本设备连接了一个虚拟终端PC

  3. 手工汇总:当路由器需要配置多条路由项时,可以选择将其进行子网汇总,减少路由表项数量,降低CPU运算负载,提高转发效率

  4. 路由黑洞:在手工汇总时,可能会包含一些网络中实际不存在的网段,造成流量有去无回的现象,浪费了链路资源

  5. 缺省路由:一条不限定目标的路由,代表所有的网段;路由器查表时在查询完本地所有的直连,静态,动态路由后若依然没有可达路径,才使用该条目。

    • 设置缺省路由:

      ip route-static 0.0.0.0 0.0.0.0 <下一跳路由器的IP地址>
      复制代码
  6. 空接口:当路由黑洞与缺省路由相遇时,将必然出现环路;在黑洞路由器上,配置一条到达汇总网段的空接口路由,空接口及丢弃流量,来避免环路的产生。

    ip route-static [汇总后的IP地址] [子网掩码/网络地址长度] NULL 0
    复制代码
  7. 浮动静态:访问相同目标,具有多条路径时,将加载优先级最小的路径到表中;若优先级相同将同时加入表中(负载均衡);因此修改部分路由的优先级,可以实现静态备份的效果。

    • 设置静态路由优先级:(越小优先级越大)

      ip route-static [目标IP地址] [子网掩码/网络地址长度] preference [num]
      复制代码
  8. 环路:当两个路由器上的路由表,分别存在一条到达同一网段且下一条是另一台路由器时,将形成环路

    • 占用大量带宽,影响正常数据包转发
    • 损耗路由器资源,当路由器资源消耗过大时,设备会宕机
    • 解决方式---TTL

3.动态路由

  • 静态协议的优缺点及结论:

    • 缺点:

      1. 中大型网络配置量过大
      2. 不能基于拓扑的变化而实时变化
    • 优点:

      1. 不会额外占用物理资源
      2. 安全问题
      3. 计算路径问题
    • 结论:小型网络建议使用静态路由;中大型较复杂网络,建议使用动态

  • 动态路由协议:

    • 概念:路由器间沟通,协商,计算自动生成路由表;在拓扑结构发生变化后,可以实时收敛(重新计算)来适应新的结构

      • 基于AS进行分类:(AS自治系统 0~65535标准编号)

        • IGP 内部网关路由协议,AS内部使用(RIP,OSPF,EIGRP,ISIS.....)
        • BGP 外部网关路由协议,AS之间使用(BGP,EGP)
      • IGP分类:

        • 基于工作特点进行分类:

          • DV 距离矢量(RIP,EIGRP):向相邻路由器共享路由表

          • LS 链路状态(OSPF,ISIS):向邻接路由器共享拓扑图,自我计算路由;

            • 优点:防环能力上优于距离矢量,选路能力上也优于距离矢量;
            • 缺点:更新量大,占带宽
        • 基于更新时是否携带子网掩码:

          • 有类别(不携带子网掩码,按主类定义子网掩码)
          • 无类别(携带子网掩码,基于实际掩码来判断网段)

4.RIP协议:

  • RIP:路由信息协议,也称距离矢量协议

  • 存在三个版本:V1 / V2 / NG(下一代IPV6专用)

  • 特点:

    • 基于UDP520端口工作;使用跳数作为度量(最大跳数为15,当值为16时,该路由不可达)
    • 更新方式:30s周期更新(保活,确认),触发更新(开销值发生变化时);
    • 支持等开销负载均衡
  • V1和V2的区别:

    • 更新是是否携带掩码:

      • V1有类别协议(不携带子网掩码),不能区分和汇总
      • V2无类别协议(携带子网掩码),进行子网划分(VLSM)和子网汇总(不能比主类短),不支持超网(可以比主类短)
    • 更新方式:

      • V1是广播更新(255.255.255.255)
      • V2组播更新(224.0.0.9)
    • V2支持手工认证

  • RIP环路问题:

    • 触发更新:

      • 当某一个路由器中的路由项发生改变时,不需要等待下一次周期更新到来,就可以直接将发生改变的路由项发送
      • 不能完全避免环路发生
    • 水平分割(华为默认开启):从此口进,不从此口出

    • 毒性逆转:从次口进从此口出,但COST设置为16

    • 最大跳数:15跳为最大条数

    • 注意:

      # 水平分割和毒性逆转机制,原理相同,但是做法不同,故只能选择其中一个与触发更新搭配防环。
      # 若水平分割和毒性逆转机制同时开启,则按照毒性逆转执行。
      复制代码
    • 例题:

      问题:
      1.能不能光使用水平分割或毒性逆转机制,不使用触发更新?
      2.触发更新可以加快路由的收敛速度。
      复制代码
  • RIP的数据包:

    • request包(请求报文):只能在启动RIP进程后悔使用,希望尽快获取邻居的路由信息
    • response包(应答报文):携带了具体的路由信息,用来回答请求报文
  • RIP工作原理:

    1. 初始化:

    • RIP在初始化时,会从每一个参与工作的接口上发送请求数据包。该请求数据包会向所有的RIP路由器请求一份完整的路由表

    • 该请求通过广播形式(组播形式)发送

    1. 接受请求:

    • RIP路由器在接收到请求数据包后,会使用应答数据包回复,且该数据包包含了本地所有的路由信息

    1. 接接到响应数据包:

    • 路由器接收并处理该数据包

    • 将接受到的数据包内容与自己本地路由表进行对比,然后进行添加,删除,修改等操作

    1. 常规路由更新:

    • 当收敛完成后,路由器会以30S为周期,发送应答包文
    • 邻居路由器收到应答报文后,会设置180s的超时时间,如果180s内没有收到邻居发来的应答报文,路由器会认为邻居出现问题,并将下一跳设置为16
  • RIP算法:贝尔曼福特算法

    1. 当接收到的数据包中含有本地路由表中没有的路由项,则直接加载到本地路由表
    2. 当接收到的数据包含有本地已具有的路由项时,且下一跳地址相同,则将数据包中的路由项更新至本地
    3. 当接收到的数据包中含有本地已具备的路由项时,但下一跳不同,则比较COST值,若本地路由表中的COST值较大,则进行更;若本地路由表中的COST值较小,则不进行更新
  • RIP计时器:

    • 更新计时器:

      • 每台启动了RIP协议的路由器,都有一个属于自己的更新计时器

      • 30S

      • 当更新计时器为0时,则向周围发送响应报文

      • 为什么要进行周期更新?

        • UDP是不可靠的
        • RIP路由传递过程中需要可靠机制
        • RIP
    • 无效计时器:

      • 每台路由器上的每一个路由项都有一个无效计时器
      • 180S(一般是更新计时器的六倍)
      • 每条路由条目被更新时,计时器刷新为180S
      • 计时器为0时,则认为该路由项无效,会将开销值设置为16,并向外传输(告诉其他路由器,这个网段不可达)
    • 垃圾收集计时器:

      • 当一个路由项变为无效路由项时,虽然COST值会被设置为16,但是路由项本身并不会被立刻删除,而是会启动垃圾收集计时器,在这个计时器倒计时为0前,该路由器周期更新时仍然会携带该无效路由项
      • 一旦该计时器为0,则删除该路由项(包括之前与之对应的无效计时器,垃圾收集计时器)
      • 120S(更新计时器的四倍)
      • 注意:垃圾收集计时器为0前的某一时刻,该路由项被更新,则该路由项可以正常加表使用,COST值回复,删除垃圾收集计时器,回复无效计时器
    • 例题:

      假设某一时刻,一台路由器的RIP路由器中共有30个路由项,其中COST值的有23个,等于16的有7个,问,此时一共有多少个计时器在工作?分贝是什么计时器?
      复制代码
  • 具体配置步骤:

    1. 启动RIP:(配置模式下,启动时可以定义进程号,默认1,范围1~65535)
    rip [进程IP]
    复制代码
    1. 选择版本:(版本1:其他路由获取得到的IP地址是主类,版本2:其他路由获取得到的IP地址是精确的网络地址)
    version [num]
    复制代码
    1. 宣告(含义:激活(被选中接口可以收发RIP的信息)和共享路由(被选中接口的网段可以共享给本地的所有邻居)):
    network [端口网络地址]
    如:network 12.0.0.0   network 172.16.0.0   network 192.168.1.0 
    # 如果有多个不同的主类端口,宣告多次;如果多个接口主类相同,只宣告一次 

作者:阿尔托莉雅969
链接:https://juejin.cn/post/7158753810360303646
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(网络,网络协议,tcp/ip)