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

目录

  • 网络层
  • 数据链路层

网络层

网络层做的工作:

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.mzph.cn/web/52873.shtml

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

相关文章

C++ IO流

文章目录 C语言中的流式输入输出c中的输入输出继承关系c中的循环输入再次回顾类型转换 C语言中的流式输入输出 C语言的输入输出: scanf printf 输入输出是针对设备—内存之间的关系 比如:网卡,里面有一套类似文件系统的东西来记录, 这时就需要进行写入读取操作 在Linux中, 一…

Blender/3ds Max/C4D哪个软件好?

在3D建模和动画制作领域,Blender、3ds Max和Cinema 4D(C4D)都是备受赞誉的软件。每个软件都有其独特的优势和特点,选择哪个软件取决于用户的具体需求和个人偏好。今天,成都渲染101云渲染就来分析一些这三款软件的情况&…

C++前后缀分解

相关知识点 C算法与数据结构 打开打包代码的方法兼述单元测试 这个算法很容易想到,学习了本文后,可以更快得想到。 前后缀分解 分治法的一种,将数组和字符串,拆分成前缀和后缀。字符串(数组)的前缀是字符串的前i个元…

【Vue】- Vue应用

文章目录 知识回顾前言Vue应用源码分析1. 组件化开发2. 组件注册与使用3. 组件样式冲突scoped4. 组件通信拓展知识设置默认值总结知识回顾 前言 Vue应用 源码分析 1. 组件化开发 组件化概念 组件化:一个页面可以拆分成一个个组件,每个组件有着自己独立的结构、样式、行为…

linux---压缩打包

linux打包和压缩文件和目录: 归档(打包)命令:tar 归档就是将多个文件或者目录打包成为一个文件,存放再磁盘中,方便文件或者目录丢失时,可以恢复。 归档文件名使用相对路径 (注意区分归档文件和被归档文…

C# 禁止程序重复启动

修改:Program.cs [STAThread] static void Main() {Mutex mutex new Mutex(true, "NewGuid123456", out bool isCreatedNew);if (!isCreatedNew){MessageBox.Show(Application.ProductName "is running...");return;}Application.EnableVisu…

web安卓逆向之必学CSS基础知识

文章目录 CSS基础知识一、CSS的介绍1. CSS 的定义2. CSS 的作用3. CSS 的基本语法4. 小结 二、css 的引入方式1. 行内式语法格式:特点:适用场景: 2. 内嵌式(内部样式)语法格式:特点:适用场景&am…

Acrobat 9 安装教程

软件介绍 Adobe Acrobat 是由Adobe公司开发的一款PDF(Portable Document Format,便携式文档格式)编辑软件。借助它,可以以PDF格式制作和保存文档,以便于浏览和打印,同时还可以使用一些高级工具来创建、编辑…

[SWPU2019]Web11

考点: sql注入 buuctf上开启容器可以看到是个登录页面,注入的地方不在这里,我们首先需要进行注册一个账号,然后登录上去,可以看到有个申请发布广告。 既然登录页面没有东西,那么申请发布广告肯定会有东西…

Docker上安装mysql

获取 MySQL 镜像 获取镜像。使用以下命令来拉取镜像: 1docker pull mysql:latest 这里拉取的是最新版本的 MySQL 镜像。你也可以指定特定版本,例如: 1docker pull mysql:8.0 运行 MySQL 容器 运行 MySQL 容器时,你需要指定一些…

ARM驱动学习之8 动态申请字符类设备号

ARM驱动学习之8 动态申请字符类设备号 KernelCode: • 字符设备函数在文件“include/linux/fs.h”中 • alloc_chrdev_region() 是动态分配主次设备号。 • 宏定义MAJOR提取dev_t数据中的主设备号源码: /*** alloc_chrdev_region() - register a range of char dev…

通过Java设计模式提高业务流程灵活性的策略

引言 在软件开发中,随着业务需求的不断变化,系统的灵活性成为了一个重要的考量因素。Java设计模式作为一种经过验证的解决方案,可以有效地提高系统的可维护性、扩展性和灵活性。本文将探讨几种关键的设计模式,以及它们如何帮助我…

基于协同过滤+python+django+vue+的音乐推荐系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…

计算机网络(一) —— 网络基础入门

目录 一,关于网络 二,协议 2.1 协议是什么,有什么用? 2.2 协议标准谁定的? 2.3 协议分层 2.4 OSI 七层模型 2.5 TCP/IP 四层模型 三,网络传输基本流程 3.1 局域网中两台主机通信* 3.2 报文的封装与…

【VSCode】VSCode Background 背景插件辅助窗口程序

前排贴上Github项目链接 GitHub窗口项目链接 这是一个基于VSCode上由shalldie上传的background扩展制作的windows窗口程序。 该程序旨在通过窗口程序尽可能的完善该扩展原有的功能。 background - shalldie 的最大优势是我目前仅在其扩展上发现了UseFront的选项,这…

共享单车轨迹数据分析:以厦门市共享单车数据为例(四)

副标题:共享单车与地铁接驳距离探究——以厦门市为例 关于轨道交通站点接驳范围的研究早已屡见不鲜,通常认为以站点为圆心、800米作为地铁站直接的服务范围是合理的。近年来,随着轨道、公交和慢行交通三网融合概念的提出,慢行交通…

docker--刚开始学不知道如何操作拉取,或拉取失败(cmd)

报 unauthorized: incorrect username or password.(未授权) 进行授权 在docker desktop注册账号登录好docker desktop 在cmd中进行docker登录,输入账号密码,提示Login Succeeded,即登录成功 docker login -u xxx(x…

Java API 之集合框架进阶

前言: 本文主要讲解集合框架中的List、Set、Map接口中的进阶知识,主要是分析其底层原理和优缺点。 1. List 接口 1.1 ArrayList import java.util.ArrayList; import java.util.List;public class ArrayListExample {public static void main(String[] …

《C++命名空间:大型项目中的挑战与应对》

在 C编程中,命名空间是一个强大的工具,它有助于避免命名冲突、组织代码结构以及提高代码的可维护性。然而,在大型项目中,命名空间的使用也可能会带来一些管理难题。本文将探讨 C命名空间在大型项目中可能出现的问题,并…

【Elasticsearch系列五】Java API

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…