传输层

概述和传输层服务

概述

  • 传输层在端系统实现,交换机路由器没有传输层
  • 信息到传输层封装成段(segment)
  • 接收段,再组合成信息
  • 传输层功能的实现依赖并受限于网络层服务
  • TCP
    • 面相连接,可靠,流量控制
  • UDP
    • 无连接,多路复用
  • try my best
  • 多路复用/多路分解
    • 扩展网络层主机通信为传输层进程通讯
    • 发送端(复用)
      • 收集message
      • 封装头部成段,将段发给网络层
    • 接收端(分解)
      • 收到段,分解交给正确的socket
    • 简介
      • Socket唯一标识
      • segment填写source ,dest端口号
    • UDP socket 使用二元组标识
      • <dest.address,dest.port>
      • 同一Segment源ip地址和端口号可以不同
    • 面相连接的多路复用/多路分解
      • TCP socket 使用四元组标识
      • 一个进程多个socket
        • 因为四元组

无连接传输层协议

  • UDP 无连接 不可靠
    • 更精细控制何时发送
    • 头部开销小
    • 无需事先连接
  • UDP segment
    • 一行32bits
    • source &dest port
    • length
      • 最长65536字节
      • checksum校验合
  • UDP checksum
      1. 将segment看作16bits的序列
        1. 两两相加
        2. 还剩8bits用0补齐
      1. 进位要回卷
      1. 取反码
      1. 接收方运算前两步,再加checksum理应得到全1。
        1. 还是可能有偶数个错
  • 可靠传输的原理
    • rdt_send()
    • packet = make_pkt(data)
    • udt_send(packet)
    • rdt_rcv(packet)
    • extract(packet ,data)
    • deliver_data(data)
    • a
  • getting started
    • 有限状态机(FSM)定义发送/接收协议实体
      • 某事件发生会引起状态迁移,产生确定动作
      • 任意时刻只能处于某一确定状态
  • 完全可靠
  • 完全可靠的可靠数据传输rdt1.0
    • Sender发送方
      • 发生rdt_sent(data)事件时
      • 动作
        • 创建分组make_pkt(data)
        • 发送分组udt_send(packet)
    • Receiver
      • rdt_rcv(packet)
      • 动作
        • 接收分组中的数据(拆封)extract(packet, data)
        • 交给上层aeliver_data(data)
      notion image
  • 不可靠,没有丢失,可能出现错误rdt2.0
    • 自动重传请求
    • ARQ
      • 错误检测
      • 反馈
        • ACK收到对
        • NAK收到错
        • 反馈receiver→sender
      notion image
 
看课本p134
  • 限制重传次数避免死锁
  • rdt2.1ACK/NAK错误
    • sequence number
    • 错误的ACK,NAK重传
  • 2.2FSM有限状态机

流水线可靠数据传输协议

  • 错误恢复机制
    • 回退N步GBN
      • Sender
        • 分组头部K-bit
        • 等待ACK的分组最大为N
    • 选择性重传

GBN

  • 只启用一个定时器
  • 重传全部

SR

  • 都启用定时器
  • 只重传错误

面向连接的传输

简介

  • TCP连接是点到点、全双工连接
  • 可靠按序的字节流
  • 流水。拥塞控制,流量控制设定窗口尺寸

TCP连接

面相连接的

超时

  • 重传还未确认的、序号最小的Segment.
    • 序号为SendBase的Segment
  • 超时间隔加倍
    • 设置超时间隔增大一倍
  • 一种有限的拥塞控制机制
    • 拥塞时降低发送速率是一种负责任的行为

快速重传

收到三个重复的ACK

流量控制

避免发送方相对于接收方过快导致溢出

TCP连接管理

连接拆除

拥塞控制

端到端拥塞控制
  • 只有端系统观察判断网络行为,推断是否拥堵
网络辅助的拥塞控制
  • 直接反馈
  • 间接反馈

TCP的拥塞控制

 
 
吞吐率(W)=cwnd/RTT
Prev
应用层
Next
网络层数据层面
Loading...
Article List
一个NotionNext搭建的博客
数据库系统概论
大数据原理与应用
javaWeb应用开发基础教程
python
毕业设计
大数据技术综合应用
实训-航空数据系统
java面向对象程序设计
数据结构
算法分析与设计
SPARK
Python爬虫大数据采集与挖掘
云计算
概率论与数理统计
数字逻辑
计算机网络
计算机组成原理
linux
操作系统
人工智能导论
数据仓库与数据挖掘
数据可视化
大数据安全与隐私保护
c语言
C++