前端必须懂的计算机网络知识—(IP,MAC和网络模型)

6,776 阅读9分钟

计算机网络在IT行业的重要性

IT即互联网技术,从事的工作和网络有很大的关系,前端要负责和后台(服务器)进行交互,其必然得经过网络,所以懂点网络知识有很大的帮助。

一道经典的面试题

问:在浏览器输入网址到看到页面经历了哪些过程?

每个人有每个人的回答,先说下我对这道题的答案:

  • 浏览器会访问DNS服务器将输入的域名对应的IP获取到
  • 浏览通过HTTP协议和IP协议处理发送的建立连接的请求然后发送到互联网
  • 在互联网中路由器根据目标IP地址,通过复杂的算法找出'最优路径'来传输请求
  • 找到目标IP计算机(服务器)的网卡通过三次握手建立连接
  • 服务器对请求进行分析处理然后返回浏览器需要的页面
  • 浏览器拿到数据会对DOM结构和CSS进行分析形成renderTree然后渲染到页面上
  • 在渲染的过程中有需要从服务器请求的资源,会重复1-6的过程

上面的回答就涉及到前端必须了解的网络知识点,这个系列会持续介绍:

网络模型数据处理过程

模型数据处理过程

DNS服务器、IP地址、MAC地址

MAC地址

  1. 在互联网中,计算器和计算器之间发送和传输数据都是通过网卡进行的,所以计算机之间建立连接也就是两个网卡之间建立连接。
  2. 网卡内的地址来标识计算机身份的每个网卡都有一个全球唯一的地址来标识自己,不会重复
  3. MAC地址48位的二进制组成,通常分为6段,用16进制表示

mac地址

IP地址

什么是IP地址

  1. 互联网之所以有个网字,是因为它的组成结构就像一张无形的网将全世界的计算机连接在一起,而路由器和计算机属于这个网中的一个节点。
  2. IP地址的网络部分是由Internet地址分配机构来统一分配的,这样可以保证IP的唯一性,用来确定网络中的一个节点。
  3. IP地址是由32位二进制(32bit)组成,将网络分为A、B、C三类,这样就形成了类型邮编的东西来表示网络和子网络
  4. IP地址中全为1即255.255.255.255,它称为限制广播地址,如果将其作为数据包的目标地址可以理解为发送到所有网络的所有主机
  5. IP地址中全为0即0.0.0.0,它表示启动时的IP地址,其含义就是尚未未分配时的IP地址
  6. 127是用来进行本机测试的,除了127.255.255.255外,其它的127开头的地址都代表本机

A、B、C
D、E

网络号和主机号

网络号表示了网络的范围和大小,比如说: A类网络的IP范围:1.0.0.0 ~ 127.0.0.0,说明了A类网络总共有126个(1.0.0.0 ~ 126.0.0),剩下的0.0.0 ~ 1.1.1表明了每个网络下可以有2^24-1个主机。B类、C类以此类推。

公有地址和私有地址

  • A类网络的IP范围:1.0.0.0 ~ 127.0.0.0,其中A类私有IP:10.0.0.0 ~ 10.255.255.255
  • B类网络的IP范围:128.1.0.0-191.255.0.0,其中B类私有IP:172.16.0.0 ~ 172.31.255.255
  • C类网络的IP范围:192.0.1.0-223.255.255.0其中C类私有IP:192.168.0.0 ~ 192.168.255.255
  • 各类网络除私有网络外均为公有IP地址

公有网络就是在互联网内进行标识的IP号,而私有地址则不能用在互联网中用来标识主机地址,私有地址只能在私有网络或局域网中来标识主机。举个例子,北京就是公有地址,而南京街就是私有地址,因为北京有南京街,江西也有南京街,不能用南京街来作为公有地址。

子网和子网掩码

  • 子网掩码(subnet mask)又叫子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机。
  • 子网掩码不能单独存在,它必须结合IP地址一起使用。它只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
  • 子网掩码也是32个二进制位,对应IP的网络部分用1表示,对应IP地址的主机部分用0表示,IP地址和子网掩码做逻辑与运算得到网络地址
  • A类地址的默认子网掩码255.0.0.0
  • B类地址的默认子网掩码 255.255.0.0
  • C类地址的默认子网掩码 255.255.255.0

