【JavaEE】IP协议

 作者主页:paper jie_博客

本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。

本文于《JavaEE》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将基础知识一网打尽,希望可以帮到读者们哦。

其他专栏:《MySQL》《C语言》《javaSE》《数据结构》等

内容分享:本期将会分享网络编程中的IP协议

目录

IP协议的概念

协议头格式

网段划分

特殊IP

地址管理

动态分配IP地址

IPv6

NAT技术

路由选择


IP协议的概念

想我们前面说到的UDP和TCP协议都是作用在运输层的,而我们的IP协议则是作用来网络层的.而IP协议最主要的工作就是两方面: 1. 地址管理,使用一套地址管理,来描述互联网上每个设备所在的位置. 2. 路由选择, 也就是规划通信中的路线. 如果从互联网中某个地址到另一个地址.  

主机: 这里主机一般是配有一个IP地址,但是它不能进行路由控制. 

路由器: 配有IP地址,还可以进行路由控制.

节点: 主机和路由器的统称.

协议头格式

4位版本: 这里主流的版本就是IPv4(当前主流的版本)和IPv6.

4位首部长度: 这里单位是4字节.IP头部长度最长为 16 * 4 个字节.

8位服务类型: 这里实际上只有4位有效,且这4位彼此间是冲突的.(最小延时,最大吞吐量,最高可靠性,最小成本).

16位总长度(单位字节数): 描述了一个IP数据报的长度.(包含报头 + 载荷) 这里如果传输的TCP数据报超过64k它就会进行拆包传输,变成多个IP数据报.

16位标识: 唯一标识主机发送的报文. 如果IP报文在数据链路层被切片了.那这里的每一片里面的标识都是相同的.

3位标志: 这里只有后两位有效.第二位表示是否拆包了. 第三位表示结束标识,如果分片了,就会将最后一片为1,其他为0来表示结束.

13位片偏移: 这里是分片相当于原始IP报文开始处的偏移量. 描述了这些包之间的先后顺序.

 8位生存时间: 这里表示每经过一个路由器转发,它就会-1,但这个数值减到0了,就会进行丢包.这是为了防止这个数据包在网络上无限的转发下去.

8位协议: 表示在传输层使用的是哪一种协议.

16位首部校验和: 只针对IP的首部校验,载荷部分TCP/UDP都有自带的校验和.

32位源IP和32位目的IP地址: 表示发送端主机和接收端主机

网段划分

我们的IP地址一般都分为两部分: 网络号和主机号. 网络号就是用来保证相互连接的两个网段具有不同的标识. 主机号就是同一网段内,主机之间具有相同的网络号,但主机号是不同的. 不同的子网就是将网络号相同的主机放在一起.一般来说,我们家用宽带中默认就是前三个字节就是网络号,主机号的范围就表示了局域网中可以有多少个设备.

在一个局域网中,网络号和主机号都相同的话,这个时候就无法上网.

如果局域网中的设备,网络号和路由器的网络号不相同,也是不能上网的(因为这个主机不能通过路由器访问到外网,也不能访问局域网中的其他设备)

两个相邻的局域网,网络号不能相同(一个路由器连接的两个网络,就是相邻的)

我们通过合理设置主机号和网络号,就可以保证在相互连接的网络中,每台主机的IP地址都不同了. 这里有一种技术jiaozuoDHCP,可以自动给子网内新增主机节点分配IP地址,可以避免手动管理IP的不变.

特殊IP

这里还会有一些特殊的IP.

127.0.0.1: 环回IP,表示本机,一般是在测试中使用,这里127*都是环回IP.

如果将IP地址中的主机地址全部设置成0,就成为了网络号,代表这个局域网.

将IP地址中的主机地址全部设置成1, 就成为了广播地址,用来给同一个链路中相互连接的主机发送数据包.(往广播地址上发消息,局域网中的所有设备都可以收到(连接的同一个WiFi)).

地址管理

IP地址本质上就是一个32位的整数.为了方便,使用点分十进制的方式来区分,每一部分的范围都是0 - 255.IP地址的存在就是为了可以区分网络上的不同的设备.希望每个设备都有唯一的IP地址. 但是随着互联网的发展,32位的这个整数开始捉襟见肘了.为了解决IP地址不够用的情况,就需要相出解决方法.主要就是有三种.

动态分配IP地址

这里主要的做法就是只给接入网络的设备分配IP地址,因此同一个MAC地址的设备,每一次接入互联网,得到的IP地址就可能不同.但是这种做法只是简单的缓解了当前的情况,治标不治本.

IPv6

IPv6和IPv4有这本质的区别,并不是它的简单升级版,这是两个互不相关的两个协议,并不兼容. IPv6用16个字节128位来表示一个IP地址.这就相当于就算是地球上的每一粒沙子都可以分配到一个IP地址.但是IPv6的普及度并不高,最高的还是我们中国,普及度有70%.

NAT技术

这里会先将IP地址分为两个大类:

1. 私网IP/局域网IP

IP地址是10.*, 172.16 - 172.31*, 192.168* 这三类都是私网IP.

2. 公网IP

除了上面这些,其他的IP都是公网IP了.

这里要求公网上的设备对应的公网的IP,都是唯一的. 但是私网上的设备的IP只要保证局域网内部的IP不重复即可.不同的局域网的IP是允许重复的. 

由于上面这种规定,就有一些限制:

1. 公网设备访问公网设备,没有任何问题,可以直接访问.

2. 局域网设备访问局域网设备(同一个局域网),也没问题.

3. 但是局域设备访问局域设备(不同的局域网),就不允许访问了.

4. 公网设备不允许主动访问局域网设备.

5. 局域网设备访问公网设备,就需要对局域网设备的IP进行地址转换.

