【计算机网络】网络层总结

news2024/11/16 21:43:49

目录

知识梗概

IP地址

子网划分

IP包头格式

路由

网络层协议

ARP病毒/ARP欺骗


知识梗概

IP地址

IP相关介绍:机器之间需要交流,必须要一个地址才能找到对应的主机,IP地址是主机的一种表示,保证主机之间的正常通信;它是一种网络编码,用来确定网络中的节点;

IPv4:32位,大概42亿个IP地址,随着全球的网民不断飙升,出现了IPv6,IPv6具有128位,可以提供更多的地址。

IP地址的组成:主机部分+网络部分。主机部分和网络部分占的位数不同,分出来ABCDE五类地址:

A类:1~126开头,127开头的地址给本地的loopback(环回)接口使用了,主要用于TCP/IP协议在本机的测试使用;

B类:128~191开头

C类:192~223开头

私有地址

公有ip:在互联网中使用,不可以重复

私有ip:在局域网中使用,可以重复

NAT技术:公司内部网使用私有ip---路由器--->转换成公网ip--->访问互连网(该技术后面会重点说,这里先有个印象,想想大家平时连自己家里的网,IP地址总是192.168什么什么的开头,难道没有一样的嘛?为什么不会冲突?)

子网掩码

用来确定ip的网络地址,也就是这个IP是哪个网段的 ,不同的网段一般不能直接通信,需要通过路由器转发的。通过子网掩码和IP地址,就能算出网段是什么?

32个二进制位:对应ip地址的网络部分用1表示,对应ip地址的主机部分用0表示;

IP地址和子网掩码做逻辑与运算得到网络地址;

所以我们来尝试计算一下对应IP所处的网段地址:

那我们如何查看自己的IP地址呢?

windows:ipconfig /all--查看ip地址、物理地址

windows:nslookup www.qq.com--查看解析域名对应的ip地址

linux:ip route:查看网关和直连路由及其接口

ip add:显示接口名称,MTU,接口状态、ip地址、以太网mac地址等

Linux中还可以使用ifconfig来查看ip以及mac地址

子网划分

子网划分是干什么呢?

大网划为小网,满足不同网络对ip地址的需求,实现网络的层次性;

子网划分不再是有类地址A、B、C类,而是无类地址;

网络部分向主机部分借位,主机部分的能容纳的主机就会变少;

一个子网的有效的ip地址段:去除全0和全1的ip地址

最多借位到/30,此时有效的ip地址是两个;

出现/32,表示一个ip地址是一个网段,这是一个主机路由

IP包头格式

IP包头:前面我们说到,数据在网络层会添加一个IP头部,也就是这里的IP包头:

对IP包头格式的介绍

版本:IPV4或IPV6;

首部长度:ip包头的长度,因为长度可变,因此需要定义;

总长度:IP数据包的总长度;

标识符、标志、偏移量:保证数据包重组时不会出错;

TTL:生命周期字段,经过一个路由器值就-1,为0时,数据包被丢弃。防止一个数据包在网络中无限循环下去;

源IP地址4字节

目的IP地址4字节

可选项:其他东西

路由

路由的原理:跨越从源主机到目的主机的一个互联网络来转发数据包的过程

接下来就要介绍网络层最最最重要的机器--路由器。

路由器是什么?-->能够将数据包转发到正确的目的地,并在转发过程中选择最佳路径的设备;

将一个网段的数据转发到另一个网段,实现跨网段通信;路由器里面存储信息的东西叫路由表,路由表里有很多路由信息,一条路由信息就叫一个路由条目;

路由器工作简单来说就是:收到数据包-->根据目的ip查找路由表-->转发

简单介绍一下路由表的路由类型

提到路由器就不得不提两个重要的协议:ARP协议

1、ARP协议-->地址解析协议,得到IP地址对应的mac地址。在网络层用IP交流,但是数据包到达数据链路层时还是要得到mac地址的,这个时候要用到这个ARP协议拿到对应IP的mac地址,数据才能传输下去。

2、动态路由协议-->

动态路由协议是路由器之间用于交换、计算和维护路由表的协议。它的基本工作原理包括以下四个阶段:

邻居发现阶段:运行了相同动态路由协议的路由器之间,首先需要建立一个用于交换路由的对等点关系,这些路由器又称为邻居路由器。

路由交换阶段:发现邻居后,每个路由器会主动通过广播或单播的方式把自己的路由信息发送给邻居路由器。经过一段时间后,每个建立了对等点关系的路由器都拥有了整网的路由信息。

