diff --git "a/35\347\277\237\347\216\211\351\224\237/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234\344\275\234\344\270\232/2024.04.02 \344\272\206\350\247\243ARP\345\222\214RARP.md" "b/35\347\277\237\347\216\211\351\224\237/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234\344\275\234\344\270\232/2024.04.02 \344\272\206\350\247\243ARP\345\222\214RARP.md" new file mode 100644 index 0000000000000000000000000000000000000000..540ae35e1bfabc3c75fab84cafccc4044349a35f --- /dev/null +++ "b/35\347\277\237\347\216\211\351\224\237/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234\344\275\234\344\270\232/2024.04.02 \344\272\206\350\247\243ARP\345\222\214RARP.md" @@ -0,0 +1,59 @@ +## ARP + +1. ARP(Address Resolution Protocol):地址解析协议 + +2. 根据 IP地址 来获取物理地址的 TCP/IP 协议 + +3. 主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址 + +4. 收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源 + +5. 地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存 + +6. 由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗 + +7. ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等 + + ### 工作过程 + + 主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01; + + 主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02; + + 当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程: + + 第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。 + + 第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。 + + 第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。 + + 第4步:主机B将包含其MAC地址的ARP回复消息直接发送回主机A。 + + 第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。 + +## RARP + +1. (RARP:Reverse Address Resolution Protocol):反向地址转换协议 + +2. 允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。网络管理员在局域网 网关 路由器里创建一个表以映射物理地址(MAC)和与其对应的 IP 地址。当设置一台新的机器时,其 RARP 客户机程序需要向路由器上的 RARP 服务器请求相应的 IP 地址。假设在路由表中已经设置了一个记录,RARP 服务器将会返回 IP 地址给机器,此机器就会存储起来以便日后使用。 RARP 可以使用于以太网、光纤分布式数据接口及令牌环 LAN + + ## 工作原理 + + 1. 发送主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址; + 2. 本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址; + 3. 如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用; + 4. 如果不存在,RARP服务器对此不做任何的响应; + 5. 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。 + +## OSI 七层模型 + +OSI 七层模型是7层协议结构的开放系统互连模型 + +1. **物理层**:解决两个硬件之间怎么通信的问题,常见的物理媒介有光纤、电缆、中继器等。它主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特 +2. **数据链路层:**在计算机网络中由于各种干扰的存在,物理链路是不可靠的。该层的主要功能就是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。它的具体工作是接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层。这一层的数据叫做帧。 +3. **网络层:**计算机网络中如果有多台计算机,怎么找到要发的那台?如果中间有多个节点,怎么选择路径?这就是路由要做的事。该层的主要任务就是:通过路由选择算法,为报文(该层的数据单位,由上一层数据打包而来)通过通信子网选择最适当的路径。这一层定义的是IP地址,通过IP地址寻址,所以产生了IP协议。 +4. **传输层:**当发送大量数据时,很可能会出现丢包的情况,另一台电脑要告诉是否完整接收到全部的包。如果缺了,就告诉丢了哪些包,然后再发一次,直至全部接收为止。简单来说,传输层的主要功能就是:监控数据传输服务的质量,保证报文的正确传输 +5. **会话层:**虽然已经可以实现给正确的计算机,发送正确的封装过后的信息了。但我们总不可能每次都要调用传输层协议去打包,然后再调用IP协议去找路由,所以我们要建立一个自动收发包,自动寻址的功能。于是会话层出现了:它的作用就是建立和管理应用程序之间的通信。 +6. **表示层:**表示层负责数据格式的转换,将应用处理的信息转换为适合网络传输的格式,或者将来自下一层的数据转换为上层能处理的格式 +7. **应用层:**应用层是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。前端同学对应用层肯定是最熟悉的 \ No newline at end of file diff --git "a/35\347\277\237\347\216\211\351\224\237/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234\347\254\224\350\256\260" "b/35\347\277\237\347\216\211\351\224\237/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234\347\254\224\350\256\260" new file mode 160000 index 0000000000000000000000000000000000000000..e22f662aa3eab4363fa7f8dc8adb66a36252f76c --- /dev/null +++ "b/35\347\277\237\347\216\211\351\224\237/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234\347\254\224\350\256\260" @@ -0,0 +1 @@ +Subproject commit e22f662aa3eab4363fa7f8dc8adb66a36252f76c