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

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

文章目录

一、TCP 协议 特点

二、TCP 报文段首部格式

三、TCP 报文段首部 6 66 控制位





一、TCP 协议 特点


TCP 协议 特点 :


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


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


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


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


发送缓存 : 存储 准备发送的数据 , 已经发送尚未确认送达的数据 ;

接收缓存 : 存储 按序到达尚未被读取的数据 , 不按序到达的数据 ;

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






二、TCP 报文段首部格式


TCP 报文段首部格式 :


image.png


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


② TCP 首部格式 : 由 20 2020 字节固定首部 + 可变的选项 + 填充部分 组成 ; 其中 可变选项 + 填充部分 是 4 44 字节整数倍 , 填充部分的意义就是为了让整个 TCP 首部大小是 4 44 字节整数倍 ;


③ 源端口 / 目的端口 : 进程端口号 , 每个 2 22 字节 , 取值范围 0 00 ~ 65535 6553565535 ;


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


⑤ 确认号 : 期望收到 对方 下一个报文段 第一个数据字节的序号 ; 序号为 100 100100 , 说明 99 9999 及之前的数据都已经收到 ;


⑥ 数据偏移 : TCP 报文段 数据部分起始位置 , 距离 TCP 报文段的起始位置 , 有多远 , 单位 4 44 字节 ; 即 整个 TCP 报文段 中 TCP 首部的长度 ;


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


⑧ 检验和 : 检验首部 + 数据 ; 检验时 加上 12 1212 字节伪首部 , 第 4 44 字段都是 6 66 ;


⑨ 紧急指针 : 当 URG 紧急标志位 为 1 11 时 有效 , 表明本报文段的紧急数据字节数 ; 如 : 紧急指针值为 88 8888 , 说明 报文段的 数据部分 前 88 字节时 紧急数据 ;


⑩ 选项 : 最大报文段长度 MSS , 窗口扩大字段 , 时间戳 , 选择确认信息 等 ; 如果选项 不足 4 44 字节整数倍 , 使用填充 0 00 使 TCP 首部是 4 44 字节整数倍 ;






三、TCP 报文段首部 6 66 控制位


TCP 报文段首部 6 66 控制位 :


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


② ACK ( 确认位 ) : ACK = 1 = 1=1 时 , 确认号有效 , 连接建立后 , 所有的报文段的 ACK 都必须设置为 1 11 ;


③ PSH ( 推送位 ) : PSH = 1 =1=1 时 , 接收方 要 尽快交付接收应用进程 , 不用等到接收缓存满后再交付 ;


④ RST ( 复位 ) : RST = 1 =1=1 时 , TCP 连接中出现错误 , 必须释放当前连接 , 重新建立连接 ;


⑤ SYN ( 同步位 ) : SYN = 1 =1=1 时 , 表明该报文是一个 连接请求 / 连接接收 报文 ;


⑥ FIN ( 终止位 ) : FIN = 1 =1=1 时 , 表明该报文发送完毕 , 释放连接 ;


目录
相关文章
|
1天前
|
网络协议 Java
一文讲明TCP网络编程、Socket套接字的讲解使用、网络编程案例
这篇文章全面讲解了基于Socket的TCP网络编程,包括Socket基本概念、TCP编程步骤、客户端和服务端的通信过程,并通过具体代码示例展示了客户端与服务端之间的数据通信。同时,还提供了多个案例分析,如客户端发送信息给服务端、客户端发送文件给服务端以及服务端保存文件并返回确认信息给客户端的场景。
一文讲明TCP网络编程、Socket套接字的讲解使用、网络编程案例
|
3天前
|
网络协议 Windows
在电脑上测试TCP/UDP端口是否开放,还是得网络大佬这招厉害!
在电脑上测试TCP/UDP端口是否开放,还是得网络大佬这招厉害!
|
5天前
|
网络协议 视频直播 SDN
计算机网络:TCP协议的三次握手和四次挥手与UDP协议区别.
计算机网络:TCP协议的三次握手和四次挥手与UDP协议区别.
18 1
|
27天前
|
缓存 网络协议 网络性能优化
网络协议详解:TCP/IP与HTTP
【7月更文挑战第24天】TCP/IP协议和HTTP协议是现代互联网通信的重要基石。TCP/IP协议提供了计算机之间数据传输和通信的底层支持,而HTTP协议则在此基础上实现了超文本数据的传输。随着互联网的不断发展,TCP/IP协议和HTTP协议将继续发挥重要作用,为各种网络应用提供稳定、高效的通信服务。
|
20天前
|
网络协议 Java 数据处理
(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述
就目前而言,多数网络编程的系列的文章都在围绕着计算机网络体系进行阐述,但其中太多理论概念,对于大部分开发者而言,用途甚微。因此,在本系列中则会以实际开发者的工作为核心,从Java程序员的角度出发,详细解读Java的网络编程核心内容。
|
3月前
|
机器学习/深度学习 人工智能 网络协议
TCP/IP五层(或四层)模型,IP和TCP到底在哪层?
TCP/IP五层(或四层)模型,IP和TCP到底在哪层?
66 4
|
监控 网络协议 网络架构
IP协议【图解TCP/IP(笔记九)】
IP协议【图解TCP/IP(笔记九)】
|
域名解析 网络协议
IP协议, TCP协议 和DNS 服务分别是干什么的?
大家好,我是阿萨。昨天讲解了网络四层协议[TCP/IP协议族分为哪4层?]今天我们学习下IP 协议, TCP 协议和DNS 协议分别是干什么的。
269 0
IP协议, TCP协议 和DNS 服务分别是干什么的?
|
网络协议
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
|
网络协议 网络架构
六、TCP/IP模型 和 5层参考模型
六、TCP/IP模型 和 5层参考模型
六、TCP/IP模型 和 5层参考模型