路由选择阶段:路由器根据收到的路由信息,结合自身的路由算法,选择出到达目标网络的最佳路径,并生成路由表。

维护路由阶段:为了感知突发的网络故障(如设备故障或线路中断等),邻居路由器之间会发送周期性的心跳包。当心跳包超时时,就会认为邻居关系失效,此时路由器需要自动维护路由表的更新,将故障路径移除。

动态路由协议的主要作用包括维护路由信息、建立路由表和决定最佳路由。它的优点在于可以自动适应网络状态的变化,并自动维护路由信息而不需要网络管理员的参与。然而,由于需要相互交换路由信息,动态路由协议会占用一定的网络带宽和系统资源,并且其安全性不如静态路由。

在动态路由协议中,目的网络是否可达取决于网络状态。动态路由协议按照寻址算法的不同,可以分为距离矢量路由协议和链路状态路由协议。距离矢量路由协议采用距离矢量算法,是相邻的路由器之间互相交换整个路由表,并进行矢量的叠加,最后学习到整个路由表。而链路状态路由协议则采用链路状态算法,路由器不是简单的从相邻的路由器学习路由,而是把路由器分成区域,收集区域内的路由信息,生成网络拓扑结构图,从而计算出最佳路径。

OSPF(开放最短路径优先)是一种典型的链路状态路由协议,被广泛应用于企业内部网络、云计算环境、校园网络和互联网接入网络等场景。它支持路由聚合和路由器冗余,提高网络的可伸缩性和可靠性,并可以通过动态地适应网络拓扑的变化,提供灵活的、可扩展的路由服务。同时,OSPF还支持ECMP(等价多路径)负载均衡,从而能够更好地利用多个路径,提高网络的负载能力。

查看路由表的命令

linux : ip route

windows : route print

路由器转发数据包的封装过程

mac地址在局域网中使用,IP地址在整个互联网中使用;

NAT技术:网络地址转换技术,将公网和私网地址进行转换,解决了IPV4地址不足的问题,所有的局域网都可以使用相同的网段IP地址,每个路由器的WAN口具有一个公网IP地址,出去的时候路由器会修改IP包里的源IP为公网IP;

想要知道到达一个指定的地址,比如说要访问www.baidu.com,要经过哪些路由器?

这就涉及到路由追踪的知识:可以使用:tracepath www.baidu.com命令。

通过最多30个跃点追踪,用一个循环,每次TTL+1,最多加到30,能探测到www.baidu.com经过了哪些路由器。

网络层协议

arp协议---->
地直接写协议,主要是在局域网中使用,将已知的IP地址解析为mac地址;

arp缓存表:

arp -n查看缓存表;

arping 192.168.1.1发送广播包得到该IP(在使用的IP)的mac地址;还可以检查一个ip是否有冲突(有相同的IP)

Icmp协议---->
网络控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

Icmp协议没有自己的IP地址,所以要借用IP协议(网际协议)

抓包工具

简单介绍一下,可以下载使用一下,上手比较简单:

ARP病毒/ARP欺骗

相关思维导图可分享!关注后台私

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

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

相关文章

农牧渔农业信息网整站源码优化版

下载地址:农牧渔农业信息网整站源码优化版.zip 适合做农产品、农业物资、农活用人信息平台

记录一次恢复假卡750ti的过程

有一张卡,一直上不了144hz我就很纳闷,下载了一个gpuz查看了一下 了解了一下gf116是550ti或者gts450.我到挺希望他是550ti的。 很坑

【STM32F407+CUBEMX+FreeRTOS+lwIP netconn UDP TCP记录】

STM32F407CUBEMXFreeRTOSlwIP netconn UDP TCP记录 注意UDPUDP1UDP2 TCPTCP clientTCP server图片 注意 1、超时 #include “lwipopts.h” #define LWIP_SO_RCVTIMEO 12、先保证能ping通 3、关于工程创建可参考 【STM32F407CUBEMXFreeRTOSlwIP之UDP记录】 4、…

NLP 笔记:TF-IDF

TF-IDF(Term Frequency-Inverse Document Frequency,词频-逆文档频率)是一种用于信息检索和文本挖掘的统计方法,用来评估一个词在一组文档中的重要性。TF-IDF的基本思想是,如果某个词在一篇文档中出现频率高&#xff0…

使用Python的Tkinter库创建你的第一个桌面应用程序

