美文网首页多线程 & 网络
网络协议:其他协议与知识

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

作者: 码小菜 | 来源:发表于2021-05-30 11:31 被阅读0次

    目录
    一,域名
    二,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
    
    <?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,基本介绍
    • 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会对数据进行加密,代理不会

    相关文章

      网友评论

        本文标题:网络协议:其他协议与知识

        本文链接:https://www.haomeiwen.com/subject/rwixsltx.html