网络层协议介绍

文章目录

  • 网络层协议介绍
    • 一、 IP数据包格式
      • 1.1. 网络层的功能
      • 1.2. IP数据包格式及IP字段
    • 二、 ICMP协议(Internet控制报文协议)
      • **1. ICMP协议的功能**
      • 2. ICMP协议的封装
      • 3. ICMP的基本使用
      • 小结:
    • 三、广播、广播域以及ARP协议
      • 1. 广播与广播域
    • 2. ARP协议
      • 2.1. ARP概述
      • 2.2. ARP的原理
      • 2.3. ARP的相关命令
        • 2.3.1 windows系统中ARP命令∶
        • 2.3.2 华为系统中的ARP命令
      • 2.4 ARP攻击与ARP欺骗的原理

一、 IP数据包格式

1.1. 网络层的功能

1)定义了基于IP协议的逻辑地址

2)连接不同的媒介类型

3)选择数据通过网络的最佳路径

1.2. IP数据包格式及IP字段

IP字段∶

版本(Version) ∶该字段包含的是 IP的版本号,4bit。目前 IP的版木为 4(即 IPv4)。

首部长度(Header Length) ∶该字段用于表示IP数据包头长度,4bit。IP数据包头最短为20字节,但是其长度是可变的,具体长度取决于可选项字段的长度。

优先级与服务类型(Priority&Type of Service) ∶该字段用于表示数据包的优先级和服务类型,8bit。通过在数据包中划分一定的优先级,用于实现QoS(服务质量)的要求。

总长度(Total Length) ∶该字段用以指示整个 IP数据包的长度,16bit。最长为65535字节,包括包头和数据。

标识符(Identification) :该字段用干表示IP数据包的标识符,16bit。当IP对上层数据进行分片时,它将给所有的分片分配同一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。

标志(Flags) ∶标志字段,3bit。对当前的包不能进行分片(当该包从一个以太网发送到另一个以太网时),或当一个包被分片后用以指示在一系列的分片中,最后一个分片是否已发出。

段偏移量(Fragment Offset) ∶该字段用于表示段偏移量,13bit。段偏移量中包含的信息是指在一个分片序列中如何将各分片重新连接起来。

TTL(Time to Live) :该字段用于表示IP数据包的生存周期,8bit。一个数据包每经过一个路由器,TTL将减去1,当TTL值为0时,该数据包将被丢弃。可以防止一个数据包在网络中无限循环地转发下去。

协议号(Protocol) ∶协议字段,8bit。该字段用以指示在 IP数据包中封装的是哪一个协议,是 TCP还是 UDP,TCP的协议号为6,UDP的协议号为17。

首部校验和(Header Checksum) ∶该字段用于表示校验和,16bit。接收方和网关用来校验数据有没有被改动过。

源 IP 地址(Source IP Address) ∶该字段用于表示数据包的源地址,32bit。

目标 IP地址(Destination IP Address) ∶该字段用于表示数据包的目的地址,32bit。

可选项(Options) ∶可选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据。

二、 ICMP协议(Internet控制报文协议)

1. ICMP协议的功能

■ICMP是一个"错误侦测与回馈机制"

■通过IP数据包封装的

■用来发送错误和控制消息

2. ICMP协议的封装

ICMP属于网络层协议(也有高于网络层协议的说法),因为传输ICMP信息时,要先封装网络层的IP报头,再交给数据链路层,即ICMP报文对应IP层的数据,如下图所示。

3. ICMP的基本使用

在检查网络连通性时,ping命令是用的最多的。当我们ping一台主机时,本地计算机发出的就是一个典型的ICMP数据包,用来测试两台主机能否顺利连通。ping命令能够检测两台设备之间的双向连通性,即数据包能够到达对端,并能够返回。

windows系统中ping命令常用选项∶(默认ping4个包)

-t 参数会一直不停的执行ping

-a 参数可以显示主机名称排

-l参数可以设定ping包的大小(小写L)

-n 指定发送包的个数

-S 指定源IP去ping

在Linux系统下为∶

-s 参数可以设定ping包的大小

-c 指定发送包的个数

-I 指定源IP去ping(大写i)

跟踪路由路径命令∶

WIN∶tracert IP/域名

Linux∶traceroute IP/域名

小结:

1)IP数据包的格式

2)ICMP的作用

3)ping命令的使用方法

三、广播、广播域以及ARP协议

1. 广播与广播域

2. ARP协议

2.1. ARP概述

