美文网首页网络协议
网络协议 Day08 TCP可靠传输

网络协议 Day08 TCP可靠传输

作者: 望穿秋水小作坊 | 来源:发表于2020-11-13 16:22 被阅读0次

一、网络层

1. TCP 首部(记得每个字段含义即可)
TCP 首部
  • URG(Urgent)
  • URG=1 时,紧急指针字段才有效。表明当前报文段中有紧急数据,应优先尽快传送
  • ACK(Acknowledge)
  • ACK=1 时,确认号字段才有效
  • RST(Reset)
  • 当 RST=1 时,表明连接中出现严重差错,必须释放连接,然后再重新建立连接
  • SYN(Synchronization)
  • 当 SYN=1、ACK=0 时,表明这是一个建立连接的请求
  • 若对方同意建立连接,则回复 SYN=1、ACK=1
  • FIN(Finish)
  • 当 FIN=1 时,表明数据已经发送完毕,要求释放连接
  • 序号(Sequence Number)
  • 占 4 个字节
  • 首先,传输的每一个字节都会有一个编号
  • 在建立连接后,序号代表:这一次传给对方的 TCP 数据部分的第一个字节的编号
  • 确认号(Acknowledge Number)
  • 占 4 个字节
  • 在建立连接后,确认号代表:期望对方下一次传输过来的 TCP 数据部分的第一个字节的编号
  • 窗口(Window)
  • 占 2 个字节
  • 这个字段有流量控制功能,用以告知对方下一次允许发送的数据大小(字节为单位)
2. 为什么 TCP 的首部仅仅有 4 位的数据偏移字段记录了 TCP 首部的长度,并没有字段记录 TCP 的数据长度?UDP 首部中有个 16 位的字段记录了整个 UDP 报文的长度(首部+数据)。
  • UDP 首部中占 16 位的长度字段是冗余的,纯粹是为了保证首部是 32bit 对齐
  • TCP\UDP 的数据长度,完全可以由 IP 数据包的首部推测出来
  • 传输层的数据长度 = 网络层的总长度 - 网络层的首部长度 - 传输层的首部长度

二、TCP 可靠传输

1. 停止等待 ARQ 协议
  • ARQ(Automatic Repeat-reQuest) 自动重传请求
    图解 1
图解 2
2. 连续 ARQ 协议 + 滑动窗口协议
  • 停止等待ARQ协议,让A只能一条一条传递数据给 B,这无疑是效率比较低的,必须得到进化

    图解
  • 发送方的窗口大小,一般是由接收端决定的

3. 完整的读下图,理解连续 ARQ 协议 + 滑动窗口协议
需要理解
4. 为什么需要 SACK(选择性确认)?
  • 在 TCP 通信过程中,如果发送序列中间某个数据包丢失(比如 1、2、3、4、5 中的 3 丢失了)
  • TCP 会通过重传最后确认的分组后续的分组(最后确认的是 2,会重传 3、4、5)
  • 这样原先已经正确传输的分组也可能重复发送(比如 4、5),降低了 TCP 性能
5. SACK(选择性确认)是怎么做的呢?
  • 为了改善上述情况,发展出了 SACK(Selective Acknowledge,选择性确认)技术
  • 告诉发送方哪些数据丢失,哪些数据已经提前收到
  • 使得 TCP 值重新发送丢失的包(比如 3),不用发送后续所有的分组(比如 4、5)
6. SACK 技术实现原理(了解即可)
实现原理
7. PDU 是我们在网络协议中经常看到的词汇什么意思呢?
  • 协议数据单元(Protocol Data Unit,PDU
  • 在分层网络结构,例如开放式系统互联(OSI)模型中,在传输系统的每一层都将建立协议数据单元(PDU)

三、遗留的一些疑惑

1. 确认号序号中存储的编号到底是谁给的?或者怎么来的?存储在哪里?
2. 不应该客户端只有一个确认吗?抓包地址 icp.chinaz.com
我抓到的包,好像跟理论上的不一致丫

相关文章

  • D-27操作系统基础网络章节

    一、TCP/UDP协议说明 TCP: 传输控制协议 面向连接网络协议 安全可靠 传输效率不高 在线...

  • 网络协议 Day08 TCP可靠传输

    一、网络层 1. TCP 首部(记得每个字段含义即可) URG(Urgent) 当 URG=1 时,紧急指针字段才...

  • Android网络接口 Socket 套接字通信

    http,socket,tcp/ip 网络传输与通讯 TCP的全称为传输控制协议。这种协议可以提供面向连接的、可靠...

  • NETWORK

    传输层 TCP协议 TCP协议的特点 TCP是在不可靠的IP层之上实现的可靠的数据传输协议,它主要解决传输的可靠、...

  • 计算机网络面试核心

    计算机网络面试核心 传输层控制协议 TCP 简介 传输层控制协议 TCP 简介面向连接的,可靠的,基于字节流的传输...

  • TCP、UDP

    UDP协议:用户报文协议(无连接的网络协议——保证数据的传输效率) 优点:传输效率高缺点:传输数据不可靠 TCP协...

  • TCP/UDP详解

    TCP简介(网络基础中有所介绍) TCP传输控制协议: 面向连接、可靠的、基于字节流的传输层协议 将应用层的数据分...

  • TCP 如何保证可靠性

    [TOC] 参考 1. TCP可靠性的保证机制总结 2. 网络基础:TCP协议-如何保证传输可靠性 3. TCP协...

  • 三次握手和四次挥手

    1. 三次握手 三次握手的流程图: 在网络数据传输中,传输层协议TCP(传输控制协议)是建立连接的可靠传输,TCP...

  • 八.网络协议学习笔记 传输层TCP-可靠传输

    TCP的几个要点 可靠传输 TCP-可靠传输-停止等待AQR协议 AQR(Automatic Repeat-reQ...

网友评论

    本文标题:网络协议 Day08 TCP可靠传输

    本文链接:https://www.haomeiwen.com/subject/stwvbktx.html