第28期:网络

两个主机怎么相连?

没有互联网之前,电脑都是单机运行的,没有网卡,没有协议栈,没有网线,数据传输主要通过光盘,软盘等介质。

网线来了

pc1-网口 ———网线———— 网口-pc2

Note:
其中网线承载bit流,作为物理介质。网卡将字节转换成bit流,反之。还用到协议栈,实现通信中数据的解析,流控制,地址寻址等。

网线不够长怎么办?

随着距离变长,信号损耗导致数据丢失,便用到了中继器放大信号。

中继器只有2个口,这个时候有第三台电脑加进来,怎么办?

集线器:多口中继器,但是从一个口出来的数据发同时发往其他口,导致数据泛滥,带宽利用率低,无法隔绝各自的环境。

隔绝环境,用网桥

网桥,记录了每台主机的mac地址,根据mac地址来分发数据,但接口比较少,怎么办?交换机来了。

交换机

交换机,记录了每台主机的mac地址,接口多,能进行vlan隔离。一般用于局域网。
想通信更远,怎么办?路由器来了。

布线麻烦怎么办?AC/AP来了
不够安全怎么办?防火墙来了
网络拥堵怎么办?流量控制来了

OSI七层模型

应用层: 开发者将通信模型定制成协议。
表示层:制定双方数据交换格式。如Content-Type:application/json; charset=utf-8
会话层: 管理会话连接,由应用程序的请求和响应组成。
传输层:端口,实现报文数据传递。
网络层:路由器,ip寻址。
数据链路层:交换机,mac寻址,数据差错检测。
物理层:网线,二进制流传输。

常见问题
1.为什么有了ip还需要mac地址?

-简而言之,标识网络中的一台计算机,比较常用的就是IP地址和MAC地址,但计算机的IP地址可由用户自行更改,管理起来就相对困难,而MAC地址不可更改,所以一般会把IP地址和MAC地址组合起来使用。
-那只使用MAC地址不用IP地址行不行呢?不行的!因为最早就是MAC地址先出现的,并且当时并不用IP地址,只用MAC地址,后来随着网络中的设备越来越多,整个路由过程越来越复杂,便出现了子网的概念。对于目的地址在其他子网的数据包,路由只需要将数据包送到那个子网即可。
-那为什么要用IP地址呢?是因为IP地址是和地域相关的,对于同一个子网上的设备,IP地址的前缀都是一样的,这样路由器通过IP地址的前缀就知道设备在在哪个子网上了,而只用MAC地址的话,路由器则需要记住每个MAC地址在哪个子网,这需要路由器有极大的存储空间,是无法实现的。
-IP地址可以比作为地址,MAC地址为收件人,在一次通信过程中,两者是缺一不可的。

2.交换机有什么作用?

交换机通过广播形式发送arp每台设备的mac地址。
arp 即 Address Resolution Protocol,地址解析协议,是根据ip获取设备的mac地址。

3.同一网段为什么能通信?

如果同一网段,一般只运用到二层的mac地址的转发,2个相同网段的主机pc1和pc2,当pc1 ping pc2的时候,会先发送arp包,请求pc2的mac地址来进行二层封装,因为他们同一网段,所以能够获得arp回应,有了mac地址就能进行二层源mac和目的mac的封装,封装好了就能通讯。记住二层转发是基于mac的,三层才会基于ip。

4.直连网络需要ip地址?

如果两台机器互相知道其MAC地址可以直接交流,前提是互相知道彼此的MAC地址,如果不认识,就要通过arp广播(正向ARP: 通过IP地址获取MAC地址)找到mac地址。

局域网内部的主机互联互通只需要MAC地址,而不需要IP地址,IP地址的作用是不同局域网的互联互通。

安全

DDos

Distributed Denial of Service 分布式拒绝服务

肉鸡大量访问目标网站,目标网站被消耗带宽、服务器资源,导致无法正常处理其他用户请求。

DNS劫持

假设运营商的DNS服务器被侵入了,用户的请求经过运营商DNS解析后被指向带有广告的ip网站去。

DNS查询攻击

DNS Query Flood Attack: 攻击方法是通过操纵大量傀儡机器,发送海量的域名查询请求,当每秒域名查询请求次数超过DNS服务器可承载的能力时,则会造成解析域名超时从而直接影响业务的可用性

SQL注入

SQL注入:利用现有应用程序,可以将恶意的SQL命令注入到后台数据库引擎中并执行。也可以通过在Web表单中输入恶意SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句

举例:假设后端有一个漏洞,sql逻辑是通过拼接方式执行sql。
select * from car where (carNum = $web1

前端被恶意传入变量值web1: ‘ZU_006’,0,0);DROP DATABASE TABLE=’car’

这就会导致表会被删除。

跨站脚本攻击

手段1:黑客发送一个带有恶意XSS脚本的链接给小白用户,小白点了链接,页面加载执行了恶意XSS脚本,这段脚本可以盗取小白的登录信息然后发给黑客。
手段2: 黑客预先将恶意XSS脚本注入到攻击网站的数据库(假设目标网站存在漏洞能被注入脚本),其他用户刚好加载到带有恶意XSS脚本的目标页面,XSS脚本偷偷将用户的登录信息发给黑客。

重定向攻击

一种常用的攻击手段是”钓鱼”。钓鱼攻击者通常会发送给受害者一个合法链接,当您访问链接时,会被导向一个非法网站,从而达到骗取用户信任、窃取用户资料的目的。为防止这种行为,我们必须对所有的重定向操作进行审核,以避免重定向到一个危险的地方。常见解决方案是白名单,将合法的要重定向的URL添加到白名单中,非白名单上的域名重定向时拒绝。第二种解决方案是重定向token,在合法的URL上加上token,重定向时进行验证。