4端到端协议-4.2【实验】【计算机网络】

news2024/12/25 9:09:21

4端到端协议-4.2【实验】【计算机网络】

  • 前言
  • 推荐
  • 4端到端协议
    • 4.2 TCP协议流捕获与TCP协议分析
      • 实验目的
      • 实验内容及实验环境
      • 实验原理
      • 实验过程
      • 实验过程演示
    • 4.2.1实验章节测验
      • 一.单选题(共5题,25.0分)
      • 二.阅读理解(共1题,70.0分)
      • 三.填空题(共1题,5.0分)
  • 最后

前言

2023-6-15 10:24:44

以下内容源自《【实验】【计算机网络】》
仅供学习交流使用

推荐

Wireshark的安装及基本使用【计算机网络】

3网络互联-3.5【实验】【计算机网络】

4端到端协议

4.2 TCP协议流捕获与TCP协议分析

各位同学,大家好,本次实验的内容为TCP协议流捕获与TCP协议分析

本次实验我们分成四个部分来介绍。我们先介绍实验目的,其次介绍实验内容及环境,再次介绍实验原理,最后演示实验过程。

实验目的

1.理解TCP协议的工作机制;

2.理解TCP协议的报文格式。

实验内容及实验环境

1.实验内容
1)启动Wireshark捕获当前活动网络连接;
2)使用某种工具创建TCP连接,并进行释放。
3)分析TCP的报文格式。

