JAVAEE初阶相关内容第十八弹--网络原理之TCP_IP【续集】

写在前

上一篇博客的重点内容主要讲了关于传输层的TCP协议、UDP协议。

点击跳转上一篇博客

重点介绍了协议的特点、协议端格式、需要重点理解并掌握TCP的工作机制(十条)。

TCP与UDP对比?

TCP用于可靠传输的情况,应用于文件传输,重要状态更新等场景。

UDP用于对高速传输和实时性要求较高的通信领域,例如,早期的QQ,视频传输等,另外,UDP还可以用于广播【同一机房内部,天然支持广播-- IP地址中有一种特殊的地址”广播IP“通过UDP往广播上发送数据报,此时该局域网内所有的设备都能收到数据。】

传输层的协议并非只有这两个,例如有的是专门为了游戏打造的,典型协议:KCP。

本篇博客将重点介绍网络层协议-IP

目录

网络层协议代表-IP协议

1. 协议头格式

2. 点分十进制

3. 关于IP地址不够用问题的解决办法

(1)动态分配IP

(2)NAT网络地址转换

(3)IPV6

4. IP协议-地址管理

4.1 网络号

4.2 主机号

4.3 子网掩码

5. IP协议-路由选择


网络层协议代表-IP协议

在复杂的网络环境中确定一个合适的路径。

1. 协议头格式

地址管理、路由选择。

对“16位总长度”的理解

16位总长度是不是意味着一个IP数据报,最大只能支持64KB?

确实是有这个限制的,相当于一个快递公司一次最大只能给运输64kg的快递,但是,IP自身就支持对包的拆分和组装。一个IP数据报携带的数据载荷太大了,超过了64KB,就会在网络层针对数据进行拆分,把一个数据拆分成多个IP数据报,再分别发送,接收方再重新拼装。

IP协议中最重要的部分:32位源IP,32位目的IP

2. 点分十进制

此处看到的IP地址是32位整数,但是日常见到的IP则是一串数字,使用三个点把32位4个字节的数字分隔开,每个部分分别使用0-255的十进制数字进行表示。

3. 关于IP地址不够用问题的解决办法

32位数字,只能表示42亿9千万个数字,我们期望使用这个表示全世界所有的上网设备。为了解决IP地址不够用的问题,想了很多办法。

(1)动态分配IP

提高利用率,指标不治本

(2)NAT网络地址转换

使用1个IP地址代表一批网络设备【端口号区分】

关于内网和外网:

NAT背景下把IP地址分成了两大类:内网IP和外网IP

内网IP【私有IP】:10.开头的、172.16.*-172.31.*、192.168.*

外网IP【公网IP】: 除了内网IP外的都是外网IP。

NAT要求:公网IP必须是唯一的,内网IP可以在不同的局域网中重复出现。如果某个私网里的设备想访问公网的设备,就需要对应的NAT设备【路由器】,把IP地址进行映射,从而完成网络访问。反之,公网的设备,无法直接访问私网的设备,不同局域网的私网设备没法直接进行相互访问。

NAT机制能够有效的解决IP不够用的问题,但是带来的副作用就是网络的环境更加复杂了。

(3)IPV6

根本上解决了IP不够用的问题,使用16位字节表示IP地址。

虽然IPV6看起来是美好的,但是当前世界上仍然是以NAT+IPV4+动态分配来进行网络组建的。真正使用IPV6的地方非常少。

主要原因是IPV6贵,IPV6与IPV4还不兼容。

4. IP协议-地址管理

把一个IP地址分成了两部分,一个叫网络号,一个叫主机号。

4.1 网络号

表示网段,保证相互连接的两个网段具有不同的标识。

4.2 主机号

标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号。

193.168.0.10    --   网络号:192.168.0  主机号:10

划分网络号和主机号就是为了组网。

4.3 子网掩码

子网掩码格式和IP地址格式一样,也是32位的二进制数,其中左边是网络位,用二进制”1“表示,1的数目等于网络位长度。右边是主机位,用二进制”0“表示,0的数目等于主机位长度。对于家用设备来说,子网掩码最常见的就是255.255.255.0。

