TCP通信调试助手===wireshark使用

笔者这几天在调试基于车载以太网DoIP(ISO13400)的UDS诊断协议,(ISO14229+ISO15765)所以就用wireshark来监控一下报文,看看TCP层、DoIP层和UDS层的数据报文。

wireshark软件

  • 选择指定端口进行报文监控
  • 以太网数据和报文解析(双击进行去可以查看具体报文解析)
  • 错误帧类型
    • [TCP Previous segment not captured] :该帧TCP报文之前的报文未收到
    • [TCP Out-Of-Order]:TCP包乱序
    • [TCP dup ack XXX#X]:重新传某一个包
    • [TCP Fast Retransmission]:快速重传
    • [TCP Retransmission]:重传

ETH 以太网帧(数据链路层)


  • 类型一般指IPv4、IPv6、ARP、Vlan

    比如 在clinet 广播网关时发送的包(寻找网关,该地址是自己设置的,并不是网关分配的,所以再寻找网关,也挺形象 who and tell),ARP类型,


IP帧(网络层)


以一组报文为例:前面划红线的是目标地址+源地址+类型

  • 45:4为IPv4,5指的IP头部共20字节,即(5)*4字节。
  • 00:服务类型
  • 00 2A:总共42字节,IP头部+TCP头部 ETH(14)+IP(20)+ICMP(22) = 16*3+8 = 56 56-14 =42
  • 10 5D:标识
  • 40 00:标志和分片偏移,标志:保留/是否分片/最后一片,各占一位 ,后面是分片之后相对于原始数据的偏移,以8字节为一个单位
  • 05:生存期,TTL,最多可以经过的路由数
  • 01:协议,TCP(0x06)、UDP(0x11)还是ICMP(0x01),
  • E2 17 :校验数,校验方法为何校验,以16位位一组进行累加,最后取反,注意:超过16位的需要重新再组合相加,校验的两位按0x00处理,0x4500+0x2A+0x105D+0x4000+0x0501+0xC0A8+0x0106+0xC0A8+0x0108 = 0x21DE6,然后0x1DE6+0x02 = 0x1DE8,取反之后为0xE217,所以校验位0xE217
  • C0 A8 01 06 :192.168.1.6 C0 A8 01 08:192.168.1.8

TCP帧(传输层)


以具体的TCP报文为例:源IP:a9 fe 64 0a (169.254.100.10) 目标IP:a9 fe 64 64(169.254.100.100)

  • d0 e6:53478
  • 34 58:13400
  • eb bd ca ae :序列号 可以确认
  • 02 d1 83 1a:确认号
  • 50:5代表头部字节数,单位是4字节,5*4 = 20字节
  • 18:1保留 8代表PSH,通信过程中,提示接收端把缓存区数据读走,SYN,建立链接,FIN:断开链接 ACK:响应包,确认序列号正常,RST:重新链接
  • fa fd:窗口大小
  • d1 53:TCP校验和,与IP计算方法一样
  • 00 00:紧急指针

TCP三次握手


299:SYN Seq = 0,
300:SYN ACK Seq =0,Ack=1
301:ACK Seq = 1,Ack = 1

上面SYN代表建立链接 ACK代表响应包 Ack 代表确认序列号

通信双方的序列号和确认号会互换,并且按照len的数据增加

TCP四次挥手


FIN ACK:FIN 客户端(服务器)发出断开链接, Seq = 1 Ack = 5
ACK:服务器响应 ACK =1 Seq = 5 Ack =2
FIN ACK:FIN 服务器(客户端)发出断开链接,Seq = 5,Ack = 2
ACK:客户端响应 ACK =1 Seq = 2 Ack = 6

DoIP帧(应用层)

DoIP:Diagnostic communication over Internet Protocol,通过以太网的诊断通信,或者叫车载以太网,
诊断数据类的一个报文格式如下:

以具体的报文为例:

  • 02:协议版本
  • fd:协议版本反码
  • 80 02:诊断肯定响应类型 0x0000-0008 节点管理类 0x4000-0x4004 车辆信息类 0x8001-0x8003 诊断类
  • 00 00 00 07:数据报文长度(后面的DoIP Payload)
  • 00 09:源地址 (应用层通信双方设备的地址)
  • 0e 80:目标地址
  • 00:ACK Code,响应码
  • 85 02:UDS报文

UDS帧(应用层,DoIP上层)

UDS(Unified Diagnostic Services)统一诊断服务,UDS 对 DoIP的数据报文格式进行重新定义

以安全访问为例进行介绍:具体报文在下面
请求seed :27 01
响应seed:67 01 XX XX XX XX

发送请求

相应数据

版权声明:
作者:ZhangYixi
链接:http://zyixi.xyz/tcp%e9%80%9a%e4%bf%a1%e8%b0%83%e8%af%95%e5%8a%a9%e6%89%8bwireshark%e4%bd%bf%e7%94%a8/
来源:一西站点
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录