一般来说,带有公网IP的路由器都是运营商的路由器. 它一般就连着几个局域网的路由器. 这里注意: 一般一个路由器都会有两个IP地址. LANIP, 是一个局域网IP. WANIP,可能是局域网IP,也可能是公网IP, 而路由器的核心就是将这两个网连起来.

而这里NAT技术起到的作用就是: 局域网设备在进行数据传输到路由器后,路由器就会将源IP改成自己的IP,一直替换到这个数据报源IP变成了公网IP,就不会进行替换了. 经过这种替换,本质上就是让一个公网IP可以对应多个设备.

而这里就会有一个问题了: 那这个数据的响应怎么返回,源IP都替换掉了. 这里在路由器内部会将这次通信的相关信息记录下来,记录这次通信过程中的 替换前的源IP 替换后的源IP 目的IP. 返回时就将源IP和目的IP反过来. 这里如果是同一个局域网多个设备访问同一个服务器, 那它这里就会多出一个源端口和目的端口来区分. 如果恰好这里端口也相同,它就会对端口号也使用映射,再变成不同的端口号就行了.

路由选择

路由选择就是在网络结构中规划出一条路线. 这里因为网络结构太复杂了,每个路由器都无法掌握全局的信息,只能掌握一部分局部信息,就属于(走一步看一步).

路由器转发数据包就和我们生活中通过问路来找地方一样.数据报中包含了目的IP,就是问路的目标. 每个路由器对于网络环境(附近的设备情况)有一定的了解.此时就可以根据路由器的了解来进行下一步. 这里的了解,路由器内部有一个路由表来存储. 里面存储了目的IP的网段,对应的网络接口(从路由器哪个口出). 如果目的IP中路由表有就直接转发即可. 当目的地址路由表中没有相关信息,就会交个下一跳(一般就是它的上层路由器).

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

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

相关文章

方法递归调用

一、递归调用的基本介绍 二、递归调用机制 三、递归重要规则

【STM32 CubeMX】SPI HAL库编程

文章目录 前言一、CubeMX配置SPI Flash二、SPI HAL编程2.1 查询方式函数2.2 使用中断方式2.3 DMA方式 总结 前言 STM32 CubeMX 是一款由 STMicroelectronics 提供的图形化配置工具,用于生成 STM32 微控制器的初始化代码和项目框架。在 STM32 开发中,使用…

【springboot+vue项目(十五)】基于Oauth2的SSO单点登录(二)vue-element-admin框架改造整合Oauth2.0

Vue-element-admin 是一个基于 Vue.js 和 Element UI 的后台管理系统框架,提供了丰富的组件和功能,可以帮助开发者快速搭建现代化的后台管理系统。 一、基本知识 (一)Vue-element-admin 的主要文件和目录 vue-element-admin/ |…

LabVIEW智能家居控制系统

LabVIEW智能家居控制系统 介绍了一个基于LabVIEW的智能家居控制系统的开发过程。该系统利用LabVIEW软件与硬件设备相结合,通过无线网络技术实现家居环境的实时监控与控制,提升居住舒适度和能源使用效率。 项目背景:随着科技的发展和生活水平…

《剑指Offer》笔记题解思路技巧优化 Java版本——新版leetcode_Part_4

《剑指Offer》笔记&题解&思路&技巧&优化_Part_4 😍😍😍 相知🙌🙌🙌 相识😢😢😢 开始刷题1. LCR 148. 验证图书取出顺序——栈的压入、弹出序列2. LCR 14…

蓝桥杯官网填空题(寻找整数)

问题描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 有一个不超过 10^17 的正整数 n,知道这个数除以 2 至 49 后的余数如下表所示,求这个正整数最小是多少。 运行限制 最大运行时间:…

【个人博客搭建】butterfly主题配置

目录 一、基础配置 (一) 模板配置 1. 文章模板 2. 页面模板 (二) 创建页面和文章 1. 标签页【可选】 2. 分类页【可选】 3. 友链页【可选】 4. 404页面【可选】 5. 文章 (三) 导航栏设置 1. 基础项 2. 菜单项 (四) 页面设置 1. 代码框设置 2. 社交图标设置 3.…

实习日志14

完善条件查询和word生成列表 条件查询 word生成列表 1.阶段性总结 1.1.入职培训 首先,蔡老师的活字格软件开发入门和应用培训为我提供了深入了解软件开发的机会。通过学习,我掌握了一些基础的开发技能,尤其是在数据库设计和管理方面有了更深…

缩小ppt文件大小的办法

之前用别人模版做了个PPT,100多M,文件存在卡顿问题 解决办法: 1.找到ppt中哪个文件过大,针对解决 2.寻找视频/音频文件,减少体积 3.字体文件是不是过多的问题。 一、文件寻找的内容步骤: 步骤: 1.把p…

一、springBoot入门

一、springBoot入门 步骤一:分析 建立一个需求:使用 SpringBoot 开发一个web应用,浏览器发起请求 /hello后,给浏览器返回字符串“hello worid ~"。 构建步骤概况 创建Maven攻城导入spring-boot-stater-web起步依赖编写Cont…

中科大计网学习记录笔记(十二):TCP 套接字编程

前前言:大家看到这一章节的时候一定不要跳过,虽然标题是编程,但实际上是对 socket 的运行机制做了详细的讨论,对理解 TCP 有很大的帮助;但是由于本节涉及到了大量的编程知识,对于一些朋友来说不是很好理解&…

会声会影2024新功能及剪辑视频步骤教程

会声会影2024的新功能主要包括: 全新的标题动态与特效:用户可以为文字标题指定进入、中场和退出的不同动态效果,比如闪现进入、中场弹跳和淡出退出等,让文字标题更具动感。此外,还新增了多个标题特效,包括…