【计算机网络】传输层 : TCP 协议 ( TCP 协议特点 | TCP 报文段首部格式 | TCP 报文段控制位 )

2023-03-28 17:22:23 浏览数 (2)

文章目录

  • 一、TCP 协议 特点
  • 二、TCP 报文段首部格式
  • 三、TCP 报文段首部
6

控制位

一、TCP 协议 特点


TCP 协议 特点 :

① 面向连接 : TCP 协议的连接是 “虚连接” ;

② 点对点 : TCP 协议 是 点对点 的 , 是两个端点之间的连接 ;

③ 可靠传输 : TCP 协议提供 可靠服务 , 按序到达 , 没有丢失 , 没有重复 ;

④ 全双工 : TCP 协议通信是全双工通信 ;

  • 发送缓存 : 存储 准备发送的数据 , 已经发送尚未确认送达的数据 ;
  • 接收缓存 : 存储 按序到达尚未被读取的数据 , 不按序到达的数据 ;

⑤ 面向字节流 : TCP 协议将 数据 看做 无结构的字节流 ;

二、TCP 报文段首部格式


TCP 报文段首部格式 :

① TCP 报文段组成 : 由 TCP 首部 和 TCP 数据部分 组成 ;

② TCP 首部格式 :

20

字节固定首部 可变的选项 填充部分 组成 ; 其中 可变选项 填充部分 是

4

字节整数倍 , 填充部分的意义就是为了让整个 TCP 首部大小是

4

字节整数倍 ;

③ 源端口 / 目的端口 : 进程端口号 , 每个

2

字节 , 取值范围

0

~

65535

;

④ 序号 : TCP 连接中 , 字节流中的 字节按照顺序编号 , 每个字节都有一个序号 , 本首部中的序号是本 TCP 报文 数据部分第一个字节的序号 ;

⑤ 确认号 : 期望收到 对方 下一个报文段 第一个数据字节的序号 ; 序号为

100

, 说明

99

及之前的数据都已经收到 ;

⑥ 数据偏移 : TCP 报文段 数据部分起始位置 , 距离 TCP 报文段的起始位置 , 有多远 , 单位

4

字节 ; 即 整个 TCP 报文段 中 TCP 首部的长度 ;

⑦ 窗口 : 发送本报文段一方的 接收窗口 ( 发送方 ) , 即允许对方发送的数据量 ( 接收方 ) ;

⑧ 检验和 : 检验首部 数据 ; 检验时 加上

12

字节伪首部 , 第

4

字段都是

6

;

⑨ 紧急指针 : 当 URG 紧急标志位 为

1

时 有效 , 表明本报文段的紧急数据字节数 ; 如 : 紧急指针值为

88

, 说明 报文段的 数据部分 前 88 字节时 紧急数据 ;

⑩ 选项 : 最大报文段长度 MSS , 窗口扩大字段 , 时间戳 , 选择确认信息 等 ; 如果选项 不足

4

字节整数倍 , 使用填充

0

使 TCP 首部是

4

字节整数倍 ;

三、TCP 报文段首部

6

控制位


TCP 报文段首部

6

控制位 :

① URG ( 紧急位 ) : URG

= 1

时 , 表明 该报文段中有紧急数据 , 优先级很高 , 尽快传送 , 不在缓存中排队 , 结合紧急指针字段使用 ;

② ACK ( 确认位 ) : ACK

= 1

时 , 确认号有效 , 连接建立后 , 所有的报文段的 ACK 都必须设置为

1

;

③ PSH ( 推送位 ) : PSH

=1

时 , 接收方 要 尽快交付接收应用进程 , 不用等到接收缓存满后再交付 ;

④ RST ( 复位 ) : RST

=1

时 , TCP 连接中出现错误 , 必须释放当前连接 , 重新建立连接 ;

⑤ SYN ( 同步位 ) : SYN

=1

时 , 表明该报文是一个 连接请求 / 连接接收 报文 ;

⑥ FIN ( 终止位 ) : FIN

=1

时 , 表明该报文发送完毕 , 释放连接 ;

0 人点赞