计算机网络基本和概念

概念

计算机网络主要是由一些通用的,可编程的硬件互联而成,这些硬件并非专门用来实现某一个目的,而是通过可编程的硬件来传送多种类型的数据,并能支持广泛和日益增长的应用。

简单的说,计算机网络包含的设备并不仅仅是个人pc,包含手机,服务器,智能设备 等一切可编程的联网的设备,这些设备组成一个巨大的网络。借助这个网络,才能实现各个设备之间的通信。

网络分类

网络分为多种,根据范围可以分为

广域网WAN (Wide Area Network) 广域网的范围通常为几十到几千公里,主要任务是长距离进行网络传输。

城域网MAN (Metropolitan Area Network) 城域网 作用范围是一个城市,作为范围5到 50 km。

局域网 LAN (Local Area NetWork) 局域网一般是比较小的范围,比如家庭,比如学校企业等小范围的网络。

​ 关联和联系

生活中的例子

我们平常使用的路由器 都是有一个WAN 口,几个LAN 口。

WAN 指的就是广域网,而LAN 指的就是局域网,所以外部的网线需要插入到 WAN口,而电脑PC设备属于局域网设备,所以插入lan口。

网络协议

网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。

在计算机之间数据传输需要符合某个约定,才能使发送方和接收方都能识别发送的信息。

比如:一个中国人用中文写了一封信给一个不懂中文外国人,外国人因为看不懂,而不知道什么意思。而这个外国人用西班牙语写了一个封西班牙语信给一个中国人,而中国人也看不懂。最后,两人商量好,都使用会的英语来写信,就可以畅快的沟通了。

而网络协议可以近似的看做计算机的传输过程中的通信语言,规定了通信传输过程中不同传输阶段使用那些协议。

网络协议有很多种,比如http https tcp udp imcp arp 等等。后面会详细的说明各自的用途。

计算机的连接

网络之间要想连通那么需要连通介质,比如网线 ,光纤,无线网 ,电话线,同轴电缆等。

网络标识地址

每个网卡上都有一个全球唯一的mac地址,在数据传输的时候会携带发送源和发送目标的mac地址,用来找到对应的传输对象。

但是因为mac地址不太容易表示,所以我们一般用ip地址来表示一个网络地址,在传输的过程中会涉及到IP地址转MAC地址的过程,可以说 只有找到了mac地址才能找到要传输的目标地址

直通线和交叉线

网线是日常使用很多的一种网络连接介质。一般用在电脑和路由器上。

一般来说,双绞线的制作方式有两种国际标准,分别为EIA/TIA568A以及EIA/TIA568B。在介绍这两种线之前,我们先来了解这两种标准。T568A排线顺序从左到右依次为:白绿、绿、白橙、蓝、白蓝、橙、白棕、棕。T568B排线顺序从左到右依次为:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕。

直通线就是在接网线的时候 两边使用相同的标准接法。

交叉线是在接网线的时候,两边使用不同的标准接法。

直通线连接不同的设备,交叉线连接相同的设备。

使用电脑网线直连

  1. 将2台pc机以网线的方式直接连接(网线使用交叉线)
  2. 配置2台pc的ip地址

使用此种方式,就相当于在2台pc之间建立了一个简单的网络连接,其中一台电脑可以开放共享文件,另一台电脑可以访问共享文件。

发送的ARP包的mac 地址是 全是 f 的,表示广播 FFFF.FFFF.FFFF

分析传输方式

当在pc1 ip 为 192.168.1.10 的主机上,执行命令

1
ping 192.168.1.12

主机1 将能够收到主机2 的响应。

此操作过程如下,假设左边为主机1 右边为主机2

  1. 在执行ping ip命令的时候,首先检查本机是否缓存目标ip的mac地址,缓存了,就像目标mac地址发送一个IMCP 协议到主机2。
  2. 如果本机没有缓存,表示无法识别192.168.1.12 的ip 是什么,会先发送一个ARP协议,ARP协议是个广播协议,会向当前的网络中广播192.168.1.12 这个ip寻求此ip地址的mac地址,当主机2 收到ARP信号的时候,因为自己的ip就是指定的寻求mac地址的指定ip,就讲自己的mac地址返回给主机2
  3. 当主机1 拿到主机2的mac地址后,就把mac地址也加到imcp的请求信息中发送出去,当主机2拿到IMCP的数据后,从数据中拿到源的mac地址和ip并响应。

