zoukankan      html  css  js  c++  java
  • 谈谈网络协议 – 基础知识

    基本概念

    互联网 (internet)

    互联网就是各种终端通过转发设备(交换机,路由器)进行环型的连接形成一个图的结构,使之每个设备都能够互相连通,如下图:

    计算机之间的连接方式

    • 同台电脑直连
    • 同轴电缆(Coaxial)
    • 集线器(hub)
    • 网桥(Bridge)
    • 交换机(Swtch)
    • 路由器(Router)

    上面的设备都是用于连接终端设备的,发展使也是从上往下

    RJ45接口 与 网线

    image-20210310164101034

    直通线与交叉线

    • 直通线:接口两端同样的颜色会对应同一个接口位

    • 交叉线:有些线的位置需要调整,如下图

    同台电脑直连

    直接使用网线将两台PC连接,需要使用 直通线

    同轴电缆(Coaxial)

    image-20210310164452383

    image-20210310164510323

    特点

    • 半双工通信(发送和接收不能同时进行)
    • 容易冲突
    • 不安全
    • 中间断了,整个网络都瘫痪

    集线器(hub)

    image-20210310164707989

    用于连接多台PC终端,所有PC都需要在同一网段

    特点

    • 半双工通信(发送和接收不能同时进行)
    • 容易冲突
    • 不安全
    • 和同轴电缆一样:没有智商

    网桥(Bridge)

    image-20210310164822638

    主要用于隔绝冲突域,连接2边的集线器,能够通过自学习得到每个接口那侧的MAC地址

    所以它会缓存两边的PC的MAC地址,当发起ARP(Address Resolution Protocol 地址解析协议)的时候就不需要再去广播了,所以说它是有智商的

    交换机(Switch)

    image-20210310165952084

    image-20210310165957917

    特点

    • 相当于接口更多的网桥
    • 全双工通信(可以同时接和收)
    • 比集线器安全
    • 智能

    路由器(Router)

    image-20210310170242616

    特点

    • 隔绝广播域
    • 可以在不同网段之间转发数据
    • 路由器两端也必须是不同网段

    网线直连、同轴电缆、集线器、网桥、交换机

    • 连接的设备必需在同一网段

    • 连接的设备处在同一广播域(广播是针对同一网段的)

    MAC地址、IP地址

    MAC地址

    image-20210310171346300

    • 每个网卡都有一个唯一6字节(48bit)的MAC地址(Media Access Control Address
    • 全球唯一,固化在网卡的ROM中,由IEEE802标准规定
    • 前3字节:OUI(Orgnaizationally Unique Identifier),组织唯一标识符,由IEEEE的注册管理机构分析给厂商
    • 后3字节:网络接口标识符,由厂商自行分配

    OUI查询

    http://standards-oui.ieee.org/oui/oui.txt

    https://mac.bmcx.com/

    MAC地址表示格式

    • Windows
      • 60-38-78-10-8C-34
    • Linux、Android、Mac、iOS
      • 60:38:78:10:8C:34
    • Packet Tracer
      • 6038.7810.8C34
    • 当48位全为1时,代表广播地址
      • FF-FF-FF-FF-FF-FF

    MAC地址操作

    • 查看MAC地址
      • windows: ipconfig /all
      • linux: ifconfig
    • 修改MAC地址
      • 更改适配器选项 -> 属性 -> 配置 -> 高级 -> 网络地址
      • 填写时需要把减号(-)去掉

    image-20210310171940142

    MAC地址的获取

    • 当不知道对方主机的MAC地址时,可以通过发送ARP广播获取对方的MAC地址
      • 获取成功后,会缓存IP地址、MAC地址的映射信息,俗称:ARP缓存
      • 通过ARP广播获取的MAC地址,属于动态(dynamic)缓存
        • 存储时间比较短(默认是2分钟),过期后自动删除
    • 相关命令
      • arp -a [主机地址]: 查询当前设备或指定IP的ARP缓存
      • arp -d [主机地址]: 删除AR缓存
      • arps -s 主机地址 MAC地址: 手动增加一条ARP缓存,属于静态缓存,不同系统存储时长不同

    ARP欺骗

    ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击

    image-20210310172943204

    攻击主机PC2发送ARP应答包给被攻击主机PC1和网关,分别修改它们的ARP缓存表, 将它们的ip地址所对应的MAC地址,全修改为攻击主机PC2的MAC地址,这样它们之间数据都被攻击主机PC2截获

    简单描述:

    我是PC2,PC1是被攻击者,我通过ARP包告诉网关我是PC1,告诉PC1我是网关,这样他们发送的数据就都会发给我,从而实现数据拦截(可以实现对目标进行限速等操作)

    IP地址

    image-20210310173526602

    • IP地址(Internet Protocol Address):互联网上的每一个主机都有一个IP地址

      • 最初是IPv4版本,32bit(4字节),2019年11月25日,全球的IP地址已经用完

      • 后面推出了IPv6版本,128bit(16字节),目前使用的还是IPv4,特殊地方才用IP6

    IP地址的组成

    • IP地址由2部分组成:网络标识(网络ID)、主机标识(主机ID)
      • 通过子网掩码(subnet mask)可以得到网络ID、主机ID
    • 主机所在的网段:子网掩码 & IP地址
    • 计算机再与其它计算机通信前,会先判断是否在同一网段
      • 同一网段:不需要路由器进行转发
      • 不同网段:需要路由器进行转发

    网段计算

    image-20210310174638246

    上面的IP地址与子网掩码计算的网段为:192.168.1.0

    &操作

    只有当两个都为1的时候才为1,其它为0

    IP地址的分类

    • A类地址:子网掩码默认是255.0.0.0

      image-20210310174957316

    • B类地址:子网掩码默认是255.255.0.0

      image-20210310175048913

    • C类地址:子网掩码默认是255.255.255.0

      image-20210310175110430

    • D类地址:以1110开头,多播地址

    • E类地址:以1111开头,保留为今后使用

    • 只有ABC类地址才能分配给主机
      • 主机ID为全0,表示主机所在的网段
      • 主机ID为全1 ,表示主机所在的网段所有主 要(用于广播)
      • 使用ping广播地址可以实现获取当前网段内的所有在线主机

    A类地址

    image-20210310175719428

    • 网络ID
      • 0不能用,127作为保留网段。其中 127.0.0.1 是本地环回地址(Loopback),代表本地地址
      • 1~126 为可以分配给主机用
    • 主机ID
      • 第2、3、4部分的取值范围:0~255
      • A类网络最大能容纳主机数:256 * 256* 256 - 2 = 2的24次方 - 2 = 16777214
        • 减2原因:0不能用,网段不能用

    B类地址

    image-20210310180255567

    • 网络ID
      • 可分配给主机的
        • 第1部分:128~191
        • 第2部分:0~255
    • 主机ID
      • 第3、4部分的取值范围:0~255
      • B类网络最大能容纳主机数:256 * 256 - 2 = 2的16次方 - 2 = 65534

    C类地址

    image-20210310180512081

    • 网络ID
      • 可分配给主机的
        • 第1部分:192~223
        • 第2、3部分:0~255
    • 主机ID
      • 第4部分的取值范围:255
      • B类网络最大能容纳主机数:256 - 2 = 254

    D类地址

    image-20210310180755259

    • 没有子网掩码,用于多播(组播)地址
    • 第1部分取值范围:224~239

    E类地址

    image-20210310180829985

    • 没有子网掩码,用于多播(组播)地址

    • 第1部分取值范围:240~255

    子网掩码的CIDR表示方法

    • CIDR (Classless Inter-Domain Routing):无类别域间路由
    • 子网掩码的CIDR表示方法
      • 192.168.1.100/24,代表子网掩码为 24个1,也就是 255.255.255.0
      • 123.210.100.200/16,代表子网掩码为 16个1,也就是 255.255.0.0
    • 计算工具

    子网划分

    为什么要进行子网划分

    • 200台主机在同一网段,分配一个C类网段,如:192.168.1.0/24

      • 共254个可用IP地址:192.168.1.1~192.168.1.254
      • 多出54个空闲的IP地址,这到不算浪费
    • 如果 500台主机在同一网段,分配一个B类网段,如:191.100.0.0/16

      • 共65534个可用IP地址:191.100.0.1~191.100.255.254
      • 多出65034个空闲的IP地址,这种情况属于极大的浪费资源
    • 为了避免浪费IP地址资源,就需要进行子网划分

    如何子网划分

    • 借用主机位做子网位,划分出多个子网
    • 2种划分方式
      • 等长子网划分:将一个子网划分成多个子网,并且每个子网可用IP地址数一样
      • 变长子网划分:划分成多个可用IP地址不一样的子网
    • 子网在线划分器:http://www.ab126.com/web/3552.html
    • 子网划分步骤:
      • 确定子网的子网掩码长度
      • 确定子网中第1个、最后1个主机可用IP地址

    等长子网划分

    等分成2个子网

    image-20210311100004364

    上图是将 192.168.0.0/24 C类网段划分成两个子网

    • A子网

      • 可用IP地址:192.168.0.1 ~ 192.168.0.126 (0 和 127 不能用,0是网段,127是广播地址)
    • B子网

      • 可用IP地址:192.168.0.129 ~ 192.168.0.254(128 和 255 不能用,128是网段,255是广播地址)
    • 2个网段的子网掩码都是:255.255.255.128/25,每个网段可用主机数为:126

    算法解析

    如上图,将网络位往主机部借1位时,主机部分可用的位数就只有7位,此时网络部分可分为 :

    • A子网:192.168.0|0
    • B子网:192.168.0|1

    主机部分全0和全1是不能做为可用IP地址的,全0是网段,全1就是广播地址

    • A子网的主机部分可用IP就是 0|0000001 ~ 0|1111110 (1~126)
    • B子网的主机部分可用IP就是 1|0000001 ~ 1|1111110 (129~254)
    • 注:虽然向主机位借位,但计算主机IP个数时还是按之前的8位来算,需要加上被借的那1位
    等分成4个子网

    image-20210311101559349

    • A子网:192.168.0.1 ~ 192.168.0.62
    • B子网:192.168.0.65 ~ 192.168.0.126
    • C子网:192.168.0.129 ~ 192.168.0.190
    • D子网:192.168.0.193 ~ 192.168.0.254
    • 4个子网的子网掩码都是:255.255.255.192/26,每个网段可用主机数:62
    等分成8个子网

    image-20210311101851062

    • A子网:192.168.0.1~192.168.0.30

    • B子网:192.168.0.33~192.168.0.62

    • C子网:192.168.0.65~192.168.0.94

    • D子网:192.168.0.97~192.168.0.126

    • E子网:192.168.0.129~192.168.0.158

    • F子网:192.168.0.161~192.168.0.190

    • G子网:192.168.0.193~192.168.0.222

    • H子网:192.168.0.225~192.168.0.254

    • 8个子网的子网掩码都是:255.255.255.224/27,每个网段可用主机数:30

    规律

    如果一个子网是是原来网络2/1,子网掩码往后移1位就行,如果是4/1,移2位,是8/1,移3位,简单点就是 移几位就是2的几次方

    • 1位 = 2^1 = 2

    • 2位 = 2^2 = 4

    • 3位 = 2^3 = 8

    变长子网划分

    • 等长子网划分是每个子网都使用 **相同 **的子网掩码
    • 变长子网划分是每个子网都使用 **不同 **的子网掩码

    例子

    对 192.168.100.0/24 网段进行变长子网划分,需要主机数分别为 A: 80,B: 50,C: 24,D: 10 不同数量的网段,如果使用等长子网划分,划分成4个网段,那样每个网段的主机数只有 62个,不满足 80 个主机的要求,此时就可以使用变长子网划分

    步骤:

    • 满足A:先将 192.168.100.0/24 往后移一位,划分出 192.168.100.0/25 与 192.168.100.128/25 两个网段,将 192.168.100.0/25 网段的 126 个地址分配给 A 用
    • 满足B:再将剩余的 192.168.100.128/25 网段再往后移一位,划分出 192.168.100.128/26 与 192.168.100.192/26 两个网段,将 192.168.100.128/26 网段的 62个地址分配给B用
    • 满足C:再将 192.168.100.192/26 再往后移一位,划分出 192.168.100.192/27 与 192.168.100.224/27 两个网段,将 192.168.100.192/27 网段的 30个地址分配给C用
    • 满足D:再将 192.168.100.224/27 再往后移一位,划分出 192.168.100.224/28 与 192.168.100.240/28 两个网段,将 192.168.100.224/28 网段的 13个地址分配给D用

    image-20210311113313094

    思考问题

    【PC1】 192.168.0.10/24 与 【PC2】192.168.10.10/16 能进行通信吗?

    思路:先将两台PC的网段算出来,看是不是同一网段

    • PC1:192.168.0.0/24
    • PC2:192.168.0.0/16

    看上去好像两个是同一网段,实际是不能进行通信的,为什么呢?当一台设备与另一台设备进行通信之前是怎么处理的?首先它并不知道目标设备的子网掩码,只知道目标设备的IP地址,所以它要判断该设备是否和自己是同一网段,它是直接拿自己的子网掩码去和目标IP进行&运算得到网段,网段一样才会通讯,计算如下:

    【PC1=>PC2】 192.168.10.10/24 = 192.168.10.0 与自己的网段 192.168.0.0 不一样,所以无法通讯

    【PC2=>PC1】 192.168.0.10/16 = 192.168.0.0 与自己的网段 192.168.0.0 一样,可以通讯

    注意:PC1 不能发给 PC2,但 PC2 能发给 PC1,只有两同设备都能够互相通信,才能真正通讯

    超网

    • 它和子网是反过来,将多个连续的网段合并成一个更大的网段
    • 比如原来有200台设备使用192.168.0.0/24网段,现在想再增加 200台设备到同一网段
      • 200台在 192.168.0.0/24网段,另外200台在 192.168.1.0/24网段
      • 合并 192.168.0.0/24 与 192.168.1.0/24 网段为 192.168.0.0/23 网段(子网掩码往左移动1位)
    合并2个子网

    image-20210311170558783

    合并4个子网

    image-20210311171017984

    思考:下面这2个网段向左移一位能合并吗?

    image-20210311171137710

    答案是不可以的,为什么呢?因为如果只向左移一位的话,它们的网段还是不相同的,当然就不是同一网段了,所以至少移2位才可以

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

    • 首页判断IP地址的类型,是A类、B类、C类?
    • A类子网掩码是8位,就是 255.0.0.0,如果 当前IP地址是A类,再看子网掩码是往左移位还是往右移位,往左移位就是超网,往右移位就是子网
    • B类是16位
    • C类是24位


    作者:悠悠清风
    出处:https://www.ywgao.cn/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    我的联系方式:

  • 相关阅读:
    mac 调整Launchpad行列数目
    查询及删除重复记录的SQL语句
    Linux中删除特殊符号文件名文件
    Mac 如何寻找Mac自带的IDLE
    Spring、Spring MVC、MyBatis 整合文件配置详解
    虚拟机下安装win7
    kali-linux 安装
    selenium 元素定位
    selenium 启动、窗口、获取标题
    python+ selenium + webdriver的环境准备
  • 原文地址:https://www.cnblogs.com/xgao/p/14793002.html
Copyright © 2011-2022 走看看