在局域网中,交换机通过MAC地址进行通信,要获得目的主机的MAC地址就需要使用ARP协议将目的IP地址解析成目的MAC地址。所以,ARP(Address Resolution Protocol,地址解析协议)的基本功能是负责将一个已知的IP地址解析成MAC地址,以便在交换机上通过MAC地址进行通信。

2.2. ARP的原理

如上图:

  1. PC1想发送数据给PC2,会先检查自己的ARP缓存表。

  2. 如果发现要查找的MAC地址不在表中,就会发送一个ARP请求广播,用于发现目的地的 MAC地址。

ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的IP地址和目的MAC地址(此时为广播MAC地址FF-FF-FF-FF-FF-FF)。

  1. 交换机收到广播后做泛洪处理,除主机1外所有主机收到ARP请求消息,PC2以单播方式发送ARP应答,并在自己的ARP表中缓存PC1的IP地址和 MAC 地址的对应关系,而其他主机则丢弃这个ARP请求消息。

  2. PC1在自己的 ARP表中添加 PC2的 IP地址和 MAC地址的对应关系,以单播方式与PC2通信。

2.3. ARP的相关命令

2.3.1 windows系统中ARP命令∶

arp -a 查看ARP缓存

arp -d [IP] 清除ARP缓存

arp -s IP MAC ARP静态绑定

如提示ARP项添加失败,解决方案∶

a、用管理员模式∶电脑左下角"开始"按钮右键,点击"Windows PowerShell(管理员)(A)"或者进入C盘windows\system32文件夹找到cmd.exe,右键"以管理员身份运行"再执行arp -s命令

b、(1)netsh interface ipv4 show neighbors 或者netsh i i show in<查看网卡接口序号/Idx>

(2)netsh interface ipv4 set neighbors <接口序号>

解除静态绑定

netsh -c i i delete neighbors ‘Idx’

动态学习到的ARP的老化时间是120s,并且静态绑定的ARP条目在计算机关机或重启后会消失。

2.3.2 华为系统中的ARP命令

[Huawei]dis mac-address 查看mac 地址信息

[Huawei]arp static 绑定ARP

[Huawei]undo arp static 解绑定

< Huawei > reset arp all 清除mac地址表

2.4 ARP攻击与ARP欺骗的原理

一般情况下,ARP攻击的主要目的是使网络无法正常通信,主要包括以下两种攻击行为:

1)攻击主机制造假的ARP应答,并发送给局域网中除被攻击主机之外的所有主机。ARP应答中包含被攻击主机的IP地址和虚假的MAC地址。

2)攻击主机制造假的 ARP应答,并发送给被攻击主机。ARP应答中包含除被攻击主机之外的所有主机的IP地址和虚假的MAC地址。

执行上述 ARP攻击行为中的任一种,就可以实现被攻击主机和其他主机无法通信,如下图所示。例如,如果希望被攻击主机无法访问互联网,就需要向网关发送或向被攻击主机发送虚假的ARP应答。当网关接收到虚假的ARP应答更新 ARP条目后,网关再发送数据给PC1时,就会发送到虚假的MAC地址,从而导致通信故障的发生。

ARP攻击原理:

ARP欺骗原理:

一般情况下,ARP欺骗并不会使网络无法正常通信,而是通过冒充网关或其他主机使到达网关或主机的流量通过攻击主机进行转发。通过转发流量可以对流量进行控制和查看,从而可以控制流量或得到机密信息。

ARP欺骗发送ARP应答给局域网中其他主机,其中包含网关的IP地址和进行ARP欺骗的主机MAC地址;并且也发送ARP应答给网关,其中包含局域网中所有主机的IP地址和进行 ARP欺骗的主机MAC地址(有的软件只发送ARP应答给局域网中的其他主机,并不发送ARP应答欺骗网关)。当局域网中主机和网关收到ARP应答更新 ARP表后,主机和网关之间的流量就需要通过攻击主机进行转发,如下图图1所示。冒充主机的过程和冒充网关相同,如下图图2所示。


