JavaEE IP协议详细讲解

news2024/11/15 12:34:41

详细讲解IP协议 O > O

文章目录

  • JavaEE & IP协议
    • 1. 地址管理
      • 1.1 IP协议报文格式
      • 1.2 动态分配IP地址
      • 1.3 NAT机制
      • 1.4 IP协议
      • 1.4 IP协议工作过程
      • 1.5 IPV6协议
      • 1.6 IP地址的组成
      • 1.7 特殊的IP地址
    • 2. 路由选择

JavaEE & IP协议

1. 地址管理

我们希望,每个网络上的设备,要能分配到一个地址(唯一)

1.1 IP协议报文格式

在这里插入图片描述

本质上,IP地址就是一个32为的整数

  • 点分十进制的形式~
  • 三个点分成四个部分,每个部分0-255

而如果单看int的取值范围

  • 它可以表示42亿9千万的数据
  • 2147483648 * 2
    • 字节换算牢记(常见)
    • 0 - 255 ==> -128 - 127
    • 0 - 65535 ==> -32768 - 32767
    • 0 - 42亿9千万 ==> -21亿 - 21亿

显然,这是不够用的

  • 全世界有很多的电脑,服务器路由器,还有很多很多很多的手机~

1.2 动态分配IP地址

设备上网才分配,不上网就不分配

  • 可以省下一大批ip地址,但是并没有增加ip地址的数量
  • 治标不治本,只能缓解~

路由器的一个功能,DHCP

  • 如果开启了DHCP,此时路由器就自动给你的设备分配一个局域网内唯一的ip
    • 默认是开启自动分配的
    • 不开启也可以,但是需要人工来保证你的ip是唯一的
    • 如果与别人重了,两个人都得寄

昨天的IP和今天的很可能不一样~

1.3 NAT机制

它把所有的IP地址分为两大类:

  1. 内网IP: 【10.* 】或者【172.16.* ~ 172.31.* 】或者 【192.168.* 】
    • 只要是这三种开头的,都被称为内网ip
  2. 外网IP:剩下的ip
  • 多个设备一个外网IP,一个设备一个内网IP
  • 不同外网IP的设备,可以有同一个内网IP

例子:

我们在现实中其实也不少见这种情况

  • 例如在学校网购,如果只有一个快递驿站,那么所有学生老师的快递的地址都填的是学校的地址
  • 学校的地址是唯一的,但是这个包裹的主人不一定唯一

即,内网设备如果要访问外网,会给它分配一个外网IP

  • 这个外网IP并非某设备的专属,
  • 而是这个内网中的所有设备都共用这一个外网IP~

在这样的放宽之下,IP就够用了~

什么是内网和外网:

  • 局域网可以称之为内网
    • 一个设备的局域网的内网IP
  • 对于内网和外网的规模规范,没有明确,类似局域网和广域网的界限
  • 在广域网内的外网ip(局域网在广域网中的位置),内网设备要向与外界交流,必然有一个外网IP,即所属局域网共用IP

在这里插入图片描述
控制台ipconfig:

  • 内网IP
    在这里插入图片描述
    iP地址查询–手机号码查询归属地 | 邮政编码查询 | iP地址归属地查询 | 身份证号码验证在线查询网 (ip138.com)

在这里插入图片描述

  • 这就是一个外网IP
  • 共用IP

1.4 IP协议

1.4 IP协议工作过程

  • 设备1要发消息给设备2:

在这里插入图片描述

  1. 构造IP数据报

在这里插入图片描述

  1. 经过路由器:

    • 内网设备必须有外网IP才能发送给外网设备

    • 源IP替换为路由器(NAT设备)的IP

在这里插入图片描述

  1. 设备2收到通过网络传输来的IP数据报:

在这里插入图片描述

  • 也就是说,设备1所在局域网,也有其他设备用的是同一个外网IP
    • 设备2无法分辨这两个数据报属于不同的设备的请求

在这里插入图片描述

  1. 设备2返回响应:

    • 让路由器去处理,设备2按照数据报发送就好了~
    • 路由器是知道替换关系的

    端口号用来区分一个主机的不同程序,

    配合内网IP去区分不同主机的不同程序,也完全可以

在这里插入图片描述

在NAT背景下如何通信:

  1. 外网设备 => 其他外网设备,不需要任何NAT,直接就能通信
  2. 内网设备 => 其他内网设备,不允许!
    • 你的内网IP,不同局域网也可以有
  3. 外网设备 => 内网设备,不允许!
    • 只能交给那个路由器,他秘密地交给对应的设备
    • 好比说,你知道了内网设备的内网IP,那么这个IP不同局域网也能用(有很多),那么你怎么发送呢?
      • 并且,你也不能通过这个内网IP获取这个内网设备的外网IP~
  4. 内网设备 => 外网设备,对应的内网设备的路由器
    • 触发NAT机制进行ip替换,此时就会给这个网络数据报的源ip替换成路由器自己的ip
    • 即,内网设备的数据报获取一个共用的外网ip

