目录
一,域名
二,DNS
三,DHCP
四,FTP
五,WebSocket
六,WebService
七,CDN
八,代理
九,VPN
一,域名
1,基本介绍
- 由于
IP
地址不方便记忆,并且不能表达组织的名称和性质,所以人们设计出了域名 - 域名和
IP
地址是一一对应的,这些信息存储在域名系统中 - 域名是独一无二的,并且遵循先注册先得的原则
2,顶级域名
- 通用顶级域名(
General Top-level Domain
,简称gTLD
)
com
(公司)、gov
(政府机构)、int
(国际组织)
- 国家及地区顶级域名(
Country Code Top-level Domain
,简称ccTLD
)
cn
(中国)、jp
(日本)、uk
(英国)
- 新通用顶级域名(
New Generic Top-level Domain
,简称New gTLD
)
vip
(会员)、club
(俱乐部)、shop
(商城)
3,域名等级
-
com
可以是顶级域名,也可以是二级域名 - 各级域名之间用
.
隔开(mail.whu.edu.cn
)
二,DNS
1,基本介绍
-
DNS
是Domain Name System
的缩写,表示域名系统 - 它是一个存储域名和
IP
地址映射关系的分布式数据库 - 利用
DNS
协议可以将域名解析成对应的IP
地址 -
DNS
协议在域名解析时使用UDP
协议,在区域传输时使用TCP
协议 -
DNS
服务器占用53端口
2,解析流程
- 本地
DNS
服务器会缓存解析过的域名和IP
地址 - 所有
DNS
服务器都记录了根DNS
服务器的IP
地址 - 上级
DNS
服务器只记录下一级DNS
服务器的IP
地址 - 权威服务器是指能够返回解析结果的服务器
- 全球一共有13台
IPv4
和25台IPv6
的根DNS
服务器
3,存在的问题
- 域名劫持问题
攻击者篡改了域名的解析结果,导致客户端拿到的是虚假的
IP
地址,由于域名解析使用的是UDP
协议,所以很容易被劫持
- 域名缓存问题
本地
DNS
服务器的缓存,会导致全局负载均衡失败,因为缓存的IP
地址对应的服务器可能离客户端当前位置很远
- 域名转发问题
如果
A
运营商将解析的请求转发给B
运营商,B
运营商去权威DNS
服务器查询的时候,权威DNS
服务器会认为你是B
运营商的用户,就会返回部署在B
运营商的服务器的IP
地址,结果每次都需要跨运营商访问,速度就会很慢
- 出口
NAT
问题
由于
IP
地址会经过NAT
转换,权威DNS
服务器无法通过IP
地址来判断客户端来自哪个运营商,极有可能会误判运营商导致跨运营商访问
- 域名更新问题
本地
DNS
服务器是由不同地区、不同运营商独立部署的,它们对域名解析缓存的处理上有很大区别,有的会忽略解析结果TTL
的时间限制,导致本地DNS
服务器没有及时更新IP
地址,从而容灾处理也无法进行
- 解析延迟问题
DNS
的查询过程需要递归遍历多个DNS
服务器,才能获得最终的解析结果,这会带来一定的延时,甚至会解析超时
4,HTTPDNS
- 基本介绍
1>基于
HTTP
协议向HTTPDNS
服务器发送域名解析请求
2>替代了基于DNS
协议向运营商本地DNS
服务器发送请求的传统方式
3>常用于移动端APP
中,需要在APP
中嵌入相关的SDK
- 解决问题
1>
HTTP
协议是基于TCP
协议的,可以解决域名劫持问题
2>缓存是由客户端SDK
进行管理的,可以解决域名缓存问题和域名更新问题
3>HTTPDNS
服务器知道客户端来自哪个运营商,可以解决域名转发问题和出口NAT
问题
4>HTTPDNS
服务器直接返回解析结果,可以解决解析延迟问题
三,DHCP
1,IP地址的分配
- 静态分配
1>手动设置
2>适用于不常移动的台式机、服务器等
- 动态分配
1>从
DHCP
服务器自动获取
2>适用于经常移动的手机、笔记本等
2,基本介绍
-
DHCP
是Dynamic Host Configuration Protocol
的缩写,表示动态主机配置协议 -
DHCP
协议基于UDP
协议,客户端占用68端口,服务器占用67端口 -
DHCP
服务器会从IP
地址池中,挑选一个IP
地址“出租”给客户端一段时间,到期就回收它们 - 客户端会在租期不足的时候,自动向
DHCP
服务器发送Request
消息申请续约 - 一般路由器就可以充当
DHCP
服务器
3,四个阶段
-
Discover
:发现服务器
发送广播包寻找附近的
DHCP
服务器(源IP
地址为0.0.0.0
,目标IP
地址为255.255.255.255
)
-
Offer
:提供租约
DHCP
服务器返回可以租用的IP
地址,以及租用期限、子网掩码、网关等信息,可能会有多台DHCP
服务器提供租约
-
Request
:选择IP
地址
客户端选择一个租约并发送广播包告知
DHCP
服务器(源IP
地址为0.0.0.0
,目标IP
地址为255.255.255.255
)
-
ACK
:确认
被选择的
DHCP
服务器给客户端的确认,至此,IP
地址分配完毕
四,FTP
1,基本介绍
-
FTP
是File Transport Protocol
的缩写,表示文件传输协议 -
FTP
协议基于TCP
协议 -
FTP
协议的URL
格式为:ftp://[user[:password]@]host[:port]/url-path
2,连接模式
- 两种连接模式:主动模式、被动模式
- 不管哪种模式都需要客户端和服务器建立两个连接
- 控制连接:用于传输状态信息(
cmd
) - 数据连接:用于传输文件和目录信息(
data
)
3,主动模式
- 客户端用4242端口向服务器的21端口发起控制连接,并发送
Port
命令告知服务器,客户端的4243端口已准备好接收数据 - 服务器用21端口向客户端的4243端口发起数据连接
- 4242(
N
)和4243(N+1
)是随机的,只要大于1024即可,20和21是固定的
4,被动模式
- 客户端用4242端口向服务器的21端口发起控制连接,并发送
PASV
命令告知服务器,这次连接采用被动模式 - 服务器返回确认,并发送
Port
命令告知客户端,服务器的2042端口已准备好接收数据 - 客户端用4243端口向服务器的2042端口发起数据连接
- 2042是随机的,只要大于1024即可,20没有用到
五,WebSocket
1,基本介绍
-
WebSocket
协议是在HTML5
中定义的,基于TCP
协议 - 在建立连接后,客户端和服务器都可以主动给对方发送消息
-
WebSocket
协议占用80端口(ws://
),WebSocket
安全协议占用443端口(wss://
) - 体验地址:https://www.websocket.org/echo.html
2,建立连接
-
WebSocket
协议是通过HTTP
协议来建立连接的,由客户端主动发起 -
Connection
:必须设置为Upgrade
,表示希望升级协议 -
Upgrade
:必须设置为websocket
,表示希望升级到WebSocket
协议 -
Sec-WebSocket-Key
:客户端随机生成的字符串 -
Sec-WebSocket-Accept
:客户端字符串经过一系列处理之后的字符串
3,字符串处理
①:在客户端字符串后面拼接一个固定的GUID
值(258EAFA5-E914-47DA-95CA-C5AB0DC85B11
)
②:将①的结果进行SHA-1摘要计算
③:将②的结果进行Hex to Base64编码
六,WebService
1,基本介绍
- 是一项开放平台的技术标准
-
WebService
使用SOAP
协议来封装和传输数据 -
SOAP
是Simple Object Access Protocol
的缩写,表示简单对象访问协议 SOAP = HTTP + XML
-
WebService
地址:http://www.webxml.com.cn/zh_cn/index.aspx
2,WSDL
-
WSDL
是Web Services Description Language
的缩写,表示Web
服务描述语言 -
WSDL
用来描述WebService
接口的细节(例如参数、返回值等) - 在
WebService
的URL
后面加上?wsdl
就可以获取WSDL
信息 - 示例地址:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
3,SOAP1.2的请求和响应示例
POST /WebServices/WeatherWS.asmx HTTP/1.1
Host: ws.webxml.com.cn
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<getWeather xmlns="http://WebXml.com.cn/">
<theCityCode>string</theCityCode>
<theUserID>string</theUserID>
</getWeather>
</soap12:Body>
</soap12:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<getWeatherResponse xmlns="http://WebXml.com.cn/">
<getWeatherResult>
<string>string</string>
<string>string</string>
</getWeatherResult>
</getWeatherResponse>
</soap12:Body>
</soap12:Envelope>
七,CDN
1,基本介绍
-
CDN
是Content Delivery Network
的缩写,表示内容分发网络 -
CDN
运营商在全国各大枢纽城市都建立了机房,内容所有者支付费用后即可使用 -
CDN
可以减小源服务器的负载压力,还能够让用户更快的获取资源
2,获取节点服务器IP地址的流程
3,获取资源的流程
八,代理
1,基本介绍
- 自身不生产内容
- 处在中间位置转发上下游的请求和响应
2,正向代理和反向代理
- 正向代理:扮演客户端的角色
- 反向代理:扮演服务器的角色
3,正向代理的作用
- 隐藏客户端身份
- 绕过防火墙
- 网络抓包
4,反向代理的作用
- 隐藏服务器身份
- 负载均衡
- 安全防护
九,VPN
1,基本介绍
-
VPN
是Virtual Private Network
的缩写,表示虚拟私人网络 -
VPN
是基于隧道协议进行实现的 - 客户端的
VPN
软件会对数据进行加密,VPN
服务器再进行解密
2,作用
- 保护公司内部资料
1>
VPN
服务器部署在公司内部
2>从客户端到VPN
服务器虽然是外网,但数据是加密的,所以很安全
3>从VPN
服务器到资料服务器是内网,所以也很安全
- 突破网络封锁
1>在国内无法直接访问
VPN
服务器
2>VPN服务器是可以访问
3>所以在国内可以通过VPN
服务器间接的访问
3,与代理的区别
-
VPN
需要安装客户端软件,代理不需要 -
VPN
会对数据进行加密,代理不会
网友评论