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

一、网络层的功能

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

连接不同的媒介类型;

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

二、IP数据包格式

第一层

版本:该字段包含的是IP的版本号,4比特。目前IP的版本为4(即IPv4)。

首部长度:该字段用于表示IP数据包头长度,4比特。IP数据包头最短为20字节,但是其长度是可变的,具体长度取决于可选字段的长度。

优先级与服务类型:该字段用于表示数据包的优先级和服务类型,8比特。用来区分哪些数据包优先级高和哪些数据优先级低。例:同时迅雷下载和聊QQ,其中QQ的优先级就比迅雷下载的优先级高,否则就需要等待迅雷下载完毕才能进行QQ聊天。

总长度:该字段用以指示整个IP数据包的长度,16比特。最长为65535(2^16-1)字节,包括包头和数据。

第二层 上层的数据到IP层会被分片

标识符:该字段用于表示IP数据包的标识符,16比特。当IP对上层数据分片时,它将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误的重组。标识符字段用于标识一个数据包,以便接收节点可以重组被分片的数据包。

标志:标志字段,3比特。标志和分片一起被用来传递信息。例如,当数据包从一个以太网发送到另一个以太网时,指示对当前的包不能进行分片或者一个包被分片后指示在一系列的分片中最后一个分片是否已发出。

段偏移量:该字段用于表示段偏移量,13比特。段偏移量中包含的信息是在一个分片序列中如何将分片重新连接起来。

第三层

TTL:Time to live 该字段用于表示IP数据包的生命周期,8比特。该字段包含的信息可以防止一个数据包在网络中无限循环的转发下去。即防止路由环路。一个数据包经过每一个路由器,TTL将减去1。

协议号:协议字段,8比特。该字段用以指示在IP数据包中封装的是哪一个协议,是TCP还是UDP,TCP的协议号为6,UDP的协议号为17.

首部校验和:该字段用于表示校验和,16比特。校验和是16位的错误检测字段。目的主机和网络中的每个网关都要重新计算包头的校验和,就如同源主机做的一样。如果数据包没有被改动过,两个计算结果应该是一样的。

第四层

源IP地址:该字段用于表示数据包的源地址,32比特。这是一个网络地址,指的是发送该数据包设备的网络地址。

第五层

目标IP地址:该字段用于表示数据包的目的地址,32比特。这也是一个网络地址,但指的是接收节点的网络地址。

三、ICMP协议

3.1 ICMP协议概述及功能

ICMP协议(Internet Control Message Protocol)的全称是“Internet控制消息协议”,主要用于在IP网络中发送控制消息,提供在通信环境中可能发生的各种问题的反馈。

ICMP采取“错误侦测与回馈机制”,通过IP数据包封装,用来发送错误和控制消息。

ICMP协议号是1

3.2ICMP协议的封装

传输ICMP信息时,要先封装网络层的IP报头,再交给数据链路层,即ICMP报文对应IP层的数据。

3.3ICMP协议的基本使用

在网络中,ICMP协议的使用是靠各种命令来实现的。以ping为例。

3.3.1ping命令的返回信息

1.不能建立连接的应答:

2.连接超时的应答

PS:如果目标计算机启用了防火墙的相关设置,即使网络正常也可能会返回“请求超时”信息。

3.3.2ping命令的常用参数

1.-a 可以显示对方主机名称


2.-l 可以设定ping包的大小。一般情况下,ping包的大小为32字节。

3.-t 长ping命令

在window系统中,默认情况会发送4个ping包,如果在ping命令后面加上参数“-t”,系统会一直不停的ping下去。按ctrl+c结束。

四、ARP协议

4.1.ARP协议概述

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

ARP实际上是一个广播。
如图为抓包ARP协议示例

4.2.ARP协议工作原理

ARP缓存表:老化时间:120s(绑定的不受老化时间影响)

ARP缓存表是主机存储在内存中的一个IP地址和MAC地址对应表。在windows系统中可以使用命令“arp-a”来显示ARP缓存表。

如果要查找的MAC地址不再表中,ARP会发送一个广播,从而找到目的地的MAC地址。

ARP会将收到的数据帧中IP地址和MAC地址添加到自己的ARP缓存表中。来者不拒!

4.3ARP协议工作过程

1.PC1想要发送数据给PC2,查看缓存表里没有PC2的MAC地址
2.PC1发送(需要10.0.0.2的MAC地址)的广播。
3.所有主机收到ARP请求的广播,PC2回复ARP应答 ,其他主机丢弃
4.PC1将PC2的MAC地址保存到缓存表中,这时就可以和PC2发送数据了。

