1.6、传输层协议

1.6、传输层协议

  • 前言
    • 传输层定义了主机应用程序之间端到端的连通性。传输层中最常见的两个协议分别是传输控制协议TCP(Transmission Control Protocol)和用户数据包协议UDP(User Datagram Protocol)
  • TCP
    • 1.6、传输层协议
    • TCP是一种面向连接的传输层协议,可提供可靠的传输服务
  • TCP端口号
    • 1.6、传输层协议
    • 端口号用来区分不同的网络服务
    • 端口类型
      • 固定端口
        • 0~1023
      • 动态端口
        • 1024~65535
  • TCP头部
    • 1.6、传输层协议
    • Source Port
      • 源端口号
    • Destination Port
      • 目的端口号
    • Sequence Number
      • ***
        • 标识从发送端发出的不同TCP数据段信号
    • Acknowledge Number
      • 确认***
        • 接收端向发端进行确认。通常确认***是接收到的***加1
    • Headerlength
      • 表示TCP头部最大是多少
      • 20~60字节
    • Resv.
      • 保留字段
    • 六个标志
      • URG
        • 标识紧急指针是否有效
      • ACK
        • 确认序号是否有效
      • PSH
        • 提示接收端应用程序立刻将数据从TCP的缓存区读取
      • RST
        • 要求重新建立连接
      • SYN
        • 请求建立连接
      • FIN
        • 通知连接终端
    • Window
      • 窗口大小
        • 控制流量大小、流量控制
          • 表示接收端通过单次确认收到的数据的大小的控制,以此间接的进行流量控制
        • 最大值:65535
    • Checksum
      • 校验和
  • TCP建立连接的过程
    • 1.6、传输层协议
    • TCP通过三次握手建立可靠连接
  • TCP传输过程
    • 1.6、传输层协议
    • 过程
      • 主机A发送了三个数据段
      • 服务器A接收到后发送一个确认报文,因为最后一个报文为1499,所以发送一个确认好为M+1500,代表前面三个数据包已收到
      • 主机A收到确认报文后,也会恢复一个确认报文。由于回复的报文失败了,即服务器A没有收到确认报文
      • 服务器A没有收到M+1500的确认报文,它会再一次以***M+1500发送,直到收到主机A发送过来的确认报文
  • TCP流量控制
    • 1.6、传输层协议
    • TCP流量控制是通过窗口大小来进行控制。利用滑动窗口来改变大小,实现控制流量传输
  • TCP关闭连接
    • 1.6、传输层协议
    • 主机在关闭连接之前,要确认收到来自对方的ACK
  • UDP
    • 1.6、传输层协议
    • UDP是一种面向无连接的传输层协议,传输可靠性没有保证
  • UDP头部
    • 1.6、传输层协议
    • UDP头部仅占8字节,传输数据时没有确认机制
  • UDP传输过程
    • 1.6、传输层协议
    • 使用UDP传输数据时,由应用程序根据需要提供报文到达确认、排序、流量控制等功能
  • UDP传输过程
    • 1.6、传输层协议
    • UDP不提供重传机制,占用资源少,处理效率高
    • 一些时延敏感的流量,如语音、视频等,通常使用UDP作为传输层协议
  • 总结
    • TCP头部中的确认标志位有什么作用?
      • ACK
        • 用于目的端对已收到数据的确认
          • 当目的端收到***为x字节的数据,会以***x+1来进行确认
    • TCP头部中有哪些标识位参与TCP三次握手?
      • SYN
        • 请求建立连接
      • ACK
        • 标志位确认