1.5 IPV6协议

在这里插入图片描述

从根本上解决IP不够用问题

  • 前面的IP协议,其实是IPv4
    • IPv4是传统的IP协议,使用4个字节,32位表示ip地址
  • IPv6是更新了一些的IP协议,使用16个字节,128位来表示ip地址~
    • 大了可不止4倍,而是296次方倍!!!
    • 这个数字,给地球的每一粒砂子分配ip都是够用的~
    • 电子产品 本质上是 Si,Si的来源就是砂子(SiO2

IPv6早在2000时期提出,但是现在上网还是以IPv4为主

  • IPv6,真正被用到的情况很少~

IPv6月IPv4并不兼容

  • 一个IPv4路由器,要想支持动态分配和NAT软件上升级下系统就行了(成本低)
  • 一个IPv4路由器,要想支持IPv6,光升级软件没有用,还得升级硬件(成本很高)
    • 旧的路由器得丢了换新的IPv6路由器

在我国,IPv6的普及率很高了(世界一流) => 70% +

  • 已经准备就绪了,但是还没开启使用,就是我们一般的路由器支持IPv4和IPv6,但是IPv6默认是关闭的~

1.6 IP地址的组成

  1. 网络号
    • 标识一个局域网
  2. 主机号
    • 标识了一个局域网内部的主机
    • 同一网段网络号一样,不同主机的主机号一定不一样

一个路由器有两个IP:

  1. WAN口IP
  2. LAN口IP

在这里插入图片描述

例子:

  • 上面的局域网,192.168.1就是网络号,最后一个点后面就是主机号
  • 下面的局域网,192.168.0就是网络号,最后一个点后面就是主机号
    • 路由器1,连接两个局域网,这两个局域网就是“相邻”的局域网
    • 这两个局域网的网络号不能重复!

在这里插入图片描述

网路号与主机号的划分:

  1. IP地址分类(ABCDE)(淘汰了)

    • 前缀:用来区分类别(A类B类…)

    • 每个类别的网络号和主机号是固定的

      1. 本来就不富裕的IP地址,我还要浪费比特位去区分类别

      2. 主机号的位数太多没必要(一般不会有那么大的局域网去连接那么多台主机)

在这里插入图片描述

  1. 子网掩码(真实的划分方式)

命令行+ ipconfig /all:

子网掩码,也是一个32位整数

  • 但是它的特点就是,左侧是1右侧是0,1和0的个数和为32!
  • 255.255.255.0 => 11111111111111111111111100000000
  • 255.252.0.0 => 11111111111111000000000000000000

子网掩码的

  • 1的那段】代表IP地址的网络号
  • 0的那段】代表IP地址的主机号
  • 这样其实就可以据局域网实际情况调整主机号的“上限”
    在这里插入图片描述

家用网络,子网掩码一般是255.255.255.0但是对于一些大型网络,就可能会更复杂~

  • 网络管理员负责

1.7 特殊的IP地址

假定子网掩码为 255.255.255.0

  1. 主机号比特位为0的IP

192.168.0.0 => 这个称为网络号

  • 局域网里不应该存在某个主机的主机号为0
  1. 主机号比特位全为1的IP

192.168.0.255 => 这个称为广播地址

  • 往这个地址发送UDP数据报,此时这个数据报会被转发给这个局域网里的所有主机!
  • TCP不支持广播,TCP要建立连接嘛~

例子(投屏):

  1. 手机投屏到电视机上
  2. 手机和电视机都下载了投屏软件
  3. 手机和电视机在同一个局域网内
  4. 手机发起投屏,有一个自动查找电视机的过程,而这个过程就是,将广播地址发送了数据报,哪个设备有回应,就可能是你的电视机
  5. 因此手机能获取电视机的IP地址

发送数据报给广播地址,是在我不能预先知道对方的地址的情况下,所需要采取的探测操作

  1. 127开头的IP

127.0.0.1(最常用) => 称之为 “环回IP”

  • 127.1.1.1
  • 127.1.1.10

环回ip对应特殊的虚拟网卡io

  • 传入或者传出环回ip的数据,走的就是这个虚拟网卡(这个过程没有io操作,是纯内存操作)

所以,这个ip的数据传输要比普通ip快~

  1. 主机号为1的IP

192.168.0.1 => 一般称之为 “网关IP”

区别于刚才三种,这一种是习惯约定,不是强制约定

  • 可以手动改的,但是正常没人会去改~

网关 — 局域网的出入口~
在这里插入图片描述

2. 路由选择

机器之间的信息交流,具体要走哪条路?

  • 这就是“网络层”对传输路径规划

互联网,存在大量的冗余

  • 之前核战争的时候,为了防止爆炸导致传播中断,所以是有多条线传输数据的!

那么在这几条路径里,应该要走哪条呢?

  • 地图软件是站在上帝视角,他知道整块地区的模样,只需要解决“带权图的最短路径”问题就行了
    在这里插入图片描述

在网络上,网络环境更复杂,没这么容易

  • 某个路由器,是无法把整个网络环境的模样记录下来的
    • 路由器只能记录周围的情况(较小范围,认识邻居或者邻居的邻居)
  • 路由器内部使用,路由表这种数据结构来记录邻居的信息~

实际的转发过程,是渐进式的,类似于 “问路 一样”逐渐接近最终目标的~

  • 每到一个路由器,就规划一下接下来的路径

图示:

在这里插入图片描述

  1. 如果的“目的IP”在路由表里有,直接指明道路
  2. 如果没有,它会根据路由表给你规划一条合理的走向目的IP的路
    • 路由表中的“下一跳表项”
    • 指向更上一级的路由器
      • 越上级的路由器,它的路由表就越大,记忆的就越多,功能也会越多(见多识广的路由器)
    • 这个指向,就是到达终点的大致方向

对于路由表这种数据结构,如果不是路由器开发工程师,大概率涉及不到的。在这里不做研究~


文章到此结束!谢谢观看
可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭🦆

网络层告一段落,接下来是数据链路层,这也距离程序员更远

敬请期待~


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

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

相关文章

免费AI人工智能在线写作伪原创-百度ai自动写文章

免费伪原创洗稿工具 免费伪原创洗稿工具现在终于推出了!你是否在写作的时候,经常因为缺乏灵感而苦恼?或者,你在撰写文章的时候,发现自己的语言表述不够丰富,缺乏变化,语句重复率太高&#xff1f…

从零学习SDK(9)SDK的局限

SDK是一种便捷而实用的工具,但软件开发者不能视SDK为万能的解决之道,SDK也有局限性,并且这些局限性可能会十分“致命”。软件开发者在选择SDK产品之前,需要先了解SDK的不足之处。本文将介绍SDK存在的三种问题,以引起软…

新手必看!ChatGPT常见问题总整理,你遇到了几个?

随着ChatGPT火爆全球,使用人数以指数型成长,许多使用上的问题呈现在网路上。 今天这篇文章会用实作的方式带大家了解ChatGPT有哪些常见问题,以此减少踩坑的机会。 并用简单的示例让大家感受GPT-3.5与GPT-4的能力差异,希望对大家有所帮助。 大家会有这些问题,其实就是希望…

【手把手做ROS2机器人系统开发一】开发环境搭建

【手把手做ROS2机器人系统开发一】开发环境搭建 目录 【手把手做ROS2机器人系统开发一】开发环境搭建 一、专栏介绍: 二、开发环境搭建: 1.Ubuntu系统安装 2.ROS2系统环境安装 3.测试系统运行 一、专栏介绍: 大家好,今天给大家…

哈希表企业应用-淘宝分布式文件系统核心存储引擎

哈希表企业应用-淘宝分布式文件系统核心存储引擎-基本概述 淘宝网 谁都知道 是一个电子商务网站,可能是第一批电商模式 b2c 当然从一个技术人员讲只有一点 淘宝店铺商品存储到哪里 感觉有点像废话 :肯定在仓库里 不,我说的是 :商品详情页以及商品介绍 存储 在哪里 我知道大家都…

【图论】弗洛伊德Floyd算法模板及实战(LeetCode743)

文章目录 框架实战 Floyd-Warshall算法本质是一种动态规划,可以用于解决任意两点间的最短路径(多源最短路径问题),支持负权,而Dijkstra算法则不支持负权。 框架 第一步: 定义s[i][j]存储i到j的(最短)路径长…

字典树/前缀树Trie(附Java代码)

字典树/前缀树 1.字典树Trie1.1 字典树举例 2.代码实现2.0 代码结构2.1方式一:使用数组存储孩子节点2.2方式二:使用HashMap存储孩子节点 在计算机科学中,trie,又称前缀树或字典树,是一种有序树,用于保存关联…

一文带你上高速入门linux(含常用命令语法、说明、举例)

一文带你入门linux常用命令(含举例和详细说明) Linux系统操作介绍1. Linux发行版2. Linux文件系统3. Linux基本命令4. Linux用户和权限管理5. 软件包管理6. 系统管理7. 网络管理8. Shell脚本9. 文本处理10. 系统监控和日志11. 总结 Linux系统操作介绍 L…

塔望3W消费战略全案丨品类重新定义 打造金皇品高端速食第一面

金皇品 客户:上海皇品食品有限公司 品牌:金皇品 服务:3W消费战略 品牌全案 项目背景 金皇品隶属于上海皇品食品有限公司,品牌创立于1995年。产品以原汁作为核心卖点,通过线下渠道的密集耕耘,在浙江&…

NPM 发包 js 文件并支持 ts 使用(包含 gulp 打包压缩)

主篇 npm 上传发布自定义组件以及使用详细流程。 npm login 报错&#xff1a;Unexpected token < in JSON at position 0 while parsing near ‘<!DOCTYPE HTML PUBLI…’。 登录 npm $ npm login Username: dengzemiao Password: Email: (this IS public) xxxx163.co…

【李宏毅】GNN学习笔记

视频链接 [TA 補充課 Graph Neural Network (1/2) (由助教姜成翰同學講授) - YouTube] [TA 補充課 Graph Neural Network (2/2) (由助教姜成翰同學講授) - YouTube] [speech.ee.ntu.edu.tw/~tlkagk/courses/ML2020/GNN.pdf] Introduction 应用&#xff1a;分类、Generatio…

Docker 快速入门

1、Docker 简介 Docker是一个开源的容器引擎&#xff0c;它可以帮助我们更快地交付应用。Docker可将应用程序和基础设施层隔离&#xff0c;并且能将基础设施当作程序一样进行管理。使用Docker&#xff0c;可更快地打包、测试以及部署应用程序&#xff0c;并可减少从编写到部署…

mysql主从复制搭建--待实践完善

一、什么是mysql主从复制 参考链接&#xff1a;MySQL主从介绍_rain_yunlx的博客-CSDN博客 Linux下搭建Mysql主从复制详细步骤&#xff08;Mysql版本5.7.35&#xff09;_linuxmysql主从_Direct_的博客-CSDN博客 Linux环境MySQL数据库主从复制保姆级教程_linux主从复制_小学生…

山东大学2023操作系统实验2

目录 (1)操作系统实验2内容: (2)完成方式: (3)使用函数和功能: 1.pipe函数与有关的功能 2.pipe的返回值 3.pipe的参数 4.使用事项: (4)实现代码 (5)实现效果 (1)操作系统实验2内容: 创建三个并行的进程,分别完成计算F(x),F(y),F(x,y)三个函数的计算 (2)完成方式: 实验…

再也不去字节跳动面试了,6年测开经验的真实面试经历.....

前几天我朋友跟我吐苦水&#xff0c;这波面试又把他打击到了&#xff0c;做了快6年软件测试员。。。为了进大厂&#xff0c;也花了很多时间和精力在面试准备上&#xff0c;也刷了很多题。但题刷多了之后有点怀疑人生&#xff0c;不知道刷的这些题在之后的工作中能不能用到&…

18.Java异常

Java异常 Java 中的异常&#xff08;Exception&#xff09;又称为例外&#xff0c;是一个在程序执行期间发生的事件&#xff0c;它中断正在执行程序的正常指令流。为了能够及时有效地处理程序中的运行错误&#xff0c;Java中引入了异常类的概念。异常类的引入即明确了程序在执…

QT stackUnder 用法小结

stackUnder是什么意思&#xff1f;根据官方的解析&#xff0c;简而言之一句话&#xff1a;把窗口的小部件放置于父窗口的堆栈窗口中。本文将通过一则简单的示例&#xff0c;来具体解析stackUnder该如何使用。 官方解析 void QWidget::stackUnder(QWidget *w) Places the widg…

ThinkPHP6之数据库操作上

ThinkPHP6之数据库操作上 前言1. 数据库配置2. 数据库操作1. 查询操作2. 插入操作3. 修改4. 删除5. 其他 3.数据集总结 前言 注意&#xff0c;tp6在进行语法学习的时候都是在app/index.php中写代码的&#xff0c;代码写在index函数下面&#xff0c;而且tp6自带的文件都是由自动…

经常打电话的人用什么耳机好?通话质量好的蓝牙耳机推荐

用蓝牙耳机听歌、刷视频、玩游戏已经成为趋势&#xff0c;作为人手必备的一件单品&#xff0c;在款式层出不穷&#xff0c;功能各异的蓝牙耳机市场&#xff0c;许多人都不知道究竟什么蓝牙耳机好&#xff1f;下面整理了几款通话质量好的蓝牙耳机。 一、南卡小音舱Lite2蓝牙耳机…

【服务器数据恢复】Raid磁盘阵列常见故障类型原因分析

由于raid的特点和优势&#xff0c;磁盘阵列技术被广泛应用于服务器和存储等商用领域。由于用户基数大&#xff0c;出现故障的情况也不少。通过这篇文章介绍一下常见的raid磁盘阵列数故障类型和原因。 故障类型一、磁盘阵列处于降级状态时未及时rebuild。 RAID磁盘阵列的数据安全…