同轴电缆连接

同轴电缆是一种电线及信号传输线,一般是由四层物料造成:最内里是一条导电铜线,线的外面有一层塑胶(作绝缘体、电介质之用)围拢,绝缘体外面又有一层薄的网状导电体(一般为铜或合金),然后导电体外面是最外层的绝缘物料作为外皮。

有线电视传输用的很多是同轴电缆,当然也可以用来传输网络信息。(早期广电网络一般 使用 光纤+同轴电缆混合网)网向用户提供宽带服务)

这种连接方式基本已经被淘汰了。同轴电缆的网络传输效率低,是半双工通信。

半双工通信: 一方有数据传输,另一方将无法传输。属于单行道.

集线器

集线器用于将多个pc机连接到一起。使相互之间可以互相访问.

集线器可以看做只是一个路口,并不做任何的功能。

​ 集线器的连接方式

通过集线器发送的请求,会沿着网线向所有路径发送请求,因为它并不知道对应的ip的mac地址的位置

当在pc1 执行 ping 192.168.1.13 命令的时候

  • 首先pc1 并不知道192.168.1.13 ip的mac地址,会向发送一个ARP协议。
  • ARP协议发送到集线器,集线器将Arp请求除了发送源的所有路径 (pc2,pc3,pc4)都发送arp请求
  • pc2 和pc3 的机器接收到要找到 192.168.1.13 的arp请求后,因为自身不是此ip,就讲此请求忽略,什么也不做。
  • pc4 收到arp请求后,将自身的mac地址响应,发送到集线器。集线器再向所有除了来源的路径 (pc1,pc2,pc3)发送arp的请求,pc1 就拿到了pc4的mac地址
  • pc1 拿到pc4 的 mac地址后,发送IMCP协议请求到集线器,集线器发送所有路径 (pc2,pc3,pc4),其他非目标地址的pc 执行丢弃,什么也不做,只有pc4,执行响应,再发送数据到集线器
  • 集线器再次向除了来源的所有路径发送(pc1,pc2,p3),直到pc1 收到响应,其他丢弃数据。

集线器是半双工通信,并且容易冲突。

网桥

集线器能够承载的网络数量是有限的,为了能够承载更多的网络,可以使用网桥设备连接集线器。

网桥是只有2个接口的网络设备。

网桥可以在2个集线器中的一个桥接功能。

与集线器不同的是,网桥能够记录ip 和mac地址的映射表

因为网桥的存在,在数据发送到网桥后,当网桥缓存到ip 和mac的记录后,下一次请求的时候,它就能够得知,对应的ip地址的mac地址信息,并返回给来源主机。

因为网桥可以记忆IP 和MAC地址的映射。所以:

  • ARP协议通过网桥的时候,能够记住对应的IP的MAC地址是什么,并且知道对应的MAC是在网桥的左边还是在右边
  • 再次请求经过网桥后,网桥可以通过缓存的mac地址返回给请求源要请求的mac地址
  • 在发送请求的时候,能够判断对应的ip地址是在网桥的左边还是右边,达到减少网络传输的浪费。比如 pc1 去请求pc3,因为网桥能够知道pc3 在网桥的左边,所以不会将请求通过到网桥的右边。

交换机

交换机可以看做是集线器和网桥的合并。因为拓展了集线器的多接口扩展功能,并且还支持了网桥的记忆功能。

交换机也是目前使用的比较多的一种网络设备。

​ 交换机的连接方式

请求过程:

  • pc1 执行 ping 192.168.1.12
  • 首先pc1 发送ARP请求,请求数据到交换机
  • 交换机向pc2 pc3 pc4 发送ARP请求,请求到pc2 和pc3 因为目标地址不是自己,所以丢弃,pc4 响应arp请求到交换机
  • 交换机 已经记录了pc1的位置和信息,所以pc4的arp响应直接发送给pc1
  • pc1 接着发送IMCP请求,交换机已经记录了192.168.1.12 的mac地址,所以IMCP请求,直接发送给pc4

