前言
身为一个
互联网行业
的从业者,如果连互联网internet相关的知识都没有搞明白,有点过分了
要系统学习网络相关知识了,深知
不做笔记 = 白学
哈哈,笔记做起来!
公司新换地址,然后新换的办公室有味道,CTO的小办公室也有味道,我们集体搬到一个有两个大窗户的会议上,跟CTO在一个办公室办公。。。
有压力,但是,也能更好的督促自己干活或者学习,也算是好事,加油吧,少年!
端口:类比营业厅的窗口
http://IP地址:端口号/资源路径
127.0.0.1或locahost代表本地
国际标准化组织ISO在1985年制定了网络互连模型
OSI参考模型(open system interconnect reference model),具有7层结构
网络中的基本概念
计算机之间的通信基础
- 需要得知对方的IP地址
-
最终是根据MAC地址(网卡地址),输送数据到网卡,被网卡接收
如果网卡发现数据的目标MAC地址
是
自己,就会将数据传递给上一层进行处理
如果网卡发现数据的目标MAC地址
不是
自己,就会将数据丢弃,不会传递给上一层进行处理
MAC地址对应的是网卡
在ping的时候,已经获取对方的网卡地址
在发送数据的时候,如果只知道IP地址,不知道对方的网卡地址,则发送
ARP广播
计算机之间的链接方式:同轴电缆
基本上被淘汰
半双工通信:
只允许同一时间,某一端给另外一端发送数据。比如在A给B发送数据的时候,B不能给A发送数据。
全双工通信:
在同一时间,允许双方都传输数据。类比打电话
同轴电缆是一根绳上的蚂蚱,怎么理解呢?
A -- B -- C -- D
假如A要传数据给D,而此时C断了不通了,则D接收不到数据,这样,安全性则不好
计算机之间的链接方式:集线器(Hub)
集线器:类比代码管理中的仓库SVN,有一个中心,就是集线器。
- 半双工通道
- 容易冲突
- 不安全
- 跟同轴电缆一样:没有智商
计算机之间的链接方式:网桥(Bridge)
能够通过自学习得知每个接口那侧的MAC地址
这样,等下次有数据通过的时候,就可以知道是在那边。存在则通过,不存在则拒绝
网桥只能隔绝冲突域
比如网桥两边各有100万台计算机,他只能知道里面有没有A这个MAC地址,但如何在100万台中找到目标A,还是麻烦的。
计算机之间的链接方式:交换机(Switch)
交换机 可以理解为 集线器 + 网桥
交换机可以说是局域网的最优选择
交换机可以知道每一个电脑的MAC地址,可以精准找到对应的电脑
全双工通信
比集线器安全(不会全部发一遍)
交换机连接的是在同一个网段的机器,如果全球都使用交换机连接,则会有IP地址不够用的问题
另外,交换机发广播,则全球人都能收到
以上几种方式,连接的设备必须在同一个网段,连接的设备必须处在同一个广播域
如何理解同一个网段?
192.168.1
.1
192.168.1
.2
192.168.1
.3
192.168.1
.4
前三个一样的,可以理解为在同一个网段
192.168.1
.5
196.168.1
.1
这两个不在同一个网段
严格来说,这种判断是错误的,不准确的,为何这样说?
因为判断是否在同一个网段,不能仅仅靠前几个字节是否一样去判断。
是通过网络ID判断的,而网络ID与子网掩码有关,后面会讲到
计算机之间的链接方式:路由器(Router)
路由器
- 可以在不同网段之间转发数据
- 隔绝广播域
同一个网段交换数据,使用交换机
不同网段交换数据,使用路由器
主机发数据之前,首先会判断目标IP地址跟自己
是否在同一个网段
如果在同一个网段,则发ARP广播
如果不在同一个网段,则需要通过路由器转发数据
网关(Gateway)
跨网段传输数据,就需要通过网关
路由器里面有网关
MAC地址
每一个网卡都有一个6字节(48bit)的MAC地址(
Media Access Control Address
)
全球唯一,固化在了网卡的ROM中,由IEEE802标准规定
当不知道对方主机的MAC地址时,可以通过发送ARP广播获取对方的MAC地址
获取成功后,会缓存IP地址、MAC地址的映射信息,俗称:
ARP缓存
通过ARP广播获取的MAC地址,属于动态(dynamic)缓存
ARP
Address Resolution Protocol,地址解析协议(此处的地址,指的是MAC地址)
作用:通过IP地址,获取MAC地址
RARP
Reverse Address Resolution Protocol,逆地址解析协议
作用与ARP相反:用于将MAC地址转换为IP地址
现在已经被BOOTP、
DHCP
所取代
IP地址
IP地址(Internet Protocol Address):互联网上的每一个主机都有一个IP地址
IPv4版本,32bit(4字节),在2019年已用完
然后,推出了IPv6版本,128bit(16字节)
但,IPv4中,4个字节使用2进制不容易记,因此,转化为10进制,就是我们平时所用、所看的IP地址
IP地址的组成
IP地址由两部分组成:网络标识(网络ID)、主机标识(主机ID)
- 同一网段的计算机,网络ID相同
-
通过子网掩码(subnet mask)可以计算出网络ID:子网掩码 & IP地址
(&为按位与)
比如:
IP地址为:192.168.1.10
子网掩码:255.255.255.0
按位与算出的结果,就是网络ID
结果的前3位就是网络ID,最后一位就是主机ID
该例子中前三位是网络ID,但并不能说所有的网络ID都是前三位,也有可能只有前两位是网络ID,而后两位是主机ID
问:192.168.1.0/24中/24是什么?
前面是IP地址,我们是知道的,那后面的/24是什么呢?
/24代表24个1,其实就是子网掩码
子网划分
我们知道,IP地址前面是网络ID,属于网段
后面属于主机ID,主机ID的范围决定了可以接入的主机个数。
假设,现在有一个A类IP地址,但是只有10台电脑接入,这。。。太浪费了
因此,我们可以使用子网划分技术,来最大效率的利用IP地址。
子网划分:
借用主机位作子网位,划分出多个子网
子网划分,可以分为:
等长子网划分、变长子网划分
等长子网划分:
将一个网段等分成多个子网,每个子网的可用IP地址数量是一样的
变长子网划分:
每个子网的可用IP地址数量可以是不一样的
如图所示,子网掩码本来24位,现在变为25位。主机位本来是8位,现在变为7位
本来有一个C类网段:192.168.0.0/24
通过上述操作,划分为2个网段:
192.168.0.0/25
192.168.0.128/25
有没有疑问,咋就划分成这样了?想学?继续看
其实正如图所示,第二个网段,最后一个字节的第一位是1,在算网络ID的时候,虽然是1,但是读取的时候不是1,而是1000 0000 正好是128,因此,第二个网段是192.168.0.128
而25标识子网掩码为25个1
原来是24位,现在多了一位,位25位
子网掩码:25个1,表示:
1111.1111.1111.1
255.255.255.128
因此,两个子网掩码都是255.255.255.128
明白了等长子网划分,就很容易理解变长子网划分。
无非就是子网掩码位数的变化,在此不表
超网
跟子网反过来,将多个
连续的网段
,合并成一个更大的网段
问:原本有200台计算机使用192.168.0.0/24网段,现在希望增加200台设备到同一个网段
192.168.0.0/24,子网掩码24位,运算过后,主机ID位后一位,可供256台主机使用
再加200台,一共400台主机,使用仅支持256台的网段,好像不满足需求,那么,
如何解决呢?
方法一:直接使用B类网段
当然,使用B类网络,只使用400台机器,会造成浪费
然后,可以使用分网划分,进行子网划分,避免浪费
方法二: 使用超网
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(子网掩码往左移动一位)
子网掩码往左移动一位,则主机位扩大一倍,变为可容纳600台机器
路由
在不同网段之间转发数据,需要路由的支持
默认情况下,路由器只知道跟它直连的网段,非直连的网段需要通过静态路由、动态路由告诉它
问:什么是静态路由、动态路由呢?
静态路由
- 管理员手动添加路由信息
- 适用于小规模网络
动态路由
- 路由器通过路由选择协议(比如RIP、OSPF)自动获取路由信息
- 适用于大规模网络