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

目录

一、网络层的功能

二、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 地址,单播发送,直到目的地。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在线网页生成工具GrapesJS

项目地址 https://github.com/GrapesJS/grapesjshttps://github.com/GrapesJS/grapesjs 项目简述 这是一个基于node.js的在线网页生成项目&#xff0c;对简化开发有很大的帮助。 主要使用的语言如下&#xff1a; 编辑页面如下&#xff1a; 使用也很简洁 具体可以看下项目。…

HNU计算机视觉作业一

前言 选修的是蔡mj老师的计算机视觉&#xff0c;上课还是不错的&#xff0c;但是OpenCV可能需要自己学才能完整把作业写出来。由于没有认真学&#xff0c;这门课最后混了80多分&#xff0c;所以下面作业解题过程均为自己写的&#xff0c;并不是标准答案&#xff0c;仅供参考 …

“HALCON error #2454:HALCON handle was already cleared in operator set_draw“

分析&#xff1a;错误提示是窗口句柄已经被删除&#xff0c;这是因为前边的一句 HOperatorSet.CloseWindow(hWindowControl1.HalconWindow); 关掉了窗口&#xff0c;屏蔽或删除即可。

在过去的12个月里生成了2亿页的PDF,并识别了31万分钟的音频

在过去的12个月里&#xff0c;生成了2亿页的PDF&#xff0c;并识别了31万分钟的音频。这个项目已经上线了3年&#xff0c;目前有接近400家的医院和法庭接入了这个产品。目前在美国、澳大利亚、印度有多个数据中心。整个产品线有接近1500人的服务团队。

分类预测 | GASF-CNN格拉姆角场-卷积神经网络的数据分类预测

分类预测 | GASF-CNN格拉姆角场-卷积神经网络的数据分类预测 目录 分类预测 | GASF-CNN格拉姆角场-卷积神经网络的数据分类预测分类效果基本描述模型描述程序设计参考资料 分类效果 基本描述 1.GASF-CNN格拉姆角场-卷积神经网络的数据分类预测&#xff08;完整源码和数据) 2.自…

No CUDA GPUs are available

文章目录 前言尝试方法一、尝试方法一二、尝试方法二 总结 前言 之前用服务器跑的时候&#xff0c;发现是可以跑的。但当有其他人一同使用的时候&#xff0c;就会抛出&#xff1a;No CUDA GPUs are available&#xff0c;这个时候我尝试了以下两种方式解决&#xff0c;后面终于…

移动距离

蓝桥杯其他真题点这里&#x1f448; //偶数行需要反转&#xff0c;判断行数时,最后一个需要特判,可以用向上取整 //也可以把传入的值减一,下标从0开始 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class Main{static…

Zabbix监控腾讯云VPC

一、简介 私有网络&#xff08;Virtual Private Cloud&#xff0c;VPC&#xff09;是腾讯云上一块由用户自定义的逻辑隔离网络空间&#xff0c;为云服务器、云数据库等资源提供安全可控的网络环境。通过构建逻辑隔离的、用户自定义配置的网络空间&#xff0c;用户能够提升其云…

坚鹏:兴业银行EAST5.0政策解读及数据质量提升方案培训

兴业银行股份有限公司&#xff08;简称“兴业银行”&#xff09;成立于1988年8月&#xff0c;2022年总资产9.27万亿元&#xff0c;是经国务院、中国人民银行批准成立的首批股份制商业银行之一&#xff0c;总行设在福州市。现已发展成为横跨境内外&#xff0c;线上线下结合&…

飞天使-linux操作的一些技巧与知识点2

TCP 的三次握手 第一次&#xff0c;客户端与服务端建立链接&#xff0c;需要发送请求连接的消息 第二次&#xff0c;服务端接口到数据后&#xff0c;返回一个确认的操作*&#xff08;至此客户端和服务端链路建立成功&#xff09; 第三次&#xff0c;服务端还需要发送要与客户端…

网络入门---网络编程初步认识和实践(使用udp协议)

目录标题 前言准备工作udpserver.hpp成员变量构造函数初始化函数(socket,bind)start函数(recvfrom) udpServer.ccudpClient.hpp构造函数初始化函数run函数(sendto) udpClient.cc测试 前言 在上一篇文章中我们初步的认识了端口号的作用&#xff0c;ip地址和MAC地址在网络通信时…

【记忆】施密特正交化

图片源自https://www.zhihu.com/question/485986805

学员自创“编程羔手”,作为新手来看待攻城狮,程序猿,码农,码奴,码畜...

在编程的世界里&#xff0c;我们就是那些编程羔手&#xff0c;如同懵懂的羔羊一样&#xff0c;刚刚踏入代码的草原。我们是攻城狮的侄子&#xff0c;程序猿的徒弟&#xff0c;码农的学徒&#xff0c;尚未尝过码奴的辛酸&#xff0c;更没有领略过码畜的无奈。我们是那些初出茅庐…

idea import 不让打包时自动带*

场景 因为多人开发&#xff0c;合代码时经常发现因自动import带*了&#xff0c;导致各种问题。 解决

视觉检测系统在半导体行业的应用

一、半导体产业链概述 半导体产业链是现代电子工业的核心组成部分&#xff0c;涵盖了从原材料到最终产品的整个生产过程。这个产业链主要分为以下几个环节&#xff1a; 1.原材料供应&#xff1a;半导体行业的基石是半导体材料&#xff0c;如硅片、化合物半导体等。这些材料需要…

EP15:动态内存管理概述(c语言)malloc,calloc,realloc函数的介绍使用及柔性数组的介绍

如果学习方向是c方向那么c语言有三个板块的知识是非常重要的. 1:指针 2:结构体 3;动态内存管理. 序言:在c语言中,什么是动态内存 C语言中的动态内存是指在程序运行时&#xff0c;根据需要动态地分配内存空间的一种内存管理方式。与静态内存相比&#xff0c;动态内存的大小和生…

详细了解STM32----GPIO

提示&#xff1a;永远支持免费开源知识文档&#xff0c;喜欢的点个关注吧&#xff01;谢谢&#xff01; 文章目录 一、什么是GPIO&#xff1f;二、GPIO基本结构三、GPIO的输入输出模式1、推挽输出2、开漏输出3、复用推挽4、复用开漏1、浮空输入2、上拉输入&#xff13;、下拉输…

大模型对数据分布变化的鲁棒性研究综述

摘要&#xff1a; 标准机器学习的一个主要限制是它产生的模型对分布变化不鲁棒&#xff0c;其中训练分布与测试分布不匹配&#xff08;对于下游任务&#xff09;。现有的工作表明&#xff0c;调整在广泛的未标记数据上训练的基础模型可以提高适应模型在各种变化中的鲁棒性。这为…

代码序随想录二刷 |二叉树 | 二叉树的层序遍历II

代码序随想录二刷 &#xff5c;二叉树 &#xff5c; 二叉树的层序遍历II 题目描述解题思路代码实现 题目描述 107.二叉树的层序遍历II 给你二叉树的根节点 root &#xff0c;返回其节点值 自底向上的层序遍历 。 &#xff08;即按从叶子节点所在层到根节点所在的层&#xff0…