计算机网络-网络层:IP协议

news/2024/5/17 10:15:49/文章来源:https://blog.csdn.net/m0_63020222/article/details/128069502

目录

一、IP协议格式

二、IP地址管理

1.动态地址分配&组建私网

1.1 动态地址分配DHCP

1.2 NAT技术组建私网

2. 早期网络划分方式

3. 当前网络划分方式CIDR方案

4. 特殊IP地址

5. 公网与私网(外网与内网)

6. 路由选择


网络层:负责地址管理与路由选择

一、IP协议格式

4位版本号:

        4/6 表示:ipv4、ipv6。

4位头部长度:

        以4B为单位描述报头大小,IP报头最大为60B,最小为20B。

8位服务器:

        3位优先权字段弃用,1位保留(暂未使用),4位服务类型。

        4位服务类型:最小成本,最高可靠性,最大吞吐率,最小延时。

16位数据报长度:

        限制IP报文必须小于64k。

16位分片标识:

        标识当前分片属于哪个原始报文。

网络层的数据分片:

        在链路层存在一个MTU(最大传输单元),是链路层限制的一个数据帧大小。以太网默认是1500字节。网络层在拿到传输层交付给自己的数据后,会判断封装报头后,是否会大于MTU,如果大于MTU则需要进行数据分片(将大的完整的报文,分割成多个小的报文)。

        网络层会给每个分片都封装一个IP报头,然后发送数据。

        数据到达对端主机后,会进行分片重组,重组为原始报文交付给传输层。但是网络传输就有可能使数据没有按序到达,因此每个分片中都有标识自己属于哪个原始报文,并且标识自己所在原始报文中的位置。

3位标志:

        1位保留,1位禁止分片标志(置1表示不允许分片),1位分片结束标志。

13位分片偏移:

        标识当前分片在原始报文中相对起始的偏移量。

注意:13位分片偏移没办法表示64k的偏移量,所以这个分片偏移是以8B为单位的。因此除了最后一个分片,其他分片一定都是8的整数倍大小。

8位TTL:

        报文生命周期:所能经过的路由器跳数。

8位上层协议类型:

        数据分用的时候,选择当前数据所使用的解析协议。

16位校验和:

        校验数据的一致性。

32位源端IP&32位对端IP:

        描述通信的起点与终点主机。

0~40字节选项数据:

        路由信息……

二、IP地址管理

1.动态地址分配&组建私网

        ipv4地址共有近43亿,但是也出现了不够用的情况,出现了两种解决方案:

1.1 动态地址分配DHCP

        DHCP:动态地址分配,谁上网给谁分配IP地址。

1.2 NAT技术组建私网

        NAT网络地址转换技术。

2. 早期网络划分方式

IP地址的分配是一种分网络的分配,每个子网只分配固定的IP地址。

IP地址组成:网络号+主机号

        网络号:当前IP地址所在子网络的标识;

        主机号:一个主机在其所在子网中的标识。

A类:高1位固定为0,7位网络号,24位主机号,用于组建超大型网络。

        网络号范围:0~127

        IP地址范围:0.0.0.0~127.255.255.255

B类:高2位固定10,14位网络号,16位主机号,用于组建中型网络。

        网络号范围:128.0~191.255

        IP地址范围:128.0.0.0~191.255.255.255

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

        网络号范围:192.0.0~223.255.255

        IP地址范围:192.0.0.0~223.255.255.255

D类、E类

3. 当前网络划分方式CIDR方案

        在早期基础上进行细分,引入了子网掩码

子网掩码:

        无符号4字节的整数,规则是必须由连续的二进制1组成。

子网掩码作用:

(1)子网划分,限定一个子网的主机号个数。子网掩码取反就是一个子网中的最大主机号。

(2)判断一个IP地址是否属于某个子网。子网掩码与IP地址相与,可以得到子网网络号。

4. 特殊IP地址

(1)127.0.0.1

        本地的虚拟回环网卡地址,用于进行本地的网络回环测试。

(2)255.255.255.255

        全网广播地址。

(3)0.0.0.0

        被识别为本机任意网卡地址(常用于服务端绑定地址)。

(4)主机号全0的IP地址

        表示网络号,是网络标识。

(5)主机号全为1的IP地址

        局域网的广播地址(udp广播)。

5. 公网与私网(外网与内网)