五、ARP协议攻击原理

5.1ARP欺骗原理

ARP协议实际上是一种广播,广播是请求+回应,在回应过程中可以出现bug,可以主动回应欺骗其他主机或者网关等。

5.2主机如何绑定ARP来防止ARP欺骗

如何查找IP的接口号:netsh interface ipv4 show neighbors

格式:netsh interface ipv4 set neighbors 接口号 IP地址 IP地址对应的MAC地址

附:如何解除绑定

格式:netsh -c “i i” delete neighbors idx号 IP地址 IP地址对应的MAC地址

如何查看idx号:netsh i i show in

网络层协议详解(主要是IP协议、ICMP协议和ARP协议)相关推荐

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

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

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

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

  3. TCP/IP协议详解(TCP/IP protocol)

    本文转载自菜鸟教程TCP/IP 教程 TCPIP 教程 TCPIP 介绍 计算机通信协议Computer Communication Protocol 什么是 TCPIP 在 TCPIP 内部 TCP ...

  4. SOME/IP协议详解[7 SOME/IP序列化]

    什么是序列化与反序列化? 序列化是指将数据结构或对象按定义的规则转换成二进制串的过程. 反序列化是指将二进制串依据相同规则重新构建成数据结构或对象的过程. 而本质就是一种编码规范. 在SOME/IP中 ...

  5. Lwip协议详解(基于Lwip 2.1.0)UDP协议(未完待续)

    5.UDP协议 5.1 UDP的原理 UDP属于运输层协议,称为用户数据报协议,是一种无连接.不可靠的传输协议,它只在低级程度上实现了传输功能,UDP只简单地完成数据从一个进程到另一个进程的交付. 它 ...

  6. 《TCP IP协议 详解》思考总结 · 三

    前言 这一篇文章主要围绕了IP协议,ICMP协议和UDP协议展开,希望可以在这里大概做一个总结,将<TCP/IP协议详解 卷一>书中TCP相关章节前面的内容做一个结束,在下一篇文章专心的去 ...

  7. ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御

    ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3  ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...

  8. 传智播客 HTTP协议详解

    ############################################################################### 最近几天的一些学习内容总结,主要是张孝祥 ...

  9. JavaWeb --第三章 HTTP协议详解

    JavaWeb --第三章 HTTP协议详解 Http 什么是HTTP HTTP: 超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常 ...

最新文章

  1. 大学计算机专业全英文论文,5计算机专业 外文文献 英文文献 外文翻译 jsp应用框架 中英对照 大学学位论文.doc...
  2. 聊聊flink的AscendingTimestampExtractor
  3. C++程序的执行过程
  4. java包命名规则名词_java中命名规范
  5. 启动NameNode和DataNode
  6. Html5与CSS3权威指南 百度云下载
  7. idea 批量导入包
  8. Linux下修改时间时区
  9. python机器学习库sklearn——BIRCH聚类
  10. 组态王通过串口服务器通讯smart200_实例讲解通过代码调试串口通讯的方法
  11. srt格式导入pr乱码_字幕文件显示乱码怎么办 网易导出的srt导入pr乱码
  12. Voldemort的FailureDetector设计
  13. WSL2 Ubuntu中apt update命令报错,无法解析域名解决方法
  14. 植物神经紊乱引起的焦虑、烦躁怎么办?
  15. 计算机安全及故障处理大学论文,网络维护中故障点排除分析及处理措施论文
  16. STM32集成开发环境 STM32CubeIDE 安装与配置指南
  17. C++学习记录 实验1 CMatrix类设计与实现
  18. 文件夹加密码的方法有哪些?文件夹加密方法盘点
  19. 38个敏感词_Serverless 实战:3 分钟实现文本敏感词过滤
  20. 通信技术-网络的类别

热门文章

  1. 小视频app源码无障碍服务实现自动跳过APP启动页广告
  2. 【资源共享】CC2541之新手常见问题集
  3. 大数据基础笔记1000条
  4. windows利用msys2安装minGW64
  5. 金龄会2023广东云南两省联动《金龄春晚》即将开幕
  6. 对模拟器虚假设备识别能力提升15%!每日清理大师App集成系统完整性检测
  7. 中国痤疮药品市场现状研究分析与发展前景预测报告(2022)
  8. 手机怎么编辑pdf?这几款工具可以实现
  9. Django框架的简单应用
  10. 数字化时代,医院需要一双火眼金睛