实验九 TCP 协议分析实验

1.TCP 协议介绍**
TCP 是传输控制协议 (Transmission Control Protocal)的缩写,提供面向连接的可靠的传输服务。在TCP/IP 体系中,HTTP、FTP、SMTP 等协议都是使用TCP 传输方式的。

(1)TCP 报文格式

图1 TCP 报文段格式

TCP 报文分为首部和数据两个部分。如图1 所示,TCP 报文段首部的前20 字节是固定的,后面有4 ×n 字节是可选项。其中:

  • 源端口和目的端口:各2 字节,用于区分源端和目的端的多个应用程序;
  • 序号:4 字节,指本报文段所发送的数据的第一字节的序号;
  • 确认序号:4 字节,是期望下次接收的数据的第一字节的编号,表示该编号以前的数据已安全接收。
  • 数据偏移:4 位,指数据开始部分距报文段开始的距离,即报文段首部的长度,以32bit为单位。
  • 标志字段:共有六个标志位:
    ① 紧急位URG=1 时,表明该报文要尽快传送,紧急指针启用;
    ② 确认位ACK=1 时,表头的确认号才有效;ACK=0,是连接请求报文;
    ③ 急迫位 PSH=1 时,表示请求接收端的TCP 将本报文段立即传送到其应用层,而不是等到整个缓存都填满后才向上传递;
    ④ 复位位RST=1 时,表明出现了严重差错,必须释放连接,然后再重建连接;
    ⑤ 同步位 SYN=1 时,表明该报文段是一个连接请求或连接响应报文,
    ⑥ 终止位FIN=1 时,表明要发送的字符串已经发送完毕,并要求释放连接。
  • 窗口:2 字节,指该报文段发送者的接收窗口的大小,单位为字节;
  • 校验和:2 字节,对报文的首部和数据部分进行校验;
  • 紧急指针:2 字节,指明本报文段中紧急数据的最后一个字节的序号,和紧急位 URG配合使用;
  • 选项:长度可变,若该字段长度不够四字节,有填充补齐。
    (2)TCP 连接的建立
    TCP 连接的建立采用 “三次握手”的方法。
    一般情况下,双方连接的建立由其中一方发起。如图2 (a)所示:
  • 主机A 首先向主机B 发出连接请求报文段,其首部的SYN 同步位为1,同时选择一个序号x;
  • 主机B 收到此连接请求报文后,若同意建立连接,则向主机A 发连接响应报文段。在响应报文段中,SYN 同步位为1,确认序号为x+1,同时也为自己选择一个序列号y;
  • 主机A 收到此确认报文后,也向主机B 确认,这时,序号为x+1,确认序号为y+1 。
    当连接建立后,A、B 主机就可以利用TCP 进行数据传输了。

    图2 TCP 的连接和释放
    (3)TCP 连接的释放
    在数据传输结束后,任何一方都可以发出释放连接的请求,释放连接采用所谓的 “四次握手”方法。如图29(b)所示,假如主机A 首先向主机 B 提出释放连接的请求,其过程如下:
  • 主机A 向主机B 发送释放连接的报文段,其中,FIN 终止位为 1,序号x 等于前面已经发送数据的最后一个字节的序号加 1;
  • 主机B 对释放连接请求进行确认,其序号等于x+1。这时从A 到B 的连接已经释放,连接处于半关闭状态,以后主机B 不再接收主机A 的数据。但主机B 还可以向主机A发送数据,主机A 在收到主机B 的数据时仍然向主机B 发送确认信息。
  • 当主机B 不再向主机A 发送数据时,主机B 也向主机A 发释放连接的请求;
  • 同样主机A 收到该报文段后也向主机B 发送确认。
    (4 )TCP 数据传输
    TCP 可以通过检验序号和确认号来判断丢失、重复的报文段,从而保证传输的可靠性。 TCP 将要传送的报文看成是由一个个字节组成的数据流,对每个字节编一个序号。在连接建立时,双方商定初始序号(即连接请求报文段中的SEQ 值)。TCP 将每次所传送的第一个字节的序号放在 TCP 首部的序号字段中,接收方的TCP 对收到每个报文段进行确认,在其确认报文中的确认号字段的值表示其希望接收的下一个报文段的第一个数据字节的序号。
    由于TCP 能提供全双工通信,因此,通信中的每一方不必专门发送确认报文段,而可以在发送数据时,捎带传送确认信息,以此来提高传输效率。