公网(外网):我们常说的互联网,也叫外网。

私网(内网):自己用路由器实现的内部通信网络,也叫内网

组建私网的作用:

        使用NAT技术,可以让私网中的大量主机使用同一个对外地址进行上网,节省IP地址的使用。

        因为私网对外通信使用的是对外地址,私网内部的地址对外不可见,因此不同的私网,IP地址可以重复。

用于组建私网的网络:

(1)10.*.*.*

(2)172.16.*.*~172.31.*.*

(3)192.168.*.*

6. 路由选择

每个网络设备上都有一个路由表:

(1)路由表中记录了当前设备所连接的网络信息。

(2)其实在互联网上,每个路由器上不仅只有自己的路由表,还有周围其他路由器的路由表。

(3)路由器将流经路由器的数据目的IP地址与路由表中网络进行比对,看是否属于某个网络,然后进行路径规划,选择转发对象。

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

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

相关文章

【win11内存占用高优化】未运行程序,系统内存占用50以上

这里写自定义目录标题前言打开控制面板找到电源键功能找到快速启动选项,取消勾选,确定win X以管理员身份打开powershell输入如下命令,回车关闭终端完成前言 windows11在未运行任何其他程序的情况下,内存占用超50%,可…

深入浅出java nio

Buffer 缓冲 为什么需要缓冲&#xff1f; 思考&#xff1a;没有buffer之前的读写。 子类 常见类型的缓冲 ByteBuffer public abstract class ByteBufferextends Bufferimplements Comparable<ByteBuffer> {}ByteBuffer是抽象类无法直接实例化&#xff0c;可以通过all…

研究 | CT图像迭代重建算法研究进展

上次讲到我实现了一下代数迭代重建&#xff08;ART&#xff09;&#xff0c;到周六开会的时候才大概了解了我的研究方向应该是统计迭代重建&#xff0c;一下子就把我给搞懵了。按照书上的说法&#xff0c;统计迭代法是在发射型CT&#xff08;SPECT和PET&#xff09;中应用广泛&…

[附源码]计算机毕业设计勤工俭学管理小程序Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Docker学习4-常用命令之重要的容器命令

本文是Docker学习系列教程中的第四篇。本文是Docker常用命令中的重要命令。为什么说重要呢&#xff1f;因为这些命令&#xff0c;在以后开发过程中&#xff0c;会经常使用到。比如&#xff1a;怎么查看容器中运行的日志&#xff1f;怎么查看容器运行的进程&#xff1f;怎么导出…

【安全测试】渗透测试神器BurpSuite环境搭建

工欲善其事&#xff0c;必先利其器&#xff0c;要想更好的进行安全测试&#xff0c;就需要有一个趁手的工具&#xff0c;BurpSuite就是一个不错的选择&#xff0c;是广大安全测试工程师的必备工具&#xff0c;今天就带着大家把这个工具给装上&#xff0c;开启大家的安全测试之旅…

引擎入门 | Unity UI简介–第2部分(5)

本期我们继续为大家进行Unity UI简介&#xff08;第二部分&#xff09;的后续教程 本篇内容 9.设置动画对话框 文章末尾可免费获取教程源代码 本篇本篇Unity UI简介&#xff08;第二部分&#xff09;篇幅较长&#xff0c;分为八篇&#xff0c;本篇为第五篇。 9.设置动画对…

【信息检索与数据挖掘期末复习】(五)Language Model

什么是语言模型&#xff1f; 一个传统的语言生成模型可以用于识别或生成字符串 我们可以将有穷自动机看作是一种确定性的语言模型 基本模型&#xff1a;每一个文档都是通过一个像这样的自动机生成的&#xff0c;只不过这种自动机是有概率的 一种最简单的语言模型等价于一个…

纪念DedeCMS创始人IT柏拉图先生

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; IT柏拉图开发了DedeCMS&#xff0c;造福了千万站长&#xff0c;但却没有因为这套系统过上体面的生活。 &#xff08;图片取自IT柏拉图的新浪微博&#xff09; 1979年你出生了&#xff0c;比我大…

终于有人把Java面试高分Guide总结得如此系统,堪称傻瓜式笔记总结

