计算机网络<五>——局域网、NAT

328 阅读9分钟

数据包的传输过程

如果计算机A要发送请求数据给计算机F的话,数据包里的部分字段是会不断变化的,下面看看数据包的变化过程:

  1. 计算机通过计算会发现计算机F与其并不在同一个网段下,于是会发送ARP广播获取到对应网关的MAC地址也就是M0,将数据包先发送给它
  2. 于是第一次数据包传送的源MAC地址是MA,但是目标MAC地址却是M0
  3. 由于路由器0并没有和目标IP地址所在的网段直连,所以会从路由表中进行查询下一跳是哪个网关,查询到之后其会先获取到对应网关的MAC地址,并将数据包发送过去
  4. 于是第二次数据包传送的源MAC地址就是M1,目标MAC地址就是M2
  5. 路由器1与我们目标IP地址在同一个网段下,所以通过ARP广播获取到计算机F的MAC地址后,就会将数据包传送过去
  6. 于是第三次数据包传送的源MAC地址是M3,目标MAC地址是MF
  7. 注意:在整个过程中,源MAC地址和目标MAC地址由于数据包的传输被路由器分段,所以一直在变化,但是源IP地址和目标IP地址一直是不变的,因为我们要靠这两个IP地址找到最终的设备,而MAC地址代表的只是某一阶段下的始末设备

网络、互联网、英特网

多台计算机相连能够相互通信,那它们就组成了一个网络

用路由器将多个网段连接起来,形成了更大的网络,这个就叫互联网

  • 互联网是一个很广泛的概念,两个不同的网段通过路由器连接起来,这一个区域也叫作互联网。全世界最大的互联网是:英特网——将全世界所有的计算机都连接在一起
  • 一般使用大写I开头的Internet特指英特网,小写的i指互联网
  • 日常生活中说的:你的电脑上不了网。其实就是指:你的电脑没有连接到因特网

ISP

ISP是Internet服务提供商,比如移动、电信等。平时我们拉的宽带都是通过ISP连接到Internet的

他们负责去铺设网线、光缆、电话线、路由器等等,我们买他们的服务才可以访问到英特网

服务器机房

如果你的宽带用的是电信的,那么访问对应服务器的时候走的就是电信ISP,如果你想访问到其他厂商的服务器,那么就需要转接到另一个厂商的ISP里,这样下载速度就会慢很多

双线机房就是给多个厂商的ISP都提供通道

网络分类

按照网络的范围进行分类,可以分为:局域网、城域网、广域网等

  • 局域网(LAN)
    • 一般是范围在几百米到实际公里内的计算机所构成的计算机网络
    • 常用于公司、家庭、学校、医院、机关等
    • 局域网中使用最广泛的网络技术叫:以太网
    • 在手机、电脑上经常见到的一个英文WLAN,意思就是无线局域网
  • 城域网:一般范围是数十公里到数百公里,可以覆盖一个城市
  • 广域网(WAN):一般范围是几百公里到几千公里,可以覆盖一个国家。通常都需要租用ISP的线路,互联网就是一个广域网

常见的接口

  • FastEthernet:快速以太网接口(100M)——局域网最常用的网络接口
  • GigabitEthernet:千兆以太网接口
  • Serial:串行接口——路由器和路由器之间相连时用的就是这个

上网方式——电话线入户

这就是平时说的:ADSL电话拨号上网——非对称数字使用线路,提供上、下行不对称的传输带宽;

猫,调制解调器,其作用是进行数字信号和模拟信号的相互转换

上网方式——光纤入户

光猫,光调制解调器,进行数字信号和光信号的转换

上网方式——网线入户

家用无线路由器的逻辑结构

宽带猫的左边连接的是光纤或者是电话线,右边连接的是路由器上广域网的接口;家用路由器里面相当于有一个交换机和路由器,所以与家用路由器相连的设备就相当于是被同一个交换机连接着,都在一个局域网下面;我们观察无线AP可以发现,他也和交换机的一个接口相连,那就说明通过无线网络连接的设备也在一个局域网中

公网IP、私网IP

IP地址分类:公网IP和私网IP

  • 公网IP

    • 英特网上的路由器中只有到达公网的路由表,没有到达私网的路由表
    • 公网IP由英特网信息中心统一管理和分配
    • ISP需要向英特网信息中心申请公网IP
  • 私网IP

    • 主要用于局域网,下面是保留的私网网段
    • A类:10.0.0.0/8,一个A类网络
    • B类:172.16.0.0/16~172.31.0.0/16,16个B类网络
    • C类:192.168.0.0/24~192.168.255.0/24,256个C类网络