2.实验工具软件简介
1)3CDaemon 软件
3CDaemon 是3Com 公司推出的功能强大的集FTP Server、TFTP Server、Syslog Server和TFTP Client 于一体的集成工具,界面简单,使用方便。
这里主要介绍实验中需要用到的FTP Server 功能。
* 主界面如图3所示,左窗格第二项为FTP Server;

                          图3 3CDaemon 主界面

配置 FTP Serve功能:选中左窗格功能窗口,打开 FTP Server按钮,单击窗格中的Configure FTP Server 按钮,打开3CDaemon Configuration 配置窗口,如图4 所示, 配置FTP Server 功能。
这里需要设置的就是 “Upload/Download ”路径,作为FTP Server 的文件夹,其它选项可以使用系统缺省设置。设置完成后,单击确认按钮,设置生效。

                    图4 3CDaemon Configuration 配置窗口

在实验中,我们使用3CDaemon 系统内置的匿名帐户 “anonymous”登陆FTP 服务器。
3.实验环境与说明
(1)实验目的
学习3CDaemon FTP 服务器的配置和使用,分析TCP 报文格式,理解TCP 的连接建立、 和连接释放的过程。
(2)实验设备和连接
实验设备和连接图如图3所示,一台锐捷S2126G 交换机连接了2 台PC 机,分别命名为PC1、PC2,交换机命名为Switch。

                        图3 TCP 协议分析实验连接图

(3)实验步骤
步骤1:按照如图3 所示连接好设备,配置PC1 和PC2 的IP 地址,验证连通;(备注:实验室中任何一台PC都可以作为模型中的PC1和PC2;用Serv-U软件代替3CDaemon 软件即可。)
步骤2:按照上面3CDaemon 软件的介绍方法在PC1 上建立FTP 服务器;
步骤3:在PC1 和PC2 中运行wireshark,开始截获报文,为了只截获到与我们实验有关的内容,将截获条件设置为对方主机的IP 地址,如PC1 的截获条件为“host 172.16.10.200 ”;
步骤4:在: PC2 上打开命令行窗口,执行如下操作:
C:\Documents and Settings\Administrator>ftp
ftp> open
To 172.16.10.100
Connected to 172.16.10.100.
220 3Com 3CDaemon FTP Server Version 2.0
User (172.16.10.100:(none)): anonymous
331 User name ok, need password
Password:
230-The response ‘’ is not valid.
230-Next time, please use your email address as password.
230 User logged in
ftp> quit
221 Service closing control connection

C:\Documents and Settings\Administrator>

步骤5:停止截获报文,将截获的结果保存为FTP-学号,按下列要求分析截获的结果;

1)结合本节TCP 协议介绍部分的内容,分析TCP 连接建立的 “三次握手”过程,找到对应的报文,填写表1(传输方向填写PC2=>PC1 或PC2<=PC1 )。

表1 TCP 连接建立报文分析

报文号 传输方向 源端口 目的端口 序 号 确认序号 同步位
SYN 确认位
ACK
1647 Pc1=>pc2 46602 443 0 1 1 0
1648 Pc2=>pc1 443 46602 0 1 1 1
1649 Pc1=>pc2 46602 443 1 1 1 0

2)从FTP的报文中的第一个FIN=1的TCP 报文开始分析 TCP 连接释放的 “四次握手”过程,填写表2。

表2 TCP 连接连接释放报文分析
报文号 传输方向 源端口 目的端口 序号 确认序号 终止位FIN 同步位SYN 确认位
ACK
1685 Pc2=>pc1 443 46602 230 30 1 0 1
1686 Pc1=>pc2 46602 443 30 231 0 0 1
1687 Pc2=>pc1 443 46602 30 231 1 0 1
1687 Pc1=>pc2 46602 443 231 31 0 0 1

