计算机网络-05-运输层

运输层

作用

  • 提供服务:进程之间的逻辑通信, 差错检测 ,复用和分用

  • 面向

    • 有连接的TCP
    • 无连接的UDP

进程间通信

  • 网际层是主机间的逻辑通信,运输层可以看成是进程间的端对端通信

  • 复用(多进程都使用运输层传输)与分用(运输层交付给正确进程)

  • 端口

    • 利用目的主机提供的功能来识别终点
    • 一个实现方案即软件端口(抽象的协议端口)
    • 熟知端口 0~1023(比如http:80, FTP:21等)
    • 登记端口 1024~49151
    • 客户端使用端口 49152~65535

UDP

  • 特点

    • 无连接、首部开销小 , 尽最大努力交付 ,应用层要保证可靠性
    • 面向报文:直接封装应用层报文,一次交付一个完整报文
    • 需要控制报文长度,否则网际层需要分片或者首部过长,都会影响ip层效率
    • 没有拥塞控制
  • 首部

    • 首部8个字节(8B)<源端口><目的端口><长度><校验和>
  • 校验

    • 采用首部 伪首部 数据进行二进制反码运算求和在取反

TCP

  • 特点

    • 有连接、一对一 可靠交付、全双工通信、面向字节流
  • 首部

    • 首部 20B(20+4N)个字节

      • <源端口><目的端口>

      • <序号>

        • 每一个字节都按顺序编号
      • <确认号>

        • 确认号=N,表示序号N-1为止的所有数据都已正确收到
      • <数据偏移><保留><URG|ACK|PSH|RST|SYN|FIN><窗口>

      • <校验和><紧急指针>

      • <选项/填充> <=40字节 比如窗口扩大、时间戳等。只设置最大长度MSS,然后默认按对方这个长度

  • 套接字 socket=(ip地址:端口号)

    socket随着因特网发展有多种不同意思

    1)允许应用访问联网协议的API,即应用层与运输层之间的一种接口,socket API,简称socket

    2)socket API中一个函数名

    3)调用socket函数的端点称为socket,比如创建一个数据报socket

    4)调用socket函数的返回值称为socket描述符,简称为socket

    5)操作系统内核中连网协议的Berkeley实现,成为socket实现。

    6)这里指TCP传输的端点:套接字

  • 可靠传输

    • 序号

    • 确认

    • 重传

      • 超时重传:RTTs平滑往返时间等

      • 冗余确认

        • 选择确认SACK
  • 连接管理

    • 连接建立、传输数据、连接释放
    • 再次确认:防止已失效的连接请求报文段
  • 流量控制

    • 滑动窗口 设置首部窗口值rwnd 发送方发送速率不要太快,要让接收方来得及接收

      • 比如rwnd=200表示当前我只接收200字节的数据
  • 拥塞控制

    • 原理

      • 根据自己估算的网络拥塞成都设置cwnd的值来限制发送速率
    • 拥塞处理

      • ssthresh设为原理啊的Cwnd的一半cwnd置1
  • 方法

      - 慢开始
      - 拥塞避免
      - 快重传
      - 快恢复
    

你好吖  ੧ᐛ੭

posted @ 2020-08-21 15:45  孙中明  阅读(170)  评论(0编辑  收藏  举报