计算机网络-知识梳理5-传输层

传输层基础

  1. 传输层的功能

    1. 应用进程之间的逻辑通信
    2. 复用和分用
    3. 差错检测:TCP - 重发, UDP - 丢弃
    4. 提供面向连接和无连接的传输协议
  2. 端口号:16b,能表示 65535 个不同的端口号,端口号只具有本地意义

    1. 服务器端使用的端口号:

      • 熟知端口号:0-1023
      • 登记端口号:1024-49151,必须在 LANA 登记防止重复
        请添加图片描述
    2. 客户端使用的端口号 / 短暂端口号:49152-65535

  3. 套接字 Socket:端口号拼接到 IP 地址,即套接字 = {IP 地址:端口号}

  4. 传输层协议应用
    请添加图片描述

UDP

  1. 功能:复用和分用,差错检测

  2. 特点:

    1. 无须建立连接
    2. 无连接状态
    3. 首部开销小:8B
    4. 没有拥塞控制
    5. 支持一对一,一对多,多对一,多对多
    6. 面向报文:对应用层交下来的报文,添加首部后向下交给 IP 层,一次发送一个报文,不合并,不拆分,因此报文是 UDP 处理的最小单位
  3. 场景:常用于一次性传输较少的数据的网络应用,如 DNS,SNMP

  4. 不可靠交付:可靠的工作交给应用层完成

  5. 首部格式

    1. 源端口:不需要时可用全 0
    2. 目的端口:必须要,如果端口号错误,则 ICMP 发送端口不可达差错报文
    3. 长度:包含首部,最小 8B(仅包含首部)
    4. 检验和:可选,检验整个数据报,不使用检验和全置为 0,如果计算的检验和为 0,则全置为 1
      请添加图片描述

TCP

  1. TCP 特点:

    1. 面向连接:TCP 连接时一条逻辑连接
    2. 只能一对一
    3. 提供可靠交付:无差错,无丢失,不重复,有序
    4. 全双工通信
    5. 面向字节流
    6. 首部可变:最短 20B,可追加 4B 整数倍的选项(整个首部最大 60B)
  2. TCP 首部

    1. 源端口:2B
    2. 目的端口:2B
    3. 序号: 4B
    4. 确认号:4B,表示期望收到的下一个报文段的第一个数据字节的序号
    5. 数据偏移:4b,以 4B 为单位,表示数据距离报文起始的偏移量
    6. 保留:6b
    7. 紧急位 URG:为 1 时有效,表示有紧急数据(优先级高)
    8. 确认位 ACK:为 1 时表示确认号字段有效(规定连接建立后置为 1)
    9. 推送位 PSH:为 1 时表示对方要马上响应
    10. 复位位 RST:为 1 时表示出现严重差错(主机崩溃宕机等),释放连接,也可以拒绝非法报文段
    11. 同步位 SYN:为 1 时表示是连接请求或者连接接收报文
    12. 终止位 FIN:为 1 时要求释放连接
    13. 窗口:2B
    14. 检验和:2B
    15. 紧急指针:2B,在 URG = 1 时此字段有效
    16. 选项:最长 40 B
    17. 填充:保证首部长度是 4B 的整数倍
      请添加图片描述
  3. TCP 连接端口 / 两侧端点:套接字

TCP 连接建立和释放

  1. TCP 连接的建立:三次握手

    1. 客户机到服务器:SYN = 1(请求),seq = x,SYN报文不能携带数据,消耗掉一个序号
    2. 服务器到客户机:SYN = 1(接受),ACK = 1,ack = x + 1,seq = y
    3. 客户机到服务器:ACK = 1,ack = y + 1, seq = x + 1,这个报文带数据则消耗一个序号,不带数据则不消耗
      请添加图片描述
  2. TCP 连接的释放:四次挥手

    1. 客户机到服务器:FIN = 1,seq = u,带不带数据都要消耗一个序号,这时客户机不能再发送数据,但可以接收数据
    2. 服务器到客户机:ACK =1,ack = u + 1,seq = v,释放客户机到服务器连接
    3. 服务器到客户机重复12步骤
      请添加图片描述

    TIP:客户机最短释放时间 1RTT + 2MSL,服务器最短释放时间 1.5 RTT

TCP 可靠传输和流量控制

  1. TCP 可靠传输

    1. 序号
    2. 确认:累计确认
    3. 重传:超时和冗余 ACK(3个)
  2. TCP 流量控制

    1. 发送方维持接收窗口 rwnd(单位 B)
      请添加图片描述

TCP 拥塞控制

  1. 发送方窗口:接收窗口 rwnd,拥塞窗口 cwnd

  2. 发送窗口的上限:min(rwnd,cwnd)

  3. 慢开始算法和拥塞避免

    1. cwnd = 1,随传输次数指数增长
    2. 慢开始门限 ssthresh,cwnd 达到 ssthresh 后,每次传输 + 1
    3. 如果出现拥塞,ssthresh = 当前 cwnd 的一半,cwnd = 1
      请添加图片描述
  4. 快重传和快恢复

    1. 快重传:连续接收到 3 个冗余 ACK 立刻重传相应的报文段
    2. 快恢复:连续接收到 3 个冗余 ACK 后,ssthresh = 当前 cwnd 的一半,cwnd = 当前 cwnd 的一半
      请添加图片描述
  • 16
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值