网络原理2-网络层与数据链路层

news2024/11/15 19:59:45

目录

  • 网络层
  • 数据链路层

网络层

网络层做的工作:

1、地址管理–>IP地址

2、路由选择–>数据包传输的路径规划

网络层主要的协议就是IP协议

IP协议的报头结构:
在这里插入图片描述

4位版本: 有两个取值,4表示IPv4,6表示IPv6,默认是IPv4

4位首部长度: IP协议的报头也是可变长的,实际报头长度是该值*4,例如首部长度为10时,实际报头长度是40

8位服务类型TOS: type of service,表示IP协议以哪种模式进行工作。3位优先权已经弃用,1位保留字段,实际上只有4位有效,4位分别表示:最小延迟,最大吞吐量,最高可靠性,最小成本,这4个相互冲突,只能选择一个

16位总长度: IP数据包的总长度,表示IP数据报整体占多少个字节,16位,也就是64kb,IP协议会把大的数据包拆成多个小的数据包,到达接收方后会自动组包。所以不代表IP协议不能传输64kb以上的数据包。

16位标识: 同一个载荷的数据会被分成多个IP数据包来进行传输,这些数据包的16位标识是相同的,

3位标志位: 只有2个有效,其中一个表示这个包是否需要组包(判断是否是拆包的一部分),另一个表示当前包是否是组包中最后一个包。剩下一个是保留位。

13位片偏移: 片偏移决定拼装组包时,数据包的位置

8位生存时间(TTL): 表示一个数据包在网络中最多存活多长时间。TTL的单位是次数,表示经过路由器转发的次数。如果一个IP数据包的中的目的IP写错了,写成不存在的IP地址,这样的数据包不能让它无限传输,当达到了TTL的上限后,这个数据包就会被自动丢弃。发送数据包时会有一个初始的TTL(32、64、128…),数据包每经过一个路由器转发,TTL就会-1,TTL一旦减为0,这个数据包就会被当前的路由器丢弃。

8位协议: 描述了IP数据包携带的载荷,是根据哪种传输层协议进行传输的(TCP、UDP等)

16位首部校验和: 验证数据在传输中是否出错(针对IP报头)

32位源IP地址: 描述IP数据包从哪来的

32位目的IP地址: 描述IP数据包到哪里去

选项: 可选的项

数据: 要传输的数据

关于IP地址:

IP地址一般是用32位整数描述的,一个IP地址分为两部分,左边部分是网络号,右边部分是主机号。至于哪些部分是网络号,哪些部分是主机号,需要根据子网掩码判断。根据子网掩码的二进制形式,判断,子网掩码为1的部分就是网络号,为0的部分就是主机号。例如:

子网掩码为255.255.255.0,IP地址为192.168.100.150,子网掩码换成二进制形式就是:11111111 11111111 11111111 00000000,说明前24位是网络号,也就是192.168.100是网络号,150是主机号。

以上这种子网掩码的方案,是比较常用的一种方式,还有一种方案:ABCDE五类网络,在如今,这种方式只出现在教材中,我们不过多介绍。

特殊的IP地址:

1、主机号全为0:这个IP相当于当前网段(相当于网络号)。给某个设备分配IP地址时不能把主机号设为全0

2、主机号全为1:如192.168.0.255,这个IP是广播IP,往这个IP地址发送数据包,相当于给整个局域网中所有的设备发送了数据包

3、127开头:这个叫环回IP,给这个IP地址发送数据,设备就会从这个IP地址上收到相同的数据,相当于自己给自己发,常见的环回IP是127.0.0.1

我们知道IP地址用是32位表示的,表示的范围也就是0 ~ 42亿9千万,这样的范围放在现在的时代,有非常大的可能会出现IP地址不够用的情况,毕竟光全球人口数量就比42亿多,那么有没有什么办法解决这个问题?

方案1:动态分配IP地址

动态分配就是,当设备上网的时候,就分配IP地址,不上网的时候就不分配。

方案2:NAT(Network Address Translation)网络地址转换

NAT的原理就是,一个设备上网的时候,IP数据包的地址会被NAT设备进行修改。

我们一般把IP地址分为两大类:

一类是私网IP(内网IP):10.开头,前8位是网络号、172.16 ~ 172.31,前12位是网络号,192.168开头,前16位是网络号。这些范围内的都称为私网IP

一类是公网IP(外网IP):除了私网IP范围之外的IP

同一个局域网内,A主机范围主机B是可以的(不涉及NAT);公网上的设备A访问公网上的设备B也是可以的(不涉及NAT);一个局域网中的主机A访问另一个局域网的设备B,NAT机制不允许这样做;NAT主要处理的是:局域网内部的设备A访问公网上的设备B。
在这里插入图片描述

