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

本文介绍了使用Wireshark工具监控和解析车载以太网DoIP(ISO13400)的UDS诊断协议的过程。通过分析ETH以太网帧、IP帧和TCP帧,展示了TCP三次握手和四次挥手,以及错误帧类型的识别。同时,解释了DoIP帧和UDS帧的结构,包括诊断肯定响应类型和安全访问等服务。
摘要由CSDN通过智能技术生成

笔者这几天在调试基于车载以太网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 以太网帧(数据链路层)

在这里插入图片描述

  • 目标地址和源地址都指的是MAC地址,即物理地址。目标地址:22:34:C0:01:00:01,源地址:E8:6A:64:20:61:3B,报文这里没有给出前导码和校验码
    在这里插入图片描述

  • 类型一般指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
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议,用于在网络中提供双向数据流的传输服务。它确保数据分组按顺序到达,并提供了错误检测和重传机制,这对于需要稳定数据传输的应用,如网页浏览、文件传输等非常重要。 在网络调试过程中,通常涉及到客户端和服务器之间的通信。客户端和服务器都需要配置各自的IP地址和端口号来进行连接: - **客户端**:在客户端上,你需要指定要连接的服务器的IP地址和端口。比如,如果你正在使用命令行工具telnet或浏览器访问网站,可能会输入类似 `telnet server_ip port_number` 或 `http://server_ip:port_number` 这样的地址,其中 `server_ip` 是服务器的公网IP地址,`port_number` 是服务器监听的服务端口(常见的HTTP端口是80,HTTPS是443,FTP则是21等)。 - **服务器**:服务器通常会在其配置文件中设定监听的IP地址和端口。如果是监听所有可用的网络接口,可能用 `0.0.0.0` 表示,如果是仅监听特定本地接口,则指定具体的IP地址。默认情况下,很多服务会监听所有的本地端口,但为了安全起见,也可能需要明确指定一个端口号。 当进行TCP通信的网络调试时,常用的工具包括Wireshark(抓包分析)、tcpdump(命令行下的网络监控),以及一些专用的网络诊断软件,它们可以帮助你查看和追踪数据包从发出到接收的过程,帮助定位问题。在出现问题时,你可能需要检查双方的IP和端口设置是否正确,是否存在防火墙阻止等问题。如果必要,也可以通过修改这些设置来测试不同的配置组合。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张一西

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值