Linux网络基础-4

news2024/9/22 3:38:56

在之前的网络基础博客中,我们对网络进行了概要解释,了解了应用层和传输层的知名协议。接下来我们来对网络层的典型协议进行解析。

目录

1.网络层协议

2.IP协议

2.1协议格式

2.2地址管理

2.3特殊网络

2.3.1私网的组建

2.3.2特殊IP地址

2.4路由选择

1.网络层协议

网络层的功能是:负责地址管理和路由选择。

2.IP协议

2.1协议格式

笔者引用《TCP-IP详解》一书中对IP协议中数据报格式的图解,如下所示:

4位版本是ipv4或ipv6版本;4位首部长度也叫报头长度:以4字节为单位,IP报头最大长度60字节,最小20字节;8位服务类型(TOS):3位优先权弃用,1位保留置0,剩余4位服务类型:最小延时,最大吞吐量,最高可靠性,最小成本。

16位总长度(数据报总长度):限制一个IP报文包含头部在内最大不能超过65535大小;

在链路层存在限制报文大小的字段MTU--以太网默认大小是1500,如果一个报文在网络层封装了IP报头,大于MTU则在链路层无法传输。因此需要在网络层对一个大的报文进行分割成多个小的报文,分别封装在IP报头中进行发送,这些小的报文有个专业名词--分片。如果一个大的报文被分割成为多个分片进行传输,则多个分片到达对端网络层就需要进行分片重组,重新组成一个完整的报文交付给传输层。

因此,16位标识:用于标识当前分片属于那一个原始报文;13位分片偏移:标识当前分片较于原始报文起始位置的偏移量,并且为了能够完整的描述65535的偏移量(13位不够完全描述),我们采用的是以8字节为单位描述偏移量,所以每个分片的大小都会是8的整数倍大小。

8位生存时间(TTL):存放一个数据在网络中所经过路由器的跳数,每经过路由器一跳就会减1,为0时会见报文丢弃。主要是为了避免路由环路的情况,数据在网络中循环,阻塞传输,导致传输效率降低。

8位协议版本:记录当前主机在传输层使用的协议;16位首部校验和:校验数据收发的一致性。

32位源端IP地址和32位对端IP地址:标识数据收发两端的地址,明确数据传输两端身份。

0~40字节的选项数据(如果有):用于记录报文中的格外内容。

2.2地址管理

在ipv4版中的IP地址数量已经出现较为明显了地址分配不足问题,因此设计出DHCP技术以及NAT技术。

在了解深入了解二者之前,我们先对IP地址的组成进行解析:

  • 网络号:一个网络的标识,一个网络所分配的IP地址所包含的标识;
  • 主机号:一台主机在一个网络中的标识;

网络号的划分:

  • A类网络:高1位固定为0,有7位网络号,24位主机号;

网络号范围为:0~127,IP地址范围:0.0.0.0~127.255.255.255,A类网络常用于组件大型网络。

  • B类网络:高2位固定为10,有14位网络号,16位主机号;

网络号范围为:128.0~191.255,IP地址范围:128.0.0.0~191.255.255.255,B类网络常用于组件中型网络。

  • C类网络:高3位固定为110,有21位网络号,8位主机号;

网络号范围为:192.0.0~223.255.255,IP地址范围:192.0.0.0~223.255.255.C类网络常用于组件小型网络。

  • D/E类网络:特殊网络

因为早期的划分方式过于粗糙,会导致大量IP地址浪费,因此在早期划分的基础上设计出CIDR方案,使用子网掩码进行网络划分。

子网掩码是4字节的无符号整数,数据必须由二进制连续的1组成。子网掩码和IP地址相与,可以得到IP地址和网络号;子网掩码取反,可以得到子网中的最大主机号。

2.3特殊网络

2.3.1私网的组建

私网的搭建可以使得多个流量较少的主机使用同一个IP地址,可以很好的减少ipv4版本中IP地址分配数量不足的问题。

组建私网需要搭配一个技术:NAT技术--网络地址转换技术。一个私网向外发送的数据吗,流经网关设备的时候,需要进行网络地址替换,替换成为网关设备的对外地址,并且在设备中记录相应的映射关系。

并且在网络划分中,专门为组建私网划分出了一些网络号(公网中不会出现):

  • 大型网络:10.*.*.*
  • 中型网络:172.16.*.*~172.32.*.*
  • 小型网络:192.168.0.*~192.168.255.*