文章目录 准备工作创建窗口和按钮代码解释运行你的应用程序结论 在本教程中,我们将介绍如何使用Python的Tkinter库创建一个简单的桌面应用程序。我们将会创建一个包含一个按钮的窗口,点击按钮时会在窗口上显示一条消息。 准备工作 首先,确保…

图片懒加载:提升网页性能的秘诀

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Python-Socket编程实现tcp-udp通信

本文章是记录我准备大创项目时学的socket编程的用法,纯属记录生活,没有教学意义,视频我是看b站up主王铭东学的,讲的很详细,我只粗略学了个大概,我想要通过tcp,udp传输yolo目标检测中的物体坐标信…

QT:按钮类控件

文章目录 PushButton快捷键Radio Buttion PushButton 这个类继承自QAbstractButton,是所有按钮的父类 创建一个带有图标的按钮: 假设这个图片是这个 那么我们就可以创建按钮并进行设置了: #include "widget.h" #include "u…

net lambda 、 匿名函数 以及集合(实现IEnumerable的 如数组 、list等)

匿名函数:》》》 Action a1 delegate(int i) { Console.WriteLine(i); }; Lambda:>>> Aciont a1 (int i) > { Console.WriteLine(i); }; 可以简写 (编译器会自动根据委托类型 推断) Action a1 (i)> {…

图像处理的一些操作(1)

图像处理 1.安装PIL,skimage库1.1导入skimage库中的oi模块和data模块 2.读取图像文件2.1读取图像文件2.2 以灰度模式读取图像2.3 查看示例图像的目录路径2.4 读取chelsea图片2.5 加载示例图片并保存2.6 获得加载图片的信息2.6.1 输出图片类型2.6.2 输出图片尺寸2.6.…

linux 光驱(光盘)安装

文章目录 自带 YUM 库创建 repo创建文件夹挂载光驱开机自启动挂载安装软件YUM 安装RPM 安装 自带 YUM 库 ls /etc/yum.repos.d创建 repo vim /etc/yum.repo.d/demo.repo // 编写 repo 相关配置 [demo] namedemo baseurlfile:///mnt/cdrom gpkcheck0创建文件夹挂载光驱 /dev/…

黑马点评项目个人笔记+项目优化调整

博客须知 本篇博客内容来源与黑马点评项目实战篇-16.用户签到-实现签到功能_哔哩哔哩_bilibili,作者对视频内容进行了整合,由于记笔记时图片使用的是本地路径,所以导致博客的图片无法正常显示,如果有图片需求可以下载上方的pdf须…

【介绍下大数据组件之Storm】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

树莓派点亮LED灯

简介 使用GPIO Zero library 的 Python库实现点亮LED灯。接线 树莓派引脚参考图如下: LED正极 接GPIO17 LED负极 接GND 权限 将你的用户加到gpio组中, 否则无法控制GPIO sudo usermod -a -G gpio 代码 from gpiozero import LED from time impor…

PhpAdmin-getshell

PhpAdmin-getshell 通过未授权成功写入,然后getshell 路径:C:\phpstudy_pro\Extensions\MySQL5.7.26\ 写入木马: into写入文件: 使用需看要secure_file_priv的值。 当value为“null”时,不允许读取任意文件 当value为…

VS Code工具将json数据格式化

诉求:json数据格式化应该在工作中用到的地方特别多,为了更方便、更仔细的对json数据查看,将json数据格式化是非常有必要的。 VS Code中如何将json数据快速格式化 1、在VS Code中安装Beautify JSON插件 2、安装完后在需要格式化的文件中按住…

pyqt拖入图片并显示

pyqt拖入图片并显示 介绍效果代码 介绍 像拖入文本一样,把图片拖入到窗体中显示。 效果 代码 import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout from PyQt5.QtGui import QPixmap, QDragEnterEvent, QDropEvent from PyQt5.Q…

Co-assistant Networks for Label Correction论文速读

文章目录 Co-assistant Networks for Label Correction摘要方法Noise DetectorNoise Cleaner损失函数 实验结果 Co-assistant Networks for Label Correction 摘要 问题描述: 描述医学图像数据集中存在损坏标签的问题。强调损坏标签对深度神经网络性能的影响。 提…

基于springboot实现迪迈手机商城设计系统项目【项目源码+论文说明】

基于springboot实现迪迈手机商城设计系统演示 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。…

53.HarmonyOS鸿蒙系统 App(ArkTS) socket套接字连接失败无效参数--invalid argument

ark ts socket套接字连接失败无效参数--invalid argument 绑定本机真实连接的WIFI的IP,不要绑定127.0.0.1