网络基础_02

1.ARP协议

地址解析协议(Address Resolution Protocol)

已知对方的三层ip地址,需要二层mac地址


当一台设备(请求方)需要知道某个 IP 地址对应的 MAC 地址时,会使用 ARP封装一个数据帧。这台设备的网络层以自己的 IP 地址作为源 IP 地址、以目的设备(被请 求方)的 IP 地址作为目的 IP 地址、以自己的 MAC 地址作为源 MAC 地址、以广播 MAC 地址作为目的 MAC 地址,在本地网络中发送一个 ARP 广播消息,其目的是在本地网络 中寻找数据包目的 IP 地址对应的 MAC 地址.

工作过程

  1. 主机A首先查看自己的ARP表,如果ARP表中含有主机B对应的ARP表项,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。

(2) 如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。

(3) 主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。

(4) 主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。

免费ARP

功能:重复地址探测

主机被分配了IP地址或者IP地址发生变更后,必须立刻检测其所分配的IP地址在网络上是否是唯一的,以避免地址冲突。主机通过发送ARP Request报文来进行地址冲突检测。

当以一台设备的接口由 down-> up 的瞬间向同一局域网内的设备发送一个arp 报文。

源ip:本机ip

源mac:本机mac

目标mac:ff:ff:ff

目标IP:本机IP

为了检验局域网下是否由相同的ip

代理arp

代理ARP(Proxy-arp)的原理就是当出现跨网段的ARP请求时,路由器将自己的MAC返回给发送ARP广播请求发送者,实现MAC地址代理(善意的欺骗),最终使得主机能够通信。

把AR2的两个接口开启代理arp,ar1就能访问到ar3了,但其实是只能访问到AR2,借助AR2访问对方。

2.ping 过程

成帧:一个数据若想被发送出去,那么这个数据必须完成数据帧格式的封装(成帧)否则,没有资格被发送出去

数据ping过程

  1. 发送方先封装数据包,由于数据包需要目标MAC
  2. 先在自己的arp表中找,如果没有
  3. 发送一个广播的arp,寻找目标的mac
  4. 目标收到后,发送响应arp,发送发获取到mac
  5. 封装数据发送数据.

3.传输层TCP/UDP

1.TCP

TCP全称传输控制协议,必须对数据的传输进行控制。

tcp数据包

三次握手

第一次握手:当计算机 A 想要和计算机 B 建立连接时,会封装一个数据段,该数据段

的 SYN 位置位,表示计算机 A 希望与计算机 B 建立连接。此时 TCP 为序列号字段随机

生成一个值来代表第 1 个数据字节的序列号,这里用 a 表示;ACK 未置位,确认号为 0。

第二次握手:当计算机 B 收到数据段时,会封装一个数据段。这个数据段的 SYN

位和 ACK 位都置位,因为计算机 B 既需要确认计算机 A 的建立连接请求,又需要向

计算机 A 请求连接。SYN 位置位,TCP 为序列号字段随机生成一个值来代表第 1 个数

据字节的序列号,这里用 b 表示。ACK 位置位,确认已接收序列号为 a 的数据段。

但是,该数据段没有数据部分,因此计算机 B 等待接收的是下一个数据段,即确认

号为 a+1。

第三次握手:当计算机 A 收到 SYN, ACK 数据段时,会封装一个 ACK 数据段来确认

计算机 B 的建立连接请求。这个数据段的 SYN 位未置位,因此序列号字段不再随机生成,

而是计算机 B 第二次握手中的确认号,即 a+1;ACK 位置位,确认接收到序列号为 b 的

数据段,即确认号为 b+1。

四次握手

第一次握手:当计算机 A 想要与计算机 B 断开连接时,会封装一个 FIN 数据段, 表示之后没有数据要传输了。该数据段的 FIN 置位,表示计算机 A 希望断开和计算机 B

之间的连接。

第二次握手:当计算机 B 收到 FIN 数据段时,会封装一个 ACK 数据段来确认计算 机 A 的断开连接请求。

第三次握手:同时,计算机 B 也需要封装一个 FIN 数据段来发起断开连接请求,并且把该数据段发送给计算机 A。

第四次握手:计算机 A 使用 ACK 数据段确认自己收到计算机 B 发来的 FIN 数据段

seq:信息发送的次序,

ack:确认信息,ack=M+1:表示 seq=M的数据包已经收到,要接受M+1的数据包了

ack对seq的回复

UDP

UDP全称为用户数据报协议 。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法

UDP数据包


小白一枚,水平有限,如有错误,欢迎指教。。。

相关推荐
for_ever_love__20 小时前
iOS:网络请求再学习
网络·学习·ios·objective-c
一名普通的电源工程师20 小时前
E0512XT-1WR3 适配优选 钡特电源 DF1-05D12XT|1W 隔离5V转±12V模块电源选型参数技术解析
大数据·网络·人工智能
2301_7807896621 小时前
零信任时代:WAF 从边界防护到微隔离的架构跃迁
网络·安全·web安全·kubernetes·ddos
牛马工作号1 天前
蓝牙技术全景指南:从无线链路、协议栈到产品量产
网络
中电华星1 天前
专业的工业电源公司
网络·python
紫禁玄科1 天前
公共WiFi流量安全全解析
网络·人工智能·web安全·网络安全·系统安全
执念WRD1 天前
VulnTarget-C 渗透实战:外网入口到域控权限提升
网络·安全·web安全·网络安全
一个有点技术的程序猿1 天前
局域网中视频采集,颜色空间转换,编码,网络发送,接收,解码,渲染全链路卡顿分析
网络·音视频·视频编解码
阴雨天xiiii1 天前
德国慕尼黑国际太阳能展特装展台施工落地方案拆解
大数据·网络
网安小学生(兼顾数据库版)1 天前
从固件到应用:Mend.io实现SBOM全链路管理
网络