2.3.2特殊IP地址

0.0.0.0:代表本地主机上任意网卡的地址,通常用于服务端程序绑定监听地址。

255.255.255.255:全网广播地址。

127.0.0.1:本地主机上的虚拟回环网卡地址,主要用于本地网络回环测试。

主机号全为0的地址:网络号,是网络的标识,这个地址不能分配给主机。

主机号全为1的地址:局域网广播地址,这个地址也不能分配给主机。

2.4路由选择

在了解路由选择之前,我们先对路由表的概念进行简单介绍,路由表是一个存储在路由器或者联网计算机中的电子表格,里面存储着目标网络网络号,网关地址,子网掩码喝和连接这个网络的网卡等关键信息。根据路由表中存储的信息,我们可以选择连接对应的网络,并对网络中传输数据的路径进行选择。

因此,路由选择的概念应运而生。路由选择便是:路由器为流经的数据选择合适的路径进行转发。对于具体的路径规划我们设计有静态路由选择和动态路由选择两种算法,便于求取网络中数据的最佳流经路径。

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

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

相关文章

ACP(MaxCompute篇)-Tunnel上传下载数据

概述 相关命令 odpscmd里面包含了tunnel test11_123>tunnel help; Usage: tunnel <subcommand> [options] [args] Type tunnel help <subcommand> for help on a specific subcommand.Available subcommands:upload (u)download (d)resume (r)show (s)purge …

探索SpringBoot 3.1的惊艳新特性

一、介绍 1.1 新特性概述 经过半年的沉淀 Spring Boot 3.1于2023年5月18日正式发布了&#xff0c;带来了许多令人兴奋的新特性和改进。本篇博客将详细介绍Spring Boot 3.1的新特性、升级说明以及核心功能的改进。 同时&#xff0c;2.6.x 版本线已经停止维护了&#xff0c;最新…

《消息队列高手课》课程笔记(二)

消息模型&#xff1a;主题和队列有什么区别&#xff1f; 两类消息模型 早期的消息队列&#xff0c;就是按照“队列”的数据结构来设计的。 生产者&#xff08;Producer&#xff09;发消息就是入队操作&#xff0c;消费者&#xff08;Consumer&#xff09;收消息就是出队也就是…

数字逻辑习题

第一次作业 第二次作业 第三次作业 卡诺图最小项 计算模数M考察74LS161的特点 计数器数据选择器 在A和C加上非门即可 求计数器的模数M 该计数器是环形计数器&#xff08;循环右移&#xff09;&#xff0c;模数根据初始状态而定 由n个移位寄存器构成的环形计数器最大可能模值为n…

韩流在元宇宙中崛起,感受韩国文化的魅力!

大获成功&#xff01;第一波 K-verse 土地全部售罄&#xff01; 多家领先韩国文化公司&#xff0c;包括 SMBM、CUBE 娱乐、LINE Studio、Gravity、乐天世界、K League 等进驻 The Sandbox&#xff0c;并在第一波 K-verse 土地销售活动上发布了邻近这些公司的 LAND。 所有土地全…

哈希表(散列表)详解

&#x1f495;**今天的每一秒都是珍贵的&#xff0c;因为它永远不会再次出现。**&#x1f495; &#x1f43c;作者&#xff1a;不能再留遗憾了&#x1f43c; &#x1f386;专栏&#xff1a;Java学习&#x1f386; &#x1f697;本文章主要内容&#xff1a;深入理解哈希表&#…

npm init和npm create、npm create vite什么意思

npm init 和npm create 之前在用npm时&#xff0c;一直都是npm init来初始化一个项目并生成package.json文件。 但是&#xff0c;今天在看vite的官方文档时&#xff0c;vite上说创建一个vite项目的命令是 npm create vitelatest之前一直没有用过npm create这个命令&#xff…

sql ---- 查询两个日期间隔的天数:Datediff(a,b)

197. 上升的温度 表&#xff1a; Weather ------------------------ | Column Name | Type | ------------------------ | id | int | | recordDate | date | | temperature | int | ------------------------ id 是这个表的主键 该表包含特定…

Windows编程开发中的语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天总结一下Windows编程开发中的语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖。 首先你要明白一点&#xff1a; 逻辑覆盖率&#xff1a;语句覆盖<条件覆盖<判定覆盖<条件-判…

