【Java EE初阶十八】网络原理(三)

3. 网络层

        网络层要做的事情主要是两方面:
        1)、地址管理:制定一系列的规则,通过地址,描述出网络上一个设备的位置;
        2)、路由选择:网络环境是比较复杂的,从一个节点到另一个节点之间,存在很多条不同的路径,就需要通过这种方式,筛选/规划出更合适的路径进行数据传输;

3.1 IP 协议

3.1.1 学习ip协议报头

        ip协议报头如下图所示:

四位版本

        4-> ip v4;
        6 -> ip v6;一般来说大规模使用的版本就是这两种

4位首部长度

        IP 协议的报头,也是变长的;即0-0xf  => *4 => 0-60 字节;

8位服务类型

        能够让IP 协议切换形态;即3位优先权字段(已经弃用),4位TOS字段(这四个位,彼此之间是冲突的,只有一位设为 1,不同的位设为 1,表示 IP 协议不同的形态.4种形态分别是最小延时,最大吞吐量,最高可靠性,最小成本),和1位保留字段(必须置为0);

16位总长度(字节数)

        描述了 IP 数据包最长是多长;IP 协议确实也存在 64KB 这样的限制, 但是 IP 协议自身支持"拆包组包"功能;

16位标识:如果一个大的 IP 数据包需要拆成多个小的,此时拆出来的这多个小包,16 位标识就是相同的数值

3位标志:有一位表示是否允许拆包个包,还有一位表示是否是最后一个包(类似于单链表的结束标记

13位偏移量:描述当前每个小的数据包(分片)相对位置

        通过这三个属性,来支持 IP 协议的拆包和组包;

8位生存时间(TTL)

        描述了这个 IP 数据包,在网络上还能继续存活多久;TTL 的单位,是次数,数据包构造出来的时候,TTL 会被设置成一个初始值(32,64,128....),数据包在转发过程中,每次经过一个路由器转发,TTL 就会 -1;如果这个数据包, 已经把 TTL 耗尽了,还没有顺利到达对方,就会被丢弃掉;

8位协议

        描述的是,IP 数据包的载荷部分,是一个 UDP 数据包还是 TCP 数据包(传输层是哪个协议)

16位首部检验和

        这个校验和,只是校验 IP 首部,不管 IP 数据的载荷(UDP/TCP 这样的数据, 自身都是有校验和的)

32位源IP地址:

32位目的IP地址:

        IP 地址,本质上就是一个 32位二进制的整数,为了方便人来理解,写作点分十进制方式,

3.2 地址管理 

3.2.1 ip地址的了解

        IP 地址,是一个 32 位的整数. 即2^32 => 42亿9千万个网络地址,理论上来说,是不应该重复的!但是物联网发展到今天,能上网的设备非常非常多的,且早就超过了 42亿9千万这个数字,为了解决ip地址不够用,就有了下面的措施:

方案一:动态分配 IP

        这个方案,治标不治本。提高了 IP 地址的利用率,但是并没有增加 IP 地址的数目.(虽然这是一个过度方案,但是这个方案目前仍然是广泛存在的)

方案二:NAT 机制 (网络地址转换)

        本质上是让一个 IP 地址来代表一批设备;

        把 IP 地址分成两个大类:

1) 、内网 IP (局域网 IP)

        如果一个 IP 地址,是以 10.*或者 172.16.*~~172.31*或者 192.168.*(符合上述条件之一,该IP 就是内网 IP),在同一个局域网内部,内网IP 之间不能重复,但是在不同的局域网中,内网 IP 之间是可以重复的。

2) 、外网 IP (广域网 IP)

        剩下的 IP 就都是外网 IP,外网 IP 则始终都不允许重复, 务必唯一;

3.2.2 NAT的工作机制

        此时,运营商路由器,也是一个 NAT 设备,就能够对当前这里的源 IP 进行替换.(内网IP无法在广域网上使用) ,运营商路由器,NAT 设备,就相当于一个中转站;

        如果当前局域网内,有多个主机, 都访问同一个网站服务器,此时服务器返回的响应经过当前的路由器之后,要交还给哪个主机呢?

        若是两个主机在发送ip数据报时,ip和端口一样时,如下图所示:

        当前的网络环境,就是以 NAT + 动态分配的方式来解决 IP 地址不够用的问题的.

        NAT 机制,最大的优势,"纯软件的方案”,也正是因为这个机制,局域网内部的设备,能够主动访问外网的设备,外网的设备无法主动访问局域网内部的设备;

方案三:IPv6

        IPv6 使用 16 个字节来表示IP 地址.该方案从根本上解决了问题,大幅度的提升了IP 地址的个数;

