SIP、SAP、SDP、mDNS、SSH、PTP
🌈 一、SIP 会话初始协议
- 会话初始协议 SIP 是一个在 IP 网络上进行多媒体通信的应用层控制协议,它被用来创建、修改和终结 1 / n 个参加者参加的会话进程。
- SIP 不能单独完成呼叫功能,需要和 RTP、SDP 和 DNS 配合来完成。
1. SIP 协议的功能
- 用户定位:确定参加通信的终端用户的位置。
- 用户通信能力协商:确定通信的媒体类型和参数。
- 用户意愿交互:确定被呼叫方是否有参与某个通信的意愿。
- 建立呼叫:“振铃”,呼叫和被呼叫方会话参数的建立。
- 呼叫处理和控制:包括呼叫重定向、呼叫转移、终止呼叫等。
2 SIP 协议在网络中的位置
🌈 二、SAP 会话通告协议
- SAP 是为了通知一个多播的多媒体会议或其他多播会话而将相关的会话建立信息发送给所期望的会议参与者。
- SAP 本身并不建立会话,它只负责将建立会话所必要的信息通知给其他在同一个多播组内的参与者。当参与者接收到改通知后,就可以启动相应的工具并设置正确的参数向该会议的发起者建立会话了(建立会话可以使用 SIP 协议)。
- 通知的发起者并不知道参与者是否收到了会话通知;通知发起者只能通过进行周期性的发送会话通知来最大可能的使参与者能够收到通知。
- SAP 通过多播(multicast)的机制来像一个已知的多播地址和端口发送一个通知数据包,该多播组内的成员如果在正常工作的话就会收到该通知数据包。为了使会议的参与者都可以收到通知,就要确保其在该多播组内。
🌈 三、SDP 会话描述协议
- SDP 是用来帮助 SIP 和 SAP 协议来描述会话的相关信息。
SDP 包所包含的信息
- 会话信息:会话名和目的、会话活动时间、会话使用的带宽信息、会话负责人的联系信息。
- 媒体信息:媒体类型(如视频和音频)、传输协议(如 RTP / UDP / IP 等)、媒体格式(如 H.261 视频和 MPEG 视频)、多播地址和媒体传输端口(IP 多播会话)、用于联系地址的媒体和传输端口的远端地址(IP 单播会话)。
🌈 四、mDNS 多播 DNS
- mDNS 主要实现的是在没有传统 DNS 服务器的时候,使局域网内的主机实现相互发现和通信。
- mDNS 使用的端口为 5353,遵从 DNS 协议,使用现有的 DNS 信息结构、名语法和资源记录类型。
- mDNS 基于 UDP 协议,其组播地址使用的是 D 类地址(地址范围:224.0.0.0 ~ 239.255.255.255)。
mDNS 的工作原理
- mDNS 使用 224.0.0.251 作为组播地址,端口为 5353。
- 每个进入局域网内的主机(如果开启了 mDNS 服务),就会向局域网内的所有主机组播一个消息(我是谁(域名) + 我的 IP 地址)。其他开启了 mDNS 服务的主机就会响应自己的域名和 IP 地址。
- 当设备需要服务时,就会使用 mDNS 来查询域名所对应的 IP 地址,对应的设备在收到该报文后就会同样以组播的方式进行应答,此时其他的主机就可以收到该应答报文,然后记录域名和 IP。
- 例:A 主机进入局域网,开启了 mDNS 服务,并向 mDNS 服务注册以下信息:我提供 FTP 服务,我的IP是 192.168.1.101,端口是 21。当B主机进入局域网,并向 B 主机的 mDNS 服务请求,我要找局域网内 FTP 服务器,B 主机的 mDNS 就会去局域网内向其他的 mDNS 询问,并且最终告诉你,有一个IP地址为 192.168.1.101,端口号是 21 的主机,也就是 A 主机提供 FTP 服务,所以 B 主机就知道了 A 主机的 IP 地址和端口号了。
🌈 五、SSH 协议标准
- SSH 是一种用来实现安全远程登录和其他安全网络服务的协议标准。
- SSH 只是一种协议标准,具体的实现有很多,适用范围最广泛的是开源的 OpenSSH。
SSH 协议标准的工作原理
- 在网络中,存在着对数据进行加密的问题,需要对 server 的公钥进行认证来解决这个问题。HTTPS 通过 CA 认证来进行,而 SSH 的公私钥都是自己生成的,没办法进行公证,只能通过客户端自己来对客户端进行确认(每次登录都要输入密码)。
- SSH 提供了公钥登录的方式来免去每次登录都要输入密码的过程。
🌈 六、PTPv2 精密时间协议 v2
- PTPv2 精密时间协议的第二版本(Precision Time Protocol Version 2)是一种精密时间同步协议标准,目的是为了实现网络设备之间的高精密度同步。
⭐ 1. 同步的概念
- 同步指的是在一定的条件下,两个或两个以上的信号之间保持特定的关系(频率、相位、时间等)。
- 这种关系的保持有助于确保系统中的各个组件之间可以下同工作来实现预定的功能或目标。
1. 频率同步(时钟同步)
- 信号之间在频率或相位上保持某种特定的关系。在通信系统中,各个设备需要以相同的速率运行,以确保它们之间的协同操作。
- 时钟同步可以通过调整时钟的速率来实现,确保系统中的所有时钟都能以相同的速率来星星,从而保证频率同步。
2. 时间同步(相位同步)
- 时间同步是指信号之间的相位保持一致,表示信号之间的相位差或时间差保持在某个约定的范围内。
- 时间同步是在频率同步的基础上建立的,确保系统中各个组件的时钟在相位上保持一致。
⭐ 2. PTPv2 的高级特性
- 透明时钟(Transparent Clocks):一种可以测量并补偿消息在设备内部经历的延迟的网络设备。即使网络中存在多个中继设备,也可以保证高精度的时间同步。
- 边界时钟(Boundary Clocks):一种可以同时充当主时钟和从时钟的设备,可以将时间同步信息从一个网络区域传递到另一个区域,从而在复杂的网络拓扑中实现时间同步。
- 最佳主时钟算法(Best Master Clock Algorithm):用于在网络中的多个主时钟候选者之间选择一个最佳的主时钟。
⭐ 3. PTPv2 协议中的时钟节点
1. OC 普通时钟 Ordinary Clock
- 特点:OC 节点通常具有一个物理端口用于和网络进行通信。
- 功能:
- 当作为最高级时钟时,可以向下游节点发布时间;
- 当作为从时钟时,可以从上游节点同步时间,在这种情况下,OC 节点将校准自己的时钟来和上游节点的时钟同步。
2. BC 边界时钟 Boundary Clock
- 特点:BC 节点通常具有多个物理端口,其中一个端口从上游设备同步时间。
- 功能:
- 从上游节点同步时间:BC 节点的一个端口将从上游节点接收同步信息,以保持本地时钟与上游节点同步。
- 向下游节点发布时间:BC 节点的其他端口用于向下游节点发布时间,这有助于减小同步延迟。
3. TC 透明时钟 Transparent Clock
- 特点:TC 节点通常具有多个物理端口,但不直接参与时间同步,只在端口之间处理和转发 PTPv2 协议报文。
- 类型:
- 端到端 E2E TC (End - to - End Transparent Clock):负责测量报文经过节点的转发时延,并在报文中修正。在两端的 OC 或 BC 节点计算链路延时和时间偏差进行同步。
端到端 E2E TC (End - to - End Transparent Clock)==:负责测量报文经过节点的转发时延,并在报文中修正。在两端的 OC 或 BC 节点计算链路延时和时间偏差进行同步。 - 点到点 P2P TC (Peer - to - Peer Transparent Clock):不仅修正转发时延,还测量并修正节点每个端口相连链路的链路时延。同时,两端的 OC 或 BC 节点计算时间偏差进行同步。
- 端到端 E2E TC (End - to - End Transparent Clock):负责测量报文经过节点的转发时延,并在报文中修正。在两端的 OC 或 BC 节点计算链路延时和时间偏差进行同步。