2.实验环境
1)可运行 Windows 操作系统的 PC 一台。
2)每台 PC 具有以太网卡一块,通过双绞线与局域网相连,并可接入因特网;
3)Wireshark 程序(可以从 http://www.wireshark.org/下载)

实验原理

TCP协议的报文格式

TCP协议简介

  • TCP (Transmission Control Protocol传输控制协议)是一个面向连接的、端到端的、提供高可靠性服务的传输层通信协议,由IETF的RFC 793所定义。
  • 因特网上的大多数应用都把TCP作为传输层的首选协议。

和UDP协议不同,TCP提供面向连接的服务。在传输数据前必须先建立连接,数据传输结束后要释放连接。TCP不提供广播或多播服务。由于TCP要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。TCP报文段是在传输层抽象的端到端逻辑信道中传送,该信道是可靠的全双工信道,但该信道不知道其究竟通过了哪些路由器,而这些路由器也不知道其上的传输层是否建立了TCP连接。

TCP协议的特点

  • TCP是面向连接的协议
    和UDP的工作原理不同,TCP协议的工作原理要复杂的多。在不同节点之间传输数据前,必须先建立TCP连接;数据传输完毕后,需要释放已建立的连接。
  • TCP提供面向字节流的可靠交付的服务
    TCP协议数据按字节流的方式进行传输。虽然每一个TCP报文段传输的数据大小不同,但每个报文段都包含起始字节数和窗口数量。当数据到达接收端时,可能存在差错、乱序或者重复。为了避免这些错误,接收端先进行校验,然后接收缓存按字节流的顺序将接收到的数据顺序排列,提交到高层,从而提供可靠的交付。
  • TCP提供全双工通信
    TCP允许通信双方在任何时候都可以发送数据,在任一端都包含发送缓存和接收缓存,既能发送又能接收数据。

TCP报文段的组成

  • 首部(header)
  • 数据(data)

TCP报文段由首部(header)和数据(data)部分组成,TCP报文段首部的前20个字节是固定的,其后是根据需要而增加的选项。下面这个图给出了RFC793定义的TCP报文段结构。

从当前展示图的下面部分,我们可以看到,发送方应用进程交付给TCP的报文,在添加首部后构造成TCP报文段,然后就向下交付给IP 层。在TCP协议中数据按字节流的方式进行传输。虽然每一个TCP报文段传输的数据大小不同,但每个报文段都包含起始字节数和窗口大小。当数据到达接收端时,可能存在差错、乱序或者重复。为了避免这些错误,接收端先进行校验,然后接收缓存按字节流的顺序将接收到的数据顺序排列,提交到高层,从而提供可靠的交付。

从图的上部我们可以看到
TCP报文段由首部(header)和数据(data)部分组成,TCP报文段首部的前20个字节是固定的,其后是根据需要而增加的选项
下面对TCP首部的各个字段进行介绍。

在这里插入图片描述

最前面的两个字段是源端口字段和目的端口字段——各占 2 字节。用于标识应用程序的TCP端口号。
端口是运输层与应用层的服务接口。
端口的作用就是让应用层的各种应用进程,都能将其数据通过端口向下交付给运输层,以及让运输层将其收到的报文段中的数据,向上通过端口交付给应用层相应的进程。从这个意义上讲,端口是用来标志应用层的进程。
运输层的复用和分用功能都要通过端口才能实现。

在这里插入图片描述
下一个字段是序号字段——占 4 字节。TCP 连接中传送的数据流中的每一个字节我们都会对其编上一个序号。
序号字段的值则指的是本报文段所发送的数据的第一个字节的序号

在这里插入图片描述

确认号字段——占 4 字节,是期望收到对方的下一个报文段的数据 的第一个字节的序号。 用于通知对方期望接收下一个报文段的序号。实际上,序号和确认号是 发送方和接收方用来对数据字节计数(非报文段计数)。
在这里插入图片描述
数据偏移字段占 4 位,它用于度量从报文段开始位置到数据开始位置的偏移量,即TCP报文段首部长度,因此也称为首部长度字段。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。
在这里插入图片描述
保留字段——占 6 位,保留为今后使用,但目前固定为0。

在这里插入图片描述

URG字段为紧急比特字段,占1比特。 当 URG = 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
在这里插入图片描述
ACK字段为确认比特字段,占1位。—— 只有当 ACK置为1 时,标识本报文段携带有确认信息,确认号字段才有效。当 ACK置为0 时,确认号字段无效。
在这里插入图片描述
*PSH字段为推送比特字段,占1比特, 接收端 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。 *
在这里插入图片描述
RST字段为复位比特字段,占1比特。当 RST置为1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。此外也用于拒绝非法报文段和拒绝打开连接。
在这里插入图片描述
SYN字段为同步比特字段,占1比特,同步 SYN置为1 表示这是一个连接请求或连接接受报文,通常需与ACK结合使用。

在这里插入图片描述
FIN字段为终止比特字段,占1比特。用来释放一个连接。FIN置为1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
在这里插入图片描述
窗口字段,用于控制对方发送的数据量,进行流量控制,本字段占2字节,单位为字节。
在这里插入图片描述
检验和字段,用于TCP报文段的检错,占 2 字节。检验和字段检验的范围包括首部和数据这两部分。同UDP用户数据报一样在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部

在这里插入图片描述
紧急指针字段 —— 占 16 位,通常与URG字段配合使用,用于标识在本报文段中紧急数据的最后一个字节序号,即指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。
在这里插入图片描述
以上介绍了TCP首部的固定部分,其后为选项字段 ,该字段长度可变。通常只使用3个选项,即MSS,SACK,WSopt。
MSS(Maximum Segment Size)指的是最大报文段长度选项、
SACK(Selective Acknowledgment)指的是选择性确认选项
选择确认选项用于下面的情况:
TCP通信时,如果发送序列中间某个数据包丢失,TCP会重传最后一个确认的包 后面的包,这样原先已经正确传输的包也可能重复发送,急剧降低了TCP性能。为改善这种情况,可以使用SACK(Selective Acknowledgment, 选择性确认)技术,使TCP只重新发送丢失的包,不用发送后续所有的包,而且提供相应机制使接收方能告诉发送方哪些数据丢失,哪些数据重发了,哪些数据已经提前收到。
WSopt(TCP Window Scale Option)指的是窗口扩大选项
窗口扩大选项 ——占 3 字节,其中有一个字节表示移位值 S。新的窗口值等于把窗口值向左移动 S 位后获得实际的窗口大小。

在这里插入图片描述
填充字段,用于保证TCP报文段首部结束和数据部分的起始在32比特的边界上,即使整个首部长度是 4 字节的整数倍。该字段长度不定。
在这里插入图片描述

2023-6-15 10:55:40

实验过程

2023-6-15 10:55:44

下面介绍实验过程,主要展示使用Wireshark捕获TCP连接SMTP服务器的过程,分析其中TCP报文段的格式。

使用Wireshark捕获TCP连接SMTP服务器的过程,分析其中TCP报文段的格式。

实验过程演示

提前使用ipconfig命令查询本机IP地址

在这里插入图片描述

查看我们想要连接的远程主机的地址
网易邮箱服务器103.74.29.40

在这里插入图片描述

打开WireShark
捕获WLAN

在这里插入图片描述

使用telnet命令
连接远程主机25端口

telnet smtp.163.com 25

连接成功后
断开连接

QUIT

在这里插入图片描述

打开WireShark
过滤
SMTP
在这里插入图片描述
过滤
ip.addr==103.74.29.40

在这里插入图片描述

我们可以使用右键菜单中的追踪流->追踪TCP流
查看实际通信的过程

在这里插入图片描述

在这里插入图片描述

分析TCP连接中的第一次握手

双击NO.18的包

MAC帧部分
可以看到
源 目的 协议类型
在这里插入图片描述

IP部分
可以看到
源 目的
在这里插入图片描述

TCP部分
可以看到
源 目的 序列号 确认号 头部大小 标志位 窗口信息 选项信息
在这里插入图片描述
分析TCP传输的第一个数据包

双击NO.21的包

MAC帧部分
在这里插入图片描述
IP部分
在这里插入图片描述
TCP部分
在这里插入图片描述

分析TCP释放的第一次挥手

双击NO.37的包

MAC帧部分
在这里插入图片描述

IP部分
在这里插入图片描述

TCP部分
在这里插入图片描述

2023-6-15 12:03:00

4.2.1实验章节测验

本次成绩:100
最高成绩:100
重做 还可以重做2次

一.单选题(共5题,25.0分)

1【单选题】
下列关于TCP协议的叙述中,正确的是( )
I.提供无连接服务
II.提供复用/分用服务
III.提供可靠数据传输
(5.0分)
A、仅I
B、仅I、II
C、仅II、III
D、I、II、III

我的答案:C:
仅II、III
;得分: 5.0分

2【单选题】TCP的正式规范是RFC( )?(5.0分)
A、792
B、793
C、794
D、795

我的答案:B:
793
;得分: 5.0分

3【单选题】TCP报文段首部中固定部分的长度是( )个字节?(5.0分)
A、12
B、16
C、20
D、24

我的答案:C:
20
;得分: 5.0分

4【单选题】当TCP的目的端口号为25时,说明应用层可能使用的是( )协议?(5.0分)
A、HTTP
B、FTP
C、TELNET
D、SMTP

我的答案:D:
SMTP
;得分: 5.0分

5【单选题】主机甲与主机乙之间已建立一个TCP连接,双方持续有数据传输,且数据无差错与丢失。若甲收到一个来自乙的TCP报文段,该报文段的序号为1913,确认号为2046,数据部分为100字节,则接下来甲发送给乙的TCP报文段的序号和确认号分别为( )和( )。(5.0分)
A、2047、2012
B、2046、2013
C、2013、2047
D、2046、2012

我的答案:B:
2046、2013
;得分: 5.0分

二.阅读理解(共1题,70.0分)

1【阅读理解】

TCP流捕获.png

图为网络嗅探器捕获的数据信息,请根据图中信息,回答以下问题。(70.0分)

(1) [填空题] (8.7分)
第(1)报文段,序号为 (1) ,置1的标志位是 (2)

我的答案:得分: 8.7分
第一空: 0

第二空: SYN

(2) [填空题] (8.7分)
第(2)报文段,序号为 (1) ,确认号为 (2) ,置1的标志位是 (3) 和 (4)

我的答案:得分: 8.7分
第一空: 0

第二空: 1

第三空: SYN

第四空: ACK

(3) [填空题] (8.7分)
第(3)报文段,序号为 (1) ,确认号为 (2) ,置1的标志位是 (3)

我的答案:得分: 8.7分
第一空: 1

第二空: 1

第三空: ACK

(4) [填空题] (8.7分)
第(4)报文段,序号为 (1) ,确认号为 (2)

我的答案:得分: 8.7分
第一空: 1

第二空: 1

(5) [填空题] (8.7分)
第(5)报文段,序号为 (1) ,确认号为 (2) ,置1的标志位是 (3)

我的答案:得分: 8.7分
第一空: 1

第二空: 531

第三空: ACK

(6) [填空题] (8.7分)
图中第(3)报文段的窗口字段值66048字节,代表哪一方(服务器/客户)的接收能力? (1)

第(5)报文段的窗口字段值15744字节,代表哪一方(服务器/客户)的接收能力? (2)

我的答案:得分: 8.7分
第一空: 客户

第二空: 服务器

(7) [填空题] (8.7分)
图中第(6)报文段的序号 (1) ,确认号是 (2) ,它携带 (3) 字节的数据?

第(6)报文段的源端口号是 (4)

我的答案:得分: 8.7分
第一空: 1

第二空: 531

第三空: 152

第四空: 443

(8) [填空题] (9.1分)
图中TCP连接释放之前,服务器发给客户的最后一个字节编号为 (1)

客户发给服务器的最后一个字节编号为 (2)

我的答案:得分: 9.1分
第一空: 
152

第二空: 
581

三.填空题(共1题,5.0分)

1【填空题】
B收到A的一个TCP报文段,该报文段的部分抓包信息如下:

在这里插入图片描述

这时 (1) 方接收能力的体现。

由此可以判断下一时刻, (2) 最多可以发送 (3) 字节的数据给 (4) 。

(注意:第1、2、4空填写A或B)(5.0分)

我的答案:得分: 5.0分
第一空: A

第二空: B

第三空: 16896

第四空: A

最后

2023-6-15 12:16:18

你对我百般注视,
并不能构成万分之一的我,
却是一览无余的你。

祝大家逢考必过
点赞收藏关注哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/649223.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

xxl-job核心源码解析

xxl-job源码解析 如何自研一个xxljob 注册服务调度服务RPC组件(基建,底层严重依赖)日志服务告警服务 系统架构 执行流程 各大调度中心对比 1)服务端启动流程 首先找到配置类 XxlJobAdminConfig 可以发现该类实现 InitializingBean接口,…