3.3 网段划分

        把一个 IP 地址,会分成两个部分:网络号(标识了一个局域网)+ 主机号(标识了局域网中的一个设备),详情如下所示:

        综上所述,同一个局域网中的设备,网络号必须相同.主机号必须不同;这两个相邻的局域网(通过一个路由器,连接的两个局域网),网络号不能相同;

        192.168.1.10对于上述的一个 IP 地址,哪个部分是网络号,哪个部分是主机号,不一定的.子网掩码,就是用来确定网络号的,详细情况如下图所示:

        上面是带有子网掩码的网段划分,是当下的网络环境现状,下图是一个"上古时期"的网段划分方式;

        1、如果一个 IP 地址,主机号全0,当前这个 IP 就表示“网络号”,如192.168.100.0和255.255.255.0,这是该ip代表一个局域网的,是不能给一个具体的主机分配这个 IP 的;

        2、如果一个 IP 地址,主机号全 1, 表示当前这个 IP 就是一个"广播址",如192.168.100.255,该ip也不能给具体的主机分配的;(前面说 UDP 天然能支持 广播,就是和这个 IP 有关系,使用 UDP socket 给这个地址发送 UDP 数据报,此时局域网中所有的设备,都能收到这个数据报,TCP 则无法和这个地址,建立连接)

        3、如果一个IP 是 127 开头的,此时这个 IP 就是"环回 ip"(loopback),127.0.0.1(最常用的),都表示“"设备自身” 自己发给自己;(操作系统提供了一个特殊的"虚拟网卡",关联到了这个 IP 上)

3.4 路由选择

        路由选择, 就是描述了 IP 协议(IP 数据报) 转发过程,从 A->B,中间可能有很多条可行的路径,但是具体怎么走的实际路径;

        进行IP 数据报转发的时候,每个路由器,都是无法知道网络的“全貌”,只知道一些局部信息.(一个路由器能知道哪些设备和它自己是相连的),这就意味着 IP 数据在转发过程中,是一个"探索式”"启发式"过程--->所以这个过程,很难给出"最优解" 只能是"较优解”;

        一个网络层的数据报,每次到达一个路由器,也会进行上述"问路"过程,每一个路由器内部都有一个数据结构“路由表”,根据数据报中的目的IP,查路由表,如果查到了(问的人,恰好知道咋走),就直接按照路由表给定的方向(从哪个网络接口进行转发),继续转发就行了;如果没查到(问的人,不知道咋走),路由表里面有一个"默认的表项”(下一跳地址),按照默认的表项转发即可;

ps:本篇的内容就到这里,如果大家感兴趣的话就请一键三连哦!!!

        

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

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

相关文章

2024阅读AOSP源码的正确打开姿势

2024阅读AOSP源码的正确打开姿势 在Android系统开发中,阅读AOSP(Android Open Source Project)源码是非常重要的环节。然而,如何构建一个优雅的阅读环境却是一个不容忽视的问题。本文将介绍不同工具和方法下阅读AOSP源码的正确姿…

渲染效果图为什么都选择使用云渲染,优势有哪些?

随着3D技术在动画、电影、游戏、建筑等领域的广泛应用,渲染作为3D制作流程中的重要环节,其效率和成本直接影响着项目的最终成果。 近年来,云渲染技术的兴起为3D创作者提供了一种全新的选择,与传统的本地渲染相比,云渲…

【Wio Terminal】输入/输出

输入/输出 一、概述1、硬件原理图Terminal引脚分布及功能Wio Terminal Grove端口引脚分配 二、使用Wio Terminal上的Grove模拟端口1、RPI 模拟引脚2、Grove引脚配置3、示例 三、使用 Wio Terminal上的Grove数字端口1、RPI 数字引脚2、Grove引脚配置将 Grove I2C 端口用作数字端…

数据结构1.0(基础)