交换器的传输性能高,是全双工通信。

路由器

以上的设备进行通信的时候,都有一个限制,即都需要在同一个网段。如果不在同一个网段将无法通信。

而路由器实现的功能就是将不同的网段进行连接和路由

当客户端发送一个数据包的时候,会先查看目标地址和自身地址是否在一个网段,如果在一个网段就发送ARP广播。

如果不在一个网段,那么就将数据包发送到网关地址。所以当不在同一个网段的经过交换机的网络设备将无法连通。

而路由器可以配置多个网关,可以将多个不同的网段经过路由器连接到一起。以达到多个网段的路由左右。

如图:左右2个不同的网段。连接路由器不同的网口,不同的网口配置不同的网关。

  • 当192.168.1.10 将要发送一个 192.168.2.10 的请求的时候,检查到不再一个网段,那么请求的目标地址将替换成网关地址 192.168.1.1,首先发送到网关,但是网关的mac地址还不知道
  • 发送ARP协议获取路由器的mac地址,通过交换机发送到 192.168.1.11 和 192.168.1.1, 路由器将自身的mac地址返回给192.168.1.10
  • 获取到网关的mac地址后,发送成功的IMCP协议到网关,路由器接收到请求后,通过另一个192.168.2.1的端口转发,请求的源地址变成了192.168.2.1 的地址,而目标地址还是192.168.2.10
  • 路由器还也不知道目标的mac地址,那么由路由器的192.168.2.1 发送一个ARP请求,ARP请求返回后,路由器就知道了192.168.2.10 的mac地址。第一次的请求就结束,因为发送源拿不到目标mac地址,所以会超时。
  • 第二次请求,还是由192.168.1.10 发送,此时发送Arp协议,从路由器的缓存中拿到目标的mac地址,最终能够请求成功。

路由器的转发

默认情况下,在不同的网络之前需要路由器的转发,而路由器只知道跟它直接管理的网段,如果这个网段不是这个路由器管理的,需要通过配置静态路由或动态路由告诉路由器。比如一个路由 又连接了另一个路由器的情况。

连接要点:

  1. 左边路由器为路由器A,右边为路由器B
  2. 路由器A的左边网段为 192.168.1.0/24 串口ip 为 192.168.3.1
  3. 路由器B的右边网段为 192.168.2.0/24 串口ip为 192.168.3.2 串口ip 和路由器在同一个网段
  4. 路由器A 配置静态路由规则 192.168.2.0/24 此网段的网络下一跳地址为 192.168.3.2 (路由器B),那么192.168.2.0/24的请求会被转发到路由器B ,路由器将能够正常处理此网段的请求
  5. 同理,路由器B配置静态路由规则 192.168.1.0/24 ,此网段的网站下一跳地址为 192.168.3.1 (路由器A),那么 192.168.1.0/24 的请求会被转发到路由器A。

通过静态路由配置可以配置少量网络的跳转。

而如果当网络比较多的时候,需要使用路由选择协议自动获取路由信息。

注意:路由器直接用的是串口连接

NAT 转换

NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。因此我们可以认为,NAT在一定程度上,能够有效的解决公网地址不足的问题。

因为公网地址是有限的,而为了满足同时上网的需求,通过nat转换将内网的ip地址转换成公网ip地址,解决ip地址不足的问题。

从内网发出的网络请求经过nat 转换,会将内网的ip地址转成外网地址。同时发出的网络请求的响应也得能知道是内网的哪个主机发送的。执行此操作的设备 是NAT 网关。

转换方式有多种

  1. 静态转换 手动配置内网和外网ip的映射信息。这种方式没啥用,并不能解决ip地址不足的问题。

  2. 动态地址转换 这种方式相当于有一个外网的ip地址池,随机向内网的请求分片对应的内网ip地址。在内网地址略大于外网可用ip的时候这种方式是可用的,但是在当下ip地址严重不足的情况下是不能满足需求的,当所有内网主机在上网的时候还是会出现ip地址不足的问题。

  3. 网络地址端口转换 NAPT 这种方式是只有一个外网ip地址。所有内网主机都使用同一个ip地址,不同的是不同的主机在发送数据的时候使用不同的端口号,通过端口号来区分不同的内网主机。这是一种最节省外网ip地址和最常用的一种方式。(在网络发送的时候发送端和接收端都会开启一个端口号)