Prometheus+Grafana学习(十一)安装使用pushgateway

Pushgateway允许短暂和批量作业将其指标暴露给 Prometheus。由于这些工作的生命周期可能不足够长&#xff0c;不能够存在足够的时间以让 Prometheus 抓取它们的指标。Pushgateway 允许它们可以将其指标推送到 Pushgateway&#xff0c;然后 Pushgateway 再将这些指标暴露给 Prom…

算法套路十八——区间 DP

算法套路十八——区间 DP 线性DP: 具有前缀/后缀结构的问题&#xff0c;其中每个阶段只依赖于前一阶段的状态区间DP:需要确定给定区间内所有可能状态的问题&#xff0c;并从较小区间向较大区间进行转移。 区间DP介绍&#xff1a;https://oi-wiki.org/dp/interval/ 算法示例&…

网络安全证书合集

网络安全作为2022年十大高新紧缺技能之一&#xff0c;足以证明网络安全的重要性&#xff0c;作为网络安全工程师更是责任重大&#xff0c;证书作为能力证明的一方面&#xff0c;也是尤为重要&#xff0c;本文将着重盘点一下网络安全证书合集。 国家注册渗透测试工程师&#xf…

传染病学模型 | Matlab实现SEIR传染病学模型 (SEIR Epidemic Model)

文章目录 效果一览基本描述模型介绍程序设计参考资料效果一览 基本描述 传染病学模型 | Matlab实现SEIR传染病学模型 (SEIR Epidemic Model) 模型介绍 SEIR模型是一种常见的传染病传播模型,用于描述人群感染某种传染病的过程。SEIR模型将人群划分为四个互相转化的状态: 易感者…

内容好但流量差?B站流量密码可能就在这

B站知名数码UP主老师好我叫何同学&#xff08;以下简称“何同学”。&#xff09;时隔两个月再次更新&#xff0c;这支标题为《为了找到流量密码&#xff0c;我们做了个假B站...》的视频不仅吸引了观众的围观&#xff0c;更是获得了众多B站UP主们的“声援”。 如题所见&#xf…

Netty 源码分析系列(十八)一行简单的writeAndFlush都做了哪些事?

文章目录 前言源码分析ctx.writeAndFlush 的逻辑writeAndFlush 源码ChannelOutBoundBuff 类addMessage 方法addFlush 方法AbstractNioByteChannel 类 小结 前言 对于使用netty的小伙伴来说&#xff0c;我们想通过服务端往客户端发送数据&#xff0c;通常我们会调用ctx.writeAn…

SURF算法详解

Speeded Up Robust Features&#xff08;SURF&#xff0c;加速稳健特征&#xff09; 一&#xff0e;积分图像 1.什么是积分图像 积分图像是输入的灰度图像经过一种像素间的累加运算得到种新的图像媒介。对于一幅灰度的图像&#xff0c;积分图像中的任意一点&#xff08;x,y&…

【投毒情报】PyPI中 colorara 等组件包泄漏主机截屏等敏感信息

漏洞描述 PyPI仓库中受影响版本的 colorara 和 libida组件在安装过程中会根据不同操作系统分别执行恶意逻辑&#xff0c;针对Windows执行White Snake远控木马&#xff0c;针对Linux收集系统截屏、主机名、用户名、IP等主机敏感信息发送至telegram。 漏洞名称PyPI中 colorara …

大数据可视化大屏电子沙盘合集

大数据可视化电子沙盘 使用HTML、CSS、JavaScript&#xff0c;实现的可视化大数据电子沙盘 如果觉得对你有用&#xff0c;随手点个 &#x1f31f; Star &#x1f31f; 支持下&#xff0c;这样才有持续下去的动力&#xff0c;谢谢&#xff01;&#xff5e; 体验地址&#xff0…

一文告诉你黑盒测试、白盒测试、集成测试和系统测试的区别与联系

于开发人员来说&#xff0c;往往对各种测试方法感到疑惑。特别是在整合代码的时候&#xff0c;我们就能深刻感觉受到测试的重要性。很多开发人员只注重写代码&#xff0c;轻视测试的重要性。总是代码一写完提交然后就交给测试组测试了&#xff0c;没多久测试组发回测试报告。然…

java 在线音乐网站系统Myeclipse开发mysql数据库struts2结构java编程计算机网页项目

一、源码特点 java 在线音乐网站系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助struts2开发技术&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mys…