zoukankan      html  css  js  c++  java
  • TCP/IP协议栈在wireshark的抓包

    OSI模型对应的TCP/IP协议栈

    注:osi模型是个理论框架,而TCP/IP协议栈是一个事实标准,所以我主要学的是TCP/IP协议栈

    1)应用层:

      作用:为用户体统软件接口

      软件:

        即时通信软件 =》 微信、QQ

        购物软件 = 》 天猫、京东

        音影类:pps、爱奇艺

        协议:http、http、OICQ(扣扣的底层协议)

    2)传输层:

      作用:用于数据的可靠传输

      协议:tcp、udp

    3)网路层;

      作用:

        提供ip地址和三成通信功能(路由器)

      协议:IP协议

    4)链路接入层:

      作用:提供mac地址和两层通信功能(交换机)

      协议:Ethernet

    wireshark抓包分析

      1、Ethernet协议

      

       Ethernet以太网协议,用于实现链路层的数据传输和mac地址的封装,上面打码的部分是我电脑的mac地址。

       Destination:目的字段,标记目的字段的mac地址

       Source:源自段,标记发出端的mac地址

       type:类型值,标志上层协议

      注:mac地址

      1)所有设备的mac地址都是全球唯一的,window系统可以利用命令ipconfig /all查看自己电脑的mac地址

      2)mac地址是16进制表示,长度为48bit

      3)mac地址的前24bit被称之为oui代码,是厂商的唯一标志符,是一个厂商的标记,后24bit由厂商自己分配

       2、ip协议

        ip协议(Internet protocol,互联网协议),通过ip地址,保证联网设备的唯一性,实现面向无连接的通信和不可靠的传输功能

      

      version:标识ip地址的版本,目前v4版地址已近枯竭,v6慢慢成为主流

      header length:头部长度,默认20字节,最长60字节

      differentiated servieces field:服务区分符,用于为不同的ip数据定义不通的服务质量

      total length:总长度,标识ip头部加上层数据的数据包大小,ip总长度为65535个bit

      identification:用来实现ip部分的重组,标识分片属于哪个进程,不同的部分通过不同的id区分

      flags:用来确认是否有ip分片或是能否分片

      fragement offset:用来识别ip分片的位置,实现分片重组

      time to live : 生存时间,标识数据包还能生存多久,每次经过路由器的处理,TTL减一

      protocol:协议号,标识上次应用协议

      header checksum:用于检验ip数据包是否完整或被修改,若检验失败则丢弃数据包

      

    数据包封装的过程

      1)数据封装是一个为数据包加入寻址信息的过程

      2)端口号用于标志不同的应用程序,面向最终用户

      3)ip地址用汉语标志唯一通信设备,面向路由器

      4)mac地址用于唯一标志局域网路设备,面向交换机

      注:数据解包的过程正好和封装包的过程相反,从网络接入层开始

       例如下面数据的传送过程:

        

    TCP三次握协议在wireshark中的抓包过程

      

      在wireshark中的tcp三次握手对应的包:

      

      第一次握手:

      

      客户端发送一个TCP包,标志位位SYN,序号为0,代表客户端求连接。

      第二次握手:

      

      服务端发送回确认包,标志位为ACK,ACK,将去确认包Ackenowlegenment Number置为seq+1。

      第三次握手:

      

      客户端再次发送确认包ACK,SYN 标志位为0,ACK标志位为1,并且把服务器发来ACK的序号段加1,放在确认字段中发送给对方。

      

  • 相关阅读:
    Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
    Twsited异步网络框架
    MySQL-python模块
    python3安装Fabric模块
    PInvoke.net Visual Studio Extension
    资源下载站
    WPF RTSP存储到一个文件中的位置
    Windows 7 中未能从程序集System.ServiceModel
    无法在WEB服务器上启动调试,Web 服务器配置不正确
    CS0016: 未能写入输出文件“c:WINDOWSMicrosoft.NETFramework.。。”--“拒绝访问
  • 原文地址:https://www.cnblogs.com/leilei0327/p/10003684.html
Copyright © 2011-2022 走看看