我们大家的IP地址可能会出现一样的情况,在局域网中是可以的,因为这两台电脑不一定在同一个网段,只要他们在不同的局域网中就可以,比如一台在广州,一台在北京,但是必须要保证跟你在同一个局域网中的设备的IP地址不冲突

如果你想要给英特网中的一台服务器发送请求消息,由于英特网上的路由器中只有到达公网的路由表,所以请求消息是发的过去的,但是它并不知道到达私网的路由表,所以数据是回不来的,所以才需要NAT技术

NAT

上面也提过了,没有NAT技术的话,由于因特网中路由器的路由表中只有公网IP,那么我们在因特网中是不可以和其他设备进行通信的。NAT技术的核心思想就在于路由器中帮助我们将原私网IP地址转化为了公网IP地址,然后再发送请求给目标设备,以下图为例:

192.168.1.10(私网的设备)要发送请求给200.0.0.10(互联网中的设备),达到路由器之后,其会将请求消息中的私网IP地址更改为公网的IP地址,这样就可以通过因特网中的路由器转发到目标设备上,然后目标设备也能返回响应消息到原先的路由器中,路由器会提前记录好该请求所对应的原IP地址,将数据正常的返回回去,这样我们就达到了与因特网中的设备相互通信的目的了

私网IP访问Internet需要进行NAT转换为公网IP,这一步是交给路由器来完成的

  • 可以节约公网IP资源,局域网只需要用私网IP地址就可以了,访问英特网会隐藏你的真实IP

NAT分类

  • 静态转换(不常用,因为一个私网IP就会对应一个公网IP)

    • 手动配置NAT映射表,一个私网IP映射成一个公网IP
    • 一对一转换
  • 动态转换(不常用,因为一个私网IP就会对应一个公网IP)

    • 定义外部地址池,动态随机转换,相当于从一堆公网IP中选出一个作为你这次的NAT地址
    • 一对一转换
  • PAT(目前应用最广泛的NAT实现方式,真正达到了多个私网IP可以对应一个公网IP)

    • 多对一转换,最大程度节约公网IP资源
    • 利用端口多路复用方式,通过端口号标识不同的数据流
    • 区分生成的NAT地址方式就是用源IP地址对应的端口号来做区分,如果出现了端口号一样的情况,路由器在生成NAT地址的时候会自动帮我们进行调整,这个不用担心

为什么两个设备跨网段第一次通信的时候,四次通信总会丢失一个包呢?

先说第一个场景,两个设备通过家用路由器相连,那么他们第一次通信时的第一个包会不会丢失?

答案是不会。其实与家用路由器相连的设备是在同一个网段的,因为我们之前看过家用路由器内部的结构,其里面相当于是普通路由器和交换机的结合,两台设备相当于是连在了同一个交换机上,那么与同一个交换机相连的两台设备当然是在一个网段下啦!那么两个相同网段下的设备相当于中间只是隔了个交换机进行通信,没有特殊情况发生的话肯定是不会丢包啊!

但是如果我们使用普通的路由器两个不同网段下的设备,让这两台设备进行通信,那么第一个包就会丢失,这是必然的!原因很简单,就是路由器在发送ARP广播的时候,为了不让自己当前的压力过大,会把手头上包给丢掉,我们看看这两台设备通信的全过程

  1. 计算机0计算出了计算机1和它并不在同一个网段,于是会先通过ARP广播去获取路由器0上对应网关的MAC地址
  2. 知道了对应网关的MAC地址之后,就会将数据包发送过去
  3. 但是网关接收到了数据包之后不能立即转发给计算机1,应为其还不知道计算机1的MAC地址
  4. 按照之前我们所学过的,路由器应该会立即进行ARP广播获取计算机1的MAC地址才对。但是手头上已经拿了一个数据包再发ARP广播对于它来说忙不过来,于是他就会先把数据包给丢掉,然后再去发送ARP广播获取计算机1的MAC地址之后缓存起来
  5. 所以这也就解释了为什么第一个包会丢失。后面无论再发送多少个包,由于计算机0已经知道了网关的MAC地址,路由器已经知道了计算机1的MAC地址,所以都不需要再进行ARP广播,路由器手里面拿着数据包的时候也就不会把它丢弃了,自然后续的数据包都是可以正常发出和接受的