网络互联与互联网 - TCP 协议详解

news/2024/5/17 20:22:36 标签: TCP, 传输控制协议

文章目录

  • 1 概述
  • 2 TCP 传输控制协议
    • 2.1 报文格式
    • 2.2 三次握手,建立连接
    • 2.3 四次挥手,释放连接
  • 3 扩展
    • 3.1 实验演示
    • 3.2 网工软考

1 概述

  • TCP/IP 协议簇 中有两个传输协议
    • TCP:Transmission Control Protocol,传输控制协议,是面向连接的、可靠的。
    • UDP:User Datagram Protocol,用户数据报协议,是面向无连接的、不可靠的。

TCP__8">2 TCP 传输控制协议

2.1 报文格式

在这里插入图片描述

参数英文名说明
源端口Sorce Port
目的端口Destination Port
序号Sequence Number保证数据的可靠性
确认号Acknowlegement Number
首部长度Header Length
保留Reserved
控制位Control bits
窗口大小Window Size进行流量控制
校验和Checksum
紧急指针Urgent
可选项Options

【其中,控制位有以下参数,其值为 1 时,表示启用。】

控制位全称描述
URGUrgent紧急。表示本报文中是否包含紧急数据
ACKAcknowledgement确认。表示前面的字段是否有效
PSHPush推送。表示立即将数据推送给上层
RSTReset重置。表示是否重置连接
SYNSynchronization同步。在建立连接时使用,用来同步序号。
① 当 SYN=1,ACK=0 时,表示这是一个请求建立连接的报文段。
② 当 SYN=1,ACK=1 时,表示对方同意建立连接。
FINFinish完成。表示数据已经发送完成,可以释放连接。

2.2 三次握手,建立连接

在这里插入图片描述

说明
序号 seq:表示本次通信的字节流序号。初始序号 x、y 是自动生成的,如上图:seq = x 表示 客户端 本次的初始序号为 x,seq = y 表示 服务器 本次的初始序号为 y。
确认号 ack:确认上一步的序号,并进行 + 1 (目的:表明数据包是连续的)。
③ 当 控制位 ACK = 1 时,确认号 ack 才有值。

2.3 四次挥手,释放连接

在这里插入图片描述

说明
① 请求释放连接 中的 x、y 为上一次通信中的值
② MSL:Maximum Segment Lifetime(最大段时长)

3 扩展

3.1 实验演示

【eNSP:网络拓扑图,对接口 Ethernet 0/0/2 抓包】
在这里插入图片描述

【客户端 Client1 和 服务器 Server1 配置】
在这里插入图片描述

【抓包参数信息】
在这里插入图片描述

在这里插入图片描述

3.2 网工软考

【2021上半年 - 21,22】TCP使用的流量控制协议是( ),TCP头中与之相关的字段是( )。
(21)A.停等应答
   B.可变大小的滑动窗口协议
   C.固定大小的滑动窗口协议
   D.选择重发ARQ协议
(22)A.端口号
   B.偏移
   C.窗口
   D.紧急指针

参考答案:21=B,22=C
通过数据抓包,可以看到,窗口大小是变化的

在这里插入图片描述

【2019下半年 - 22】建立TCP连接时,被动打开一端在收到对端SYN前所处的状态为( )。
A. LISTEN
B. CLOSED
C. SYN RESECEIVD
D. LASTACK

参考答案:A


http://www.niftyadmin.cn/n/4964936.html

相关文章

【hello git】初识Git

目录 一、简述Git 二、Linux 下 Git 的安装:CentOS 2.1 基本命令 2.2 示例: 三、Linux 下 Git 的安装:ubuntu 3.1 基本命令 3.2 示例: 一、简述Git Git :版本控制器,记录每次的修改以及版本迭代的一个管…

快速排序 | C++|时间空间复杂度

1.概念 快速排序(QuickSort)的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。 2.算法思想描述 1.进行一次划分&…

跨境电商儿童沙画办理EN71测试标准

儿童沙画就是小孩子玩的那种用彩色沙子或者彩色墨水,在有图形轮廓的纸片上去绘画,可以按照儿童沙画底板上的人物轮廓线条,动物线条,风景线条,动漫线条,去添加自己喜欢的颜色,让单调的线条变成自…

Python学习笔记_基础篇(十二)_nmap使用及案例

nmap概念及功能 概念 NMap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。 nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统&am…

Cohere API 之旅

Cohere API之旅 0. 背景1. Cohere提供的模型和函数2. Cohere 客户端3. Co.Generate API4. Co.Embed API5. Co.Classify API6. Co.Tokenize API7. Co.Detokenize API8. Co.Detect_language9. Co.Summarize API10. Co.Rerank API 0. 背景 大约两个月前有一份新闻稿。 https://w…

vite创建项目命令

1.第一步运行创建命令(npm) npm create vitelatest也可以使用yarn yarn create vite还可以 pnpm create vite注意的地方:首次创建的时候会出现这个 Need to install the following packages:create-vitelatest Ok to proceed? (y) 直接y就…

软件测试技术分享丨使用Postman搞定各种接口token实战

现在许多项目都使用jwt来实现用户登录和数据权限,校验过用户的用户名和密码后,会向用户响应一段经过加密的token,在这段token中可能储存了数据权限等,在后期的访问中,需要携带这段token,后台解析这段token才…

回归预测 | MATLAB实现SA-ELM模拟退火算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现SA-ELM模拟退火算法优化极限学习机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现SA-ELM模拟退火算法优化极限学习机多输入单输出回归预测(多指标,多图)效果一览基本…