IP地址和MAC地址

MAC地址 (Media Access Control Address)

在网络传输中需要一个唯一标识地址,用来标识网络的位置。而MAC地址 别称局域网地址、以太网地址、物理地址,直译为媒体存取控制位址,是用来确认网络设备位置的位址。

mac 地址也叫做物理地址。

windows 查看本机的mac地址

1
>ipconfig/all

其中的物理地址即是无线网卡的ip地址。

mac地址是跟网卡有关系的,并不是跟计算机本省相关的。

在每个网卡出厂的时候,写入到网卡中一个全球唯一的6字节的mac地址,用来标识唯一的网络地址。

在两个计算机中访问的时候,只有一台计算器知道另一台计算机的mac地址,也就是知道另一个计算机的接收数据的地址,才能将数据包发送给另一个计算机。

mac 地址格式

全3字节是 厂商标识,标识是哪个网卡生产商,后3位是各个厂商制定的网络接口标识符,用来处理唯一性。

92:dc:03 63:5d:b4

网卡生产商 网络唯一表示位

FF-FF-FF-FF-FF-FF 表示的是广播地址,ARP协议的目标地址就是这个。

ip地址

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

ip地址分为ipv4 和ipv6 表示ip的表示的版本,其中ipv4已经使用完,而ipv6能够表达的ip数量更加的多。

目前常用的是ipv4,因为ipv6还没有彻底普及。

IP地址的格式

IPV4的格式是32bit的数字。在表示的时候使用点隔开。

比如: 192.168.1.1 101.42.164.200

因为是由4个8bit 组成。所以每个占位符的范围是 0-255 .

最大能表示的是 255.255.255.255

IP地址分为2部分,一部分是 网络ID,一部分是主机id。

针对不同的IP网段,这个两部分是不同的。

比如 局域网内 192.168.1.23 子网掩码是 255.255.255.0 的时候,网络ID 是 192.168.1 主机ID是 23 ,也就是说通过网络ID定位到某个网络,通过主机ID定位到具体的网络内的主机或设备。

在ip地址端中 比如 192.168.1.1 - 192.168.1.255 并不是所有ip地址都是可用的,其中每个网段的第一个地址是网关地址,主机不可用,网段的最后一个地址 255 是广播地址,主机不可用。

IP地址和子网掩码的关系

在日常生活中配置主机网络的时候,基本上都要配置这么几个参数

  1. 主机IP地址 ==》 配置当前主机的指定IP

  2. 网关地址 ==》 配置网关地址

  3. 子网掩码

  4. DNS服务器地址 ==》 DNS服务器提供域名到IP的转换映射服务

    子网掩码 用在配合IP地址算出所在网段。

举例说明:

配置IP: 192.168.199.100

配置子网掩码:255.255.255.0

将2个值进行按位于将得到网段,因为子网掩码的格式和ip地址的格式是一样的,也是32bit的数字,并且执行按位于的时候,当位上都是1的得到1 否则得到0.

1
2
3
4
5
192.168.199.100 二进制为   11000000  10101000  11000111 01100100

255.255.255.0 二进制为 11111111 11111111 11111111 00000000

最终计算的结果为 11000000 10101000 11000111 00000000

因为255 已经是8bit的最大值了,所有位上都是1,那么执行按位与将获得本身,最后一位又是0,按位与将获得0

同样此ip 192.168.199.100 ,如果子网掩码是 255.255.0.0 那么网段将是 192.168.0.0 网段。

有的时候能看到这种表示 192.168.1.2/24 这个24 表示的是子网掩码 255.255.255.0 ,24 表示子网掩码从最左边数有24 个1

IP计算工具 https://tool.520101.com/wangluo/ipjisuan/

