首页 > 其他分享 >计算机网络实验 TCP协议分析

计算机网络实验 TCP协议分析

时间:2024-11-21 12:43:24浏览次数:3  
标签:挥手 报文 TCP 计算机网络 实验 所示 连接 客户端

1、实验目的

  • 了解运输层TCP协议基本概念、报文结构

  • 分析TCP报文头部

  • 分析TCP连接建立过程、TCP连接释放

  • 掌握利用tcpdump和wireshark进行tcp协议分析技术。

2、实验环境

  • 硬件要求:阿里云云主机ECS 一台。

  • 软件要求:Linux/ Windows 操作系统

3、实验内容

TCP是面向连接的、在不可靠的互联网络上提供可靠的端到端通信。它是TCP/IP协议集的核心协议。

TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。

利用wget下载新疆大学主页www.xju.edu.cn,与此同时使用tcpdump抓包。使用wireshark分析TCP数据报文头部,分析建立连接三次握手和分析释放连接的四次挥手。

4、实验结果与分析

1、在阿里云环境中下载traceroute命令,代码:yum install traceroute,运行结果如下图4-1所示:

图4-1 traceroute安装

2、连接xshell与阿里云环境,如下图4-2所示:

图4-2 xshell界面

3、在阿里云环境中利用tcpdump命令进行抓包并保存到test4.cap文件中,代码:tcpdump -i eth0 -w test4.cap,运行结果如下图4-3所示:

图4-3 tcpdump抓包结果

4、在xshell页面中,使用wget命令下载新疆大学网站首页,代码:wget www.xju.edu.cn,运行结果如下图4-4所示:

图4-4 wget命令运行结果

5、在xftp应用中将test4.cap文件下载到本地,运行结果如下图4-5所示:

图4-5 xftp下载文件

6、利用wireshark应用分析test4.cap文件,运行结果如下图4-6所示:

图4-6 wireshark应用界面

7、通过ping命令得到www.xju.edu.cn 的ip地址为111.115.76.75,由此在wireshark中进行筛选,运行结果如下图4-7所示:

图4-7 wireshark筛选结果

8、对数据包内容进行分析并填写表格,运行结果如下图4-8所示:

图4-8 数据包内容分析

4.1 填写表格

根据捕获的数据包,分析TCP的报文结构,将TCP协议中个字段名,字段长度,字段值,字段含义填入下表:

字段名字段长度字段值字段含义
Source Port1680源端口
Destination Port1658296目的端口
Sequence Number3217785序列号
Acknowledgment Number32113确认序列
Flags60x018数据偏移
Window16227窗口
Checksum160x8579校验和
Urgent Pointer160紧急指针

4.2 分析建立连接三次握手

通过分析实验结果,TCP报文结构由哪几部分组成,其功能是什么?

1、tcp报文结构由源端口、目的端口、序列号、确认序号、数据偏移、窗口、校验和与紧急指针组成。

2、各部分功能如下:

源端口:通信发送方使用的端口号

目的端口:指报文接收计算机上应用地址程序地址的接口

序列号:用来确保数据可靠传输的唯一值

确认序列:接收方在响应时发送的数值,由服务器来告诉客户端该发以第几个字节为开头的数据包

数据偏移:用于标志数据包开始的位置,tcp头部的长度

窗口:用于记录缓存时多少字节的

校验和:由发送端填充,接收端对报文段执行CRC(循环冗余校验,利用除法及余数的原理来作错误侦测)算法以检验TCP报文段在传输中是否损坏

紧急指针:当URG数值为1时才有效,用于标志有多少字节数据是需要紧急处理的

分析三次握手的标志位和序号:

1、第一次握手:客户端发送一个TCP,标志位Flags为SYN,序列号Sequence Number为0, 代表客户端请求建立连接,如下图4-9所示:

图4-9 第一次握手

2、第二次握手:TCP服务器收到请求报文后,如果同意连接,则会向客户端发出确认报文。确认报文中应该Flags为SYN,ACK, 并且确认号ACK应为0+1即1,如下图4-10所示:

图4-10 第二次握手

3、第三次握手:TCP客户端收到确认后,还要向服务器给出确认。确认报文的ack=y+1即0+1为1,自己的序列号seq=x+1即0+1为1,此时,TCP连接建立,客户端进入ESTABLISHED已建立连接状态, 完成三次握手,如下图4-11所示:

图4-11 第三次握手

分析TCP数据报窗口,序号:

window表示报文的值,calculated window size表示放大后的值,也就是实际可用的值,而window size scalling factor 就相当于放大的倍数

4.3 分析释放连接的四次挥手

1、第一次挥手:客户端发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态,如下图4-12所示:

