wireshark抓包分析TCP和UDP_ipv4数据包分析

wireshark抓包分析TCP和UDP_ipv4数据包分析在命令行输入ifconfig,查看本机网络接口。$ifconfigenp4s0:flags=4099<UP,BROADCAST,MULTICAST>mtu1500etherc8:5b:76:f6:44:d2txqueuelen1000(Ethernet)RXpackets0bytes0(0.0B)…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

在命令行输入ifconfig,查看本机网络接口。

$ ifconfig enp4s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500        ether c8:5b:76:f6:44:d2  txqueuelen 1000  (Ethernet)        RX packets 0  bytes 0 (0.0 B)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 0  bytes 0 (0.0 B)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536        inet 127.0.0.1  netmask 255.0.0.0        inet6 ::1  prefixlen 128  scopeid 0x10<host>        loop  txqueuelen 1000  (Local Loopback)        RX packets 391  bytes 61933 (60.4 KiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 391  bytes 61933 (60.4 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255        ether 52:54:00:a7:e6:9c  txqueuelen 1000  (Ethernet)        RX packets 31  bytes 3291 (3.2 KiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 18  bytes 2571 (2.5 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet6 fe80::fc54:ff:fe15:2983  prefixlen 64  scopeid 0x20<link>        ether fe:54:00:15:29:83  txqueuelen 1000  (Ethernet)        RX packets 31  bytes 3725 (3.6 KiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 39  bytes 4941 (4.8 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
wlp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 10.1.1.64  netmask 255.255.255.0  broadcast 10.1.1.255        inet6 fe80::40df:807c:eb38:8b78  prefixlen 64  scopeid 0x20<link>        ether a8:6b:ad:54:d5:3d  txqueuelen 1000  (Ethernet)        RX packets 10965  bytes 11639278 (11.1 MiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 3369  bytes 513997 (501.9 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Jetbrains全家桶1年46,售后保障稳定

运行一段Java代码,往内网ip192.168.122.217发送UDP数据

package UDPtest;
import java.io.IOException;import java.net.*;
public class UDPTestClient {
  
      private static final int PORT = 8800;    private static final String HOSTNAME = "192.168.122.217";
    public static void main(String[] args){
  
          try (DatagramSocket ds = new DatagramSocket(8801)){
  
              /**             * 这里是发送数据到服务端             */            //这里定义地址信息             InetAddress id = InetAddress.getByName(HOSTNAME);            //要发送的数据            byte[] buffer = "这里是客户端发送的数据".getBytes();            //将数据打包成udp数据包            DatagramPacket dp = new DatagramPacket(buffer, buffer.length,id,PORT);            //发送数据包            ds.send(dp);
            /**             * 这里是从服务端接收数据             */            byte[] data2 = new byte[1024];            DatagramPacket packet2 = new DatagramPacket(data2,data2.length);            ds.receive(packet2);            String info = new String(data2,0,packet2.getLength());            System.out.println("我是客户端 从服务端收到的数据 info = " + info);        } catch (IOException e) {
  
              e.printStackTrace();        }    }}

 在所有列出的网卡中找到正在运行的网卡,即flags=4163<UP,BROADCAST,RUNNING,MULTICAST>有RUNNING字段的网卡。这里有lo,wlp5s0,vnet0,显然lo是本地回环接口,vnet0才是我们要找到的网卡。

    回到wireshark,双击vnet0,开始监听。执行UDPTestClient类,找到发送的数据包。

    其中Source 10.1.1.64->Destination 192.168.122.217就是我们发送的数据包。双击查看数据包详细信息。

第一个目录下的Interface看到是无线网卡接口

Interface id: 0 (vnet0)
  Interface name: vnet0

第二个目录,以太网口

Ethernet II, Src: HonHaiPr_54:d5:3d (a8:6b:ad:54:d5:3d), Dst: Tp-LinkT_06:67:7d (74:05:a5:06:67:7d)
  Destination: Tp-LinkT_06:67:7d (74:05:a5:06:67:7d)
      Address: Tp-LinkT_06:67:7d (74:05:a5:06:67:7d)
      .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
      .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
  Source: HonHaiPr_54:d5:3d (a8:6b:ad:54:d5:3d)
      Address: HonHaiPr_54:d5:3d (a8:6b:ad:54:d5:3d)
      .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
      .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
  Type: IPv4 (0x0800)

Src代表源设备,Dst指目的设备,这里是从 HonHaiPr_54:d5:3d的MAC地址发送到Tp-LinkT_06:67:7d 路由器的MAC地址。

第三个目录Internet Protocol Version 4, Src: 10.1.1.64, Dst: 192.168.122.217下的目录Destination GeoIP: CN

[Destination GeoIP: CN]
  [Destination GeoIP Country: China]
  [Source or Destination GeoIP Country: China]
  [Destination GeoIP ISO Two Letter Country Code: CN]
  [Source or Destination GeoIP ISO Two Letter Country Code: CN]
  [Destination GeoIP Latitude: 34.7725]
  [Source or Destination GeoIP Latitude: 34.7725]
  [Destination GeoIP Longitude: 113.7266]
  [Source or Destination GeoIP Longitude: 113.7266]

GeoIP是基于IP查询地理位置。

找到UDP首部目录User Datagram Protocol, Src Port: 8801, Dst Port: 8800

User Datagram Protocol, Src Port: 8801, Dst Port: 8800
  Source Port: 8801
  Destination Port: 8800
  Length: 41
  Checksum: 0x16bc incorrect, should be 0x7c26 (maybe caused by "UDP checksum offload"?)
      [Expert Info (Error/Checksum): Bad checksum [should be 0x7c26]]
          [Bad checksum [should be 0x7c26]]
          [Severity level: Error]
          [Group: Checksum]
      [Calculated Checksum: 0x7c26]
  [Checksum Status: Bad]
  [Stream index: 0]

依次看到RFC 768定义的UDP首部,Source Port、Destination Port、Length、Checksum的信息。可以看到checksum错误,获取的包的checksum与计算出来的checksum不一致。这是因为有些路由器会参与checksum的计算,但上层协议栈并不知情,所以二者算出的checksum值不一样。

检验和计算可能由网络网络驱动,协议驱动,甚至是硬件完成。高层校验通常是由协议执行,并将完成后的包转交给硬件。比较新的网络硬件可以执行一些高级功能,如IP检验和计算,这被称为checksum offloading。网络驱动不会计算校验和,只是简单将校验和字段留空或填入无效信息,交给硬件计算。

注:本文为小yip原创,未经许可不得在任何平台转载。如需转载,与作者联系~

欢迎加入linux交流群:734638086,分享工作经验。

关注微信公众号:技术训练营(微信ID:TechBootcamp),获取更多资讯~

wireshark抓包分析TCP和UDP_ipv4数据包分析

微信扫一扫,发现更精彩。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222757.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • intellijidea激活码【最新永久激活】

    (intellijidea激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月28日
    173
  • Readprocessmemory用法[通俗易懂]

    Readprocessmemory用法[通俗易懂]函数功能:该函数从指定的进程中读入内存信息,被读取的区域必须具有访问权限。 函数原型:BOOLReadProcessMemory(HANDLEhProcess,LPCVOIDlpBaseAddress,LPVOIDlpBuffer,DWORDnSize,LPDWORDlpNumberOfBytesRead); 参数:hProcess:进程句柄 lpBaseA

    2022年10月5日
    0
  • Windows 强制删除文件及文件夹命令「建议收藏」

    Windows 强制删除文件及文件夹命令「建议收藏」一、删除文件或目录CMD命令rd/s/q盘符:\某个文件夹  (强制删除文件文件夹和文件夹内所有文件)del/f/s/q盘符:\文件名  (强制删除文件,文件名必须加文件后缀名)二、删除文件或目录BAT命令1、新建.BAT批处理文件输入如下命令,然后将要删除的文件拖放到批处理文件图标上即可删除。DEL/F/A/Q RD/S/Q …

    2022年6月1日
    46
  • 操作系统之进程管理习题[通俗易懂]

    操作系统之进程管理习题[通俗易懂]1.操作系统对进程管理的程序叫进程调度。进程调度就是按照某种算法从就绪队列中选取进程,让该进程获得cpu。多个进程竞争一个CPU,获得CPU的次序是由调度算法决定的。考虑5个进程见下表,1的优先级最高,给出在采用下述几种调度算法下的调度次序(1).非剥夺优先级(2).剥夺优先级(3).时间片轮转(时间片为2) 进程 创建时间 ……

    2022年9月6日
    2
  • LTE-FDD和LTE-TDD的区别

    LTE-FDD和LTE-TDD的区别注:本篇大部分内容源自“再见理想”的博客园,详细链接:https://www.cnblogs.com/exmyth/p/4572934.html1.什么叫LET4G故名思议就是第四代移动电话行动通信标准,其中包括TD-LTE(国外称作LTE-TDD,叫法不同,意思是一样的)和FDD-LTE两种制式。而中移动使用的就是TD-LTE,中联通与中电信则是使用TD-LTE与FDD-LTE…

    2022年6月5日
    35
  • 简单教你写xsync和xcall的脚本

    简单教你写xsync和xcall的脚本xsync配置xsync脚本基于rsync工具,rsync远程同步工具,主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点,它只是拷贝文件不同的部分,因而减少了网络负担。rsync-rvl$pdir/$fname$user@hadoop$host:$pdir常用参数:-r,–recursive对子目录以递归模式处理-R,–relative使用相对路径信…

    2022年5月28日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号