day25-27完成了两个时钟

本文介绍了一个简单的网页时间差计算器的实现过程,通过封装JavaScript函数来显示当前时间和日期,并且使用了12小时制与时区适配。代码中包含了日期获取、时间格式化等功能。

学习时间:3h+1h
下午:3h捣鼓时间差计算器
晚上:3h
尽量利用了函数的封装

<html>
  <body>
    <div></div>
    <div class="second"></div>
    <script>
      var div1 = document.querySelector("div");
      var today = new Date();
      var day = today.getDay();
      function nDay1(i) {
        //根据某个日期返回这一天是星期几
        switch (i) {
          case 0:
            return "星期日";
          case 1:
            return "星期一";
          case 2:
            return "星期二";
          case 3:
            return "星期三";
          case 4:
            return "星期四";
          case 5:
            return "星期五";
          case 6:
            return "星期六";
        }
      }
      function checkTime(i) {
        //补充0
        if (i < 10) {
          i = "0" + i;
        }
        return i;
      }
      function packing1() {
        var today = new Date();
        var day = today.getDay();
        var h = today.getHours();
        var m = today.getMinutes();
        var s = today.getSeconds();
        var year = today.getFullYear();
        var month = today.getMonth();
        var date = today.getDate();
        h = checkTime(h);
        m = checkTime(m);
        s = checkTime(s);
        day = nDay1(day);
        month = checkTime(month);
        date = checkTime(date);
        div1.textContent =
          year +
          "年" +
          month +
          "月" +
          date +
          "日" +
          day +
          " " +
          h +
          ":" +
          m +
          ":" +
          s;
      }
      function startTime1() {
        packing1();
        t = setTimeout("startTime1()", 500);
      }
      startTime1();

      var div2 = document.querySelector(".second");
      function nDay2(i) {
        //根据某个日期返回这一天是星期几
        switch (i) {
          case 0:
            return "Sunday";
          case 1:
            return "monday";
          case 2:
            return "Tuesday";
          case 3:
            return "Wednesday";
          case 4:
            return "Thursday";
          case 5:
            return "Friday";
          case 6:
            return "Saturday";
        }
      }
      function packing2() {
        var today = new Date();
        var day = today.getDay();
        var h = today.getHours();
        var m = today.getMinutes();
        var s = today.getSeconds();
        var year = today.getFullYear();
        var month = today.getMonth();
        var date = today.getDate();
        h = checkTime(h);
        h = checkHour(h);
        m = checkTime(m);
        s = checkTime(s);
        ap = checkAp(h);
        day = nDay2(day);
        month = checkTime(month);
        date = checkTime(date);
        div2.textContent =
          year +
          "-" +
          month +
          "-" +
          date +
          " " +
          day +
          " " +
          h +
          ":" +
          m +
          ":" +
          s +
          " " +
          ap;
      }
      function startTime2() {
        packing2();
        t = setTimeout("startTime2()", 500);
      }
      function checkHour(i) {
        //将24小时制转化为12小时制
        if (i >= 12) {
          i = i - 12;
        }
        return i;
      }
      function checkAp(i) {
        //控制AM和PM的选择
        if (i >= 12) {
          return "PM";
        } else {
          return "AM";
        }
      }
      startTime2();
    </script>
  </body>