作用:划分A、B、C三类IP地址子网;网络通信时,子网掩码会结合IP地址,可以计算获得网络号(划分子网后的网络号)及主机号(划分子网后的主机号)。一般用于判断目的IP与本IP是否为同一个网段。

5. IP协议-路由选择

路径规划

核心思路--问路。每个路由器都会保存一定的周围设备的信息(路由表)。每次有一个IP数据报经过路由器。就需要匹配路由表,看看接下来咋走。如果路由表上有匹配的选项【该路由器认识路】,直接按照要求走就可以。如果没有匹配的选项【不认识路】,会提供一个默认路径,大体方向是不会错的。每次经过一个路由器问一次,TTL-1。如果减到0还没到,就说明永远都到不了,这个地址没人知道,就被丢弃了。

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

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

相关文章

【优选算法】202.快乐数

一,题目解析 图形结合: 二,算法原理 快慢双指针 1,定义快慢指针 2,慢指针每次移动一步,快指针一次移动两步 3,判断相遇时的值为1即为快乐数 三,编写代码 class Solution {publ…

Leetcode.2477 到达首都的最少油耗

题目链接 Leetcode.2477 到达首都的最少油耗 rating : 2012 题目描述 给你一棵 n n n 个节点的树(一个无向、连通、无环图),每个节点表示一个城市,编号从 0 0 0 到 n − 1 n - 1 n−1 ,且恰好有 n − 1 n - 1 n−…

微信小程序pc端样式调试:默认宽高为1024*812,全屏宽高为1920*1032

最近开发调试pc端小程序,想知道默认打开和全屏这两种情况下的小程序宽高,发现了一种方法: 真机运行pc端小程序,点击devTools 在控制台直接打印window对象,可以获取到pc端默认屏幕宽高为1024812,全屏pc端小…

【实用+干货】如何使用Clickhouse搭建百亿级用户画像平台看这一篇就够了

背景 如果你是用户,当你使用抖音、小红书的时候,假如平台能根据你的属性、偏好、行为推荐给你感兴趣的内容,那就能够为你节省大量获取内容的时间。 如果你是商家,当你要进行广告投放的时候,假如平台推送的用户都是你潜…

【无标题】什么是UL9540测试,UL9540:2023版本增加哪些测试项目

什么是UL9540测试,UL9540:2023版本增加哪些测试项目 UL 9540是美国安全实验室(Underwriters Laboratories)发布的标准,名称为"UL 9540: Energy Storage Systems and Equipment",翻译为中文为"能量存储…

Vue Computed

小满,我的神! 视频链接 // 只读 const plusOne computed(() > count.value 1) // 可读可写 const plusOne computed({get: () > count.value 1,set: (val) > {count.value val - 1} }, { // 用于调试onTrack(e) {debugger},onTrigger(e) …

坚鹏:中国工商银行内蒙古分行数字化转型发展现状与成功案例培训

中国工商银行围绕“数字生态、数字资产、数字技术、数字基建、数字基因”五维布局,深入推进数字化转型,加快形成体系化、生态化实施路径,促进科技与业务加速融合,以“数字工行”建设推动“GBC”(政务、企业、个人&…

5.2k Star!一个可视化全球实时天气开源项目!

大家好,本文给大家推荐一款全球实时天气开源项目:Earth。 项目简介 Earth 是一个可视化全球天气实况的项目。该项目以可视化的方式展示了全球的天气情况,提供了风、温度、相对湿度等多种天气数据,以及风、洋流和波浪的动画效果…

openlayers地图使用---跟随地图比例尺动态标绘大小的一种方式

openlayers地图使用—跟随地图比例尺动态标绘大小的一种方式 预期&#xff1a;随着地图比例尺放大缩小&#xff0c;地图上的标绘随着变化尺寸 结果图 页面元素 <script src"https://cdn.bootcdn.net/ajax/libs/openlayers/8.1.0/dist/ol.min.js"></script…

Python标准库:time模块【侯小啾Python基础领航计划 系列(十八)】

Python标准库:time模块【侯小啾Python基础领航计划 系列(十八)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ…

Linux下的java环境搭建

1&#xff0c;安装jdk 上传linux使用的jdk到/opt目录下 解压tar -zxvf文件 配置环境变量 vim /etc/profile 在文件中添加 export JAVA_HOME/opt/jdk8 export PATH$PATH:$JAVA_HOME/bin 使文件生效 source /etc/profile 2,安装tomcat 将tomcat包解压&#xff0c;进入bi…

深度学习在图像识别中的应用

深度学习在图像识别中的应用 摘要&#xff1a;本文介绍了深度学习在图像识别领域的应用&#xff0c;包括卷积神经网络&#xff08;CNN&#xff09;的基本原理、常见模型以及在图像识别中的优势。并通过实验展示了深度学习在图像识别中的实际应用和效果。 一、引言 随着数字化…

新华三数字大赛复赛知识点 VLAN基本技术

VLAN IEEE 802.1Q 交换机端口类型 MVRP协议 VLAN Virtual LAN虚拟局域网。LAN可以是由几台少数家用计算机构成的网络&#xff0c;也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络–也就是广播域。将一个物理的局域网在逻辑上划分成多个广播域…

3、抽象工厂模式(Abstract Factory Pattern)

抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;在工厂模式上添加了一个创建不同工厂的抽象接口&#xff08;抽象类或接口实现&#xff09;&#xff0c;可称该接口为作“超级工厂”。在使用过程中&#xff0c;首先通过抽象接口创建出不同的工厂对象&#xff0c;…

SQL Server的安装和首个库的创建

一、熟悉SQL Server的安装环境&#xff1b; 1.安装Microsoft的数据库管理系统SQL Server 2022 先把SQL Server 2022下载好后进行解压后出现以下界面然后点击基本进行安装 然后会出现以下界面&#xff1a; 一步步按照提示往下走即可&#xff0c;把SQL Server 2022安装完成后再…

代码随想录算法训练营 ---第五十五天

今天是 动态规划&#xff1a;编辑距离问题。 第一题&#xff1a; 简介&#xff1a; 动态规划五部曲&#xff1a; 1.确定dp数组的含义 dp[i][j] 表示以下标i-1为结尾的字符串s&#xff0c;和以下标j-1为结尾的字符串t&#xff0c;相同子序列的长度为dp[i][j]。 2.确定递推公…

性能测试流程、指标及常见问题!

1.介绍性能测试流程 a.性能需求分析&#xff08;评审&#xff09; 基于接口或者场景&#xff08;全链路&#xff09;的性能测试指标&#xff0c;一般是tps&#xff08;每秒事务数&#xff0c;这里都是通过的事务&#xff09;及art&#xff08;平均响应时间&#xff09; b.了解…

基于JSDoc实现TypeScript类型安全的实践报告

在FEDay 2023中我讲了《从JS到TS无缝迁移的实践报告》【视频在这里在这里】&#xff0c;是将一个传统的JS项目&#xff08;mochajs/mocha&#xff09;迁移到TypeScript环境的全程。其中提到了一件事情&#xff0c;就是“可以通过JSDoc/TSDoc来生成.d.ts”&#xff0c;从而实现T…

Shell数组函数:数组(二)

关联数组 注意&#xff1a;先声明关联数组 一、定义关联数组 方法一 #一次赋一值 #数组名[索引]变量值 [rootlocalhost ~]# declare -A ass_array1 [rootlocalhost ~]# ass_array1[index1]pear [rootlocalhost ~]# ass_array1[index2]apple [rootlocalhost ~]# ass_array1[ind…

centos7-zabbix安装与使用(较全的配置)

文章目录 zabbix介绍一、zabbix是什么1.1 zabbix专用词汇1.2 zabbix程序组件 二、zabbix的优缺点三、为什么使用zabbix3.1 zabbix可以满足的监控系统需求 四、zabbix监控的生命周期 zabbix安装一、zabbix环境搭建1.1 安装wget1.2 关闭防火墙1.3 关闭SELinux 二、安装zabbix2.1 …
最新文章