zoukankan      html  css  js  c++  java
  • 【计算机网络】第三章 传输层(2)

    三.UDP协议

    1. UDP:用户数据报协议

    1)基于Internet IP协议增加了复用/分用功能和简单的错误校验

    2)提供“尽力而为”的服务:没有数据恢复,可能丢失、非按序到达

    3)无连接:不需要握手,每个UDP段的处理独立于其他段

    2. UDP存在的价值

    1)不需连接 -> 减少延迟

    2)实现简单 -> 无需维护连接状态,头部开销少

    3)没有拥塞控制 -> 应用可更好地控制发送时间和速率

    3. UDP的应用:流媒体应用、DNSSNMP

    4. UDP实现可靠数据传输

    1)在应用层增加可靠性机制

    2)应用特定的错误回复机制

    5. UDP校验和checksum:监测UDP在传输中是否发生错误

     

    1)发送方:将段的内容视为16-bit整数,计算所有整数的和,进位加在后面,得到的值按位求反,得到校验和,放入校验和字段

    2)接收方:计算所收到段的校验和,将其与校验和字段进行对比,不相等则有错误,相等则没有检测出错误

    3)示例:

     

     

    四.可靠数据传输原理

    1. 可靠数据传输协议

    1)信道的不可靠特性决定了可靠数据传输协议的复杂性

    2)提供服务:向应用层提供可靠信道,向传输层提供正确交互

     

    (3)基本结构:接口

     

    (4)渐进地设计可靠数据传输协议的发送方和接收方

    (5)只考虑单向数据流动,但控制信息双向流动

    (6)利用状态机(FSM)刻画传输协议

     

    2. Rdt 1.0:可靠信道上的可靠数据传输

    (1)底层信道完全可靠:不会发生错误,不会丢弃分组

    (2)发送方和接收方的FSM独立

     

    3. Rdt 2.0:产生位错误的信道

    (1)利用校验和检测底层信道位错误

    (2)从错误中恢复

      ·确认机制(ACK):接收方显式地告诉发送方分组已正确接收

      ·NAK:接收方显式地告诉发送方分组有错误,发送方收到后重传分组

    (3)基于该重传机制的Rdt协议称为ARQ

    (4)引入的新机制:差错检测、接收方反馈控制消息ACK/NAK、重传

    (5)FSM规约

     

    (6)缺陷

      ·ACK/NAK消息被破坏

      ·重传时产生重复分组

    4. Rdt 2.1

    (1)改进Rdt 2.0

      ·为ACK/NAK增加校验和,检错纠错

      ·添加额外的控制消息告诉发送方错在何处

      ·发送方给每个分组增加序列号,接收方丢弃重复分组

    (2)接收方FSM

     

    5. Rdt 2.2:无NAK消息协议

    (1)ACK消息中显式地加入被确认分组地序列号

    (2)告知发送方最后一个正确接收的分组

    6. Rdt 3.0:增加定时器

    (1)如果信道既可能发生错误,也可能丢失分组,则等待合理时间后重传

    (2)ACK并未丢失,只是延迟,则接收方丢弃重复分组即可

     

    (3)时延过短,可能产生早熟

    (4)性能分析:正确工作,性能较差

     

  • 相关阅读:
    指针与应用的区别:《程序员面试宝典的一道题目》
    一道关于sizeof()的困惑的笔试题
    静态变量存储方式
    编译和链接的区别联系
    一些基本的数据格式小问题
    [多线程] 多线程的问题
    [多线程] 停止和暂停线程以及线程的优先级,同步锁
    [多线程] 线程中的常用方法-最详细
    [多线程] 线程的运行状态及上下文切换
    [多线程] 新建线程以及线程的运行
  • 原文地址:https://www.cnblogs.com/zhangyushuqing/p/9795958.html
Copyright © 2011-2022 走看看