网络协议:其他协议与知识

目录
一,域名
二,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,基本介绍
  • DNSDomain 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,基本介绍
  • DHCPDynamic 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,基本介绍
  • FTPFile 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协议来封装和传输数据
  • SOAPSimple Object Access Protocol的缩写,表示简单对象访问协议
  • SOAP = HTTP + XML
  • WebService地址:http://www.webxml.com.cn/zh_cn/index.aspx
2,WSDL
  • WSDLWeb Services Description Language的缩写,表示Web服务描述语言
  • WSDL用来描述WebService接口的细节(例如参数、返回值等)
  • WebServiceURL后面加上?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



  
    
      string
      string
    
  

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length



  
    
      
        string
        string
      
    
  

七,CDN

1,基本介绍
  • CDNContent Delivery Network的缩写,表示内容分发网络
  • CDN运营商在全国各大枢纽城市都建立了机房,内容所有者支付费用后即可使用
  • CDN可以减小源服务器的负载压力,还能够让用户更快的获取资源
2,获取节点服务器IP地址的流程
3,获取资源的流程

八,代理

1,基本介绍
  • 自身不生产内容
  • 处在中间位置转发上下游的请求和响应
2,正向代理和反向代理
  • 正向代理:扮演客户端的角色
  • 反向代理:扮演服务器的角色
3,正向代理的作用
  • 隐藏客户端身份
  • 绕过防火墙
  • 网络抓包
4,反向代理的作用
  • 隐藏服务器身份
  • 负载均衡
  • 安全防护

九,VPN

1,基本介绍
  • VPNVirtual Private Network的缩写,表示虚拟私人网络
  • VPN是基于隧道协议进行实现的
  • 客户端的VPN软件会对数据进行加密,VPN服务器再进行解密
2,作用
  • 保护公司内部资料

1>VPN服务器部署在公司内部
2>从客户端到VPN服务器虽然是外网,但数据是加密的,所以很安全
3>从VPN服务器到资料服务器是内网,所以也很安全

  • 突破网络封锁

1>在国内无法直接访问Google,但可以访问VPN服务器
2>VPN服务器是可以访问Google
3>所以在国内可以通过VPN服务器间接的访问Google

3,与代理的区别
  • VPN需要安装客户端软件,代理不需要
  • VPN会对数据进行加密,代理不会

你可能感兴趣的:(网络协议:其他协议与知识)