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

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

  • 前言
  • 推荐
  • 4端到端协议
    • 4.2 TCP协议流捕获与TCP协议分析
    • 4.3 TCP连接管理
      • 实验目的
      • 实验内容及实验环境
      • 实验原理
        • TCP连接管理的三个阶段
        • TCP的连接建立
        • TCP连接建立时的各状态
        • TCP的数据传输
        • TCP 的连接释放
        • 为什么A 必须等待 2MSL 的时间?
      • 实验过程
      • 实验过程演示
        • 分析三次握手
        • 分析四次挥手
      • 流程图
      • 4.3.1实验章节测验
        • 一.单选题(共7题,35.0分)
        • 二.多选题(共2题,12.0分)
        • 三.填空题(共2题,48.0分)
        • 四.判断题(共1题,5.0分)
  • 最后

前言

2023-6-15 12:19:41

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

推荐

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

4端到端协议

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

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

4.3 TCP连接管理

各位同学,大家好,本次实验的内容为TCP的连接管理。

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

实验目的

知识目标:
1)了解TCP连接管理的过程;
2)理解TCP的三次握手和四次挥手。
能力训练目标:
1)能够掌握TCP连接管理的过程;
2)能够分析TCP的三次握手和四次挥手。

实验内容及实验环境

实验内容
1)启动Wireshark捕获当前活动网络连接;
2)使用某种工具创建TCP连接,并进行释放。
3)分析TCP连接管理的过程。
实验环境
1)可运行 Windows 操作系统的 PC 一台。
2)每台 PC 具有以太网卡一块,通过双绞线与局域网相连,并可接入因特网;
3)Wireshark 程序(可以从 http://www.wireshark.org/下载)

实验原理

TCP连接管理的三个阶段。

本实验的实验原理是TCP连接管理的三个阶段

TCP连接管理的三个阶段

TCP的连接管理有三个阶段,即:连接建立、数据传送和连接释放。连接管理的目的是使运输连接的建立和释放都能正常地进行。
双方通信采用客户/服务器方式,客户(client)主动发起连接建立请求,服务器(server)被动等待接收连接建立请求。
连接管理的目的是使运输连接的建立和释放都能正常地进行。

连接建立过程中要解决以下三个问题:

  • 要使每一方能够确知对方的存在。
  • 要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。
  • 能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。

TCP的连接建立

我们先分析TCP的连接建立过程。现假定客户A要与服务器B进行通信,在通信前需要建立连接,客户端主动发起连接请求,服务器端被动的接收请求,图中方框内显示的是TCP的连接状态,最初两端都处于CLOSED状态。TCP采用三次握手(three-way handshake)来建立连接。具体步骤如下:

4端到端协议-4.3【实验】【计算机网络】_第1张图片
客户端A的TCP 向服务器 B发送连接请求报文段,其首部中的同步位 SYN = 1,指明客户端期望连接的服务器端口并选择一个初始序号seq= x,表明传送数据时的第一个数据字节的序号是 x。TCP规定,该请求报文段不能携带数据,但需消耗掉一个序号。此时,TCP客户进程进入SYN-SENT状态。
4端到端协议-4.3【实验】【计算机网络】_第2张图片

服务器端B收到连接请求后,若同意建立连接,则回送确认报文。
4端到端协议-4.3【实验】【计算机网络】_第3张图片
在确认报文段中要求SYN=1和ACK=1,确认号ack= x+1,同时选择一个初始序号seq= y。该确认报文也不能携带数据,但同样需消耗一个序号。此时TCP服务器进程进入SYN-RCVD状态。
4端到端协议-4.3【实验】【计算机网络】_第4张图片

客户端A收到确认报文后,还需对该确认报文进行确认。
4端到端协议-4.3【实验】【计算机网络】_第5张图片

此时,报文段中置ACK=1,确认号ack= y+1,序号seq= x+1。客户 A 的 TCP 通知上层应用进程,连接已经建立。此时,客户端进入ESTABLISHED状态。
TCP规定,此报文段可携带数据,若不携带数据则不消耗序号,即下一个数据报文段的序号依然是seq= x+1。

4端到端协议-4.3【实验】【计算机网络】_第6张图片
服务器B 的 TCP 收到客户 A 的确认后,也通知其上层应用进程:TCP 连接已经建立。
,此时进入ESTABLISHED状态,双方可以开始传送数据,进入TCP数据传送阶段。

4端到端协议-4.3【实验】【计算机网络】_第7张图片

TCP连接建立时的各状态

现在,我们把TCP连接建立时各个状态也加上,大家可以观察一下在TCP连接建立的三次握手过程中客户A和服务器B的状态变化。
4端到端协议-4.3【实验】【计算机网络】_第8张图片

TCP的数据传输

当TCP连接建立成功完成后,通信的客户机与服务器双方就行进入数据传输阶段,进行数据的双方就可以向对端进行数据发送。
4端到端协议-4.3【实验】【计算机网络】_第9张图片

TCP 的连接释放

下面我们将介绍TCP的连接释放过程。
当数据传输结束后,通信的双方都可以主动释放连接。
主动发起释放连接报文段的一边为客户端,另一端为服务器端。
现假定现在客户 A 的应用进程先向其 TCP 发出连接释放报文段,并停止再发送数据,主动关闭 TCP 连接。
最初两端都处于ESTABLISHED状态,释放连接要经过两个二次握手,具体步骤如下:

4端到端协议-4.3【实验】【计算机网络】_第10张图片

客户A发送连接释放报文,并停止再发送数据。该报文置FIN=1,并选择一个初始序号seq= u,其值为已传送过的数据最后一个字节的序号加1。此时,客户端进入FIN-WAIT-1状态。TCP规定,FIN报文段即使不携带数据,也需消耗掉一个序号。
4端到端协议-4.3【实验】【计算机网络】_第11张图片
服务器B收到连接释放请求报文后,回送确认报文。
4端到端协议-4.3【实验】【计算机网络】_第12张图片
确认报文中确认号是ack= u+1,报文段自己的序号是v,即服务器端已传送过的数据的最后一个字节的序号加1,服务器端进入CLOSE-WAIT状态。此时,从客户端到服务器的TCP连接已经释放,客户不会再给服务器发送数据。但是,服务器若有数据要发送,客户仍需要接收,该状态称为半关闭(half-close)状态。客户收到服务器的确认报文后,进入FIN-WAIT-2状态。
4端到端协议-4.3【实验】【计算机网络】_第13张图片
若服务器B没有数据传送,其应用进程就通知 TCP 释放连接,则向客户端A发送连接释放报文段。
4端到端协议-4.3【实验】【计算机网络】_第14张图片

该报文置FIN=1,序号为w,重复上次已发送过的确认号ack= u+1,服务器端进入到LAST-ACK状态。
4端到端协议-4.3【实验】【计算机网络】_第15张图片

A 收到连接释放报文段后,必须发出确认。
4端到端协议-4.3【实验】【计算机网络】_第16张图片

确认报文中置ACK=1,确认号ack= w+1,而自己的序号是seq= u+1,客户端进入到TIME-WAIT状态。但是,现在TCP连接还没有释放掉
4端到端协议-4.3【实验】【计算机网络】_第17张图片
客户端必须经过等待计时器设置的时间2MSL(最长报文段寿命,Maximum Segment Lifetime)之后,客户端才进入到CLOSED状态。
此时,双方的TCP连接最终释放。
现在,我们把TCP连接释放时各个状态也加上,大家可以观察一下在TCP连接释放的四次握手过程中客户A和服务器B的状态变化。

4端到端协议-4.3【实验】【计算机网络】_第18张图片

为什么A 必须等待 2MSL 的时间?

第一,为了保证 A 发送的最后一个 ACK 报文段能够到达 B。
第二,防止 “已失效的连接请求报文段”出现在本连接中。A 在发送完最后一个 ACK 报文段后,再经过时间 2MSL,就可以使本连接持续的时间内所产生的所有报文段,都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。

2023-6-15 12:31:32

实验过程

以下介绍实验过程,主要展示使用Wireshark捕获TCP连接SMTP服务器的过程,分析其中TCP连接建立和连接释放的过程。

使用Wireshark捕获TCP连接SMTP服务器的过程,分析其中TCP连接建立和连接释放的过程。

实验过程演示

2023-6-15 12:41:46

使用上篇的结果进行分析
4端到端协议-4.2:实验过程演示

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

在这里插入图片描述

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

在这里插入图片描述

打开WireShark
捕获WLAN

在这里插入图片描述

使用telnet命令
连接远程主机25端口
SMTP工作在TCP的25号端口

telnet smtp.163.com 25

连接成功后
断开连接

QUIT

在这里插入图片描述

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

在这里插入图片描述

可以看到
三次握手(18 19 20)、数据通信、四次挥手(37 38 39 40)

分析三次握手

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

双击NO.18的包

TCP部分
可以看到

源			23157
目的			25
TCP段长度	0
序列号 		0 	3158929752
确认号 		0	0
头部大小		32 bytes
标志位		SYN
窗口信息 	64240=64240
选项信息		MSS、Window scale、SACK permitted

在这里插入图片描述

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

双击NO.19的包

TCP部分
可以看到

源			25
目的			23157
TCP段长度	0
序列号 		0 	2876780709
确认号 		1	3158929753
头部大小		32 bytes
标志位		SYN,ACK
窗口信息 	29200=29200
选项信息		MSS、Window scale、SACK permitted

4端到端协议-4.3【实验】【计算机网络】_第19张图片

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

双击NO.20的包

TCP部分
可以看到

源			23157
目的			25
TCP段长度	0
序列号 		1 	3158929753
确认号 		1	2876780710
头部大小		20 bytes
标志位		ACK
窗口信息 	138096=516*256
选项信息		无

4端到端协议-4.3【实验】【计算机网络】_第20张图片

分析四次挥手

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

双击NO.37的包

TCP部分
可以看到

源			25
目的			23157
TCP段长度	0
序列号 		75 	2876780784
确认号 		7	3158929759
头部大小		20 bytes
标志位		FIN,ACK
窗口信息 	29312=229*128
选项信息		无

4端到端协议-4.3【实验】【计算机网络】_第21张图片

分析TCP连接中的第二次挥手

双击NO.38的包

TCP部分
可以看到

源			23157
目的			25
TCP段长度	0
序列号 		7	3158929759
确认号 		76 	2876780785
头部大小		20 bytes
标志位		ACK
窗口信息 	131840=515*356
选项信息		无

4端到端协议-4.3【实验】【计算机网络】_第22张图片

分析TCP连接中的第三次挥手

双击NO.39的包

TCP部分
可以看到

源			23157
目的			25
TCP段长度	0
序列号 		7	3158929759
确认号 		76 	2876780785
头部大小		20 bytes
标志位		FIN,ACK
窗口信息 	131840=515*356
选项信息		无

4端到端协议-4.3【实验】【计算机网络】_第23张图片

分析TCP连接中的第四次挥手

双击NO.40的包

TCP部分
可以看到

源			25
目的			23157
TCP段长度	0
序列号 		76 	2876780785
确认号 		8	3158929760
头部大小		20 bytes
标志位		ACK
窗口信息 	29312=229*128
选项信息		无

4端到端协议-4.3【实验】【计算机网络】_第24张图片
2023-6-15 13:12:44

流程图

4端到端协议-4.3【实验】【计算机网络】_第25张图片

4.3.1实验章节测验

2023-6-15 13:15:29

4.3 实验小测已完成本次成绩:100
最高成绩:100重做 还可以重做1次 查看作答记录
截止时间:2023-07-08 22:55:00

一.单选题(共7题,35.0分)

1【单选题】主机甲向主机乙发送一个(SYN=1,seq=11220)的TCP段,期望与主机乙建立TCP连接,若主机乙接受该连接请求,则主机乙向主机甲发送的正确的TCP段可能是( )(5.0分)
A、(SYN=0,ACK=0,seq=11221,ack=11221)
B、(SYN=1,ACK=1,seq=11220,ack=11220)
C、(SYN=1,ACK=1,seq=12345,ack=11221)
D、(SYN=0,ACK=0,seq=11220,ack=11220)

我的答案:C:
(SYN=1,ACK=1,seq=12345,ack=11221) 
;得分: 5.0分

2【单选题】主机甲与主机乙之间已建立一个TCP连接,主机甲向主机乙发送了3个连续的TCP段,分别包含300字节、400字节和500字节的有效载荷,第3个段的序号为900。若主机乙仅正确接收到第1和第3个段,则主机乙发送给主机甲的确认序号是( )(5.0分)
A、300
B、500
C、1200
D、1400

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

3【单选题】TCP协议的连接建立需要( )次握手?(5.0分)
A、二
B、三
C、四
D、五

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

4【单选题】通常情况,TCP协议的连接释放需要( )次挥手?(5.0分)
A、二
B、三
C、四
D、五

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

5【单选题】已知TCP通信双方是A和B, A发起建立连接过程, A的初始序号为100,B的初始序号为200,请问,第三次握手中报文段的确认号是( )。(5.0分)
A、100
B、199
C、200
D、201

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

6【单选题】已知TCP通信双方是A和B, A发起建立连接过程, A的初始序号为100,B的初始序号为200,第三次握手没携带数据,请问数据传送阶段中A给B发送的第一个报文段的序号是( )。(5.0分)
A、101
B、100
C、200
D、99

我的答案:A:
101
;得分: 5.0分

7【单选题】已知TCP通信双方是A和B,A发送给B的最后一个报文段的序号为7000,数据部分长度为1000字节,此刻假设A主动发起连接释放请求,请问第一次挥手的报文段序号为( ),第二次挥手的报文段确认号为( )。(5.0分)
A、8000,8001
B、7999,8000
C、8001,8000
D、8001,8002

我的答案:A:
8000,8001
;得分: 5.0分

二.多选题(共2题,12.0分)

1【多选题】TCP协议的连接管理过程包含三个阶段:( )、( )和( )?(6.0分)
A、 连接建立
B、数据传送
C、连接释放
D、连接管理

我的答案:ABC:
A; 连接建立;
B;数据传送;
C;连接释放;
得分: 6.0分

2【多选题】TCP连接建立过程中 不会 涉及到下面哪些TCP报文段?( )(6.0分)
A、SYN
B、SYN+ACK
C、ACK
D、FIN
E、FIN+ACK

我的答案:DE:
D;FIN;
E;FIN+ACK;
得分: 6.0分

三.填空题(共2题,48.0分)

1【填空题】主机A向主机B发送了三个TCP报文段,序号分别为30、100、180,请回答以下问题。(所有空只填写数字)
(1)第一个报文段携带了 (1) 字节的数据。
(2)主机B收到第一个报文段后发给A的确认号是 (2) 。
(3)主机B收到第二个报文段后发回的确认号是 (3) 。
(4)主机B收到第三个报文段后,发回的确认号是280,窗口字段为300,试问:A发送的第三个报文段携带了 (4) 字节数据,A接下来可以发送的起始字节为 (5) ,结束字节为 (6) 。(36.0分)

我的答案:得分: 36.0分
第一空: 70
第二空: 100
第三空: 180
第四空: 100
第五空: 280
第六空: 579

2【填空题】
在这里插入图片描述

请问该TCP报文段的实际窗口值为 (1) ,窗口扩大移位值为 (2) (12.0分)

我的答案:得分: 12.0分
第一空: 132352
第二空: 8
log2(256)

四.判断题(共1题,5.0分)

1【判断题】TCP通信双方通过三次握手建立连接,前两次握手的报文段都不携带数据(有效载荷),第三次握手的报文段可以带数据,也可以不带数据。(5.0分)

我的答案:√
得分: 5.0分

2023-6-15 13:21:33

最后

2023-6-15 13:25:41

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

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

你可能感兴趣的:(#,计算机网络,计算机网络,网络,服务器)