网络基础---网络层详解(图文清晰易懂!!!)

news2024/11/22 22:01:12

目录

一、网络层的功能

二、IP数据包的格式

三、ICMP协议

1.ICMP协议的概念和作用

2.ping命令

2.1 ping 的格式

2.2 ping选项

 2.3 当我们ping不通时,及服务器出现问题,如何排错

2.4 信息传递时出现的问题类型和具体情况 

四、冲突域和广播域

1.冲突网

2.广播网

五、ARP协议--协助分装数据包

1.ARP协议概述和作用

2.ARP协议工作原理

2.1在同一局域网内的MAC寻址

2.2不同局域网内的MAC寻址


一、网络层的功能

  • 定义了基于IP协议的逻辑地址,就是ip地址

  • 连接不同的媒介类型

  • 在网络中选择最佳路径转发数据

二、IP数据包的格式

数据封装的时候在网络层会封装ip地址的头部,形成ip数据包 IP数据包格式(分为20字节的固定部分,表示每个ip数据包必须包含的部分,和40字节的可变长部分。

  • 版本: 你使用的ip协议版本 ,例如是ipv4还是 ipv6
  • 首部长度:IP头部的长度 0000-1111(不包括数据)
  • 优先级与服务器类型:区别数据包的优先处理级别
  • 总长度:整个数据包的长度

----数据的分片及重组

  • 标识符 :确定数据的分片是否来自于同一个文件--一个文件占一个位置
  • 标志 :代表数据过小不需要分片;代表该组最后一个数据包
  • 段偏移量:该数据片离起点的位置坐标

----数据的分片及重组

----mtu 最小数据单元 1500字节 分片/包

  • TTL:生命周期 0-255,经过一个三层设备,就会减一;如果为0,设备会认为该包为无效的数据包就会丢弃。
  1. 二层交换机 不减 TTL
  2. 三层交换机  减   TTL
  • 延伸:
  1. TTL大于等于128 windows系统
  2. TTL小于等于 64 linux系统
  • 协议号:上层协议, icmp 测试协议(三层):1 ,tcp:6, udp:17
  • 首部校验和:只检测ip头部的完整性
  • 源地址:源ip地址,表示发送端的IP地址

  • 目标地址:目标ip地址,表示接收端的IP地址

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

    注:根据实际情况可变长,例如创建时间等 上层数据

三、ICMP协议

1.ICMP协议的概念和作用

  • Internet控制消息协议ICMP (Internet Control Message Protocol)是IP协议的辅助协议
  • ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。
  • icmp作用:检测网络的双向联通性

2.ping命令

Ping是网络设备、Windows、Unix和Linux平台上的一个命令,其实是一个小巧而实用的应用程序,该应用基于ICMP协议。 Ping常用于探测到达目的节点的网络可达性。

2.1 ping 的格式

ping   空格   IP地址   [选项]

-l   指定数据包的大小

2.2 ping选项

显示自己 IP地址   ipconfig
ping    --help     显示帮助命令
-t                       长ping
-l  size               发送缓冲区大小。
-w                      超时等待时间
-n                      指定ping 几次    
   

ping   -t      ip地址        长ping                      ctrl+c  停止

ping   -l      指定包的大小(1600 2000)      ip地址

ping   -w    指定等待时间(默认是秒:2 )  ip 地址

ping   -n     指定的次数(5) ip 地址

tip:
ping通一定通
ping不通不一定网络不通

----可能问题出在icmp ,禁用了 icmp 协议

 2.3 当我们ping不通时,及服务器出现问题,如何排错

  1. ping 自己 127.0.0.1 硬件

  2. 看双方地址是否有问题

  3. 看网关是否有问题

  4. 防火墙策略是否有问题( 配合 找网络工程师)

2.4 信息传递时出现的问题类型和具体情况 

四、冲突域和广播域

1.冲突网

冲突域是一个以太网术语,指的是这样一种网络情形,即网段上的一台设备发送分组时,该物理网段上的其他所有设备都必须债昕它。这很糟糕,因为如果同一个物理网段中的两台设备同时传输数据,将发生冲突(即两台设备的数字信号将在线路上相互干扰),导致设备必须在以后重传数据。冲突对网络性能有严重的负面影响,因此绝对要避免冲突。前面描述的情形通常出现在集线器环境中,在这种环境中,所有主机都连接到一个集线器,它们组成一个冲突域和一个广播域。

总结:

冲突域:两台设备同时发送消息时,互相干扰,那他们就处于同一个冲突域

2.广播网

广播域的书面定义如下:广播域指的是网段中的一组设备,它们侦昕在该网段上发送的所有广播。广播域的边界通常为诸如交换机和路由器等物理介质,但广播域也可能是一个逻辑网段,其中每台主机都可通过数据链路层(硬件地址)广播访问其他所有主机。介绍广播域的基本概念后,下面来看看半双工以太网使用的一种冲突检测机制。

总结---广播域:

  • 一台机器发送广播,能收到消息的机器都是在同一广播域,
  •  交换机的所有端口默认在同一个广播域里,
  • 路由器的 每一个端口都是一个独立的 广播域

五、ARP协议--协助分装数据包

1.ARP协议概述和作用

1.通过 ip地址 找到 mac地址 (将一个已知的ip地址转换成 mac地址)
2.检测地址是否冲突
在配置好ip地址的一瞬间,arp协议会发送一个广播, 检测此地址是否被使用
源地址: 192.168.1.1
目的地址: 192.168.1.1

2.ARP协议工作原理

ARP 协议工作时有一个大前提,那就是 ARP 表。

在一个局域网内,每个网络设备都自己维护了一个 ARP 表,ARP 表记录了某些其他网络设备的 IP 地址-MAC 地址映射关系,该映射关系以 <IP, MAC, TTL> 三元组的形式存储。

2.1在同一局域网内的MAC寻址

假设当前有如下场景:IP 地址为192.168.10.11的主机 A,想要给同一局域网内的 IP 地址为192.168.10.14主机 D,发送 IP 数据报文。

首先。我们要清楚的是:

当主机发送 IP 数据报文时(网络层),仅知道目的地的 IP 地址,并不清楚目的地的 MAC 地址,而 ARP 协议就是解决这一问题的。

为了达成这一目标,主机 A 将不得不通过 ARP 协议来获取主机 D 的 MAC 地址,并将 IP 报文封装成链路层帧,发送到下一跳上。在该局域网内,关于此将按照时间顺序,依次发生如下事件:

1、主机 A 检索自己的 ARP 表,发现 ARP 表中并无主机 D 的 IP 地址对应的映射条目,也就无从知道主机 D 的 MAC 地址。主机 A 将构造一个 ARP 查询分组,并将其广播到所在的局域网中。

  • ARP 分组是一种特殊报文,ARP 分组有两类,一种是查询分组,另一种是响应分组,它们具有相同的格式,均包含了发送和接收的 IP 地址、发送和接收的 MAC 地址。当然了,查询分组中,发送的 IP 地址,即为主机 A 的 IP 地址,接收的 IP 地址即为主机D 的 IP 地址,发送的 MAC 地址也是主机 A 的 MAC 地址,但接收的 MAC 地址绝不会是主机 D的 MAC 地址(这是我们要查询的,因为A不知到D的MAC地址),而是一个特殊值——FF-FF-FF-FF-FF-FF(广播地址)。也就是说,查询分组将广播给该局域网内的所有设备

2、主机 A 构造的查询分组将在该局域网内广播,理论上,每一个设备都会收到该分组,并检查查询分组的接收 IP 地址是否为自己的 IP 地址,如果是,说明查询分组已经到达了主机 D,否则,该查询分组对当前设备无效,丢弃之。

3、主机 D 收到了查询分组之后,验证是对自己的问询,接着构造一个 ARP 响应分组,该分组的目的地只有一个——主机 A,发送给主机 A。同时,主机D提取查询分组中的 IP 地址和 MAC 地址信息,在自己的 ARP 表中构造一条主机 A 的 IP-MAC 映射记录。

  • ARP 响应分组具有和 ARP 查询分组相同的构造,不同的是,发送和接受的 IP 地址恰恰相反,发送的 MAC 地址为发送者本身,目标 MAC 地址为查询分组的发送者,也就是说,ARP 响应分组只有一个目的地,而非广播

4、主机 A 终将收到主机 B 的响应分组,提取出该分组中的 IP 地址和 MAC 地址后,构造映射信息,加入到自己的 ARP 表中。

2.2不同局域网内的MAC寻址

更复杂的情况是,发送主机 A 和接收主机 B 不在同一个子网中。

假设一个一般场景,两台主机所在的子网由一台路由器联通。而且路由器的多个接口都各自维护一个 ARP 表,而非一个路由器只维护一个 ARP 表。

接下来,回顾同一子网内的 MAC 寻址,如果主机 A 发送一个广播问询分组,那么 A 所在子网内的所有设备(接口)都将不会捕获该分组,因为该分组的目的 IP 地址在另一个子网中,本子网内不会有设备成功接收。

那么,主机 A 应该发送怎样的查询分组呢?整个过程按照时间顺序发生的事件如下:

1、主机 A 查询 ARP 表,期望寻找到目标路由器的本子网接口的 MAC 地址。

  • 目标路由器指的是,根据目的主机 B 的 IP 地址,分析出 B 所在的子网,能够把报文转发到 B 所在子网的那个路由器。

1.1主机 A 未能找到目标路由器的本子网接口的 MAC 地址,将采用 ARP 协议,问询到该 MAC 地址,由于目标接口与主机 A 在同一个子网内,该过程与同一局域网内的 MAC 寻址相同。

2、主机 A 获取到目标接口的 MAC 地址,先构造 IP 数据报,其中源 IP 是 A 的 IP 地址,目的 IP 地址是 B 的 IP 地址,再构造链路层帧,其中源 MAC 地址是 A 的 MAC 地址,目的 MAC 地址是本子网内与路由器连接的接口的 MAC 地址。主机 A 将把这个链路层帧,以单播的方式,发送给目标接口。

3、目标接口接收到了主机 A 发过来的链路层帧,解析,根据目的 IP 地址,查询转发表,将该 IP 数据报转发到与主机 B 所在子网相连的接口上。到此,该帧已经从主机 A 所在的子网,转移到了主机 B 所在的子网了。

4、路由器接口查询 ARP 表,期望寻找到主机 B 的 MAC 地址。
路由器接口如未能找到主机 B 的 MAC 地址,将采用 ARP 协议,广播问询,单播响应,获取到主机 B 的 MAC 地址。

5、路由器接口将对 IP 数据报重新封装成链路层帧,目标 MAC 地址为主机 B 的 MAC 地址,单播发送,直到目的地。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1297559.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32--GPIO点亮LED灯(手把手,超详细)

写在前面&#xff1a;在前面的学习中&#xff0c;我们学习了STM32的编译环境&#xff08;MDK&#xff09;、时钟树以及GPIO的8种工作模式&#xff1b;这节我们学习正式入门STM32---点亮第一个LED灯&#xff1b;即利用GPIO进行电灯&#xff0c;尽管是一个十分简单的实现&#xf…

2020年第九届数学建模国际赛小美赛A题自由泳解题全过程文档及程序

2020年第九届数学建模国际赛小美赛 A题 自由泳 原题再现&#xff1a; 在所有常见的游泳泳姿中&#xff0c;哪一种最快&#xff1f;哪个冲程推力最大&#xff1f;在自由泳项目中&#xff0c;游泳者可以选择他们的泳姿&#xff0c;他们通常选择前面的爬行。然而&#xff0c;游泳…

知识付费商城7.0.3开心学习版,新增供货商功能

彩虹知识付费商城7.0.3小森升级版新增供货商开心学习版。仅供开发参考&#xff0c;切勿正式商用。 1.新增邮件提醒功能&#xff0c;支持给用户发订单、结算等邮件通知 2.支持给管理员发送提现、域名审核等邮件通知 3.支持设置手续费最低扣除金额 4.修复了其他一些已知问题 …

激光雷达标定板提高扫地机器人感知环境能力和清洁效率

智能扫地机器人的激光雷达标定板是一种用于校准激光雷达的设备&#xff0c;它通常由不同反射率的涂料涂覆在板面上&#xff0c;用于接收激光雷达发出的激光束并将其反射回来&#xff0c;从而帮助校准激光雷达的测量参数。在自动驾驶和机器人领域&#xff0c;激光雷达和相机的联…

HDFS Java API 基本操作实验

文章目录 一、实验环境二、实验内容&#xff08;一&#xff09;数据准备&#xff08;二&#xff09;编程环境准备&#xff08;三&#xff09;使用Hadoop API操作HDFS文件系统&#xff08;四&#xff09;使用Hadoop API Java IO流操作HDFS文件系统 三、实验步骤&#xff08;一&…

OpenCL学习笔记(二)手动编译开发库(win10+vs2019)

前言 有时需求比较特别&#xff0c;可能需要重新编译opencl的sdk库。本文档简单记录下win10下&#xff0c;使用vs2019编译的过程&#xff0c;有需要的小伙伴可以参考下 一、获取源码 项目地址&#xff1a;GitHub - KhronosGroup/OpenCL-SDK: OpenCL SDK 可以直接使用git命令…

【剑指offer|图解|数组】寻找文件副本 + 螺旋遍历二维数组

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;数据结构、剑指offer每日一练 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 一. ⛳️寻找文件副本(题目难度&#xff1a;简单)1.1 题目1.2 示例1.3 限制1.4 解题思路一c代…

2023年第一次系统架构师备考经历

12月7日成绩已经出来&#xff0c;果然最担心的案例分析没有过&#xff0c;才考了40分&#xff0c;还差5分&#xff0c;我就可以一次拿下证书&#xff0c;好可惜啊&#xff0c;今年的题出的有点偏&#xff0c;大数据居然成为必答题&#xff0c;平常是搞Java&#xff0c;大数据方…

做抖店代发,新手如何定类目?五大类目优缺点分析!

我是电商珠珠 类目是店铺的方向&#xff0c;只有将店铺的定位确定好&#xff0c;才能超越大部分的同行。 我经常跟我的学生讲&#xff0c;选择类目的时候不能瞎选&#xff0c;要学会去分析市场&#xff0c;由于大部分的学员前期都是新手小白&#xff0c;所以我们这边会负责给…

[Linux] 用LNMP网站框架搭建论坛

一、nginx在其中工作原理 原理&#xff1a; php-fpm.conf是控制php-fpm守护进程 它是php.ini是一个php解析器 工作过程&#xff1a; 1.当客户端通过域名请求访问时&#xff0c;Nginx会找到对应的虚拟主机 2. Nginx将确定请求。 对于静态请求&#xff0c;Nginx会自行处理…

听GPT 讲Rust源代码--src/tools(9)

File: rust/src/tools/rust-analyzer/crates/ide-assists/src/handlers/apply_demorgan.rs 在Rust源代码中&#xff0c;apply_demorgan.rs文件位于rust-analyzer工具的ide-assists库中&#xff0c;其作用是实现一个辅助函数&#xff0c;用于在代码中应用De Morgan定律的变换。 …

第二十一章网络通信总结

网络程序设计基础 局域网与互联网 为了实现两台计算机的通信&#xff0c;必须用一个网络线路连接两台计算机。如下图所示 网络协议 1.IP协议 IP是Internet Protocol的简称&#xff0c;是一种网络协议。Internet 网络采用的协议是TCP/IP协议&#xff0c;其全称是Transmissi…

SPRD Android 13 下拉状态栏菜单添加静音快捷键简单记录

SPRD Android 13 下拉状态栏菜单添加静音快捷键简单记录 需要修改文件具体修改补丁吐槽需要修改文件 frameworks/base/packages/SystemUI/res/values/config.xml frameworks/base/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java frameworks/base…

Java入门 EditPlus的安装与配置讲解

写Java程序不建议使用EditPlus&#xff0c;首选idea社区版&#xff0c;其次是vscode&#xff0c; 然后是eclipse 。editplus说实话排不上号。 但既然小伙伴想了解一下怎么配置&#xff0c;这里就简单说一下。 下载 首先是jdk&#xff0c;jdk是Java开发和运行的基础&#xff…

【MySQL】:库的操作

库的操作 一.创建和删除数据库二.认识编码三.库的查改1.查找2.修改 四.库的备份和恢复1.备份2.还原 一.创建和删除数据库 说明&#xff1a; 1.大写的表示关键字 2.[] 是可选项 3.CHARACTER SET: 指定数据库采用的字符集 4.COLLATE: 指定数据库字符集的校验规则首先进入MySQL 创…

Verilog基础:时序调度中的竞争(三)(#0的使用)

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 作为一个硬件描述语言&#xff0c;Verilog HDL常常需要使用语句描述并行执行的电路&#xff0c;但其实在仿真器的底层&#xff0c;这些并行执行的语句是有先后顺…

IDEA构建springBoot新项目时JDK只有17和21,无法选择JDK8解决方案

今天创建springboot新项目时&#xff0c;发现IDEA里JDK选项只有17和21&#xff0c;无法选择本机的JDK8&#xff0c;网上查资料后发现是springboot2.7于11.24号后停止维护&#xff0c;基于2.7和java8的spring Initializ官方不再维护&#xff0c;解决方案是在server URL栏&#x…

【WebRTC】【Unity】Unity Web RTC1-Unity中简单实现远程画面

【项目资源下载】 本篇配套直接打开可用的项目包地址,欢迎下载: https://download.csdn.net/download/weixin_41697242/88612084 【背景】 想要在Unity中实现实时远程桌面,找到了Render Streaming这个手段,本篇介绍相应的使用方法和实例。 【要求】 平台:基本常用平台…

【数据结构和算法】--- 栈

目录 栈的概念及结构栈的实现初始化栈入栈出栈其他一些栈函数 小结栈相关的题目 栈的概念及结构 栈是一种特殊的线性表。相比于链表和顺序表&#xff0c;栈只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的…

机器人学习目标

学习目标&#xff1a; 若干年后&#xff0c;我们都将化为尘土&#xff0c;无人铭记我们的存在。那么&#xff0c;何不趁现在&#xff0c;尽己所能&#xff0c;在这个世界上留下一些痕迹&#xff0c;让未来的时光里&#xff0c;仍有人能感知到我们的存在。 机器人协会每届每个阶…