问题是,局域网内不止我一个人使用CSDN,当CSDN收到数据包时,返回数据包,怎么知道是给谁返回呢?网络通信中不止有IP地址信息,还有端口号,在NAT中,端口号可以区分不同主机上的不同应用程序。

在这里插入图片描述

运营商的NAT设备,会保存替换的映射关系,根据映射关系,就能确定是返回给我还是返回给朋友。

方案3:使用IPv6,IPv4使用的是32位表示地址,而IPv6使用128位表示,这个范围可以使地球上的每一粒沙子都能有自己的IP地址,IPv6不是IPv4的升级版,所以想大力推广使用IPv6,需要更换硬件设备,成本非常大,目前咱们普及程度是非常高了~

路由选择:

路由选择就是路线规划,规划数据包在网络中走哪个路由器进行传输。当IP数据包到达路由器时,路由器会查看目的IP,决定数据包是不是能直接发给目的主机,还是说要发送给下一个路由器,如此往复直到达到目的IP地址。具体的流程可以查看资料,咱们Java程序员了解一下即可。

数据链路层

数据链路层中最常见的协议:以太网

以太网数据帧格式如下:
在这里插入图片描述

目的地址和源地址都是mac地址,不是IP地址。

mac地址和IP地址的区别

1、mac地址使用6个字节表示,范围大

2、一般计算机或者其他设备在出厂时,mac地址就被分配好了,不能再修改了,mac地址也能作为设备的身份标识。IP地址可以手动修改

3、mac地址使用在数据链路层,用来实现两个设备之间的数据转发;IP地址是在网络层中使用的。

类型:描述了载荷中是什么样的数据

在这里插入图片描述

ARP是建立IP地址和mac地址的映射关系,当前设备接入网络时,会往广播地址发送ARP报文,收到ARP请求的设备会返回ARP响应,在响应中告知自己的IP和mac地址

46 ~ 1500字节:1500描述了数据链路层数据帧最大载荷长度
以上是网络层和数据链路层的相关介绍,作为Java程序员,我们需要了解的就是这些~

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

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

相关文章

关于网站ERR_TOO_MANY_REDIRECTS错误的修改办法

今天网站因为证书到期,七牛云的报错一直ERR_TOO_MANY_REDIRECTS,302重定向次数过多了,连后台都进不去 多次清除cookie未果,终于找到了原因:设置了太多重定向, 1.http强制跳转 2.宝塔后台设置了跳转 3.域…

备战软考Day02-数据结构与算法

1.基本概念与三要素 1.什么是数据 数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。 2.数据元素、数据项 数据元素是数据的基本单位,通常作为一个整体进行…

树莓派Pico2(RP2350)开发环境搭建

树莓派Pico2(RP2350)开发环境搭建 文章目录 树莓派Pico2(RP2350)开发环境搭建1、RP2350介绍2、开发环境搭建3、工程编译4、固件下载Raspberry Pi再次通过推出RP2350 MCU突破了微控制器设计的界限。这款微控制器是之前RP2040的重大升级,带来了更强大的性能、高级安全功能,…

基于SSM的二手车管理系统的设计与实现 (含源码+sql+视频导入教程)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的二手车管理系统4拥有三种角色 管理员:订单管理、在售车辆管理、下架车辆管理、品牌管理、分类管理、推荐管理、统计等 商家:登录注册、添加/下架/删除车辆…

vscode搭建ros开发环境问题记录(更新...)

文章目录 vscode 不能自动补全 开发环境: vmware 15.7 ubuntu 20.04 ros noetic vscode 不能自动补全 这里将头文件已经正确包含到c_cpp_properties.json中代码中仍然不能自动补全, 将C_CPP插件设置中的Intelli Sense Engine 设置为TagParser,然后重新加…

828华为云征文 | 云服务器Flexus X实例:部署 Gitea,拥有自己的Git仓库,管理本地代码

目录 一、什么是 Gitea 二、安装 Docker 环境 2.1 更新 apt 软件源 2.2 安装依赖 2.3 安装 Docker 三、安装 Gitea 3.1 创建 docker-compose.yml 3.2 启动 Gitea 服务 3.3 初始化配置 四、运行 Gitea 4.1 登录/注册 4.2 创建仓库 五、总结 本篇文章通过部署 Gite…

【BFS专题】— 多源最短路问题

1、矩阵 - 力扣(LeetCode) 思路: 首先创建一个dist数组,将dist数组初始化为-1,表示该位置没有被搜索和记录该位置的值然后再遍历mat数组,将数组中的 0 添加到队列中,并且修改dist对应位置的值为…

全网最全最详细的跨域解决方案

