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

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首部的各个字段进行介绍。

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

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

4端到端协议-4.2【实验】【计算机网络】_第2张图片
下一个字段是序号字段——占 4 字节。TCP 连接中传送的数据流中的每一个字节我们都会对其编上一个序号。
序号字段的值则指的是本报文段所发送的数据的第一个字节的序号

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

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

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

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

4端到端协议-4.2【实验】【计算机网络】_第11张图片
FIN字段为终止比特字段,占1比特。用来释放一个连接。FIN置为1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
4端到端协议-4.2【实验】【计算机网络】_第12张图片
窗口字段,用于控制对方发送的数据量,进行流量控制,本字段占2字节,单位为字节。
4端到端协议-4.2【实验】【计算机网络】_第13张图片
检验和字段,用于TCP报文段的检错,占 2 字节。检验和字段检验的范围包括首部和数据这两部分。同UDP用户数据报一样在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部

4端到端协议-4.2【实验】【计算机网络】_第14张图片
紧急指针字段 —— 占 16 位,通常与URG字段配合使用,用于标识在本报文段中紧急数据的最后一个字节序号,即指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。
4端到端协议-4.2【实验】【计算机网络】_第15张图片
以上介绍了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 位后获得实际的窗口大小。

4端到端协议-4.2【实验】【计算机网络】_第16张图片
填充字段,用于保证TCP报文段首部结束和数据部分的起始在32比特的边界上,即使整个首部长度是 4 字节的整数倍。该字段长度不定。
4端到端协议-4.2【实验】【计算机网络】_第17张图片

2023-6-15 10:55:40

实验过程

2023-6-15 10:55:44

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

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

实验过程演示

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

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

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

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

打开WireShark
捕获WLAN

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

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

telnet smtp.163.com 25

连接成功后
断开连接

QUIT

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

打开WireShark
过滤
SMTP
4端到端协议-4.2【实验】【计算机网络】_第22张图片
过滤
ip.addr==103.74.29.40

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

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

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

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

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

双击NO.18的包

MAC帧部分
可以看到
源 目的 协议类型
4端到端协议-4.2【实验】【计算机网络】_第26张图片

IP部分
可以看到
源 目的
4端到端协议-4.2【实验】【计算机网络】_第27张图片

TCP部分
可以看到
源 目的 序列号 确认号 头部大小 标志位 窗口信息 选项信息
4端到端协议-4.2【实验】【计算机网络】_第28张图片
分析TCP传输的第一个数据包

双击NO.21的包

MAC帧部分
4端到端协议-4.2【实验】【计算机网络】_第29张图片
IP部分
4端到端协议-4.2【实验】【计算机网络】_第30张图片
TCP部分
4端到端协议-4.2【实验】【计算机网络】_第31张图片

分析TCP释放的第一次挥手

双击NO.37的包

MAC帧部分
4端到端协议-4.2【实验】【计算机网络】_第32张图片

IP部分
4端到端协议-4.2【实验】【计算机网络】_第33张图片

TCP部分
4端到端协议-4.2【实验】【计算机网络】_第34张图片

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【阅读理解】

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

图为网络嗅探器捕获的数据信息,请根据图中信息,回答以下问题。(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报文段,该报文段的部分抓包信息如下:

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

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

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

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

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

第二空: B

第三空: 16896

第四空: A

最后

2023-6-15 12:16:18

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

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

你可能感兴趣的:(#,计算机网络,计算机网络,网络,tcp/ip)