openpose保姆级教程代码详细解析——训练部分

一:前言 OpenPose是一个基于深度学习的人体姿势估计库,它可以从图像或视频中准确地检测和估计人体的关键点和姿势信息。OpenPose的目标是将人体姿势估计变成一个实时、多人、准确的任务。它的原理部分已经在上一篇非常详细的讲解了——本节介绍训…

Dynamic .NET TWAIN 8.3.3 for NetCore Crack

用于 WinForms 和 WPF 应用程序的扫描仪和网络摄像头捕获 SDK 适用于 .NET 应用程序的简单高效的扫描和网络摄像头 SDK Dynamsoft 的 Dynamic .NET TWAIN 是一个基于 TWAIN 和 DirectShow 标准的 .NET 文档成像 SDK。它为扫描仪和网络摄像头软件开发提供了丰富、高效且…

修改依赖包下的子依赖版本,前端项目安全扫描出来的漏洞——解决过程

为什么要升级,如图云桌面(相当于堡垒机-远程桌面)的项目审查是大概基于node16版本进行扫描的,本来我方是通过降版本从14到12绕过大范围更新,但现在躲得过初一躲不过十五,如何更新 package-lock.json 中的一…

DAY24:二叉树(十四)二叉搜索树中的插入操作+删除二叉搜索树中的节点(二叉树结构修改难点)

