1.IP地址
网络中唯一定位一台设备的逻辑地址,类似我们的电话号码。
在互联网中我们访问一个网站或使用一个网络服务最终都需要通过IP定位到每一台主机,如访问baidu网站:
其中220.181.112.244就是一个公网的IP地址,他最终指向了一台服务器。
IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
内网IP可以同时出现在多个不同的局域网络中,
如A公司的U1用户获得了192.168.0.5,B公司的U3用户也可以获得192.168.0.5;但公网IP是唯一的,因为我们只有一个Internet。
2.域名
域名是IP的别名,便于记忆,域名最终通过DNS解析成IP地址。
PV4是一个32位的数字,IP V6有128位,要记住一串毫无意义的数字非常困难,域名解决了这个问题。
3.NAT 网络地址转换
NAT(Network Address Translation)即网络地址转换,NAT能将其本地地址转换成全球IP地址。
内网的一些主机本来已经分配到了本地IP地址(如局域网DHCP分配的IP),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
通过使用少量的公有IP地址代表较多的私有IP地址的方式,将有助于减缓可用的IP地址空间的枯竭。
NAT不仅能解决了IP地址不足与共享上网的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
多路由器可完成NAT功能。
# NAT的实现方式:
静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一。
动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的。
# 端口多路复用(Port address Translation,PAT):
内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。
同时又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
# 应用程序级网关技术(Application Level Gateway)ALG:
传统的NAT技术只对IP层和传输层头部进行转换处理,ALG它能对这些应用程序在通信时所包含的地址信息也进行相应的NAT转换
4.Proxy 代理
Proxy即代理,被广泛应用于计算机领域,主要分为正向代理与反向代理:
# 正向代理
比如X花店代A,B,C,D,E五位男生向Candy女生送匿名的生日鲜花,
这里的X花店就是5位顾客的代理,花店代理的是客户,隐藏的是客户。这就是我们常说的代理。
正向代理隐藏了真实的请求客户端。服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求,
某些咳血上网工具扮演的就是典型的正向代理角色。
用浏览器访问http://www.google.com时被墙了,于是你可以在国外搭建一台代理服务器,
让代理帮我去请求google.com,代理把请求返回的相应结构再返回给我。
当多个客户端访问服务器时服务器不知道真正访问自己的客户端是那一台。正向代理中,proxy和client同属一个LAN,对server透明;
# 反向代理
拨打10086客服电话,接线员可能有很多个,调度器会智能的分配一个接线员与你通话。
这里的调度器就是一个代理,只不过他代理的是接线员,客户端不能确定真正与自己通话的人,隐藏与保护的是目标对象。
反向代理隐藏了真实的服务端,当我们请求 www.baidu.com 的时候,就像拨打10086一样,
背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,
你只需要知道反向代理服务器是谁就好了,ww.baidu.com 就是我们的反向代理服务器,
反向代理服务器会帮我们把请求转发到真实的服务器那里去。Nginx就是性能非常好的反向代理服务器,用来做负载均衡。
反向代理中,proxy和server同属一个LAN,对client透明。
5.DDNS 动态域名解析
DDNS即动态域名解析,是将用户的动态IP地址映射到一个固定的域名解析服务上,
用户每次连接网络的时候,客户端程序就会通过信息传递把该主机的动态IP地址
再传送给位于服务商主机上的服务器程序,服务程序负责提供DNS服务并实现动态域名解析。
就是说DDNS捕获用户每次变化的IP地址,然后将其与域名相对应,这样域名就可以始终解析到非固定IP的服务器上,
互联网用户通过本地的域名服务器获得网站域名的IP地址,从而可以访问网站的服务。
6.为什么需要内网穿透
当内网中的主机没有静态IP地址,且要被外网稳定访问时可以使用内网穿透
在互联网中唯一定位一台主机的方法是通过公网的IP地址,
但固定IP是一种非常稀缺的资源,不可能给每个公司都分配一个,
且许多中小公司不愿意为高昂的费用买单,多数公司直接或间接的拨号上网,
电信部门会给接入网络的用户分配IP地址,以前上网用户少的时候基本分配的都是临时的静态IP地址,
租约过了之后可能会更换成另一个IP地址,这样外网访问就不稳定。
因为内网的静态IP地址一直变化,为了解决这个问题可以使用动态域名解析的办法变换域名指向的静态IP地址。
但是现在越来越多的上网用户使得临时分配的静态IP地址也不够用了,
电信部门开始分配一些虚拟的静态IP地址,这些IP是公网不能直接访问的,如以125开头的一些IP地址,以前单纯的动态域名解析就不好用了。
7.内网穿透的定义与障碍
简单来说实现不同局域网内的主机之间通过互联网进行通信的技术叫内网穿透。
障碍一:
位于局域网内的主机有两套IP地址,
一套是局域网内的IP地址,通常是动态分配的,仅供局域网内的主机间通信使用;
一套是经过网关转换后的外网 IP 地址,用于与外网程序进行通信。
障碍二:
位于不同局域网内的两台主机,即使是知道了对方的IP地址和端口号,
“一厢情愿”地将数据包发送过去,对方也是接收不到的。
因为出于安全起见,除非是客户端主机主动向对方发出了连接请求(这时会在该主机的数据结构中留下一条记录),
否则,当客户端主机接收到数据包时,如果在其数据结构中查询不到对应的记录,那些不请自来的数据包将会被丢弃。
简而言之,服务端主动发送数据给客户端,客户端不会接受,必须是客户端自己先发获取数据的请求
解决办法:要想解决以上两大障碍,我们需要借助一台具有公网 IP 的服务器进行桥接。
8.用户代理
# 什么是用户代理(UA,User Agent)?
用户代理是一个“字符串”(即一行文本),此字符串通常标识浏览器、及其版本号及其主机操作系统。
# eg:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
# 知识拓展:
原来的 user-agent 因为只是一个字符串,各个浏览器及历史版本造成识别服务端不太兼容。
为了能让服务端明确请求的信息,所以拓展新的字段标头。
还有以下的一些字段:
浏览器名称和版本 Sec-CH-UA 或 Sec-CH-UA-Full-Version-List
操作系统名称 Sec-CH-UA-Platform 或 Sec-CH-UA-Platform-Version
平台架构 Sec-CH-UA-Arch
是否移动设备 Sec-CH-UA-Mobile 布尔值 0/1