Internet协议——IP

article/2025/9/24 13:27:31

IP

  • Internet协议——IP
    • IP协议与tcp/IP的关系
    • IP地址的表示
    • IP地址的特点
    • 地址转换——ARP
    • 反向地址转换——RARP
    • 计算子网掩码
  • IP数据报的格式
    • IP数据报首部的固定部分

Internet协议——IP

IP:通信子网的最高层。提供无连接的数据报传输机制。IP协议是点到点,核心是寻径。
配套三个协议:
ARP:地址转换协议 (Address Resolution Protocol)
RARP:反向地址转换协议 (Reverse Address Resolution Protocol)
ICMP:Internet控制报文协议(Internet Control Message Protcol)
IP配套协议关系图

IP协议与tcp/IP的关系

TCP/IP只是一个运输协议,位于运输层。TCP用到IP。

IP地址的表示

IP地址就是给每一个连接在Internet上的主机分配一个唯一的32bit地址 
IP地址的结构使我们可以Internet上很方便地进行寻址 
这就是先按IP地址中的网络号码 net-id 把网络找到
再按主机号码 host-id 把主机找到 。

IP地址指出了连接到某个网络上的某个计算机
IP地址的组成:类别字段(又叫类别比特)、网络号码字段(net-id)、主机号码字段(host-id)
如图所示:
IP地址组成

还有一些特殊的IP地址一般不作使用:

  • 全0的网络号码 这表示 本网络 或 我不知道号码的这个网络
  • 全1的网络号码
  • 全0的主机号码 这表示该IP地址就是网络的地址
  • 全1的主机号码 表示广播地址 即对该网络上所有的主机进行广播
  • 全0的IP地址 即0.0.0.0
  • 网络号码为127.X.X.X. 这里X.X.X为任何数 这样的网络号码用作本地软件回送测试 (Loopback test) 之用
  • 全1地址255.255.255.255 这表示 向我的网络上的所有主机广播 原
    先是使用0.0.0.0

如此可以了解到我们能使用的IP地址范围:
IP地址使用范围

IP地址的特点

IP地址有一些重要的特点

  1. IP地址有一些是一种非等级的地址结构 这就是说 和电话号码的结构不一样 IP地址不能反映任何有关主机位置的地理信息。
  2. 当一个主机同时连接到两个网络上时 作路由器用的主机即为这种情况该主机就必须同时具有两个相应的IP地址 其网络号码net-id是不同的这种主机成为多地址主机 multihomed host 。
  3. 按照Internet的观点 用转发器或网桥连接起来的若干个局域网仍为一个网络 因此这些局域网都具有同样的网络号码net-id.。
  4. 在IP地址中 所有分配到网络号码net-id的网络 不管是小的局域网还是很大的广域网 都是平等的。

地址转换——ARP

在得知主机的IP地址之后,还不能对目标主机进行访问,因为IP地址只是位于网络层的,并不能代表目标主机,还需要掌握目标主机的物理地址,这时就需要用到ARP协议来将IP地址转换为物理地址。
每一个主机都有一个ARP高速缓存(ARP cache),里面存放着IP地址到物理地址的映射表。
如果主机A中没有查到主机B的IP地址的物理地址,那么主机A就会运行ARP向本局域网内的所有主机发送一个ARP请求分组,这个请求中也会带着自身的物理地址,主机B收到请求之后就会向主机A发送一个响应分组,响应分组中带着主机B的物理地址的映射,主机A收到之后就会在自己的ARP高速缓存中写入主机B的IP地址到物理地址的映射。
步骤划分:

  1. ARP进程在本局域网上广播发送一个ARP请求分组 上面有主机B的IP地址。
  2. 在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组。
  3. 主机B在ARP请求分住中见到自己的IP地址 就向主机A发送一个ARP响应分组 上面写入自己的物理映射。
  4. 主机A收到主机B的ARP响应分组后 就在其ARP高速缓存中写入主机B的IP地址到物理地址的映射。

反向地址转换——RARP