图4-12 第一次挥手

2、第二次挥手与第三次挥手:

第二次挥手:服务器端接收到连接释放报文后,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT 关闭等待状态

第三次挥手: 客户端接收到服务器端的确认请求后,客户端就会进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文,服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认

而在此处由于服务器没有需要发送的最后数据,所以第二次挥手和第三次挥手合并了,如下图4-13所示:

图4-13 第二次挥手与第三次挥手

3、第四次挥手:客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态,但此时TCP连接还未终止,必须要经过2MSL后(最长报文寿命),当客户端撤销相应的TCB后,客户端才会进入CLOSED关闭状态,服务器端接收到确认报文后,会立即进入CLOSED关闭状态,到这里TCP连接就断开了,四次挥手完成,如下图4-14所示:

图4-14 第四次挥手

标签:挥手,报文,TCP,计算机网络,实验,所示,连接,客户端
From: https://blog.csdn.net/qq_68195068/article/details/143941226

相关文章

  • 计算机网络实验 UDP协议分析
    实验3UDP协议分析1.实验目的掌握运输层UDP协议内容理解UDP协议的工作原理了解应用层和运输层协议的关系2.实验环境硬件要求:阿里云云主机ECS一台。软件要求:Linux/Windows操作系统3.实验内容UDP(UserDatagramProtocol)用户数据报协议是一种无连接的运输层......
  • 实验4 类的组合、继承、模板类、标准库
    实验2GradeCalc.hpp#include<iostream>#include<vector>#include<string>#include<algorithm>#include<numeric>#include<iomanip>usingstd::vector;usingstd::string;usingstd::cin;usingstd::cout;usingstd::en......
  • 使用简单实验体验k8s的热升级机制
    热升级pod负载均衡的容错基本可以了,现在考虑要升级一下这个容器,把其中的test.go修改一下,返回hello,world的同时打印一下HOSTNAME。packagemainimport("fmt""net/http""os")funcmain(){fmt.Println("startmain")//从环境变量取ho......
  • 实验4 类的组合、继承、模板类、标准库
    实验任务1task1_1.cpp#include<iostream>usingstd::cout;usingstd::endl;//类A的定义classA{public:A(intx0,inty0);voiddisplay()const;private:intx,y;};A::A(intx0,inty0):x{x0},y{y0}{}voidA::display()const{......
  • 20222415 2024-2025-1 《网络与系统攻防技术》实验六实验报告
    1.实验内容本周学习了metasploit的用法并趁热打铁做了一场痛彻心扉实践课。很好的实践题让我下六个虚拟机:)2.实验过程靶机IP172.16.230.80主机IP172.16.227.205(1)前期渗透Search一下,标白的地方就是等下要use的useauxiliary/scanner/discovery/arp_sweep然后输入show......
  • 数据结构实验3
    实验.cpp1//编写程序,实现顺序栈的基本运算:初始化ok、入栈ok、出栈ok;2//应用顺序栈实现数制转换:把任意非负十进制正整数转换为n(n可以为2、8、16等等)进制数输出ok,给出至少5组测试数据及结果。;3//应用顺序栈,编程实现表达式(只包含+、-、*、/四种运算符及左右圆......
  • 在Linux中使用 epoll 处理TCP连接断开问题
    在Linux中使用 epoll 处理TCP连接时,默认情况下无法直接检测到网线断开这类物理链路故障。这是因为TCP协议栈的工作机制导致的。当网线断开后,本地TCP协议栈并不能立刻感知到连接已经不可用。在底层网络设备(如网卡)没有向TCP协议栈反馈链路故障的情况下,TCP连接会处于一种看......
  • 实验4
    GradeCalc.hpp#include<iostream>#include<vector>#include<string>#include<algorithm>#include<numeric>#include<iomanip>usingstd::vector;usingstd::string;usingstd::cin;usingstd::cout;usingstd::endl;......
  • 20222423 2024-2025-1 《网络与系统攻防技术》实验五实验报告
    1.实验内容1.2实验任务(1)从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取如下信息:DNS注册人及联系方式该域名对应IP地址IP地址注册人及联系方式IP地址所在国家、城市和具体地理位置PS:使用whois、dig、nslookup、traceroute、以及各......
  • 计算机网络安全复习
    1、网络安全目标:(可用性,完整性,机密性)安全三要素,可靠性,不可抵赖性,可控性可用性:网络信息可被授权实体访问并按需求使用的特性。(网络环境下拒绝服务、破坏网络和有关系统的正常运行)可靠性:网络信息系统能够在规定条件下和规定时间内,实现规定功能的特性。机密性:网络信息不被泄露给......