title: 《网络协议》07. 其他协议
date: 2022-10-07 18:24:02
updated: 2023-11-15 08:00:52
categories: 学习记录:网络协议
excerpt: IPv6、WebSocket、WebService(SOAP,WSDL)、HTTPDNS、FTP、邮件(SMTP,POP,IMAP)、即时通信(XMPP,MQTT)、流媒体。
comments: false
tags:
top_image: /images/backimg/SunsetClimbing.png
网络协议从入门到底层原理。
IPv6(Internet Protocol version 6),网际协议第 6 版。
2^128(约 3.4 ∗ 10^38)
个地址。以地球人口 70 亿人计算,每人平均可分得约 4.86 ∗ 10^28
个 IPv6 地址在 2019 年 12 月,通过 IPv6 使用 Google 服务的用户百分率首次超过 30%
:
】隔开,每组以 4 位十六进制方式表示
2001:0db8:86a3:08d3:1319:8a2e:0370:7344
2.0.0.1.0.d.b.8.8.5.a.3.0.8.d.3.1.3.1.9.8.a.2.e.0.3.7.0.7.3.4.4
2001:0db8:02de:0000:0000:0000:0000:0e13
2001:db8:2de:0:0:0:0:e13
::
】表示一组 0 或多组连续的 0。但只能出现一次。下列 IPv6 地址等价:
2001:db8:2de:0:0:0:0:e13
2001:db8:2de::e13
2001::25de::cade
是非法的,因为双冒号出现了两次,会造成歧义:
2001:0000:0000:0000:0000:25de:0000:cade
2001:0000:25de:0000:0000:0000:0000:cade
::1
是本地环回地址:0:0:0:0:0:0:0:1
ping ::1
可以 ping 通本机IPv6 有 40 字节的固定首部。
扩展头部示意图如下。
Socket 是一套网络编程 API,利用它可以建立网络连接,一般都是操作系统底层实现的。
WebSocket 是一个网络协议。
HTTP 请求的特点:通信只能由客户端发起。所以,早期很多网站为了实现推送技术,所用的技术都是轮询。
轮询:由浏览器每隔一段时间(如每秒)向服务器发出 HTTP 请求,然后服务器返回最新的数据给客户端。
为了能更好的节省服务器资源和带宽,并且能够更实时地进行通讯,HTML5 规范中出现了 WebSocket 协议。
WebSocket,是基于 TCP 的支持全双工通信的应用层协议。客户端、服务器,任何一方都可以主动发消息给对方。
在 2011 年由 IETF 标准化为 RFC 6455,后由 RFC 7936 补充规范。
WebSocket 的应用场景很多:社交订阅、股票基金报价、体育实况更新、多媒体聊天、多玩家游戏等。
其实 TCP 本身就是支持全双工通信的(客户端、服务器均可主动发消息给对方),只是 HTTP 的 “ 请求-应答模式 ” 限制了 TCP 的能力。
ws://
)、443(wss://
)端口,可以绕过大多数防火墙的限制。
WebSocket 需要借助 HTTP 协议来建立连接(也叫作 Handshake,握手)。
由客户端(浏览器)主动发出握手请求。
GUID:https://tools.ietf.org/html/rfc4122
SHA-1 摘要计算:http://encode.chahuo.com
Hex To Base64编码:https://base64.guru/converter/encode/hex
WebService(Web 服务),是一种跨编程语言和跨操作系统的远程调用技术标准。
WebService 使用场景举例:
事实上,WebService 完全可以用普通的 Web API 取代(比如 HTTP + JSON )
现在很多企业的开放平台都是直接采用 Web API。
SOAP(Simple Object Access Protocol,简单对象访问协议)。
WSDL(Web Services Description Language,Web 服务描述语言)。
?wsdl
获取 WSDL 信息。http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
HTTPDNS:基于 HTTP 协议向 DNS 服务器发送域名解析请求。
HTTPDNS 的使用
市面上已经有现成的解决方案
腾讯云:https://cloud.tencent.com/product/httpdns移动端集成相关的 SDK 即可使用 HTTPDNS 服务
FTP(File Transport Protocol),文件传输协议。RFC 959 定义了此规范,是基于 TCP 的应用层协议。
RFC 1738 中有定义,FTP 的 URL 格式为:ftp://user:password@host:port/url-path
连接模式:
FTP 有 2 种连接模式:主动(Active)和被动(Passive)。
不管是哪种模式,都需要客户端和服务器建立 2 个连接:
SMTP(Simple Mail Transfer Protocol),简单邮件传输协议
POP(Post Office Protocol),邮局协议
IMAP(Internet Message Access Protocol),因特网信息访问协议
POP 的特点:
IMAP 的特点:
即时通信(Instant Messaging,IM),平时用的 QQ、微信,都属于典型的 IM 应用。
国内的 IM 开发者社区:http://www.52im.net/
IM 云服务:网易云信、腾讯云、环信等
常用协议:XMPP、MQTT、自定义协议。
XMPP(Extensible Messaging and Presence Protocol),可扩展消息与存在协议。
特点:
MQTT(Message Queuing Telemetry Transport),消息队列遥测传输。
特点:
流媒体(Streaming Media),又叫流式媒体,指将一连串的多媒体数据压缩后,经过互联网分段发送数据,在互联网上即时传输影音以供观赏的一种技术。
此技术使得资料数据包得以像流水一样发送,不使用此技术,就必须在使用前下载整个媒体文件。
RTP(Real-Time Transport Protocol),实时传输协议
RTCP(Real-Time Transport Control Protocol),实时传输控制协议
RTSP(Real-Time Streaming Protocol),实时流协议
RTMP(Real-Time Messaging Protocol),实时消息传输协议
HLS(HTTP Live Streaming)
人生自是有情痴,此恨不关风与月。
——《玉楼春》(宋)欧阳修