ARP抓包实战小结-TCP/IP协议学习

2011-12-26 21:36:47

图1

一,环境说明

硬件连线。PC与2440开发板直接用网线连接。

PC的ip地址:192.168.0.107。2440开发板的ip地址:192.168.0.106

二,操作

在开发板的uboot中用输入命令。Ping 192.168.0.107

三,抓包及说明:见图1

四,疑问点解答

由于ARP请求或回答的数据帧长都是42字节(28字节的ARP数据,14字节的以太网帧头),因此每一帧都必须加入填充字符以达到以太网的最小长度要求:60字节。

以太网设备驱动程序要把这一短帧填充空白字符以达到最小传输长度(60)。

为什么能看到回应是42字节而请求是60字节。因为回应这层数据还没通过太网设备驱动程序,如果是2台PC通讯的话,再另外一台上看,一定是60字节的哦!

五,ARP的工作原理如下:

1、首先,每台主机都会在自己的ARP高速缓冲区 (ARP Cache)中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。

2、当源主机需要将一个数据包发送到目的主机时,会首先检查自己 ARP列表中是否存在该IP地址对应的MAC地址,如果有﹐就直接使用此MAC地址;如果没有,主机就先将目标主机的IP地址与自己的子网掩码进行"与"操作,以判定目标主机与自己是否位于同一网段内。假如目标主机与自己在同一网段内,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址;如果目的主机在一个远程网络上,那么就通过路由器等路由设备转发此ARP请求到远程网络中广播。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。

3、源主机和目的主机在一个网络内的情况下:网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP和自己的IP地址是否一致。如果不相同 就不回应,但是该主机仍然会检查自己的ARP高速缓存,如果此请求的源IP地址已经在高速缓存中,那么就用ARP请求帧中的发送端硬件地址对高速缓存中相 应的内容进行更新;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然 后给源主机发送一个 ARP响应数据包,告诉它需要查找的MAC地址;

如 果源主机和目的主机不在一个网络内, ARP请求将由路由器转发至其它网络。如果能找到目的主机,就将此路由器的MAC地址当作目的主机的网络地址发给源主机,以后源主机和目的主机之间的信息 交换都要经过此路由器,这个路由器就被称作ARP代理;如果没有找到目的主机,在ARP高速缓存中会产生一条不完整的表项记录下来。

4、源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。

原文地址:https://www.cnblogs.com/AppleCai/p/10778192.html

时间: 2024-10-09 01:16:12

ARP抓包实战小结-TCP/IP协议学习的相关文章

Ping 命令实战小结--TCP/IP协议学习

2011-12-22 22:38:49 图1 图2 一,环境说明 硬件连线.PC与2440开发板直接用网线连接. PC的ip地址:192.168.0.107.2440开发板的ip地址:192.168.0.106 二,操作 在开发板的uboot中用输入命令.Ping 192.168.0.107 三,抓包及说明 Ping命令用到了ICMP协议.也就是说,MAC及ARP,IP都在其中了.属于网际层或者说是数据链路层,还没用到传输层和应用层.先用ARP解析地址.然后用ICMP检测可靠性,抓包效果见下图1

使用wireshark 抓取 http https tcp ip 协议进行学习

使用wireshark 抓取 http https tcp ip 协议进行学习 前言 本节使用wireshark工具抓包学习tcp ip http 协议 1. tcp 1.1 tcp三次握手在wireshark中的体现 1.1.1 三次握手过程 1.1.1 wireshark中三次握手过程 在wireshark中抓一次三次握手过程 客户端 客户端发送SYN=1 的请求连接的标记位,以及一个随机序列号X 服务端 服务端发送一个ACK标志位(ack之前的syn),随之一个ack号码为X+1 确认接收

tcp/ip协议学习 第四章 ARP:地址解析协议