文章目录 701.二叉搜索树中的插入操作思路递归法如何保证连接的节点就是空节点的父节点? 迭代法迭代法注意debug测试 450.删除二叉搜索树中的节点(坑较多,注意复盘)思路最开始的写法debug测试1.使用了释放后的空间ERROR: AddressS…

通知!2023年湖北住建厅七大员新考和继续教育要求有变化了?启程别

通知!2023年湖北住建厅七大员新考和继续教育要求有变化了?启程别 湖北住建厅七大员新考以及继续教育的相关要求都即将有一些变化了目前在征集意见的阶段,具体实施等后续具体通知 对于新考的变化主要是: 1.由原先报名之后只需要完成…

Vue中如何进行颜色选择与调色板

Vue中如何进行颜色选择与调色板 颜色选择和调色板是Web开发中常用的功能,它们可以帮助用户选择或调整颜色。Vue作为一个流行的JavaScript框架,提供了一些工具和库,可以方便地实现颜色选择和调色板功能。本文将介绍如何在Vue中进行颜色选择和…

【aspose-words】Aspose.Words for Java模板语法详细剖析

文章目录 前言🍊缘由aspose-words模板语法再了解 🎯主要目标实现3大重点 🎁快速链接🍈猜你想问如何与狗哥联系进行探讨1.关注公众号【JavaDog程序狗】2.踩踩狗哥博客 🍯猜你喜欢文章推荐 正文🍋aspose-word…

