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

目录
一,域名
二,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会对数据进行加密,代理不会
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,809评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,189评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,290评论 0 359
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,399评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,425评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,116评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,710评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,629评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,155评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,261评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,399评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,068评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,758评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,252评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,381评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,747评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,402评论 2 358

推荐阅读更多精彩内容