当前位置: 首页 > news >正文

Java EE(17)——网络原理——IP数据报结构IP协议解析(简述)

一.IP数据报结构

在这里插入图片描述
(1)版本:指明协议的版本,IPv4就是4,IPv6就是6
(2)首部长度:单位是4字节,表示IP报头的长度范围是20~60字节
(3)8位区分服务:实际上只有4位TOS有效,分别是最小延时,最大吞吐量,最高可靠性,最小成本
(4)总长度:报头+数据部分。IP数据报最大长度为2^16字节,也就是64KB
(5)生存时间:单位是次数,防止数据在网络上无限转发,8个比特位表示IP数据报最多能在网络上转发128次
在这里插入图片描述
由上图可知,从我这里到美国政府官网IP数据报也仅仅转发了18次,所以8位生存时间完全够用
(6)协议:表示在传输层使用什么协议,UDP还是TCP还是其他?
(7)校验和:只针对IP报头进行校验,因为IP载荷部分有UDP/TCP进行校验
(8)源地址:发送方的IP地址
(9)目的地址:接收方的IP地址
(10)可选字段:主要是拓展功能,最大长度是40字节
(11)填充:保证IP报头的长度是4的整数倍

问题一:16位标识,3位标志,13位片偏移分别有什么用?

IP数据报最终是会传递给数据链路层再封装,但是由于物理条件的影响,数据链路层的载荷最大能携带1500(MTU)字节。虽然IP数据报载荷最大能携带64KB的数据,但由于下层的限制,必须在网络层进行拆分,数据到达接收方的时候再组装。而拆分和组装的过程就需要用到标识,标志,片偏移这三个字段
(1)16位标识:唯一标识一个IP数据报。同一个数据报的标识是一样的,便于区分哪些分区属于同一个数据报
(2)3位标志

  1.  第一位:保留位,必须为0(暂时用不到这个保留位,所以先设为0,方便以后使用)
    
  2.  第二位:如果为1,表示该数据报禁止分片。当IP载荷超过MTU时就会丢弃该数据报,并且返回ICMP错误信息给源主机(发送方)
    
  3.  第三位:如果为1,表示该数据报不是最后一个分片,最后一个分片为0
    

(3)13位片偏移: 指示当前分片在原数据报中的位置(以8字节为单位)

二.IP协议解析

2.1地址管理

IP地址是32位比特位,通常用点分十进制表示,比如(192.168.1.1)。IP地址一共有2^32个,大概是43亿个,看似是一个比较庞大的数字。但随着科技的发展,现在的智能家电也需要分配IP地址,这就导致IP地址逐渐不够用了,那么如何解决这一问题,有以下几个策略

2.1.1 动态分配IP地址

只给接入网络的设备分配IP地址,该设备每次接入互联网分配到的IP地址不一定是一样的,这样就避免IP地址一直绑定在某个设备上

2.1.2 NAT机制

将IP地址分为公网IP和私网IP,公网上的IP必须是唯一存在的,但是不同私网中可以存在相同的IP
在这里插入图片描述
基于以上的设定,必须要做出以下限制:
1.公网设备访问公网设备,无限制
2.局域网设备访问局域网设备(同一局域网),也没啥问题
3.局域网设备访问局域网设备(不同局域网),不允许
4.局域网设备访问公网设备,需要将局域网设备的私网IP替换为公网IP
5.公网设备访问局域网设备,不允许主动访问
在这里插入图片描述

2.2网段划分

IP地址由网络号+主机号组成
网络号:用于标识一个特定的网络,确定数据包应该被发送到哪个网络
主机号:用于区分同一网络中的不同设备
网络号的长度取决于IP地址的类型子网掩码

在这里插入图片描述
A类:0.0.0.0到127.255.255.255
B类:128.0.0.0到191.255.255.255
C类:192.0.0.0到223.255.255.255
D类:224.0.0.0到239.255.255.255
E类:240.0.0.0到247.255.255.255
但是按照上述规则来划分网络号和主机号有很大弊端
以B类地址为例,一个IP地址可以容纳2^16(六万多)主机,在现实情况中一个子网很难有拥有这么多主机,导致大量IP地址被浪费掉。面对IP地址本来就不够用的趋势,就有了新的划分方案

子网掩码

格式:也是32位比特位,通常使用点分十进制的形式表示

作用:子网掩码用于划分IP地址的网络部分和主机部分。例如,一个常见的子网掩码11111111.11111111.11111111.00000000(255.255.255.0)表示前24位是网络号,后8位是主机号
通俗来讲,从左到右(从高位到低位),1的个数就是网络号的个数,0的个数就是主机号的个数。将IP地址和子网掩码进行&运算,计算结果就是网络号

特殊的IP地址

(1)将IP地址中的主机号全设置为0,就变成了网络号,表示当前主机,该IP地址**不能分配**给某个主机
(2)将IP地址中的主机号全设置为1,就变成了广播地址。用于在网络中所有设备发送信息
(3)127.*地址用于本机环回测试,通常使用127.0.0.1

2.2路由选择

作用:路由器根据数据包的目的IP地址,选择一条合适的路径将数据包转发到下一个路由器,最终到达目的地
路由表:路由器内部维护的一张表,记录了到达不同网络或主机的路径信息。路由表包含目的地址网络掩码下一跳IP地址输出接口等信息

相关文章:

  • TabularDataset
  • 蓝桥杯备考----》完全背包模板
  • HarmonyOs学习 实验四:开发一个登录界面
  • Electron 系统托盘与屏幕捕捉深度解析:从基础到企业级实践
  • 【Linux】网络概念
  • STM32F103_LL库+寄存器学习笔记13 - 梳理外设CAN与如何发送CAN报文(串行发送)
  • [Vue2]侦听器watch(监视器)
  • Android JobScheduler调度任务面试题及参考答案
  • 01_现代C++特殊成员函数
  • Android 10上如何查看GPU占用率 安卓手机怎么看gpu频率
  • 介绍一下JVM内存结构面试回答(后续会继续补充)
  • Netty源码—10.Netty工具之时间轮
  • QT 动态布局实现(待完善)
  • 【docker】Dockerfile中ENTRYPOINT和CMD区别理解
  • c语言strcat和strlen的注意事项
  • 实现分布式锁的方案与实战应用案例
  • PP-ChatOCRv3新升级:多页PDF信息抽取支持自定义提示词工程,拓展大语言模型功能边界
  • 【深度学习新浪潮】什么是推理模型?
  • spring boot中“编程式事务”与“声明式事务”对比
  • day18 学习笔记
  • vue 做企业网站行不/河南企业站seo
  • python3 做网站/东莞做网站排名优化推广
  • 淄博学校网站建设哪家好/制作网站需要什么
  • 网站制作难度/seo导航站
  • java能网站开发吗/广州seo公司官网
  • 东莞专业做淘宝网站/国外推广渠道平台