• 计算机网络:运输层


    运输层

    运输层主要解决了应用进程之间的通信,称之为端到端协议

    1.运输层概述

    image-20221018171237220

    计算机网-------络体系结构的角度

    image-20221018171513745

    image-20221018171644385

    AP:应用进程之间的简称

    2. 运输层端口号、复用与分用的概念

    2.1 端口号

    image-20221018172316002

    2.2 发送方的复用(multiplexing)和接收方的分用(demultiplexing)

    • 复用

    **UDP复用:**发送发某些应用进程发送的应用报文使用UDP进行封装

    **TCP复用:**发送发某些应用进程发送的应用报文使用TCP进行封装

    image-20221018172739294 image-20221018172815989
    • TCP/IP体系的应用层常用的运输层端口号

    image-20221018173108667

    3. TCP/UDP

    • TCP和UDP是TCP/IP体系结构运输层中两个重要协议

    • UDP协议(发短信协议)

      • 可以随时发送数据

      • UDP支持一对一,一对多通信

      • UDP是面向应用报文的(对应用报文不拆分)

        image-20221018174221350
      • UDP提供不可靠传输服务

      • 首部开销小:8字节

        image-20221018174926825
    • TCP协议(打电话协议)

      • 发送数据前 必须使用“三次握手”,结束后“四次挥手”

      • TCP仅支持一对一通信

      • TCP是面向字节流的(对应用报文拆分成字节形式)

        image-20221018174429904
      • TCP提供可靠传输服务

      • 首部开销大20~60字节

        image-20221018174948822

    4. TCP的流量控制(flow control)

    前言:如果发送方发送数据过快,接收方就可能来不及接收

    • 流量控制:让发送方发送速率不要太快
    • 利用滑动窗口机制可以实现对发送方的流量控制

    例:

    image-20221018180029921

    rwnd=0可能会出现死锁情况,所以在收到rwnd=0时需要启动一个接收计时器(超时后发送窗口探测报文)

    下面为下述情况举例:

    image-20221018180242862

    5. TCP的拥塞控制(congestion control)

    • 拥塞:网络中某一资源的需求超过了该资源所能提供的可用部分

    • 若出现拥塞而不进行控制,整个网络吞吐量将随着负载的增大而下降

    image-20221018195511775

    cwnd:拥塞窗口

    swnd:发送窗口

    ssthresh:慢开始门限

    image-20221018200130626

    5.1 TCP的拥塞控制算法——慢开始

    image-20221018200548636

    初始拥塞窗口是1,慢开始门限是16

    经过确认后cwnd每轮自加

    image-20221018200826677

    image-20221018201025292

    5.2 TCP的拥塞控制算法——拥塞避免

    • 经过确认后cwnd每轮加1

    image-20221018201049671

    • 直到增的大到报文段在传输时丢失,判断网络可能出现拥塞

    image-20221018201253816

    总共折线图

    image-20221018202353962

    5.3 TCP的拥塞控制算法——快重传

    有时个别报文段会在网络中丢失,但实际上网络并未发生拥塞(会降低效率)

    快重传算法可以让发送方早知道个别报文段的丢失,尽快进行重传

    image-20221018202901376

    例子解释:

    image-20221018202953805

    5.4 TCP的拥塞控制算法——快恢复

    image-20221018203248669

    综合例题:

    image-20221018203901010

    6. TCP超时重传时间的选择

    RTO:超时重传时间

    RTT:报文段往返时间

    为了使用效率,RTO的值应该略大于RTT的值

    image-20221018205156122

    加权平均往返时间算法:

    image-20221018210000510

    RTT偏差的加权平均:

    image-20221018210022359

    RTO算法:

    image-20221018210143954

    tips:

    如果出现超时重传,就把超时重传时间(RTO)增大一些(两倍)

    image-20221018210914021

    7. TCP可靠传输的实现

    • TCP基于以字节为单位的滑动窗口来实现可靠传输

      • 发送窗口

      image-20221019195005831

      image-20221019200151446
      • 接收窗口

      image-20221019195642921

      image-20221019200800152

    例:

    image-20221019202433287

    8. TCP的运输连接管理

    • TCP运输连接由三个阶段
      • 建立TCP连接(三次握手)
      • 数据传送
      • 释放TCP连接(四次挥手)

    8.1 TCP的连接建立

    TCP客户:TCP连接的发起者

    TCP服务器:被动等待的进程

    image-20221019222913035

    注:

    同步位SYN=1时,发送的报文段不能携带数据

    下一步的确认字段ACK=上一步的序号字段seq+1

    8.2 TCP的连接释放

    image-20221019224251262

    如果不进行等待可能会导致服务器端无法关闭

    对于连接异常的探测机制:保活计时器

    image-20221019224708353

    9. TCP报文段的首部格式

    • 一个TCP报文段由首部数据载荷两部分组成

      image-20221020173427113

    • TCP的全部功能都体现在它首部中各字段的作用

      image-20221020174234606

      image-20221020174346526

      image-20221020174431710

      image-20221020174504694

      image-20221020174519642

      image-20221020174702228

      举例

      如果数据偏移值=0101,则首部为20字节
      20 = ( 0101 ) 2 ∗ 4 字节 20=(0101)_2*4字节 20=(0101)24字节

      image-20221020175815970

      image-20221020175837530

      image-20221020175855550

  • 相关阅读:
    解决恶意IP地址攻击:保卫网络安全的有效方法
    【数据结构与算法】图的基本概念
    Shell 输入/输出重定向
    kubernetes之helm简介、安装、配置
    SpringBoot SpringBoot 原理篇 1 自动配置 1.5 proxyBeanMethod
    REST简介
    一文带你看懂交直流一体化电源系统调试步骤
    文心一言 VS 讯飞星火 VS chatgpt (91)-- 算法导论8.3 4题
    Java的String
    c++11 智能指针 (std::shared_ptr)(二)
  • 原文地址:https://blog.csdn.net/weixin_66261421/article/details/127943230