IP数据包、ICMP协议以及ARP协议简单介绍相关推荐

  1. TCP/IP数据包结构具体解释

    [关键词] TCP IP 数据包 结构 具体解释 网络 协议 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解 网络数据包的结构, ...

  2. IP数据包格式(ICMP协议与ARP协议)

    这里写目录标题 IP数据包格式 网络层的功能 IP数据包格式 ICMP协议 ping 广播域 ARP协议(地址解析协议) 无故ARP ARP工作原理: ARP报文 查看arp缓存表(静态arp和动态a ...

  3. 了解TCP协议,IP协议、ICMP协议和ARP协议(TCP报文,TCP的分成管理,TCP与UDP,TCP的三次握手四次挥手原理)

    文章目录 了解TCP/IP协议 TCP报文格式 TCP/IP 的分层管理 TCP与UDP TCP的三次握手与四次挥手 为什么要三次握手? 为什么要四次挥手? IP数据包格式 ICMP协议 ICMP协议 ...

  4. 交换机与IP数据报、ICMP协议、ARP协议

    文章目录 1 交换机 1.1 基本的架构图 1.2 交换机的工作原理 1.3 交换机以太网接口的工作模式 1.4 交换机使用命令行进行配置管理 2 IP数据报格式 3 ICMP协议 4 ARP协议 4 ...

  5. 计算机网络协议——OSI、TCP数据、IP数据包、Ethernet 数据包

    计算机网络 欢迎关注公众号二月鸟的博客. 1.协议体系介绍 1.1 五层协议 应用层 :为特定应用程序提供数据传输服务,例如 HTTP.DNS 等.数据单位为报文. 传输层 :为进程提供通用数据传输服 ...

  6. 网络层协议详解(主要是IP协议、ICMP协议和ARP协议)

    网络层协议详解(主要是IP协议.ICMP协议和ARP协议) 一.网络层的功能 定义了基于IP协议的逻辑地址: 连接不同的媒介类型: 选择数据通过网络的最佳路径. 二.IP数据包格式 第一层 版本:该字 ...

  7. 网络层协议详解(IP协议、ICMP协议和ARP协议)

    这里写目录标题 一.网络层的功能 二.IP数据包格式 三.ICMP协议 四.ARP协议 一.网络层的功能 定义了基于IP协议的逻辑地址: 连接不同的媒介类型: 选择数据通过网络的最佳路径. 二.IP数 ...

  8. IP协议 (通俗易懂),IP协议的主要功能及实现原理,IP地址分类,IP数据包分片,IP数据报格式。

    「作者主页」:士别三日wyx 「作者简介」:CSDN top100.阿里云博客专家.华为云享专家.网络安全领域优质创作者 「专栏简介」:此文章已录入专栏<计算机网络零基础快速入门> 本章重 ...

  9. IP协议及IP数据包详解

    本文转自至:https://blog.csdn.net/super_yc/article/details/72290931 回忆一下网络层的主要功能:通过TCP或者UDP协议绘制网络地图,数据包选取合 ...

  10. IP协议,ARP协议

    IP协议,ARP协议 这两个协议处于同一层,ARP协议用来找到目的主机以太网卡的mac地址,IP承载发送的信息.链路层从IP得到要传输的数据,从ARP得到要传输的数据的信息. IP协议是TCP/IP协 ...

最新文章

  1. pyqt5 qgridlayout获取元素位置
  2. 8、jeecg 笔记之 自定义word 模板导出(一)
  3. 江苏计算机一级怎么自学,江苏计算机一级自学教程推荐:计算机基础及MS Office应用上机指导(2018年版)...
  4. html的table属性笔记
  5. idea64.exe.vmoptions 参数意义
  6. 深度学习中的激活函数
  7. php免安装配置方法,mysql免安装版配置步骤详解
  8. mzy,struts学习(二):struts.xml的配置
  9. aspcms转php,aspcms转phpcms方法
  10. tomcat 8.5.31启动报错:org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLD
  11. 制作Linux下程序一键安装包
  12. iApp特殊篇-自定义app图标
  13. StringTokenizer类的用法
  14. involution理解
  15. LeetCode第258场周赛
  16. phpgif图片包_php实现处理动态GIF图片和GIF动画的
  17. 区块链技术与其在旅游行业的应用
  18. [系统资源攻略]IO第二篇
  19. [ISUX转译]iOS 8人机界面指南(一):UI设计基础
  20. Java -mail 退信代码说明

热门文章

  1. unity粒子特效附上贴图后播放动画
  2. qt中将数据存入文档再读出------------ writeRawData 与readRawData成对使用
  3. 带你认识Oracle索引类型(全面总结)
  4. d3js精通教程_d3js从基础到精通第二部分
  5. mysql和oracle的字符串拼接_Oracle和Mysql中的字符串的拼接
  6. jsp java语法_JSP 语法 | 菜鸟教程
  7. Java:Eclipse下载安装教程,以及Eclipse 安装汉化包的方法
  8. 计算机网络 中国大学MOOC 哈尔滨工业大学 习题答案
  9. 2013年全国天线年会参展商名录及观展指南
  10. 个人收款解决方案之三方聚合收款方案