两个IP地址分别是172.20.0.18和172.20.1.16,子网掩码都是255.255.255.0。我们可以知道两者的网络标识分别是172.20.0和172.20.1,无法直接通信,也就无法PING通。要想能相互通信,需要将子网掩码改成255.255.0.0,反之可以通过子网掩码来分网。

IP地址和MAC地址

  • MAC地址是根据供应商的不同决定的唯一性标识,所以必然就导致其没有办法进行规律化和区域化,所以用同样唯一性的IP地址来代替,因为IP有其分类和区域行特点。
  • MAC地址是固定不变的,一个网卡,从制作出来之后其MAC地址是永远不会变化的,但是IP地址不一样,它是随机分配给网卡使用的,所以不是不变的。举个例子:MAC地址是你,江西的南京街18号和北京的南京街18号是IP地址,只要给你分配了IP,你住在了里面,都可以通过IP找到你。

计算机网络的分层模型

OSI七层模型

  • 应用层(Application) 提供网络与用户应用软件之间的接口服务
  • 会话层(Session) 提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制
  • 表示层(Presentation) 提供格式化的表示和转换数据服务,如加密和压缩
  • 传输层(Transimission) 提供建立、维护和取消传输连接功能,负责可靠地传输数据(PC)
  • 网络层(Network) 处理网络间路由,确保数据及时传送(路由器)
  • 数据链路层(DataLink) 负责无错传输数据,确认帧、发错重传等(交换机)
  • 物理层(Physics) 提供机械、电气、功能和过程特性(网卡、网线、双绞线、同轴电缆、中继器)

OSI七层模型

TCP/IP参考模型

上面的模型只是一种理想和理论层面的,在现实中使用最多的还是TCP/IP参考模型:

  • 应用层
  • 传输层
  • 网络层
  • 数据链路层
  • 物理层

TCP/IP参考模型

为什么要进行分层

  • 应用层:用户使用的网络软件种类繁多,功能都不一样,所以对数据的解析处理过程也不一样,所以应用层提供网络与用户应用软件之间的接口服务,适应差异性。
  • 传输层:数据要进行网络传输,必然就面临很多问题,连接不持久、延迟、丢包等问题就会影响网络传输的稳定性,所以传输层提供建立、维护和取消传输连接功能,负责可靠地传输数据
  • 网络层:数据在网络上传播,网络的机构是复杂的,条条道路同罗马,所以从发送地到接收地有很多可能的路线,怎样选择路线才能保证数据更快到达,这里涉及到很多如'最短路径'的算法问题,所以网络层处理网络间路由,确保数据及时传送(路由器)
  • 数据链路层:路由器在互联网中负责IP地址的查找,但是在局域网内,使用的是私有IP,这个时候就需要处理局域网和私有IP之间查找和传输的问题,所以数据链路层负责无错传输数据,确认帧、发错重传等(交换机)
  • 物理层:网络的传输总得通过媒介,所以物理层提网卡、网线、双绞线、同轴电缆、中继器等媒介

上面是TCP/IP参考模型分层原因,但是它存在一定的缺点,所以在上面进行扩展:

  • 会话层:由于基于TCP连接是不持久的,在应用层下面增加会话层提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制cookie、session等,
  • 表示层:由于TCP连接是不安全的,容易发生请求截取和篡改而导致密码泄漏、注入攻击等问题,所以在传输层之上增加了表示层提供格式化的表示和转换数据服务,如加密和压缩

路由器和交换机

  • 路由器负责互联网节点之间的路由和连接,它通过公网IP和路由器MAC地址之件的映射,通过算法保证最有效的传输数据
  • 交换机主要用于局域网内私有IP和MAC地址之间的映射关系,来处理数据传输
  • 交换机属于数据链路层,路由器属于网络层,数据在传输过程中不断地进行封装和解封装的过程,每层设备只能处理哪一层的数据,发送方和接收方中间可能会有多个硬件中转设备,中间可能会增加交换机和路由器

数据封装

模型数据处理过程

模型数据处理过程

结语: IT即互联网技术,从事的工作和网络有很大的关系,前端要负责和后台(服务器)进行交互,其必然得经过网络,所以懂点网络知识有很大的帮助。接下来会介绍:

  1. 跨域和代理
  2. TCP
  3. HTTP
  4. HTTPS 本文参考:
  5. 图解HTTP
  6. 计算机网络