0%

传输层

传输层

定义

  1. 传输层提供进程间的通信,即端到端的逻辑通信
  2. 套接字 - 即ip地址:端口号
  3. 端口号 - 16位,0-65535
  4. UDP
    1. 概述 - 无连接,不可靠,面向数据报,可支持多对多,针对IP数据报增加了两个基本功能:复用和分用、以及差错检测
    2. UDP首部示意图
      1 其中数据报的长度包括首部和数据,最小值为仅有首部时的8位
    3. UDP检验
      1. 全0放入检验字段并添加伪首部
      2. 将参与计算的所有数据(UDP 伪首部、UDP 首部和负载数据)以 16 位为单位进行划分。如果数据总长度不是 16 位的整数倍,则在末尾填充一个字节的 0,使其成为 16 位的整数倍。
      3. 将划分好的 16 位字依次相加,得到一个初始和。如果相加过程中出现溢出(即结果超过 16 位),则将溢出的部分(高 16 位)加到结果的低 16 位上,这个过程称为 “回卷”。
      4. 重复上述计算直到得到16位的新数
      5. 将最终得到的 16 位结果按位取反,得到的数值就是 UDP 校验和,该值会被填入 UDP 首部的校验和字段中。
      6. 接收端收到 UDP 数据包后,会对包括校验和字段在内的整个数据包进行相同的计算。同样将数据以 16 位为单位求和,并进行 “回卷” 操作,最终得到一个 16 位的结果。如果该结果为全 1(即 0xFFFF),则认为数据包在传输过程中没有发生错误,接收端会接受该数据包并继续处理数据;如果结果不是全 1,则表明数据包可能出现了错误,接收端通常会丢弃这个数据包
  5. TCP
    1. 概述 - 面向连接,可靠,全双工通信,面向字节流。只能有两个端点,即每条TCP连接只能是一对一的
    2. UDP首部示意图
      1
      其中序号字段表示本报文数据的第一个字节的序号,确认号表示期望收到下一个报文的第一个字节的序列号,数据偏移指的是TCP首部部分占多少个4B,故首部最大为60B
    3. 三次握手与四次挥手 1 1
    4. 重传 - 超时和冗余ACK
    5. 流量控制 - 接收方滑动窗口协议
    6. 拥塞控制 1

混淆

  1. 常见端口号
    1. FTP21
    2. TELNET23
    3. SMTP25
    4. DNS53