ip地址分类

根据子网掩码和主机位的不同 ip地址可以分为4类;

类别ip地址范围子网掩码主机数用途
A 类1.0.0.0-127.255.255.255255.0.0.02^24 -2=16777214大范围网络
B类128.0.0.0-191.255.255.255255.255.0.02^16-2=65534中范围网络
C类192.0.0.0-233.255.255.255255.255.255.02^8-2=254小范围网络
D类224.0.0.0-239.255.255.255没有16-2=14多播
E类240.0.0.0-255.255.255.255没有16-2=14保留使用

对于不同的类别的网络,主要的区别在于网络id 和主机数。如果网络内的主机数比较的多,那么就用范围大的能够容纳更多主机数的网络,而如果主机数量少,就使用小范围的网络,一般家庭使用的都是C类网络,而像一般的云服务器给分配的IP一般是A类网络。

子网划分

什么是子网划分?

子网划分就是IP地址的主机位的一部分作为网络位,划分成了多个子网。

以最常用的C 类网络来举例说明,比如此网段 192.168.1.0/24

此网络以二进制表示为 11000000 10101000 00000001 00000000

简单的说就是对当前的网段再次进行切分,切分成多个小的网段。

为什么子网切分

  • 减少网络ip的浪费,在不需要那么多的主机的时候
  • 减少网络流量,在进行广播的时候减少网络流量
  • 方便网络管理,将不同的网段进行隔离

等长子网划分

通过将网络位向主机位借位的方式,能够对当前子网进行等长划分。

实例: 192.168.1.0 子网掩码 255.255.255.0 此子网

划分2个子网

主机位右移1位。 子网掩码配置成 255.255.255.128

划分4个子网

主机位右移2位。 子网掩码配置成 255.255.255.192

在做等长子网划分的时候,每次可以划分的个数为2的倍数,并且子网掩码的位数 每次向右移动一位。网络位移动一位。得到多个网络段。

变长子网划分

上面的子网划分都是等比例的划分,因为他们的子网掩码是一样的,所以可以等比例划分。而如果多个子网的子网掩码都不一样,那么多个子网将不是等长划分的,比如

A B C D 类网段,属于多个子网,并且子网掩码并不相同。

网络工具网站 https://www.bejson.com/convert/subnetmask/

超网重组

IP地址的 网络标识位向右移动 ,主机数减少,网络标识位增加 完成子网的划分,并且单网段的主机数减少了,而超网重组是将IP中的主机位向左移动,网络标识位减少,主机数增加,达到网段中主机数的增加。

举例说明:

192.168.1.0/24 此网段可以承载 253 个主机(排除网关和广播)此时子网掩码是 255.255.255.0

1
2
3
4
5
6
7
                     网络位
11000000 10101000 00000001 00000000
==>主机位向左移动一位
网络位
11000000 10101000 0000000 000000000


此时的子网掩码将是 255.255.254.0

网关: 192.168.0.0

主机地址:192.168.0.1-192.168.1.254 可用主机增加到510个

广播地址:192.168.1.255

总结

  1. 发送网络请求需要知道对应的mac地址,会先发送ARP广播协议获取目标ip的mac地址。

  2. 集线器 同轴电缆都没有缓存网络信息的功能,交换机,网桥能够记录网络信息,比如ip和mac信息

  3. 交换机只能管理同一个网段的主机,不同网段的主机连通需要使用路由器

  4. 内网主机的请求发送到主机需要nat转换中的 网络地址端口转换 转成公网ip地址 + 内网唯一端口号标识

  5. ip 和子网掩码 执行按位与得到所在网段

  6. 在发送网络请求的时候,首先使用目标ip地址和自身的子网掩码 进行按位与 获取到发送的网段,如果是同一个网段就发送目标主机,如果不是同一个网段就将目标地址替换成网关(mac地址不变),由网关来处理请求的路由

  7. 子网划分 就是子网掩码和网络标识位向右移动,将主机位划给网络位,得到多个较小的子网端,超网重组就是子网掩码和网站标识位向左移动,将网络位划给主机位,得到一个较大的子网端,容纳更多的主机数。