zoukankan      html  css  js  c++  java
  • 实验三 使用Packet Tracer分析TCP连接建立对象

    姓名:张越

    班级:计算1811

    学号:201821121006

    1. 实验目的

    1.使用路由器连接不同的网络

    2.使用命令行操作路由器

    3.通过抓取HTTP报文,分析TCP连接建立的过程

    2.实验内容

    1.使用Packet Tracer,正确配置网络参数,通过抓取HTTP数据包,分析TCP连接建立过程。建立网络拓扑结构。

    2.配置参数实验内容

    3.抓包

    4.分析数据包

    3.1 建立网络拓扑结构

    3.2配置相应参数

    配置路由器参数:

     首先点击路由器打开CLU,接着在命令行中依次输入不同的命令;

       根据指令:Router>enable 进入特权模式

          Router#config t 进入全局配置模式

          Router(config)#interface Fa 0/0 进入以太网接口0/0

          Router(config-if)#ip address 192.168.1.7 255.255.255.0 添加IP地址

         Router(config-if)#no shutdown 激活端口

         Router(config-if)#exit返回上一级 

         Router(config)#interface Fa 0/1 进入以太网接口0/1

        Router(config-if)#ip address 192.168.2.7 255.255.255.0 添加IP地址

        Router(config-if)#no shutdown 激活端口                  

    抓包,分析TCP建立过程

    TCP建立连接示意图:

    分析序号和确认号的变化

    第一次握手:客户端首先创建传输控制模块,建立TCP连接;这时首部中的同步位SYN=1,同时选择一个初始序号seq=x

    第二次握手:在服务端向客户端发送的确认报文中,SYN位和ACK位都置为1,确认号是ack=x+1,同时也为自己选择一个初始序号seq=y

    第三次握手:客户端受到确认报文后,还要给服务端回应;ACK置为1,确认号ack=y+1,而自己的序号seq=x+1

    为什么连接建立要三次握手?

    答:防止已经失效的连接请求报文段突然又传到服务端,因而产生错误”,这种情况是:一端(client)A发出去的第一个连接请求报文并没有丢失,而是因为某些未知的原因在某个网络节点上发生滞留,导致延迟到连接释放以后的某个时间才到达另一端(server)B。本来这是一个早已失效的报文段,但是B收到此失效的报文之后,会误认为是A再次发出的一个新的连接请求,于是B端就向A又发出确认报文,表示同意建立连接。如果不采用“三次握手”,那么只要B端发出确认报文就会认为新的连接已经建立了,但是A端并没有发出建立连接的请求,因此不会去向B端发送数据,B端没有收到数据就会一直等待,这样B端就会白白浪费掉很多资源。如果采用“三次握手”的话就不会出现这种情况,B端收到一个过时失效的报文段之后,向A端发出确认,此时A并没有要求建立连接,所以就不会向B端发送确认,这个时候B端也能够知道连接没有建立。 

  • 相关阅读:
    CDQ
    MySQL中的类Decode用法
    HTMLTestRunner生成空白resault.html
    参数化时按行读取txt文件,如何去掉换行符" "
    打开本地html的一些设置
    python中文乱码例子
    Python异常处理实例
    Python根据上下限生成不重复随机数1
    Linux自定义命令
    Python IDLE 清屏工具
  • 原文地址:https://www.cnblogs.com/hltz/p/11679086.html
Copyright © 2011-2022 走看看