有时候我们不止需要用到ARP,在某些场景下还需要用到RARP(反向地址转换),例如一些无盘工作站,只知道物理地址却不知道IP地址。这种无盘工作站一般只要运行其ROM中的文件传送代码 就可用下行装载方法 从局域网上其他主机得到所需的操作系统和TCP/IP通信软件 但这些软件中并没有IP地址 无盘工作站要运行ROM中的RARP来获得其IP地址。
RARP的工作过程大致如下:

  1. 为了使RARP能工作 在局域网上至少有一个主机要充当RARP服务器 无盘工作站先向局域网发出RARP请求分组 在格式上与ARP请求分组相似并在此分组中给出自己的物理地址。
  2. RARP服务器有一个事先做好的从无盘工作站的物理地址到IP地址的映射表当收到RARP请求分组后 RARP服务器就从这映射表查出该无盘工作站的IP地址 然后写入RARP响应分组 发回给无盘工作站 无盘工作站用这样的方法获得自己的IP地址。

计算子网掩码

通过ip地址求子网掩码
对于无须再划分子网的ip地址,子网掩码很简单,按照定义即可得出,如:B类地址的子网掩码为255.255.0.0;C类地址的子网掩码位255.255.255.0,以此类推。
对于还需要将高位主机位再划分出子网网络号,其余主机位是子网的主机号,该如何计算出子网掩码?
(1)利用子网数来计算
将ip地址将要划分的子网数目转换为二进制,得到该二进制的位数N;
将ip地址类的子网掩码中的主机号最高N位置为1,就得到了该ip地址划分子网的子网掩码。
例如:将ip地址158.243.0.0划分为28个子网
28转换为二进制为:11100,N位5;
该ip地址为B类网络,类子网掩码为255.255.0.0,将主机位最高前5位置为1后得到:255.255.248.0。即为划分成 28个子网的B类IP地址 158.243.0.0的子网掩码。
(2)利用主机数求子网掩码
将主机数转化为二进制数,得到二进制位数N;
如果主机数小于等于254(去掉两个特殊地址),则二进制位数N<8,如果大于254,则 N>8,这就是说主机地址将占据不止8位。
将该类ip地址的子网掩码的主机位为全部置1,得到255.255.55.255,再将主机位低N位全部置0,就得到子网掩码。
例如:将ip地址158.243.0.0划分为700台主机
700转换为二进制为:1 1100 0000‬ ,N为9;
将255.255.255.255中主机地址后9位置0,得到:11111111.11111111.11111110.00000000,即255.255.254.0,就是ip地址158.243.0.0子网掩码。
————————————————
版权声明:本文为CSDN博主「星光不负赶路人_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/YIUECHEN/article/details/105549490

IP数据报的格式

在TCP/IP的标准中 各种数据格式常常以32bit 即4字节 为单位来描述。
IP数据报

IP数据报首部的固定部分

  1. 版本
    版本字段站4 bit,指IP协议的版本。通信双方使用的IP协议的版本必须一致。目前使用的IP协议版本为4。
  2. 首部长度
    首部长度字段占4bit,可表示的最大数值是15个单位( 一个单位为4字节),因此IP的首部长度的最大值是60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后一个填充字段加以填充。这样,数据部分永远在4字节的整数倍时开始,这样在实现起来会比较方便。首部长度限制为60字节的缺点是有时 (如采用源站选路时)不够用。但这样做的用意是要用户尽量减少额外的开销。
  3. 服务类型
    服务类型字段共8bit长,用来获得更好的服务。其意义见图的上面部分所示。
    服务类型字段的前三个比特表示优先级,它可使数据报具有8个优先级中的一个。
    第4个比特是D比特,表示要求有更低的时延。第5个比特是T比特,表示要求有更高的吞吐量。第6个比特是R比特,表示要求有更高的可靠性,即在数据报传的过程中,被结点交换机丢弃的概率要更小些。第7个比特是C比特,是新增加的,表示要求选择价格更低廉的路由。最后一个比特目前尚未使用。
  4. 总长度
    总长度指首部和数据之和的长度,单位为字节,总长度字段为16bit,因此数据报的最大长度为65535字节。这在当前是够用的。
    当很长的数据报要分段进行传送时,“总长度”不是指未分段前的数据报长度,而是指分段后每个段的首部长度与数据长度的总和。
  5. 标识
    标识字段的意义和OSI的IPDU中的数据单元标识符的意义一样。是为了使分段后的各数据报段最后能准确地重装成为原来的数据报。请注意:这里的“标识” 并没有顺序号的意思,因为IP是无连接服务,数据报不存在按序接收的问题。
  6. 标志
    标志字段占3bit,目前只有前两个比特有意义。
    标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面还有分段的数据报。MF=0表示这已是若干数据报段中的最后一个。
    标志字段中间的一位记为DF(Don’t Fragment ),只有当DF=0时才允许分段。
  7. 段偏移
    段偏移字段的意义和OSI的IPDU中规定的相似,只是表示的单位不同。这里是以8个字节为偏移单位,可见IP数据报的段偏移字段(13bit长)和OSI的IPDU的段偏移字段(16bit长)是相当的。
  8. 寿命
    寿命字段记为TTL(Time To Live),其单位为秒,寿命的建议值是32秒,但也可设定为3-4秒,或甚至255秒。
  9. 协议
    协议字段占8bit,它指出此数据携带的运输层数据是使用何种协议,以便目的主机的IP层知道应将此数据报上交给哪个进程。常用的一些协议和响应的
    协议字段值是 UDP (17),TCP(6),ICMP(1),GGP(3),EGP(8),IGP(9),OSPF(89),以及ISO的TP4(29)。
  10. 首部检验和
    此字段只检验数据报的首部,不包括数据部分。不检验数据部分是因为数据报每经过一个结点,结点处理机就要重新计算一下首部检验和(一些字段如寿命、标志、段偏移等都可能发生变化)。如将数据部分一起检验,计算的工作量就太大了。
  11. 地址
    源站IP地址字段和目的站IP地址字段都各占4字节。