近java的介绍, 文章目录 第一章、数据结构1、数据结构 ?2、常用的数据结构数据结构? 逻辑结构and物理结构 第二章、数据结构基本介绍2.1、数组(Array)2.2、堆栈(Stack)2.3、队列(Que…

2024阿里云云服务器ECS价格表出炉

2024年最新阿里云服务器租用费用优惠价格表,轻量2核2G3M带宽轻量服务器一年61元,折合5元1个月,新老用户同享99元一年服务器,2核4G5M服务器ECS优惠价199元一年,2核4G4M轻量服务器165元一年,2核4G服务器30元3…

C++之Easyx——图形库的基本准备工作

什么是Easyx? EasyX Graphics Library 是针对 Visual C 的免费绘图库,支持 VC6.0 ~ VC2022,简单易用,学习成本极低,应用领域广泛。目前已有许多大学将 EasyX 应用在教学当中。 它比Red PandaDev C上的图形库功能要强…

海外大带宽服务器连接失败:原因与解决策略

​随着全球互联网的发展,越来越多的企业和个人选择使用海外大带宽服务器来满足数据传输和业务需求。然而,在实际使用中,有时会出现服务器连接失败的问题。本文将为您分析原因并提供相应的解决策略。 一、海外大带宽服务器连接失败的原因 网络…

Feign 第一次调用为什么会很慢?

前言 首先要了解 Feign 是如何进行远程调用的,这里面包括,注册中心、负载均衡、FeignClient 之间的关系,微服务通过不论是 eureka、nacos 也好注册到服务端,Feign 是靠 Ribbon 做负载的,而 Ribbon 需要拿到注册中心的…

libgdx的完整教程

概述:如果大家想用java做游戏,那么libgdx可能是一个好的选择。LibGDX是一个强大的跨平台2D/3D游戏开发框架。 LibGDX的主要特点包括: 强兼容性:LibGDX能够运行在多种平台上,包括但不限于Mac、Linux、Windows以及Andr…

零基础学编程从哪开始,中文编程工具免费版下载及构件用法教程

一、前言 零基础学编程从哪开始,中文编程工具免费版下载及构件用法教程 今天给大家分享的中文编程开发语言工具资料如下: 编程入门视频教程链接 http://​ https://edu.csdn.net/course/detail/39036 ​ 编程工具及实例源码文件下载可以点击最下方…

酷开会员丨春节回家,用酷开系统欢聚K歌,唱出团圆喜乐

每当春节临近,总会在大街小巷听到熟悉的旋律,比如《恭喜发财》、比如《好运来》……这些氛围感满满的歌曲,代表着年味,寓示着团圆。 春节,是万家团圆的喜庆时刻,也是亲朋好友欢聚一堂的日子。亲友聚会&…

找座位 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C++ 题目描述 在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。 现在给出一排观众座位分布图,座位中存在已落座的观众,请计算出,在不移动现有观众座位…

阿里云香港轻量应用服务器是什么线路?

阿里云香港轻量应用服务器是什么线路?不是cn2。 阿里云香港轻量服务器是cn2吗?香港轻量服务器不是cn2。阿腾云atengyun.com正好有一台阿里云轻量应用服务器,通过mtr traceroute测试了一下,最后一跳是202.97开头的ip,1…

【深蓝学院】移动机器人运动规划--第5章 最优轨迹生成--笔记

文章目录 1. Preliminaries2. Multicopter dynamics and differential flatness(多旋翼动力学和微分平坦特性)2.1 Differential Flatness2.2 具体建模2.3 Flatness Transformation的解析推导 3. Trajectory Optimization轨迹优化3.1 Problem formulation…

五步解决 Ubuntu 18.04 出现GLIBC_2.28 not found的解决方法

Ubuntu 18.04 出现GLIBC_2.28 not found的解决方法 参考debian网址https://packages.debian.org/buster/并搜索想要的软件或者工具等,如libc6,有结果如下: 具体就不介绍了,请浏览官网了解。 第一步:添加软件源,在/et…

【BUG】段错误

1. 问题 8核工程,核4在运行了20分钟以上,发生了段错误。 [C66xx_4] A00x53 A10x53 A20x4 A30x167e A40x1600 A50x850e2e A60x845097 A70xbad9f5e0 A80x0 A90x33 A100x53535353 A110x0 A120x0 A130x0 A140x0 A150x0 A160x36312e35 A170x20 A180x844df0 …

Filterajax

1.Filter概念 概念:表示过滤器,是JavaWeb三大组件(Servlet,Filter,Listener)之一;过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能.过滤器可以完成一些通用操作比如:登录添加购物车,视频广告,敏感字符处理等等... 2.Filter快速入门 3.Listener 4.Ajax学习 1.使用场…

成功交易者需要历经多少磨难才能成就辉煌?

前言 王国维在《人间词话》中说:古今之成大事业、大学问者,必经过三种之境界:“昨夜西风凋碧树,独上高楼,望尽天涯路。” 此第一境也。“ 衣带渐宽终不悔,为伊消得人憔悴。” 此第二境也。“众里寻他千百度…

开源模型应用落地-工具使用篇-SLB(二)

一、前言 通过学习"开源模型应用落地"系列文章,我们成功地建立了一个完整可实施的AI交付流程。现在,我们要引入负载均衡,以提高我们的AI服务的性能和故障转移能力。本文将详细介绍如何使用腾讯云的负载均衡技术来将我们的AI服务部署…

archLinux安装记录

archLinux安装记录 基于wsl的arch 启用wsl 首先,按Win S搜索启用或关闭Windows功能(Turn Windows features on or off),打开虚拟机平台和WSL,并重启Windows。 重启后,进入Windows设置,检查更新。 更新完…