【计算机网络笔记】ARP协议

系列文章目录

什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 vs 电路交换
计算机网络性能(1)------速率、带宽、延迟
计算机网络性能(2)------时延带宽积、丢包率、吞吐量/率
计算机网络体系结构概念
OSI参考模型基本概念
OSI参考模型中非端-端层(物理层、数据链路层、网络层)功能介绍
OSI参考模型中端-端层(传输层、会话层、表示层、应用层)功能介绍
TCP/IP参考模型基本概念,包括五层参考模型
网络应用的体系结构
网络应用进程通信
网络应用对传输服务的需求
Web应用之HTTP协议(涉及HTTP连接类型和HTTP消息格式)
Cookie技术
Web缓存/代理服务器技术
传输层服务概述、传输层 vs. 网络层
传输层------多路复用和多路分用
传输层------UDP简介
传输层------可靠数据传输原理之Rdt协议
传输层------可靠数据传输之流水线机制与滑动窗口协议
传输层------TCP特点与段结构
传输层------TCP的可靠数据传输
TCP连接管理(图解三次握手和四次挥手)
传输层------拥塞控制原理与解决方法
TCP的拥塞控制机制
网络层服务与核心功能
网络层服务模型------虚电路网络
网络层服务模型------数据报网络
Internet网络的网络层------IP协议之IP数据报的结构
IP分片
IP编址与有类IP地址
IP子网划分与子网掩码
CIDR与路由聚合
DHCP协议
网络地址转换(NAT)
ICMP(互联网控制报文协议)
IPv6简介
路由算法之链路状态路由算法
路由算法之距离向量路由算法
路由算法之层次路由
数据链路层概述
数据链路层------差错编码
多路访问控制(MAC)协议------随机访问MAC协议



MAC地址

32位IPv4地址:

  • 接口的网络层地址
  • 用于标识网络层(第3层)分组,支持分组转发

MAC地址(或称LAN地址,物理地址,以太网地址) :

  • 在数据链路层用于局域网内标识一个帧从哪个接口发出,到达哪个物理相连的其他接口

  • 48位MAC地址(用于大部分LANs),固化在网卡的 ROM中,有时也可以软件设置。e.g.: 1A-2F-BB-76-09-AD

  • 局域网中的每块网卡都有一个唯一的MAC地址

  • MAC地址由IEEE统一管理与分配。任何一个网卡生产厂商需要购买MAC地址空间(前24比特)

  • MAC地址相当于身份证号,无论在哪里都是唯一的;IP地址相当于邮政地址,有归属和层次关系


ARP: 地址解析协议

一个网络接口在网络层有IP地址,在数据链路层有MAC地址。因此在通信过程中就要考虑一个问题:(在同一个LAN内) 如何在已知目的接口的IP地址前提下确定其MAC地址?

为此,LAN中的每个IP结点 (主机、路由器)都会维护一个表,这个表叫做ARP表,这个表会存储某些LAN结点的 IP/MAC地址映射关系< IP地址; MAC地址; TTL>。TTL存活时间设置该映射关系的存在时间(典型值为20min)。这样保证ARP表反映最新的信息。

比如,A想要给同一局域网内的 B发送数据报,但A只知道B的IP地址,这时就要用到ARP协议,大概过程是这样的:

  • A广播 ARP查询分组,其 中包含B的IP地址。
    • 目的MAC地址 = FF-FF-FF-FF-FF-FF
    • LAN中所有结点都会接收 ARP查询
  • B接收ARP查询分组,IP 地址匹配成功 ,向A应答 B的MAC 地址
    • 利用单播帧向A发送应答
  • A在其ARP表中,缓存B的 IP-MAC地址对,直至超时。超时后,再次刷新

显然,ARP是"即插即用"的协议。主机在刚接入网络的时候,ARP表可能是空的,正是在通信过程中不断查询更新MAC地址的。

那如果A和B不在同一个局域网内,这个时候应该怎么做呢?

假设A和B这两个子网通过R路由器进行互连:

  • 假设A知道B的IP地址(一般由用户定义输入)
  • 假设A知道第一跳路由器R (左)接口IP地址(A主机的默认网关地址就是路由器左侧接口的地址)
  • 假设A知道第一跳路由器R (左)接口MAC地址 (通过ARP协议)

过程:

  • A构造IP数据报,其中源IP地址是A的IP地址,目的IP地址是B的IP地址。进一步封装数据报,构造链路数据帧,其中源MAC地址是A的MAC地址,目的MAC地址是 R(左)接口的MAC地址
  • 路由器左侧的接口收到数据帧以后,提取IP数据报,传递给上层IP协议。一般情况下不会修改源和目的的IP地址。R进一步创建链路层帧,其中源MAC地址是R(右)接口的MAC地址,目 的MAC地址是B的MAC地址
  • B在链路层收到数据帧之后,要完成链路层的功能。之后提取出IP数据报,交给上层的IP协议,再一层一层往上
相关推荐
冷眼看人间恩怨1 小时前
【Qt笔记】QDockWidget控件详解
c++·笔记·qt·qdockwidget
njnu@liyong2 小时前
图解HTTP-HTTP报文
网络协议·计算机网络·http
GISer_Jing3 小时前
2025前端面试热门题目——计算机网络篇
前端·计算机网络·面试
ZachOn1y3 小时前
计算机网络:应用层 —— 应用层概述
计算机网络·http·https·应用层·dns
冰镇屎壳郎5 小时前
计算机网络 八股青春版
计算机网络
Hejjon7 小时前
SpringBoot 整合 SQLite 数据库
笔记
网络安全King7 小时前
计算机网络基础(2):网络安全/ 网络通信介质
计算机网络·安全·web安全
西洼工作室9 小时前
【java 正则表达式 笔记】
java·笔记·正则表达式
初学者7.9 小时前
Webpack学习笔记(2)
笔记·学习·webpack
新手上路狂踩坑10 小时前
Android Studio的笔记--BusyBox相关
android·linux·笔记·android studio·busybox