http://chatgpt.dhexx.cn/article/GFm9Qqnd.shtml

相关文章

InternetOpen InternetOpenUrl InternetReadFile 和 InternetCloseHandle

文章目录 InternetOpen函数功能函数声明第一个参数第二个参数第三个参数第四个参数第五个参数返回值补充&#xff1a;InternetOpenUrl函数功能函数声明第一个参数第二个参数第三个参数第四个参数第五个参数第六个参数返回值补充补充InternetReadFile函数功能函数声明第一个参数…

juniper设备日常操作指南

1、日常show操作 # show 查看所有配置 # show | display set 查看set格式的所有配置 # show system | display set 查看set格式的system层级配置 # show system login | display set 查看set格式的system层级下的login层级配置# run show version # run show route 1.1.1.…

这几个juniper巡检命令超实用

1. CPU利用率核查 show chassis routing-engine2. MEM利用率核查 show chassis routing-engine3. OSPF邻居关系核查 show ospf neighbor4. LDP端口状态检查 show ldp interface5. ISIS邻居关系检查 show isis adjacency6. BGP邻居关系检查 show bgp neighbor7. HSRP信息检…

Juniper

Juniper Networks[编辑] Juniper Networks公司类型 上市&#xff08;NYSE&#xff1a;JNPR&#xff09;成立1996年2月代表人物执行长&#xff1a;Shaygan Kheradpir 技术长&#xff1a;Pradeep Sindhu 董事长&#xff1a;Scott Kriens总部地点 加州森尼韦尔&#xff08;Sunnyva…

Juniper入门之RIP

拓扑 配置 JUNOS-1 #配置接口 interfaces {em2 {unit 10 {family inet { address 12.1.1.1/24;}}}lo0 {unit 10 {family inet {address 1.1.1.1/32;}}} } protocols {rip {import import-policy;group rip-group {export export-policy;neighbor em2.10 {send …

Juniper Radius And Tacacs Server 认证测试

1. 简述 Juniper产品支持Radius、Tacacs及本地Password认证。根据不同的用户需求&#xff0c;3A服务器认证可能会结合域用户、LDAP、RSA-Token等认证服务器进行综合认证。此测试报告使用Juniper VSRX和Cisco ACS5.2验证3A相关认证选项。 2. 测试拓扑 使用Vmware workstation 9…

Juniper-SRX-基于域控认证的用户防火墙

目录 1&#xff1a;架构与环境说明 2&#xff1a;防火墙基础配置 3&#xff1a;Win-server部署 4&#xff1a;SRX-加域流量放行 5&#xff1a;Client相关域设置 6&#xff1a;Win-server联动SRX的相关设置 7&#xff1a;SRX-外部Server配置 8&#xff1a;SRX域控认证策略…

Juniper考试认证简单介绍

简单的对考试的介绍&说明&#xff1a; JUNIPER认证考试是分产品的&#xff0c;目前最完善的是M/T骨干路由器产品的考试&#xff1b; JNCIS&#xff0c;这个是笔试&#xff1b; JNCIP&#xff0c;实验室考试[1天]&#xff1b; JNCIE&#xff0c;实验室考试[1天]&#xff1b;…

Juniper认证介绍

