目录
通信基础
前言
广播域与冲突域
计算机之间的连接方式
网线直连(交叉线)
同轴电缆
集线器
网桥
前言
举例(计算机6向计算机7相互通信)
交换机
交换机原理
路由器
路由器与其他设备区别:
注意:
举例:以计算机0向计算机3发送数据为例
物理分割与逻辑分割
VLAN
为什么需要vlan
vlan的实现
vlan的成员模式
路由
前言:
静态路由
需求:计算机0向计算机2发送数据
动态路由
路由表
路由表特殊案例
网络基础知识
网络互联网与因特网的关系
ISP
网络的分类
上网方式
1.电话线入户
2.光纤入户
3.网线入户
家用无线路由器的逻辑结构
NAT协议
NAT协议特点
NAT的实现方式
SNAT协议
理解:以电脑1向电脑3通信为例
DNAT协议
代理服务器
特点
正向代理与反向代理
正向代理作用:
反向代理作用:
内网穿透
架构图:
CDN
前言
使用CDN请求流程
cdn的分发流程
VPN
前言
VPN分类
站点——站点
客户端——站点
网络爬虫
网络爬虫原理
网络爬虫之搜索引擎
robots.txt
通信基础
前言
在互联网中,若两台机器需要进行通信那么就需要知道对方的ip地址,通过arp协议来知道对方的mac地址;最终根据mac地址(网卡地址),输送数据到网卡,被网卡接收;若网卡发现数据的目标mac地址是自己,就会将数据传递给上一层进行处理;若网卡发现数据的目标mac地址不是自己,就会将数据丢弃,不会传递给上一层进行处理
注意:
- 计算机中的网卡用来接收网络数据
- 网卡的内部有mac地址,这个mac地址全球唯一
广播域与冲突域
- 广播域:广播方式是指一台主机同时向网段中所有的其他计算机发送信息,广播方式会占用大量的资源。广播域是指广播能够到达的网段范围。
- 冲突域:冲突是指在同一个网段上,同一个时刻只能有一个信号在发送,否则两个信号相互干扰,即发生冲突。冲突会阻止正常帧的发送。冲突域是指能够发生冲突的网段。
计算机之间的连接方式
网线直连(交叉线)
注意:两台计算机分别设置同一网段的IP地址,后打开一个计算机的命令行界面,通过ping另外一台计算机的方式来检测双方计算机之间的连通性。
同轴电缆
注意:
- 同轴电缆中处于同一网段的设备之间可以相互通信
- 同轴电缆两边分别有个电阻,叫做终结电阻
- 终结电阻的作用:防止数据的回流叠加
- 同轴电缆的通信方式为半双工通信(一个通道同一时间只允许一个方向进行数据发送)
- 同轴电缆的使用容易出现数据冲突
- 不安全:在同轴电缆中若一个设备向另一个设备发送信息,那么数据将会在整个同轴电缆中传播,该数据容易被其他电脑设备抓包捕获
- 同轴电缆中间若断了,那么整个网络就会瘫了(没有终结电阻,容易出现数据回流)
集线器
含义:集线器的英文称为“Hub”。集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI参考模型第一层,即“物理层”。集线器与网卡、网线等传输介质一样,属于局域网中的基础设备,采用CSMA/CD(即带冲突检测的载波监听多路访问技术)介质访问控制机制。集线器每个接口简单的收发比特,收到1就转发1,收到0就转发0,不进行碰撞检测。
注意:
- 集线器中处于同一网段的设备之间可以相互通信
- 集线器和同轴电缆唯一的区别就是若连接集线器中的一个设备断了,那么不会影响到其他设备之间的通信
网桥
前言
若集线器连接了1000台设备,若集线器中的一台设备想给另外一台设备发消息,那么一开始的arp广播将会发给1000台设备,若该设备通过arp已经直到了对方的mac地址,此时发数据又得发给1000台设备,但最终只有目标设备接收到此消息,其他设备都将此消息丢弃,那么很长时间都会占用带宽。
含义:网桥是根据物理地址过滤和转发数据包的连接设备,它工作于OSI 模型的数据链路层(对应于TCP/IP 网络的网络访问层)。
举例(计算机6向计算机7相互通信)
首先计算机6不知道计算机7的mac地址,那么会通过计算机7的ip地址来发送arp广播,当该arp广播经过网桥时,网桥便记录了左边接口的计算机6的mac地址,但是网桥此时并不清楚计算机7的mac地址是什么,在那个接口,就会导致该arp广播在整个网段中的所有设备之间进行传播,此时只有计算机7得到该报文没将该报文丢掉,计算机7开始对计算机6进行回应,目标mac地址为计算机6的mac地址,向整个网段的所有设备进行广播,当该报文经过网桥时,网桥记录计算机7的mac地址在左边的接口,并且发现该报文的目标mac地址在自己的左边接口,那么就会阻断该报文流向右边接口,最终计算机6得到报文
注意:
- 网桥中处于同一网段的设备之间可以相互通信
- 网桥相对于集线器能够通过自己学习来得知每个接口那侧的所有mac地址,进而阻止了无意义的数据传送,隔绝了冲突域
交换机
含义:(switch)意为开关是一种用于光电信号转发的网络设备,他的主要作用是把数据包发送到正确的位置。
交换机原理
交换机根据数据包中的目标mac地址直接找到她所对应的物理端口,一台交换机有很多端口,他们都有自己的编号,计算机的网卡通过网线连接到交换机的端口上,这个端口就是一个确定的物理位置,如果知道某个网卡的mac地址我们就能正确的将数据包发送给他,所以在交换机中维护着一张端口与mac地址的映射关系表(mac地址表),想要与某个mac地址通讯时只需要查询一下这个mac地址在哪个端口上然后从对应的端口发送出去即可。
当交换机收到发来的数据帧后查看帧头部,首先查看源MAC地址有没有记录在自己的MAC表中,如果有,那么记录;继续查看目标MAC地址,如果没有,就直接从除了自己以外的所有接口群发(广播),只有是此MAC地址的计算机做出回应给交换机,其他计算机丢弃。交换机后发现目标mac地址对应在1号端口上,那么将此mac地址记录在mac表中,直接从1号口进行转发出去。
注意:
- 交换机中处于同一网段的设备之间可以相互通信
- 交换机类似于接口更多的网桥
- 交换机比集线器更安全
- 同轴电缆的通信方式为全双工通信
路由器
前言:若全球的计算机都用交换机相互连接,那么,由于交换机所连接的设备处于同一网段,那么就会出现广播风暴,后果不堪设想
含义:连接两个或多个网络的硬件设备,在网络间起着网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性网络设备。
路由器与其他设备区别:
- 网线直连、同轴电缆、集线器、网桥、交换机等设备连接的设备必须处于同一网段,而路由器所连接的设备可以处于不同网段
- 路由器可以隔绝广播域(左边的广播不会发到右边)
注意:
- 主机发数据之前,首先判断目标主机的IP地址跟我是否在同一网段,若在同一网段,则主机会直接发起arp广播来获取对方的mac地址,进而进行数据传输;若不在同一网段,则会通过路由器转发数据(通过arp获得网关的mac地址,进而通过网关进行转发)
- 路由器左右两边分别分割着不同的网段,一个设备若想要跨网段进行通信,那么就需要通过路由器网关;路由器一般有2个网关,一个网关对应着一个网段;路由器发数据会看数据的目的IP地址为那个网段,进而将该数据从那个网段所对应的接口发出;一般来说网关所有的ip地址为除广播地址或网段地址的任意一个IP地址,通常习惯用该网段的第一个IP地址作为网关
- 路由器的每个接口都对应着自己的mac地址与IP地址
举例:以计算机0向计算机3发送数据为例
计算机0要向计算机3发送消息,首先要获取计算机3的mac地址,因为计算机3和计算机1处于不同的网段,所以计算机1将会通过arp获得网关左接口mac地址(因为设的网关为左接口);计算机0得到网关左接口的mac地址后将消息发送到路由器(源IP:192.168.1.10,目标IP:192.169.2.11;源mac:计算机0mac,目标mac:网关左接口mac),路由器收到该报文后发现目的IP在右接口,进而在右接口发送arp报文来获得电脑3的mac地址,获得电脑3的mac后将数据发送给电脑3(源IP:192.168.1.10,目标IP:192.169.2.11;源mac:网关右接口mac,目标mac:计算机3mac),计算机3收到报文后响应给网关(源IP:192.169.2.11,目标IP:192.168.1.10;源mac:计算机3mac,目标mac:网关右接口mac),网关收到数据后响应给计算机0(源IP:192.169.2.11,目标IP:192.168.1.10;源mac:网关左接口mac,目标mac:计算机0mac)。
物理分割与逻辑分割
- 物理分割:将网络从物理上划分为若干个小网络,再使用能隔离广播的路由设备将不同的网络连接起来实现通信。
- 逻辑分割:将网络从逻辑上划分为若干个小的虚拟网络,即VLAN 。VALN工作在OIS参考模型的数据链路层,一个VLAN就是一个交换网络,其中的所有用户都在同一个虚拟网络中,各VLAN通过路由设备连接实现通信。
VLAN
含义:VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信,而VLAN间不能直接通信,从而将广播报文限制在一个VLAN内。
为什么需要vlan
- 交换机的所有接口都属于一个广播域,往往也是一个逻辑子网
- 用户无法根据业务需要灵活的在交换机上进行广播域的隔离
- 随着网络规模越来越大,数量越来越多,广播风暴将给网络带来重大问题
vlan的实现
将交换机的接口根据业务需要添加到不同的vlan中,从而实现二层隔离
注意:
- 一个vlan所处设备处于同一个广播域内,不同vlan为不同广播域,不同vlan间二层隔离,广播不能跨越vlan传播,因此,不同vlan间设备无法进行二层通信,需通过三层设备实现互通
- vlan中成员关系多基于交换机的接口进行静态分配,划分vlan就是将交换机的接口添加到特定的vlan中
vlan的成员模式
- 静态vlan:以手工的方式将端口加入到特定的vlan中(比较常用)
- 动态vlan:根据接入到交换机的客户端的mac地址等信息,动态的将交换机的接口添加到特定的vlan中
路由
前言:
- 在不同网段之间转发数据需要有路由器支持的,默认情况下,路由器只知道跟他直连的网段,非直连的网段需要通过静态路由、动态路由告诉他
- 路由器内部维护着一张路由表,用来记录各个路由之间的数据传递方向
静态路由
含义:管理员手动向路由表内添加路由信息
需求:计算机0向计算机2发送数据
注意:路由器0和路由器1中互相连接的serial接口(串口)必须在同一个网段,主要用于路由器之间的跳转
理解:网络地址下面的框就是记录所谓的路由表,其中193.169.2.0/24 via 194.170.1.2代表当自己请求的目标主机在193.169.1.0/24网段时,那么自己的请求将会路由到194.170.1.2地址中,而静态路由上面的3个选框就是为了添加路由表信息(路由器0请求193.169.2.0/24这个网段时的下一跳是194.170.1.2)
动态路由
含义:路由器通过路由选择协议(RIP,OSPF)自动获取路由信息
动态路由理解:路由器通过动态路由协议就可以识别自己的网络路径的走法,首先,每个路由器都知道跟自己直连的网段有哪些,若需要了解自己需要走的路径,那么只需要路由之间相互通信即可,询问对方路由有没有自己需要的网段,有则直接将该信息添加到路由表。
关于静态路由与动态路由理解:静态路由为静态添加路由表,动态路由为动态添加路由表
路由表
含义:各路由之间相互跳转的依据
路由表特殊案例
- 193.169.1.11/32 via 194.170.1.2代表当自己请求的目标主机的IP地址为193.169.1.11时,那么自己的请求将会路由到194.170.1.2地址中。
- 193.0.0.0/8 via 194.170.1.2代表当自己请求的目标主机的IP地址为193.0.0.0/8的子网段时,那么自己的请求将会路由到194.170.1.2地址中(当然,若有配置精确的路由表数据就先以精确路由表数据为准进行跳转)。
- 0.0.0.0/0 via 194.170.1.2(默认路由)代表默认情况下只要有电脑主机,那么就直接跳转到194.170.1.2地址中(当然,若有配置精确的路由表数据就先以精确路由表数据为准进行跳转)
网络基础知识
网络互联网与因特网的关系
- 网络:(network)将多台计算机通过网络设备连接起来
- 互联网:(internet)利用路由器把多个网段连接起来形成一个更大的网络
- 因特网:(Internet) 世界上最大的互联网
ISP
含义:(Internet Service Provider)Internet服务提供商,比如移动、电信、网通、铁通等
理解:我们的电脑之所以能够连接到Internet,主要是我们使用了Internet服务提供商所提供的服务,Internet服务提供商去铺设网线、光缆、电话线、路由器等,将这些铺设好之后,我们去买他们的服务,他们就能帮助我们将网络连接到世界各地
注意:我们平时拉的宽带都是通过ISP连接到Internet的
网络的分类
- 广域网:(WAN、万维网、外网)一般范围是几百公里到几千公里,可以覆盖一个国家。通常都需要租用ISP线路
- 城域网:一个城市的网络,一般是范围数十公里到数百公里,可以覆盖一个城市
- 局域网:(LAN、内网)一般是范围在几百米到十几公里内的计算机所构成的计算机网络,局域网中使用最广泛的网络技术叫以太网(Ethernet)
上网方式
1.电话线入户
猫:也叫调制解调器,主要作用就是进行数字信号和模拟信号之间的转换
注意:电话线传递的是模拟信号,计算机传递的是数字信号
2.光纤入户
光猫:光调制解调器,主要进行数字信号和光信号之间的转化
3.网线入户
家用无线路由器的逻辑结构
NAT协议
含义:NAT协议是将IP数据报头中的IP地址转换为另外一个IP地址的过程, 主要用于实现私有网络访问公有网络的功能。这种通过使用少量的IP地址代表较多的私有IP地址的方式,将有助于减少IP地址空间的枯竭
NAT协议特点
- 可以节约公网IP资源
- 会隐藏内部的真实IP
NAT的实现方式
- 静态NAT:手动配置nat映射表,自己配置私网IP所对应的公网IP来进行nat转换(一对一转换)
- 动态NAT:定义外部地址池,动态随机转换,当有一个私网IP要访问互联网,那么就会自动拿出地址池里面的公网IP来进行对接转换,若再有一个私网IP想要访问外部网络,则会再从地址池中拿出公网IP对接(一对一转换)
- 网络地址端口转换NAPT(Network Address Port Translation):其是把内部地址映射到外部网络的一个IP地址的不同端口上。
注意:NAPT是使用最普遍的一种转换方式,在HomeGW中也主要使用该方式。它又包含两种转换方式:SNAT和DNAT。
SNAT协议
含义:(source network address translation)源地址转换是内网地址向外访问时,发起访问的内网ip地址转换为指定的ip地址(可指定具体的服务以及相应的端口或端口范围),这可以使内网中使用保留ip地址的主机访问外部网络,即内网的多部主机可以通过一个有效的公网ip地址访问外部网络。
理解:以电脑1向电脑3通信为例
电脑3指定257端口提供服务
当电脑1与电脑3通信时,电脑1开启随机端口(如255)打开连接准备与电脑3建立——(源IP:192.168.1.2,目标IP:30.0.0.2;源端口:255,目标端口:257),因为电脑1的ip为内网ip不能在公网上进行通信,因此到达路由器进行协议地址转换之后路由器将源ip改为自己的公网ip将源端口改为自己的随机端口(如256)——(源IP:30.0.0.1,目标IP:30.0.0.2;源端口:256,目标端口:257)向电脑3发送信息,电脑3收到信息后准备向30.0.0.1地址的256端口进行回复——(源IP:30.0.0.2,目标IP:30.0.0.1;源端口:257,目标端口:256)该地址的路由器收到了回复找到256端口对应的电脑以及对应的端口(192.168.1.2:255)也就是电脑1,将信息发给电脑1,电脑1收到信息后与电脑3断开连接。
DNAT协议
含义:(destination network address translation)目标地址转换,作用是将一组本地内部的地址映射到一组全球地址。
如果我们的内网计算机对外提供服务,则公网上发的请求不能直接到达内网计算机,因此就需要路由器用DNAT技术帮我们转发请求。
例子:192.168.1.10对外提供服务,监听80端口
访问公网(路由器具体的公网地址:221.8.14.91)的8080端口则转到192.168.1.10的80端口,当访问数据包从wan口进入后路由器执行DNAT修改目标ip为192.168.1.10,修改目标端口为80进而把数据包发给了计算机。
代理服务器
特点
- 代理服务器本身不生产内容
- 处于中间位置,用于转发上下游的请求和响应
- 对于面向下游的客户端来说,他是服务器;对于面向上游的服务器来说他是客户端。
正向代理与反向代理
正向代理:代理的对象是客户端(帮客户端办事情)
正向代理作用:
- 隐藏客户端身份:客户端的公网IP直接访问服务器,那么服务器就会知道我们的IP地址,若我们通过代理服务器来访问目标服务器,那么目标服务器仅仅知道代理服务器的IP地址
- 绕过防火墙:有些目标服务器我们访问受限,我们可以通过不受限制的代理服务器来访问目标服务器
- internet访问控制:通过代理服务器我们可以控制谁可以上网,谁不能上网(例如一台路由器下有多个主机,路由器规定仅有一个主机可以上网,那么其他主机想要上网的或都需要经过那个主机做代理服务器)
- 数据过滤:通过internet访问控制实现
反向代理:代理的对象是服务器(帮服务器办事情)
反向代理作用:
- 隐藏服务器身份:客户端仅知道代理服务器IP地址(代理服务器与客户端进行交互)
- 安全防护:无法直接访问目标服务器进而提升了目标服务器的安全性
- 负载均衡:若很多主机共同访问同一台服务器,那么这个服务器容易挂,可以通过代理服务器代理多个其他服务器来分发内容来减缓服务器压力,同时,若多个服务器中有一个服务器挂掉还可以继续使用。
理解:正向代理是代理服务器代替系统内部来访问外部网络的过程,反向代理是外部请求访问系统时通过代理服务器转发到内部服务器的过程。
内网穿透
作用:用于外网设备访问内网资源
架构图:
理解:首先准备一台公网IP的服务器,然后在本地开启一个服务,同时该服务与那台服务器进行TCP连接,同时将本地服务所在内网的IP和端口与公网服务器的IP和端口形成映射,那么别人只要访问公网服务器的IP和端口就能直接穿透到本地的内网的IP和端口。
CDN
前言
含义:(Content Delivery Network)内容分发网络,通过在现有的internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络边缘,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。
理解:其利用最靠近每位用户的服务器更快的将音乐、图片、视频等资源文件(一般是静态资源)传递给用户。
注意:
- CDN运营商在全国、乃至全球的各大枢纽城市都建立了机房,部署了大量拥有高存储、高带宽的节点,构建了一个跨运营商、跨地域的专用网络
- (源站)内容所有者向CDN运营商支付费用,CDN将其内容交付给最终用户
使用CDN请求流程
理解:如今我想访问资源,首先我们请求DNS服务器来询问自己的域名所对应的IP地址是什么,网站DNS服务器内部是有记录的,他看到我们的域名比较特殊(对应的是CDN服务相关的服务器)没办法直接给我们相应的IP地址,进而请求了CDN的DNS服务器进而CDN的DNS服务器告诉我们IP地址,此时我们拿到的IP地址为CDN全局负载均衡服务器的IP地址,这台服务器根据我们的IP地址来判断那一台节点离我们最近,之后告诉我们去请求那一台的CDN节点,若这台缓存服务器没有我们想要的目标资源,那么缓存服务器便会向源站请求,最终把获取到的内容缓存到缓存服务器,最终把内容发给用户。
cdn的分发流程
push:源服务器把静态内容提前备份给cdn
pull:cdn向源服务器索取相应的静态内容
- 对于静态内容,源服务器把静态内容提前备份给cdn(push),那么这样在世界各地的用户需要访问网页的时候就近的把静态内容提供给用户,就不需要每次都劳烦服务器,若源服务器没有把静态内容提前备份给cdn那么当用户来访问网页时,cdn就会向原服务器索取相应的静态内容(pull)同时源服务器也可以让cdn备份cdn备份好内容后在提供给用户,因此其他做出请求的用户也可以马上拿到内容了
- 对于动态内容,有些cdn提供可以运行在cdn上的接口让源服务器用这些cdn的接口,而不是源服务器自己的代码,这样用户便可以直接从cdn上获取动态内容,而不用关心源服务器
cdn的加速:cdn不仅会使用户访问服务器距离变近,加载速度变快,同时在文件层面上也会帮你把文件进行最小化或者压缩文档来提升传输效率
VPN
前言
含义:虚拟专用网(Virtual Private Network,VPN)是一种利用公共网络来构建的专用网络技术。
核心原理:为了使发送发与接收方可以相互通信,那么两个地方分别配置一个VPN服务器(VPN集线器),发送方发送的数据要经过发送方VPN服务器进行加密,加密的数据通过自己的ISP(互联网服务提供商)进入互联网,之后加密的数据抵达接收方的VPN服务器后进行解密,然后再将数据分配到指定的主机;(发送方与接收方位置可以互相调换)
理解虚拟专线:它不是真正的专线,但是它却实现了专线的功能,发送的数据与接受的数据被加密,在这其中的数据只有两端联通的人才可以看到,而且它也可以突破路由器内网的限制,实现“跳墙”。
VPN分类
站点——站点
过程:发送方开始向接收方发送数据,数据到达发送方vpn服务器时数据会被加密(由于数据被加密,所以在中间人看来就只是两个集线器之间相互通信)当该数据到达接收方vpn服务器时数据会被解密,进而将数据发送到数据接收方
注意:站点对站点意味着两端或多端地点相对固定,链接不间断
客户端——站点
过程:首先数据通过ISP的网络发送到VPN服务器(前提需要安装VPN客户端软件,进而在发送数据时,数据会被自动加密),然后VPN服务器再把数据解密发送到真实的服务器那边
注意:这种类型VPN相对灵活,比较适合不需要长时间进行链接的方式
网络爬虫
含义:网络爬虫也叫网络蜘蛛,其可以模拟人类使用浏览器操作页面的行为,对页面进行相关操作
网络爬虫原理
理解:爬虫内部有多线程下载器,其可以开多条线程去爬(下载)网站上的网页,下载完网页后其会将网页上的文本数据和图片数据下载到本地,下载完后其会继续分析该网页上有没有其他稳定的链接;若分析出它下面有新的链接,其就会把分析到的url放到一个队列里面去;这个队列就会不断地取出url来处理,该url又会输送到多线程下载器内,多线程下载器便会根据该url又下载一个网页,如此循环往复。
网络爬虫之搜索引擎
理解:我们在搜索引擎中可以搜索到多个网站,这主要是爬虫在私底下24小时不停的爬数据,当它爬到网页的时候,其就会建立索引进而将数据放到数据库,当用户搜索的时候,其就会用到排名算法去数据库里面查询相关的数据,最终把结果交给用户。
robots.txt
含义:robots.txt是存放在网站根目录下的文本文件,比如https://www.baidu.com/robots.txt
作用:用来告诉爬虫,那些内容是不应该被爬取的,那些是可以被爬取的
注意:
- 因为一些系统中的url是大小写敏感的,所以robots.txt的文件名应统一为小写
- 它并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私(只能防君子,不能防小人)