精华内容
下载资源
问答
  • TCP协议分析实验报告

    2011-11-30 20:47:46
    4. 学会协议分析软件发送自定义数据包的方法。 实验原理 1. TCP协议是面向连接服务和提供可靠数据传输的协议,通过抓包分析TCP如何建立连接,数据传输,释放连接来分析TCP协议。 2. TCP协议是通过三次握手来建立连接...
  • 湘潭大学 网络协议TCP/IP实验六 UDP 协议分析实验报告,仅供参考
  • 计算机网络实验指导书.包括一一到七个实验
  • 计算机网络tcp协议分析实验报告.pdf
  • TCP协议分析,网络实验报告,供大家参考
  • 湘潭大学 网络协议TCP/IP实验三TCP 协议分析实验报告,仅供参考
  • tcp/ip 抓包 wireshark sniffer 实验报告
  • 湘潭大学网络协议TCP/IP实验五 ICMP 协议分析实验报告,仅供参考
  • 实验九 TCP 协议分析实验

    千次阅读 2020-12-30 15:58:21
    实验九 TCP 协议分析实验 1.TCP 协议介绍** TCP 是传输控制协议 (Transmission Control Protocal)的缩写,提供面向连接的可靠的传输服务。在TCP/IP 体系中,HTTP、FTP、SMTP 等协议都是使用TCP 传输方式的。 (1...

    实验九 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/IP实验七 HTTP 协议分析实验报告,仅供参考
  • 贵州大学计算机网络实验报告-实验七-分析TCP协议数据报格式
  • tcp实验报告

    2018-12-27 17:59:56
    tcp协议属于传输层协议,通过面向连接、端到端和可靠数据包发送。在VS2010中,通过c#窗体应用实现简单的服务端和客户端。编程实现一个聊天室系统。该系统首先必须设立服务器,建立完成后必须建立与服务器的连接。...
  • Wireshark抓包——TCP协议分析

    万次阅读 多人点赞 2019-06-11 00:34:17
    通过本次实验,掌握使用Wireshark抓取TCP/IP协议数据包的技能,能够深入分析TCP帧格式及“TCP三次握手”。通过抓包和分析数据包来理解TCP/IP协议,进一步提高理论联系实践的能力。 二. 实验内容 1.本次实验重点:...

    一. 实验目的

    通过本次实验,掌握使用Wireshark抓取TCP/IP协议数据包的技能,能够深入分析TCP帧格式及“TCP三次握手”。通过抓包和分析数据包来理解TCP/IP协议,进一步提高理论联系实践的能力。

    二. 实验内容

    1.本次实验重点:利用Wireshark抓TCP包及TCP包的分析。

    2.本次实验难点:分析抓到的TCP包

    3.本次实验环境:Windows 7,Wireshark

    4.本次实验内容:

    TCP协议是在计算机网络中使用最广泛的协议,很多的应用服务如FTP,HTTP,SMTP等在传输层都采用TCP协议,因此,如果要抓取TCP协议的数据包,可以在抓取相应的网络服务的数据包后,分析TCP协议数据包,深入理解协议封装,协议控制过程以及数据承载过程。两幅图分别是TCP帧格式及TCP三次握手。

     

    三.实验过程

    1. TCP包抓取及分析过程如下:

    第一步,确定使用的协议,使用HTTP服务。选择http://www.sina.com.cn/作为目标地址。

    第二步,启动抓包:点击【start】开始抓包,在浏览器地址栏输入http://www.sina.com.cn。

    第三步,通过显示过滤器得到先关数据包:通过抓包获得大量的数据包,为了对数据包分析的方便,需要使用过滤器,添加本机IP地址和TCP协议过滤条件。

    (1)打开命令提示符,通过ipconfig /all来查看本机IP地址。

    (2)在工具栏上的Filter对话框中填入过滤条件:tcp and ip.addr==196.168.100.131,过滤结果如下:

    结果发现效果不是很好,于是将过滤条件中的IP地址更换为http://www.sina.com.cn的IP地址,操作过程如下:

    (1)打开命令提示符,通过ping www.sina.com.cn来查看目标IP地址。

    (2)打开命在工具栏上的Filter对话框中填入过滤条件:tcp and ip.addr==218.30.66.248,过滤结果如下:

    其中,红色框内即为一个三次握手过程:

    第四步,分析TCP数据包,根据第一幅图中的数据帧格式,分析TCP包的各部分。

    • 原端口/目的端口(16bit)。如下图所示,源端口为443,标识了发送进程;目的端口为3201,标识了接收方进程。

    • 序列号(32bit)。如下图所示,发送序列号Sequence Number为0,标识从源端向目的端发送的数据字节流,它表示在这个报文端中的第一个数据字节的顺序号,序列号是32位的无符号类型,序号表达达到2^32 - 1后又从0开始, 当建立一个新的连接时,SYN标志为1,系列号将由主机随机选择一个顺序号ISN(Initial Sequence Number)。

    • 确认号(32bit)。如下图所示,确认号Acknowledgment Number为1,包涵了发送确认一端所期望收到的下一个顺序号。因此确认序列号应当是上次成功接收到数据的顺序号加1。只有ACK标志为1时确认序号字段才有效。TCP为应用层提供全双工服务,这意味着数据能在两个方向上独立的进行传输,因此连接的两断必须要保证每个方向上的传输数据顺序。

    • 偏移(4bit)。如下图所示,偏移32bytes,这里的偏移实际指的是TCP首部的长度Header length,它用来表明TCP首部中32bit字的数目,通过它可以知道一个TCP包它的用户数据从哪里开始。

    • 保留位(6bit)。如下图所示,保留位Reserved未设置。

    • 标志(6bit)。在TCP首部中有6个标志比特,他们中的多个可同时被置为1。如下图所示:

    URG(Urgent Pointer Field Significant):紧急指针标志,用来保证TCP连接不被中断,并且督促中间设备尽快处理这些数据,图中其值为1。

    ACK(Acknowledgement Field Signigicant):确认号字段,该字段为1时表示应答字段有效,即TCP应答号将包含在TCP报文中,图中其值为1。

    PSH(Push Function): 推送功能,所谓推送功能指的是接收端在接收到数据后立即推送给应用程序,而不是在缓冲区中排队,图中其值为0。

    RST(Reset the connection): 重置连接,不过一搬表示断开一个连接,图中其值为0。

    SYN(Synchronize sequence numbers):同步序列号,用来发起一个连接请求,图中其值为1。

    FIN(No more data from sender)表示发送端发送任务已经完成(既断开连接)。

    • 窗口大小(16bit)。 如下图所示,窗口大小Windows size value为29200,表示源主机最大能接收29200字节。

    • 校验和(16bit)。如下图所示,校验和Checksum为0xc24f,包含TCP首部和TCP数据段,这是一个强制性的字段,一定是由发送端计算和存储,由接收端进行验证。

    • 紧急指针(16bit)。如下图所示,URG标志为1,只有当URG标志置为1时该字段才有效,紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。TCP的紧急方式是发送端向另一段发送紧急数据的一种方式。

    • TCP选项。至少1个字节的可变长字段,标识哪个选项有效。Kind=0:选项表结束, Kind=1:无操作, Kind=2:最大报文段长度,Kind=3:窗口扩大因子, Kind=8:时间戳。如下图所示,Kind为2,代表最大报文长度MSS size。

    • 数据部分。当前数据包的数据部分,如下图所示:

     

    2. TCP三次握手:

    第一次握手数据包:客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接,如下图所示(第一条):

    第二次握手的数据包:服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1,如下图所示(第二条):

    第三次握手的数据包:客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方。在进过三次握手后和服务器建立了TCP连接,如下图所示(第三条):

     

    展开全文
  • 湘潭大学 网络协议TCP/IP实验四FTP 协议分析实验报告,仅供参考
  • 中南大学电子信息工程专业14级通信网实验报告:基于TCP_IP协议的网络通信.
  • 实验TCP/IP协议分析

    千次阅读 2018-01-01 09:59:02
    TCP/IP协议分析 实验要求: 初步了解TCP/IP的主要协议和协议的层次结构;通过在位于同一网段和不同网段的主机之间执行Ping命令,截获报文,分析ARP协议报文结构,并分析ARP协议在同一网段内和不同网段间的解析...

    实验名称:

    TCP/IP协议分析

    实验要求:

    初步了解TCP/IP的主要协议和协议的层次结构;通过在位于同一网段和不同网段的主机之间执行Ping命令,截获报文,分析ARP协议报文结构,并分析ARP协议在同一网段内和不同网段间的解析过程;通过分析上述截获报文分析ICMP报文

    实验过程:

    1、打开终端,输入arp –d 删除ARP缓存,如果显示为not found 需要重新进行网络连接开始--控制面板—网络连接—本地连接将网络禁用后再启用


    在访问网站之前先清除arp 缓存和dns缓存

    arp –d 删除ARP缓存表

    ipconfig /flushdns  删除dns缓存


    2、打开wireshark软件,开始抓包


    3、访问baidu网站


    2、关闭浏览器停止抓包

    5、需要分析的协议

    (1)以太网数据帧


    分析:分别是以太网数据帧,目的Mac地址:00:0c:29:5d:2f:65,源Mac地址:00:50:56:f7:b3:52

    (2)ARP报文(请求和响应,包含数据链路层)

    请求包:


    分析:对ARP报文进行过滤,从上往下依次是:

    1、数据包的大小和从哪个接口出现,

    2、数据链路层:目的Mac地址:ff:ff:ff:ff:ff:ff(因不知道目的Mac地址,所以采用广播的模式对局域网内的所有设备发送请求包)源Mac地址:00:0c:29:5d:2f:65协议的类型:2054(ARP协议)(0x0806)

    3、网络层:

    ARP请求包标志为1

    发送Mac地址:00:0c:29:5d:2f:65

    发送者IP地址:192.2.2.128

    目标Mac地址:00:00:00:00:00:00(由于目标Mac地址不知道,所以全部为0)

    目标IP地址:192.2.2.2

    响应包:


    分析:对ARP报文进行过滤,从上往下分别是:

    1、数据包的大小和从哪个接口出现,

    2、数据链路层:目的Mac地址:00:0c:29:5d:2f:65源Mac地址:00:50:56:f7:b3:52协议的类型:2054(ARP协议)(0x0806)

    3、网络层:ARP响应包标志为2

    发送Mac地址:00:50:56:f7:b3:52

    发送者IP地址:192.2.2.2

    目标Mac地址:00:0c:29:5d:2f:65

    目标IP地址:192.2.2.128

    (3)DNS报文(请求和响应)IP,UDP


    分析:网络层:

    源IP:192.2.2.128

    目的IP:192.2.2.2

    运输层:

    目的端口:53(DNS域名解析默认端口)

    源端口:1028

    应用层:

    questions:1标识为请求一个域名地址

    name:www.baidu.com

    类型为A,主记录为(1)

    响应包:


    分析;

    源端口:53

    目的端口:1028

    域名-别名

    别名-IP地址

    (4)TCP建立连接三次握手报文


    分析:

    第一个:请求连接报文seq=0;协商ack值为1

    第二个:服务端seq(1)=0;ack=1;

    第三个:请求端seq(2)=seq(1)+ack=1;ack=1;

    (4)HTTP报文(请求和相应)

    请求:


    Get请求,http版本1.1

    语言:中文

    接受的编码:gzip

    浏览器头部标识

    主机:www.baidu.com

    连接的状态:状态良好

    cookie:访问用户标识

    响应包:


    网站状态码:200 正常


    展开全文
  • TCP/IP实验报告及总结

    2019-05-31 14:54:59
    桂林电子科技大学的TCP/IP实验报告及总结,平时上课时做的实验,里面有代码,更多的是一些总结的内容
  • 实 验 报 告 实验课程名称 实验项目名称 计算机网络 使用 wireshark 进行协议分析 学院 计算机与软件学院 专业 计算机科学与技术 报告人 邓清津 学号 2011150146 班级 2 班 同组人 指导教师 实验时间 实验报告提交...
  • (2) 通过使用协议分析软件掌握IP协议的工作过程。 (3) 通过使用协议分析软件掌握ICMP协议的工作过程 2. 实验环境 PC机两台,交换机一台。两台计算机的IP地址分别为192.168.0.204和192.168.0.22,协议分析软件。 ...
  • TCPIP协议分析实验报告.doc
  • 最近特意书梳理了一下 TCP 相关的知识,并通过抓包进行了验证,并分析了从 TCP 建立连接到端来连接的全过程,相信以前和我一样上课没懂的看完这篇文章应该差不多懂了。 TCP 提供的是一种面向连接的、可靠的字节流...

    原文首发于微信公众号:躬行之(jzman-blog)

    最近特意梳理了一下 TCP 相关的知识,并通过抓包进行了验证,并分析了从 TCP 建立连接到端来连接的全过程,相信以前和我一样上课没懂的看完这篇文章应该差不多懂了。

    TCP 提供的是一种面向连接的、可靠的字节流服务,也就是说两个 TCP 的应用在交换数据之前必须建立一个 TCP 连接,且在一个 TCP 连接中仅有两方进行通信,TCP 和 UDP 都使用相同的网络层。

    使用 TCP 发送数据时,数据会被分割成 TCP 认为最适合发送的数据块,这一点与 UDP 不同,UDP 产生的数据报的长度不变,这个数据块称之为报文段(segment),每个报文段的初始化序列号 ISN(Initial Sequence Number) 都是根据一定算法随机生成的,当然这个序列号也是该报文段第一个数据字节的数据编号。本文将从以下几个方面介绍 TCP 协议:

    1. TCP协议的数据格式
    2. TCP如何建立连接
    3. TCP如何断开连接
    4. TCP状态变迁图
    5. Wireshark分析验证
    6. 为什么SYN和FIN会占一个序列号

    TCP的数据格式

    TCP 数据被封装在 IP 数据报中,如下图所示:

    图1

    • 源端口(Source Port):数据发送方的端口;
    • 目的端口(Destination Port):数据接收方的端口;
    • 序列号(Sequenece number):16 位占 4 个字节,用来标识从 TCP 发端到 TCP 收端发送的数据字节流,其值是该报文段第一个数据字节的数据编号,这个序列号号是 32 位的无符号数,序列号到达 2^32 -1 则又从 0 开始;
    • 确认号(Acknowledgment number):16 位占 4 个字节,指的是期待接收的数据字节的数据编号,也就是上次报文段最后一个数据字节编号加 1 的值;
    • SYN:标志位,同步序号用来发起一个 TCP 连接,置 SYN = 1;
    • ACK:标志位,确认序号有效,置 ACK = 1;
    • RST:标志位,重建连接,置 RST = 1;
    • FIN:标志位,发端完成发送任务,希望断开连接,置 FIN = 1;
    • URG:标志位,紧急指针有效,置 URG = 1;
    • PSH:标志位,接收方应该尽快把这个数据交个应用层,置 PSH = 1;

    TCP如何建立连接

    在 TCP 报文段中包含源端口号和目的端口号,用于寻找发送端和接收端的应用进程,再加上 IP 首部的源 IP 地址和目标 IP 地址唯一确定一个 TCP 连接,这就保证了客户端与服务端之间通信的可能,也是建立 TCP 连接的基础。

    此外,这里要明确每个报文段的初始序列号 ISN(Initial Sequence Number) 都是根据一定算法随机生成的,各不相同,此外为保证建立连接标志位 SYN 占一个序列号,会在后文进一步分析。

    TCP 通过三次握手建立连接过程如下:

    1. 客户端请求连接时发送一个报文段 seq = x,置标志位 SYN = 1, 向服务端发起一个 TCP 连接,服务端根据 SYN = 1 知道客户端在请求建立连接;
    2. 服务端收到后会向客户端请求确认,随后发送一个报文段 seq = y, 置标志位 ACK = 1SYN = 1,将确认序号 ack 设置为客户端的序列号加 1 ,即 ack = x + 1
    3. 客户端收到服务端后确定 ack 是否是客户端上一次发的报文段的序列号加 1,即满足 ack = x + 1,正确则向服务端发送一个报文段 seq = x + 1,置标志位 ack = y + 1,服务端收到后该客户端和服务端的 TCP 连接就建立了,可以互相通信了。

    TCP 通过三次握手建立连接图示如下:

    图2

    肯定都知道 TCP 是通过三次握手建立连接,那么更好的理解这个建立连接的过程呢?

    实际上 TCP 连接的建立上是两个主机“互喊”对方要进行通信的过程,无论是客户端还是服务端过程都是一样的,都是发送 [SYN] 包请求建立连接,然后等待对应主机发送 ACK 应答这次请求,整个过程两次请求连接、两次应答对方请求,谁都正确应答则成功建立链接,其中第二次握手的时候可以拆分为两个过程:

    1. 服务端发送 ACK 报文段应答客户端的请求;
    2. 服务端发送 SYN 报文段向客户端请求建立连接。

    显然这两个过程目标都是客户端,所以合在一起了,这样两个主机通过“互喊”就建立 TCP 连接了,两个主机分别应答的时候的确认号就是对应主机之前发送报文段的序列号加 1,即 ack = seq + 1

    TCP如何断开连接

    在介绍如何断开连接之前,先得了解 TCP 的半关闭状态。

    TCP 提供了在结束它的发送后还能接收另一端的能力,这就是 TCP 的半关闭状态,举个例子就是:客户端完成了数据传送任务,发送一个标志位 FIN = 1 的报文段给服务端,此时客户端没有了数据发送能力,但是还有接收服务端数据的能力,直到服务端应答一个标志位 FIN = 1 的报文段给客户端,至此 TCP 断开连接。此外为保证断开连接标志位 FIN 占一个序列号,会在后文进一步分析。

    正是因为 TCP 的半关闭状态,才是的 TCP 断开连接需要四次握手,实际上 TCP 断开连接的过程也是两个主机“互喊”结束的过程,只有两主机都对对方断开连接的请求应答,整个 TCP 连接才彻底断开。

    在上文中我们知道 TCP 建立连接第二次握手过程可以分为两个阶段,最终实现上合在一起了,同样在 TCP 断开连接过程中,这个过程不能合并发送的原因就是 TCP 的半关闭状态,这种半关闭状态有其应用的可能性,故在 TCP 断开连接的过程中是完成四次挥手才能彻底断开 TCP 的连接。

    TCP 通过四次挥手断开连接的过程如下:

    1. 客户端完成发送任务后,向服务端发送一个报文段 seq = m,置标志位 FIN = 1 ,确认序列号 ack 设置为服务端发送的上一个报文段的序列号加 1,告诉服务端要断开连接;
    2. 服务端收到客户端要断开连接的报文段之后,向客户端应答一个报文段 seq = n,置标志位 ACK = 1,将确认序号 ack 设置为客户端发送的上一个报文段的序列号加 1 ,即 ack = m + 1,客户端正确收到该报文段就单向断开了与服务段的连接,进入半关闭状态,也就是只能接收服务端的数据,不能向服务端发送数据了;
    3. 服务端完成发送任务后,向客户端发送一个报文段 seq = n + 1,置标志位 FIN = 1,确认序列号 ack 设置为客户端发送的上一个报文段的序列号加 1,即 ack = m + 1,告诉客户端要断开连接;
    4. 客户端收到服务端要断开连接的报文段之后,向服务端应答一个报文段 seq = m + 1,置标志位 ACK = 1,将确认序号 ack 设置为服务端发送的上一个报文段的序列号加 1 ,即 ack = n + 1,服务端正确收到该报文段就断开了与客户端的连接,此时客户端和服务端就彻底断开了连接。

    下面看一下 TCP 断开连接的图示:

    图3

    Wireshark分析验证

    打开 Wireshark 抓包可以对以上内容进行验证,如果只是验证下 TCP 连接和断开的这个过程,只需选定对应网卡,开始抓包即可,然后打开浏览器访问几个页面,正常情况下就会抓到对应的网络包,之后可以在显示过滤器中输入 tcp 过滤 TCP 协议,随便选择一个,右击选择追踪流、TCP 流查看该 TCP 连接的相关信息,如下:

    图4

    具体就不分析了,这个 TCP 连接没有发送过数据,也正好便于分析 TCP 建立连接和断开连接的过程。

    TCP状态变迁图

    TCP 在连接一直到断开的过程中共有 11 种状态,附上一张 TCP 的状态变迁图,如下:

    图5

    为什么SYN和FIN会占一个序列号

    在前面的分析中 SYN 和 FIN 都各占一个序列号,对应到序列号的定义上则是该报文段携带 1 字节的数据,那么下一个报文段的序列号则是上一个报文段的序列号加 1。

    以 TCP 通过三次握手建立连接为例,正常情况下,当客户端发送一个报文段 SYN = 1,seq = x 请求建立连接,服务端收到客户端发送的报文段之后要应答客户端的请求,即服务端发送一个报文段 ACK = 1,ack = x + 1,其中 ACK= 1 表示收到了收到了客户端的连接请求,确认序号 ack = x + 1 表示已经收到序列号为 x 的报文段了,期待收到的下一个报文段的序列号是 x + 1,显然服务端应答的客户端请求连接的序号为 x 的报文段。

    如果 SYN 不占一个序列号,当服务端收到客户端请求建立连接的报文段时,服务端应答的一个报文段 AXK = 1,ack = x,根据确认序列号 ack 的定义 ack = x 表示已经收到已经收到了序列号为 x - 1 的报文段,那么就无法确认客户端请求连接的报文段了,进而 TCP 不能正常完成三次握手,也就无法建立 TCP 连接了。

    当然 FIN 也是同样的道理,所以在 TCP 协议中 SYN 和 FIN 都是各占一个序列号,如有错误还望大家指正。

    展开全文
  • tcp实验报告.doc

    2020-10-07 16:33:56
    客户端通过键盘输入运算(加减乘除)发送给服务器,服务器接收后计算并返回计算结果。...1.了解tcp的基本原理。 2. 熟悉java中的socket,serversocket类的使用 。 3. 创建最简单的服务器,客户端交互系统。
  • 广工专用协议分析实训实验报告,内涵实训一、二、三、四; 实训一 网络分层及ARP、DNS协议分析 实训二 用WireShark分析IP、TCP、HTTP 实训三 用WireShark分析IP、TCP、FTP包 实训四 利用WireShark分析路由协议
  • 编号_ 本资料为word版本可以直接编辑和打印感谢您的下载 tcp协议分析报告 tcp协议分析报告 甲 方_ 乙 方_ 日 期_ ...tcp协议分析报告 篇一tcp协议分析报告 tcp/ip 协议分析实验报告 一 本人承担的工作 在这次利用wir
  • cisco 实验12 Wireshark 工具的使用与TCP数据包分析.doc
  • 实验五使用Wireshark分析TCP协议实验目的 分析TCP协议实验环境 与因特网连接的计算机操作系统为Windows安装有WiresharkIE等软件 三实验步骤 1捕获一个从你电脑到远程服务器的TCP数据 打开FTP客户端连接用TCP为...
  • wireshark抓包实验TCP

    2017-10-24 22:47:02
    计网wireshark抓包实验TCP,内容有下: 1. What is the IP address and TCP port number used by the client computer (source) that is transferring the file to gaia.cs.umass.edu? To answer this question, ...
  • tcp/ip 协议分析 实验包 PacketTracer版
  • TCP IP协议与网络编程实验报告,共涵盖该门课程的五个实验。
  • 实验19 传输控制协议(TCP)分析 练习二 TCP重传机制 任务一 TCP重传机制分析 练习三 TCP拥塞控制机制分析 任务一 TCP拥塞控制分析 第4部分 应用层(3个任务) 实验20 域名服务协议(DNS)分析 练习二 域名查询与高速...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,278
精华内容 2,911
关键字:

tcp协议分析实验报告