转自&#xff1a;http://tech.ddvip.com/2008-06/121260544745173.html Juniper网络公司技术认证项目(JNTCP)由特定平台的多级系列课程组成。每套课程都允许学员通过笔试、实际配置及故障排除考试相结合的方式来证明自己在Juniper网络公司技术方面的能力。通过考试的考生可以证…

Juniper防火墙之图解用户认证

今天正好学习到Juniper防火墙中的用户认证&#xff0c;那么今天就带大家来看看Juniper防火墙的用户认证。 Juniper防火墙的用户分类&#xff1a; 1、Admin User&#xff1a;管理员用户 2、Auth User&#xff1a;认证用户 3、IKE User&#xff1a;IKE第一阶段用户的认证 4、XAut…

设计模式-观察者模式

观察者模式定义 观察者模式定义对象之间的一对多以来&#xff0c;这样以来&#xff0c;当一个对象改变状态时&#xff0c;它的所有依赖者都会收到通知并自动更新。 观察者模式理解 结合下面的观察者模式类图。 首先&#xff0c;我们要知道观察者就是那群等待被通知的人&…

vue -观察者模式

观察者模式 vue中的观察者模式什么是观察者模式案例 vue中的观察者模式 vue2 底成的原理是 object.defineproperty&#xff08;&#xff09; 配合观察者模式 object.defineproperty&#xff08;&#xff09;对数据可以进行劫持 当数据发生变化的时候 需要通知被依赖的地方 这时…

观察者模式(python)

一、模式定义 1.观察者模式(Observer Pattern)&#xff1a;定义对象间的一种一对多依赖关系&#xff0c;使得每当一个对象状态发生改变时&#xff0c;其相关依赖对象皆得到通知并被自动更新。 2.观察者模式又叫做发布-订阅&#xff08;Publish/Subscribe&#xff09;模式、模…

观察者模式(结合C#,Unity)

文章目录 前言概念简介观察者模式&#xff1f;发布-订阅模式&#xff1f; 观察者&#xff08;发布-订阅&#xff09;模式应用不用设计模式实现用接口实现观察者模式代码结构介绍实现发布-订阅模式 用事件实现改进接口法改进方式事件管理中心 前言 概念简介 先来看一段比较正式…

Android设计模式详解之观察者模式

前言 观察者常用于订阅-发布系统&#xff0c;能够将观察者和被观察者进行解耦&#xff0c;降低两者之间的依赖&#xff1b; 定义&#xff1a;定义对象间一种一对多的依赖关系&#xff0c;使得每当一个对象改变状态时&#xff0c;则所有依赖于它的对象都会得到通知并被自动更新…

PHP 观察者模式 理解

用模式开发的优点是&#xff0c;能让我们的逻辑结构以及代码更加清晰&#xff0c;便于维护&#xff01; 而我们为什么要用 “观察者模式”&#xff1f;这就需要从实际运用中来理解才能更好的运用&#xff01;用如下的情境来说明吧。 事例&#xff0c;开始时我被安排做项目的登…

C++设计模式——观察者模式

观察者模式&#xff08;Observer&#xff09; 观察者模式是目前应用最广、影响范围最大的模式之一&#xff0c;因为 Observer 的一个实例Model/View/Control&#xff08; MVC&#xff09; 结构在系统开发架构设计中有着很重要的地位和意义&#xff0c; MVC实现了业务逻辑和表示…

Vue观察者模式和发布订阅者模式

什么是观察者模式&#xff1f; 例如&#xff1a;抖音上的小杨哥&#xff0c;当小杨哥在抖音开启直播时&#xff0c;会自动通知所有的粉丝。 小杨哥&#xff1a;直播间开播了&#xff01; 小杨哥为目标 抖友为观察者 目标应该具备 收集观察者删除观察者通知观察者 <!DO…

c++之观察者模式

一&#xff0c;观察者模式 随着交通信号灯的变化&#xff0c;汽车的行为也随之而变化&#xff0c;一盏信号灯可以指挥多辆汽车。 观察者模式是用于建立一种对象与对象之间的依赖关系&#xff0c;一个对象发生改变时将自动通知其他对象&#xff0c; 其他对象将相应作出反应&…

springBoot 观察者模式

观察者设计模式 jie神说用订阅和发布来理解更好&#xff0c;我想了一下是的 为什么呢&#xff1f;因为监听器这个名词听起来是一个主动的&#xff0c;可实际监听器是一个被动的玩意 比如我们事件源发布一个事件&#xff0c;然后监听器订阅了这个事件就能做出动作。 里面涉及到…