实验九 TCP 协议分析实验相关推荐

  1. 计算机网络实验报告 实验4 TCP协议分析

    实验4 TCP协议分析 1.实验目的 了解运输层TCP协议基本概念.报文结构 分析TCP报文头部 分析TCP连接建立过程.TCP连接释放 掌握利用tcpdump和wireshark进行tcp协议分析技 ...

  2. 实验七 ICMP 协议分析实验

    实验七 ICMP 协议分析实验 1.ICMP 协议介绍 ICMP(Internet Control Message Protocol)是因特网控制报文协议[RFC792]的缩写,是因特网的标准协议.I ...

  3. 实验十一 DNS 协议分析实验

    实验十一 DNS 协议分析实验 1.DNS 协议简介 DNS 是域名系统 (Domain Name System)的缩写,是一种分层次的.基于域的命名方案, 主要用来将主机名和电子邮件目标地址映射成I ...

  4. 网络协议实验四 ARP 协议分析实验

    实验四 ARP 协议分析实验 2.2 ARP 协议分析实验 1.ARP 协议介绍 ARP 是地址解析协议 (Reverse Address Resolution Protocol)的缩写,负责实现从I ...

  5. 实验四 ICMP 协议分析实验

    ICMP 协议介绍 ICMP(Internet Control Message Protocol)是因特网控制报文协议[RFC792]的缩写,是因特网的标准协议.ICMP允许路由器或主机报告差错情况和 ...

  6. 实验三 ARP 协议分析实验

    1.ARP 协议分析实验 1.ARP 协议介绍 ARP 是地址解析协议(Reverse  Address   Resolution   Protocol)的缩写,负责实现从IP 地址到物理地址(如以太 ...

  7. 实验十二 HTTP 协议分析实验

    实验十二 HTTP 协议分析实验 1.HTTP 协议简介 HTTP是超文本传输协议 (Hyper Text Transfer Protocol)的缩写,用于WWW 服务. (1)HTTP的工作原理 H ...

  8. 华中科技大学计算机与网络,华中科技大学计算机通信与网络实验报告-基于NS2的协议分析实验...

    华中科技大学计算机通信与网络实验报告-基于NS2的协议分析实验 (26页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.9 积分 实验二基于NS2的协 ...

  9. 计算机网络-应用层和传输层协议分析实验(PacketTracer)

    实验三.应用层和传输层协议分析实验 一.实验目的 通过本实验,熟悉PacketTracer的使用,学习在PacketTracer中仿真分析应用层和传输层协议,进一步加深对协议工作过程的理解. 二.实验 ...

  10. MAC捕获及协议分析 实验报告

    实验名称:MAC捕获及协议分析 实验预习 实验目的 利用抓包工具(Wireshark/Windump/Sniffer)抓取和分析实际以太网MAC数据帧,以进一步熟悉和理解MAC帧格式规范与MAC协议的 ...

最新文章

  1. linux c 屏幕触摸_交互式拼接屏应用互动触摸屏实现大屏幕拼接墙
  2. Java开发-Redis客户端Jedis
  3. Vitis学习记录(三)
  4. 后台服务程序开发模式(一)
  5. android 进度条 代码,Android进度条ProgressBar的实现代码
  6. 用java编写一个计算器_用java程序编写一个计算器
  7. weblogic 建立websocket连接报404_基于 Serverless 与 Websocket 的聊天工具实现
  8. BZOJ2286 [Sdoi2011]消耗战
  9. poj 3026 Borg Maze
  10. 三级分销系统源码如何上传?
  11. 可信人工智能白皮书(概要)
  12. 水中机器人电控方案设计
  13. 工业界中NLP(自然语言处理)算法工程师的核心竞争力是什么?
  14. js获取map对象的key和value
  15. IT运维面试问题总结
  16. Apache Flink从入门到放弃——Flink简介(一)
  17. 宝宝智能起名,免费起名实现方案,带源码
  18. 塔望食业洞察|鹰嘴豆市场发展及应用趋势研究
  19. 求一元二次方程ax2+bx+c=0的根
  20. 通关这8个游戏,保证你能精通CSS

热门文章

  1. 电信光猫改桥接还在苦苦破解超级密码吗?
  2. wap页面在微信内置浏览器浏览遇到的问题
  3. office2010 启动man_发现office2010启动挺慢的,各位一样吗
  4. Linux下压缩mp3文件
  5. 软考网络工程师-华为设备命令学习笔记
  6. windows 安装 docker destop
  7. office韩文版本
  8. golang test测试使用
  9. PR软件下载Adobe Premiere Pro CC 2019安装教程
  10. NTFS, FAT32和exFAT文件系统有什么区别