zoukankan      html  css  js  c++  java
  • 计算机网络-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
    • 方法

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

    你好吖  ੧ᐛ੭

  • 相关阅读:
    常用记录
    golang学习笔记之UDP:server端与client端
    golang学习笔记之tcp简单实现:server端与client端
    golang学习笔记之channel
    golang学习笔记之单元测试和压力测试
    Ubuntu 18.04桌面版安装
    Nas服务器使用xampp修改端口号
    Laravel使用Supervisor管理linux自动队列
    php 设计模式学习笔记之单例模式
    终极二分查找--传说十个人写九个有bug
  • 原文地址:https://www.cnblogs.com/hiszm/p/13541302.html
Copyright © 2011-2022 走看看