派猴子来的救兵 关于ARP的RFC文档在此! ARP干嘛的 曾经有段时间, 六七年前了吧. 本科的时候, 流行了一阵子ARP病毒攻击, 导致整个局域网都不能上网了. 当时只听说这个东西防不住, 只要有一个人中毒, 就导致所有人上不了网. 现在也终于知道这是怎么回事了, 也能手工让某个同学上不了网了, 咳咳. 大家应该也都知道ARP是干嘛的, 我再啰嗦一下.. 比如我访问了百度, 百度回了包给我, 百度只知道我的IP是什么,不知道我的MAC地址. 这个包到网关的时候, IP这一层再把数据交给下一层

TCP/IP协议学习(四) 基于C# Socket的Web服务器---静态资源处理

目录 1. C# Socket通讯 2. HTTP 解析引擎 3. 资源读取和返回 4. 服务器测试和代码下载 Web服务器是Web资源的宿主,它需要处理用户端浏览器的请求,并指定对应的Web资源返回给用户,这些资源不仅包括HTML文件,JS脚本,JPG图片等,还包括由软件生成的动态内容.为了满足上述需求,一个完整的Web服务器工作流程: 1) 服务器获得浏览器通过TCP/IP连接向服务器发送的http请求数据包. 2) HTTP请求经过Web服务器的HTTP解析引擎分析得出请求方法.资源地址等

tcp/ip协议学习 第四章 ICMP:Internet控制报文协议

派猴子来的救兵 关于ICMP的RFC文档在此! 干嘛的 在我看来, ICMP协议主要就是为了互相传递/查询一些基本信息, 大部分是传递一些错误信息. 比如A发送UDP信息到B的10000端口, 但B的10000端口并没有开放, 就会回一个ICMP包给A, 告诉A10000端口未开放. 基本的查询信息, 比如最常用的ping命令, 就是发送ICMP包到目的主机, 然后等待目的主机的响应(响应也是ICMP包). 协议 协议定义的非常简单. ICMP在IP层上面一层. 前面是20个字节的IP头, 然后

tcp/ip 协议学习笔记   章一

一.tcp/ip包含: tcp/ip协议集包含四层:链路层.网络层.传输层.应用层 二.协议举例: 应用层: http.telnet.ssh ....传输层:TCP.UDP 网络层 :IP,ICMP,IGMP 链路层:ARP ,RARP 注:不是所有的程序都有这四层.有些基于IP,但是非tcp and 非UDP  eg:ping,某一些动态路由协议 三:IP地址分类 略 四:DNS 略 五:封装 数据封装是由tcp/ip协议栈完成的.不同的系统和主机,要遵行tcp/ip协议的标准 ,才能相互通信

tcp/ip协议学习笔记一

一. 简述 以前在学校学习计算机网络的时候学习多是网络7层模型OSI,了解了一些基本的计算机网络概念和协议通信格式,但是一直没弄明白其中的原理,包括各层之间的关系,应用,还有一些常见的令牌环网到底是什么东西,这个OSI它和 TCP/IP协议簇到底是什么关系,为什么有很多协议一样?ip指令格式是什么样的?为什么老是忘记,记不住?3次握手,4次握手协议是什么?ack,syn等等说不清道不明字段是指什么?为什么以太网网卡通信速率有100mbps,两台主机之间的通信却只有不到120kpbs?...所有的

TCP/IP协议学习

计算机网路学得不好,首先先放个OSI七层网络模型吧 在协议的控制下,上层对下层进行调用,下层对上层进行服务, 上下层间用交换原语交换信息.这样可以提高传输速率,并且保证数据安全,所以说其实每一层都有存在的必要 但是现在互联网上大家都有TCP/IP协议,可以说是某种黑话,他封装了前三层 每一层也有不同的协议 在网络通信的过程中,将发出数据的主机称为源主机,接收数据的主机称为目的主机.当源主机发出数据时,数据在源主机中从上层向下层传送.源主机中的应用进程先将数据交给应用层,应用层加上必要的控制信息就

tcp/ip协议学习 第三章 IP协议

派猴子来的救兵 关于IP的RFC文档在此! IP的头文件还是先贴一下, 总是记不住. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-