你们好,我是金金金。 前置知识 本篇文章以通俗易懂的方式进行描述,自己组织语言进行输出,尽量让每一个人都能看得懂。哪里有说的不正确的地方 大佬请在评论区指正! 首先需要了解浏览器的同源策略 浏览器的同源策略 MDN解释地址&…

神经网络通俗理解学习笔记(3)注意力神经网络

Tansformer 什么是注意力机制注意力的计算键值对注意力和多头注意力自注意力机制注意力池化及代码实现Transformer模型Transformer代码实现 什么是注意力机制 注意力机制的发展史 Attention Mechanism Mnih V, Heess N, Graves A. Recurrent models of visual attention, 2014…

JVM 调优篇7 调优案例1-堆空间的优化解决

一 jvm优化 1.1 优化实施步骤* 1)减少使用全局变量和大对象; 2)调整新生代的大小到最合适; 3)设置老年代的大小为最合适; 4)选择合适的GC收集器; 1.2 关于GC优化原则 多数的Java应用不需要在服务器上进行GC优化&#xff1…

NeMo Curator 整理用于 LLM 参数高效微调的自定义数据集

目录 概述 预备知识 定义自定义文档构建器 下载数据集 解析和迭代数据集 将数据集写入 JSONL 格式 使用文档构建器加载数据集 使用现有工具统一 Unicode 格式 设计自定义数据集过滤器 编辑所有个人识别信息 添加指令提示 整合管线 概述 出于演示目的,本…

【PyQt6 应用程序】应用程序携带数据源文件一并打包

在开发好应用程序打包之后给到其他用户会发现数据文件比如封面图片不见了。 例如这样,很影响用户使用。 这里介绍一个非常简单的打包方法,不光要在打包命令的时候添加对应数据文件,在源码中也要进行一些简单的修改。 修改需要添加打包文件的地方。首先需要添加一个绝对路径…

143234234123432

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

【C++】c++的继承

目录 思维导图大纲: 1.基类和派生类 1.1 定义格式 1.2 继承方式 1.3 基类和派生类的转换 2. 继承中的作用域(隐藏关系) 2.1 考察继承作⽤域相关选择题 3. 派生类的默认成员函数 4. 继承类模板 5. 一个不能被继承的类 ​编辑 6.继承与友元 ​编辑 7. 继…

Java面向对象六大设计原则总结(超级详细,附有代码、图解以及案例)

文章目录 三.软件(面向对象)设计原则3.1 开闭原则(OSP)3.1.1 概述3.1.2 案列 3.2 里氏代换原则(LSP)3.2.1 概述3.2.2 案例 3.3 依赖倒转原则(DIP)3.3.1概述3.3.2 案例 3.4 接口隔离原则(ISP)3.4.1 概述3.4.2 案列 3.5 迪米特法则(DP)3.5.1 概述3.5.2 案例 3.6 合成复用原则(CRP…

红黑树前语

目录 概念 性质 红黑树与AVL树的比较 过两天更新红黑树的模拟实现,中秋快乐各位 概念 1. 概念: 是一种搜索二叉树, 但在每个结点上增加一个存储位表示节点的颜色,可以是Red 或 Black。通过对任何一条从根到叶子的路径上各个节点着色方式的…

[JVM]JVM内存划分, 类加载过程, 双亲委派模型,垃圾回收机制

文章目录 一. JVM内存划分1. 堆2. 栈3. 元数据区4. 程序计数器 二. 类加载过程1. 加载2. 验证3. 准备4. 解析5. 初始化 三. 双亲委派模型四. JVM的垃圾回收机制GC1. 找到需要回收的对象2. 释放垃圾的策略 一. JVM内存划分 JVM就是java进程 这个进程一旦跑起来, 就会从操作系统…

Windows本地制作java证书(与jeecgboot配置本地证书ssl问题)

1:JDK生成自签证书SSL,首先以管理员身份运行CMD窗口,执行命令 keytool -genkey -alias testhttps -keyalg RSA -keysize 2048 -validity 36500 -keystore "F:/ssl/testhttps.keystore"F:\ssl>keytool -genkey -alias testhttps -keyalg R…

PCIe进阶之TL:Memory, I/O, and Configuration Request Rules TPH Rules

1 Memory, I/O, and Configuration Request Rules 下述规则适用于 Memory 请求、IO 请求和配置请求。 除了公共的 header 字段外,所有 Memory 请求、IO 请求和配置请求还包括以下字段: (1)Requester ID[15:0] 和 Tag[9:0],组成了 Transaction ID 。 (2)Last DW BE[3:0]…

计算架构模式之接口高可用

接口高可用整体框架 接口高可用主要应对两类问题:雪崩效应和链式效应。 雪崩:当请求量超过系统处理能力之后,会导致系统性能螺旋快速下降,本来系统可以处理1000条,但是当请求量超过1200的时候,此时性能会下…