纵观今年的技术招聘市场&#xff0c; Java依旧是当仁不让的霸主 &#xff01;即便遭受 Go等新兴语言不断冲击&#xff0c;依旧岿然不动。究其原因&#xff1a; Java有着极其成熟的生态&#xff0c;这个不用我多说&#xff1b;Java在 运维、可观测性、可监 控性方面都有着非常优…

Paper reading:Fine-Grained Head Pose Estimation Without Keypoints (CVPR2018)

Paper reading&#xff1a;Fine-Grained Head Pose Estimation Without Keypoints &#xff08;CVPR2018&#xff09; 一、 背景 为什么要读这篇论文&#xff0c;因为LZ之前要做头部姿态估计&#xff0c;看到一些传统的方法&#xff0c;都是先进行人脸检测&#xff0c;然后再…

Redis原理 - 对象的数据结构(SDS、Inset、Dict、ZipList、QuickList、SkipList、RedisObject)

Redis数据结构 1. SDS Redis 是用 C 语言写的&#xff0c;但是对于 Redis 的字符串&#xff0c;却不是 C 语言中的字符串&#xff08;即以空字符’\0’结尾的字符数组&#xff09;&#xff0c;它是自己构建了一种名为 简单动态字符串&#xff08;simple dynamic string,SDS&am…

实验7 数据库编程

第1关 定义一个名为PROC_COUNT的无参数存储过程 任务描述 定义一个名为PROC_COUNT的无参数存储过程&#xff0c;查询工程名称中含有“厂”字的工程数量&#xff0c;并调用该存储过程。 相关知识 1、工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)…

Java ConcurrentHashMap 高并发安全实现原理解析

三、C13Map的字段定义 C13Map的字段定义 //最大容量 private static final int MAXIMUM_CAPACITY 1 << 30; //默认初始容量 private static final int DEFAULT_CAPACITY 16; //数组的最大容量,防止抛出OOM static final int MAX_ARRAY_SIZE Integer.MAX_VALUE -…

linux环境下,一步步教你命令行搭建自己的git服务器和客户端

前言&#xff1a; 先说下我的git服务器环境&#xff0c;git服务端的搭建我用的是阿里的ubantu云服务器&#xff0c;毕竟云服务器上可以在任何联网的电脑上访问嘛&#xff0c;方便。局域网也可以&#xff0c;svn和git这两种最常用的代码管理系统&#xff0c;在企业中基本…

LVGL自定义组件__页面指示器

前言 LVGL对硬件的要求非常低&#xff0c;使用其自带的组件能够搭建出精美的界面&#xff0c;动效也很棒。但是如过移植到Linux平台下&#xff0c;开发稍微复杂的应用项目&#xff0c;那些组件就远远不够用了。为此需要自己自定义一些组件&#xff0c;以方便实用。 效果 为此…

GitHub上架即下架,《分布式系统人人都是架构师》全彩笔记开源

又来给大家分享好书了&#xff1a;高翔龙老师的 《超大流量分布式系统架构解决方案&#xff1a;人人都是架构师2.0》&#xff0c;我在网上没找见开源的PDF版本所以分享一下&#xff01;小编会在文末附电子版免费方式。 高翔龙是谁&#xff1f; 云集基础架构负责人&#xff0c…

Verilog中 高位与低位

Verilog中信号定义位宽的一些问题 总是被Verilog中信号定义位宽的问题所困扰&#xff1a; wire[7:0] data1 和 wire[0:7] data1有什么不一样 wire[7:0] data2[3:0]、wire[7:0] data2[0:3]、wire[0:7] data2[3:0]、wire[0:7] data2[0:3]又分别有什么不一样&#xff1f; 今天下定…

【C++进阶】引用 函数提高

文章目录一 、引用1.1 引用的基本使用1.2 引用的注意事项1.3 引用做函数参数1.4 引用的本质 &#xff1a;指针的常量1.5 常量引用二、函数提高1 函数默认参数2 函数占位参数3 函数重载一 、引用 1.1 引用的基本使用 作用&#xff1a;给变量起别名 语法&#xff1a;数据类型 &a…

TC申请是否需要银行转账记录?

【TC申请是否需要银行转账记录&#xff1f;】 答案是毫无疑问的。 根据TE官网公开的文件CCS Certification Procedures V3.0 里面关于TC申请所需的文件指引E2.1.1f&#xff1a;&#xff08;如图&#xff09; 企业在申请与TE相关的认证项目&#xff08;例如GRS/RCS等等&#xf…