</html>
<think>好的,我现在需要回答用户关于VC-OTN与SDH在时钟同步方面的协同机制的问题。用户之前已经问过混合组网的相关问题,现在特别关注时钟同步。首先,我需要回顾之前提供的回答,确保信息一致,并补充更多细节。 在之前的回答中,我提到SDH的同步时钟通过SSM传递到OTN,或者使用IEEE 1588v2协议。现在需要详细展开这些点。首先,SSM(同步状态消息)在SDH中的作用是什么?它是如何传递到OTN网络的?可能需要解释SSM的等级和选择机制。然后,关于IEEE 1588v2,需要说明其如何实现精确时间同步,特别是混合网络中的主从时钟架构。 另外,用户可能想知道在混合组网中,两种不同的同步机制如何协同工作,是否存在冲突或优先级问题。例如,当SDH和OTN都有自己的时钟源时,如何选择主时钟?需要提到同步状态协议的优先级设置,比如ITU-T G.781中的S1字节机制。 还需要考虑实际应用中的场景,比如当OTN层出现故障时,如何保证SDH层的时钟稳定性,以及如何实现时钟的冗余备份。可能涉及SDH的线路时钟和OTN的BMC(最佳主时钟)算法之间的协调。 此外,可能存在的挑战和解决方案,比如传输延迟的影响,1588v2如何补偿不对称延迟,或者SSM在长距离传输中的稳定性问题。需要确保这些技术细节准确,并且用用户能理解的语言表达。 最后,检查是否有遗漏的关键点,比如时钟同步的精度要求,不同业务对时钟的需求差异,以及混合组网中的具体配置示例。确保引用之前提到的参考文献,保持一致性,比如[^3]和[^4]。</think>#### VC-OTN与SDH时钟同步协同机制详解 在混合组网中,VC-OTN与SDH的时钟同步协同主要通过**多源同步信号传递**和**协议兼容性设计**实现,具体机制如下: --- ### 一、同步信号传递方式 1. **SSM(同步状态消息)级联同步** - **SDH侧同步**:SDH设备通过$STM-N$帧的$S1$字节传递SSM信息,标识时钟质量等级(如$PRC$、$SEC$),并基于G.803同步链路选择最优时钟源[^3][^4]。 - **OTN侧同步**:OTN通过$ODUk$开销的$PM$字节(Payload Type)携带SSM信息,支持与SDH的时钟等级映射(例如将SDH的$PRC$映射为OTN的$QL-PRC$)[^4]。 - **级联过程**: $$ \text{SDH SSM (S1字节)} \xrightarrow{映射} \text{OTN PM字节} \rightarrow \text{全网同步跟踪} $$ 2. **IEEE 1588v2精确时间协议(PTP)** - **混合网络主从架构**: - **主时钟(Grandmaster)**:部署在OTN核心层,通过1588v2报文向SDH设备分发时间戳(如$Sync$、$Delay\_Req$)。 - **边界时钟(BC)**:在SDH/OTN边界节点实现协议转换,支持$TDM$时钟与$PTP$时间的相位对齐[^4]。 - **时延补偿机制**: - 通过计算往返时延($Delay = \frac{(t_2 - t_1) + (t_4 - t_3)}{2}$)修正时钟偏差,确保同步精度优于±1μs[^4]。 - 公式示例: $$ t_{\text{offset}} = \frac{(t_2 - t_1) - (t_4 - t_3)}{2} $$ --- ### 二、协同工作关键设计 1. **优先级动态协商** - 当SDH与OTN存在多个时钟源时,通过**S1字节优先级比对**(ITU-T G.781)自动选择最高质量时钟: | 时钟等级 | SSM编码 | 优先级 | |--------------|---------|--------| | PRC (铯原子钟)| 0010 | 最高 | | SEC (SDH设备)| 0100 | 中等 | | DNU(不可用)| 1111 | 忽略 | [^3][^4] 2. **时钟保护倒换** - **双归保护场景**:若主用OTN时钟源失效,SDH设备自动切换至备用SDH线路时钟(通过SSM触发倒换,时延<50ms)[^4]。 - **混合网络告警联动**:OTN层的$ODUk-AIS$告警会触发SDH的$MS-AIS$抑制,避免时钟同步信令冲突[^3]。 3. **频率与相位同步分离** - **SDH侧重频率同步**:通过$STM-N$线路时钟恢复2.048MHz基准频率,满足TDM业务需求。 - **OTN侧重相位同步**:利用1588v2的$ToD$(Time of Day)信息实现纳秒级相位对齐,支撑5G前传等低时延业务[^4]。 --- ### 三、典型配置示例 **场景:金融核心网混合组网** 1. **主时钟部署**:在OTN核心节点部署铯原子钟(PRC),通过1588v2向下游分发时间。 2. **边界节点配置**: ```plaintext SDH设备(Metro 3000): - 时钟模式: 线路时钟(SSM使能) - 映射规则: VC-4→ODU1(GMP封装) OTN设备(OSN 9800): - 时钟模式: 1588v2 BC - 时延补偿: 不对称校准(光纤长度差补偿) ``` 3. **性能验证**: - 频率偏差:≤0.01ppm(SDH侧) - 时间误差:≤±100ns(OTN侧)[^4] --- ### 四、挑战与解决方案 1. **跨层时延抖动** - **问题**:OTN的统计复用导致业务时延波动,影响SDH时钟恢复稳定性。 - **方案**:在OTN入口启用$ODUk$的$GFP-T$封装(固定帧长度映射),限制时延变化在±5μs内[^3]。 2. **长链拓扑同步劣化** - **问题**:级联节点过多导致SSM逐跳降级(如PRC→SEC→DNU)。 - **方案**:采用**同步以太网(SyncE)**与1588v2混合模式,通过物理层频率同步减少协议栈累积误差[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值