mfc140.dll丢失的解决方法,解析mfc140.dll这个文件

其实大部分人在使用计算机过程中,您可能会遇到mfc140.dll丢失的错误提示。这个错误会导致一些应用程序无法正常运行,那么要如何解决这个问题呢?今天小编就来给大家详细的解析mfc140.dll这个文件以及教大家 mfc140.dll丢失的解决方法。 目录 …

【算法与数据结构】349、LeetCode两个数组的交集

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:使用了一个哈希数组记录nums1出现的数字,然后遍历nums2,找到hash数组为1的值就…

Vue-Element-Admin项目学习笔记(6)Vuex状态管理

前情回顾: vue-element-admin项目学习笔记(1)安装、配置、启动项目 vue-element-admin项目学习笔记(2)main.js 文件分析 vue-element-admin项目学习笔记(3)路由分析一:静态路由 vue-element-adm…

yoloV5目标识别以及跟踪,功能识别动物(大象,犀牛,水牛,斑马)

yolo目标识别以及跟踪还是很强的嘞! 一. YOLO V5我来啦 1. 前期准备 yolo V5项目下载 项目的github地址项目的gitee地址 使用git 克隆下来到项目目录下面就好 环境配置 在yolov5的文件下面有一个 requirements.txt文件,这里就是环境依赖的说明。 这里我以 vs…

DP学习之解码方法

DP学习第二篇之解码方法 91. 解码方法 - 力扣(LeetCode) 一. 题目解析 二. 题解 算法原理及代码 状态表示 tips: 经验题目要求。以i位置为结尾,。。。 dp[i]: 以i位置为结尾时,解码方法的总数 状态转移方程 tips: 用之前或…

5.3.2 因特网的路由协议(二)基于距离向量算法的RIP协议

5.3.2 因特网的路由协议(二)基于距离向量算法的RIP协议 一、RIP协议概念 RIP是Routing Information Protocol缩写,又称为路由信息协议,是最先得到应用的内部网关协议,RIP作为一个常在小型互联网中使用的路由信息协议…

【mmcls】mmdet中使用mmcls的网络及预训练模型

mmcls现在叫mmpretrain,以前叫mmclassification,这里为了统一称为mmcls。在基于MM框架的下游任务,例如检测(mmdetection)中可以使用mmcls中的backbone进行特征提取,但这就需要知道网络的参数以及输出特征的维度。本文简单介绍了在…

CDD诊断数据库的简单介绍

1. 什么是数据库? 数据库是以结构化方式组织的一个数据集合。 比如DBC数据库: Network nodes Display Rx Messages EngineState(0x123) 通过结构化的方式把网络节点Display里Rx报文EngineState(0x123)层层展开。这种方 式的好处是:层次清晰,结构分明,易于查找。 2. 什么…

ERROR: AddressSanitizer: heap-use-after-free on address

内存错误"heap-use-after-free",这是因为在C中,当使用delete关键字释放对象的内存后,该对象仍然会保留指向已经被释放内存的指针。这个指针称为悬挂指针(Dangling Pointer)。如果我们试图访问已经被释放的内…

【Linux】15. 文件系统与软硬链接

1. 文件系统的引出 在之前的学习过程当中,我们知道当文件被打开后需要加载进内存,第一步为其创建struct file结构体描述其结构(操作系统需要管理被打开的文件:先描述再组织),在通过进程当中的文件描述符指针指向文件描述符表&…

《机器学习算法竞赛实战》-chapter2问题建模

《机器学习算法竞赛实战》学习笔记,记录一下自己的学习过程,详细的内容请大家购买作者的书籍查阅。 问题建模 当参赛者拿到竞赛题目时,首先应该考虑的事情就是问题建模,同时完成基线(baseline)模型的pipeline搭建,从…

芯片工程师平均薪酬排第一,入行就学这几个热门专业>>>

高考已经结束,对于广大考生来说,考一个理想的分数固然重要,但高考志愿的填报同样事关重大,它决定未来几年考生的学习走向,也会影响到考生未来职业生涯的长远发展。目前,北京、江苏、河南、湖南、海南、甘肃…