IP协议及相关技术协议

一、IP基本认识

1. IP的作用

IP在TCP/IP模型中处于网络层,网络层的主要作用是实现主机与主机之间的通信,而IP的作用是在复杂的网络环境中将数据包发送给最终目的主机。

2. IP与MAC的关系

简单而言,MAC的作用是实现“直连”的两个设备之通信,而IP负责“没有直连”的两个网络之间进行通信传输。

源IP和目的IP在传输过程中不会改变,只有源MAC和目的MAC在一直变化。

二、IP地址的基础知识

1. IP地址的分类

总共分为5类,A类、B类、C类、D类、E类。

每类地址中,除去主机号全为1(广播地址)和全为0(用于指定某个网络)的,能够包含的最大主机数量是可以推算的,比如C类:2^8-2 = 254。

广播的分类:

本地广播:发送给192.168.0.255的包不会到达192.168.1.0/24的网络

直接广播:从192.168.0.0网络下的主机发包到192.168.1.255(通常会被路由器认为不安全而屏蔽,无法穿透路由)

组播(多播)地址的作用:

不同于单播(单独发包)、广播(无法穿透路由,不转发广播包),多播用于将同样的包发送给特定组内的所有主机(可穿透路由)。

从224.0.0.0 ~ 239.255.255.255都是多播可用的范围,划分为三类:

        · 224.0.0.0 ~ 224.0.0.255为预留的组播地址,只能在局域网中,路由器不进行转发。

        · 224.0.1.0 ~ 238.255.255.255为用户可用的组播地址,可用用于Internet上。

        · 239.0.0.0 ~ 239.255.255.255为本地管理的组播地址,可供内部网在内部使用,仅在本地范围内有效。

IP分类的优缺点:

优点

通过判断首位为0还是1就可以很快找出网络地址和主机地址。

缺点

(1)同一网络下没有地址层次,比如一个公司用B类地址,可能需要根据生产环境、测试环境、开发环境来划分地址层次,而这种IP分类是没有地址层次划分功能的。

(2)不能很好与现实网络匹配,C类254太少,B类65534又可能太多。

这两个缺点,都可以在CIDR无分类地址解决。

2. 无分类地址CIDR、子网掩码
无分类地址CIDR:

表示形式 a.b.c.d/x,其中 /x 表示前 x 位属于网络号,后面的就是主机号。比如10.100.122.2/24。

子网掩码:

掩码的意思是掩盖掉主机号,剩余的就是网络号,将子网掩码与IP地址按位进行AND运算,就可以的到网络号

为什么要分离网络号和主机号:

在两台计算机通信时,首先判断是否处于同一个广播域内,即网络地址(网络号)是否相同,如果相同,就可以直接把数据包发送到目的主机。路由器寻址时,也是通过这样的方式来把数据包转发到对应的网络内。

子网划分:

子网掩码除了划分出网络号、主机号,还可以划分子网——把主机地址分为子网网络地址、子网主机地址。如下,划分出四个子网。

3. 公有IP地址、私有IP地址

4. IP地址与路由控制
路由控制表:

IP中网络号这一部分是用于进行路由控制。主机、路由器中的路由控制表记录着网络号与下一步应该发送至的路由器地址。

本地回环:

127.0.0.1作为本地回环地址(localhost),使用时,数据包不会流向网络。

5. IP分片与重组

每种数据链路的最大传输单元都是不同的,如以太网的MTU是1500字节。

当IP数据包大于MTU时,就会被分片,而重组只能由主机完成

在分片传输中,一旦某个分片丢失,则会造成整个IP数据报作废。TCP引入了MSS在TCP层进行分片,不由IP层分片。而对于UDP,尽量不要发送大于一个MTU的数据报文。

6. IPv6

IPv4是32位的大约可以提供42亿个地址,而IPv6是128位的,可分配地址的数量是很大的。此外IPv6还有更好的安全性和扩展性。

不过IPv4和IPv6之间互不兼容,不但需要设备支持,网络运营商也需要对现有设备升级,所以IPv6普及率比较慢。

亮点:

(1)即使没有DHCP服务器页可自动配置

(2)头部长度采用固定值40字节,去掉了报头校验和,简化了头部结构,提高了传输的性能

(3)对伪造IP地址有网络安全功能,能够防止线路窃听,安全性提升

IPv6地址的标识方法:

16位为一组,用“:”隔开,连续的零可以省略,用“::”隔开。不过,一个IP地址中只能出现一次两个连续的冒号。

单播地址类型:

(1)链路本地单播地址:同一链路单播通信,不经过路由器。

(2)唯一本地地址:在内网里单播通信,相当于IPv4的私有IP。

(3)全局单播地址:在互联网通信,相当于IPv4的公有IP。

7. IPv4头部、IPv6头部

IPv6相比IPv4头部的改进:

(1)取消了首部校验和字段。因为在数据链路层、传输层都会校验,IPv6取消了IP的校验。

(2)取消了分片/重组相关字段

(3)取消可选字段。这部分的内容出现在,“下一个首部”这个字段。

三、IP协议相关技术

1. DNS域名解析

通常在上网的时候,我们使用的是域名来访问,比如www.server.com。实现这一技术的就是DNS域名解析。DNS中域名使用句点来分隔,越右位置层级越高

在客户端发出一个DNS请求后,浏览器查看自己的缓存->向操作系统的缓存请求->查询本机域名解析文件hosts->访问本地DNS服务器->根域名服务器->.com顶级域DNS服务器->server.com权威DNS服务器

2. ARP与RARP协议
ARP协议:

主机的路由表可用找到下一跳的IP地址,ARP协议,通过广播ARP请求获得ARP响应,可以求得下一跳的MAC地址。操作系统通常会缓存这个MAC地址一定时间,以便近期重复使用。

RARP协议:

RARP协议用于已知MAC地址求IP地址。这个过程通常需要一台RARP服务器。硬件设备(主机)发送RARP请求包,从服务器拿到RARP响应来得知自己的IP地址。

3. DHCP动态获取IP地址
分配流程:

四个步骤:

(1)客户端通过UDP广播(不知道DHCP服务器位置)DHCP发现报文(DHCP DISCOVER)的IP数据段,源端口68,目的端口67。

(2)DHCP服务器通过DHCP提供报文(DHCP OFFER)向客户端做出响应,内容包括IP地址、子网掩码、默认网关、DNS服务器、地址租期。

(3)客户端收到一个或多个服务器的OFFER后,选择一个服务器,给它发送DHCP请求报文(DHCP REQUEST),回显配置的参数。

(4)服务端用DHCP ACK报文响应。

IP租约处理:

当DHCP IP地址快到期后,客户端会向服务器发送DHCP请求报文

(1)如果服务器同意继续使用,则用DHCP ACK应答,客户端延长租期;

(2)如果不让继续,则DHCP NACK,客户端就要停用这个IP。

DHCP中继代理:

在DHCP交互过程中,全程都是UDP广播通信,广播不能穿透路由器,那么每个网络都需要一个DHCP服务器吗?

DHCP中继代理,解决了这个问题,使不同网段的IP地址分配也能由一个DHCP服务器统一管理

4. NAT网络地址转换、NAPT网络地址与端口转换
NAT协议:

IPv4的地址是很紧缺的,通过CIDR无分类地址可以减缓IPv4的消耗速度。而NAT网络地址转换的方法,也缓解了这个问题。

简单而言,NAT就是把私有IP转换为公有IP。而普通的NAT转换并不会减少IPv4地址的消耗。

NAPT协议:

NAPT网络地址与端口转换,这个转换是IP地址+端口号一同转换的,可以减少消耗。

这种转换在TCP连接首次握手SYN时就会由NAT路由器生成转换表,关闭连接FIN的ACK时会被删除。

所存在的问题:

因为NAT/NAPT都依赖于自己的转换表,会有以下问题:

(1)外部无法主动与NAT内部服务器建立连接,因为NAPT转换表没有转换记录;

(2)转换的过程有性能开销;

(3)如果NAT路由器重启,所有的TCP连接都会重置。

两种解决方法:

(1)改用IPv6

(2)NAT穿透技术

客户端主动从NAT设备获取公有IP地址,然后自己建立端口映射条目,然后用这个条目对外通信,就不需要NAT设备来进行转换了。

5. ICMP互联网控制报文协议

Internet Control Message Protocol,主要功能包括:1. 确定IP包是否成功送达,2. 报告发送过程中IP包被废弃的原因,3. 改善网络设置 等。相关的通知消息也是使用IP进行发送

ICMP大致分为两类:

6. IGMP因特网组管理协议

这个协议和组播(多播)有关,是用来管理组的。IGMP工作在主机和最后一跳之间

IGMP报文向路由器申请加入/退出组播组,主机申请加入到组播组时,路由器就会记录IGMP路由器表,路由器后续就会转发组播包到对应的主机了。
IGMP报文采用IP封装,IP头部的协议号为2,而且TTL字段值通常为1,因为IGMP是工作在主机与连接的路由器之间。

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

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

相关文章

【深入理解设计模式】 工厂设计模式

工厂设计模式 工厂设计模式是一种创建型设计模式,它提供了一种在不指定具体类的情况下创建对象的接口。在工厂设计模式中,我们定义一个创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 工厂设计模式的目…

Web安全之浅见

备注:这是我在2017年在自己的网站上写的文章,今天迁移过来。 昨天去参加了公司组织的一个关于网络安全的培训,了解了很多关于网络安全方面的知识,也才意识到网络安全是一项极其重要的领域。 本篇文章主要聊聊Web安全。不过我对于网…

区块链游戏解说:什么是 Planet IX

作者:lesleyfootprint.network 编译:cicifootprint.network 数据源:Planet IX Dashboard 什么是 Planet IX Planet IX,一个由原生 IX TOKEN 推动的 Web3 玩赚平台。作为一款 GameFi 策略游戏, Planet IX 上的每项资…

ArcgisForJS如何访问Arcgis Server?

文章目录 0.引言1.准备ArcGIS相关工具2.创建含有ArcSDE地理数据库的MXD文件3.注册ArcSDE地理数据库4.发布数据到Arcgis Server5.ArcgisForJS访问ArcGIS Server数据 0.引言 ArcGIS API for JavaScript 是一个用于在Web和移动应用程序中创建交互式地图和地理空间分析应用的库。它…

Prometheus+TDengine集群实现监控体系高可用

背景 为避免再次出现因Prometheus宕机导致业务无法查看历史数据受到影响,准备将Prometheus架构从单节点方式升级为高可用集群方式并将后端存储由本地存储改为远端分布式时序数据库存储。分布式时序数据库采用国产数据库TDengine。 架构 解释:虚线代表P…

【服务器】服务器推荐

一、引言 在数字世界的浪潮中,服务器作为数据存储和处理的基石,其重要性不言而喻。而在这个繁星点点的市场中,雨云以其独特的优势和超高的性价比,逐渐成为众多企业和个人的首选。今天,就让我带你走进雨云的世界&#…

排序前言冒泡排序

目录 排序应用 常见的排序算法 BubbleSort冒泡排序 整体思路 图解分析 ​ 代码实现 每趟 写法1 写法2 代码NO1 代码NO2优化 时间复杂度 排序概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递…

QY-800S土壤水分测量仪的使用场景和功能作用

技术参数 ◆土壤湿度 测量范围:干土~饱和土 测量精度:3% 分辨率:0.1% ◆土壤温度 测量范围:-30℃~70℃ 测量精度:0.3℃ 分辨率:0.1℃ ◆记录间隔:30 分&#xff5…

数据分析(二)自动生成分析报告

1. 报告生成思路概述 怎么快速一份简单的数据分析报告,注意这个报告的特点: --网页版,可以支持在线观看或者分享HTML文件 --标题,动图,原始数据应有尽有 --支持交互,比如plotly交互画面,数据…

数论之约数(试除法求约数,约数个数,约数和)算法原理讲解及其实现

约数问题&#xff1a; 试除法&#xff1a; d|n 那么 n/d|n 也是成立的-----> 成对出现的 d<n/d d小于等于根号n 举例&#xff1a; 假如2是12的约数&#xff0c;那么6也是12的约数。 #include <iostream> #include <algorithm> #include <vector> #…

交换瓶子【第七届】【省赛】【A组】

题目描述 有N个瓶子&#xff0c;编号 1 ~ N&#xff0c;放在架子上。 比如有5个瓶子&#xff1a; 2 1 3 5 4 要求每次拿起2个瓶子&#xff0c;交换它们的位置。 经过若干次后&#xff0c;使得瓶子的序号为&#xff1a; 1 2 3 4 5 对于这么简单的情况&#xff0c;显然&#…

IDEA-常用插件

1、Mybatis Log Free 当我们使用mybatis log在控制台输出sql 内容&#xff0c;输出内容将语句与参数分开打印&#xff0c;还需要手动将参数替换到指定位置。 使用对应插件后&#xff0c;自动将输出内容组装成完整的可直接执行的SQL 在插件市场 查看对应名称&#xff0c;并安装。…

Android进阶(二十九) 走近 IntentFilter

文章目录 一、什么是IntentFilter &#xff1f;二、IntentFilter 如何过滤隐式意图&#xff1f;2.1 动作测试2.2 类别测试2.3 数据测试 一、什么是IntentFilter &#xff1f; 如果一个 Intent 请求在一片数据上执行一个动作&#xff0c; Android 如何知道哪个应用程序&#xf…

玩转网络抓包利器:Wireshark常用协议分析讲解

Wireshark是一个开源的网络协议分析工具&#xff0c;它能够捕获和分析网络数据包&#xff0c;并以用户友好的方式呈现这些数据包的内容。Wireshark 被广泛应用于网络故障排查、安全审计、教育及软件开发等领域。关于该工具的安装请参考之前的文章&#xff1a;地址 &#xff0c;…

K210基础实验——点亮LED灯

一、目的是点亮K210开发板左下角的LED0和LED1&#xff0c;LED0是红灯&#xff0c;LED1是绿灯&#xff0c;两颗LED灯都是低电平点亮&#xff0c;高电平熄灭。 二、这是原理图上的硬件连接&#xff0c;LED0连接的是IO0&#xff0c;LED1连接的是IO17。 三、在src目录下新建文件夹 …

Java SE 入门到精通—基础语法【Java】

敲重点&#xff01; 本篇讲述了比较重要的基础&#xff0c;是必须要掌握的 1.程序入口 在Java中&#xff0c;main方法是程序的入口点&#xff0c;是JVM&#xff08;Java虚拟机&#xff09;执行Java应用程序的起始点。 main方法的方法签名必须遵循下面规范&#xff1a; publ…

js 多对象去重(多属性去重)

需求中发现后端可能没有处理重复数据&#xff0c;这个时候前段可以直接解决。 在 JavaScript 中&#xff0c;可以使用 Set 数据结构来进行多对象的去重。Set 是 ES6 新引入的集合类型&#xff0c;其特点是元素不会重复且无序。 下面是一个示例代码&#xff0c;展示如何通过 S…

js设计模式:计算属性模式

作用: 将对象中的某些值与其他值进行关联,根据其他值来计算该值的结果 vue中的计算属性就是很经典的例子 示例: let nowDate 2023const wjtInfo {brithDate:1995,get age(){return nowDate-this.brithDate}}console.log(wjtInfo.age,wjt年龄)nowDate 1console.log(wjtInf…

stm32——hal库学习笔记(DAC)

这里写目录标题 一、DAC简介&#xff08;了解&#xff09;1.1&#xff0c;什么是DAC&#xff1f;1.2&#xff0c;DAC的特性参数1.3&#xff0c;STM32各系列DAC的主要特性 二、DAC工作原理&#xff08;掌握&#xff09;2.1&#xff0c;DAC框图简介&#xff08;F1&#xff09;2.2…

OJ链接——打印从1到最大的n位数

目录 1. 题目描述2. 示例3. 分析思路4. 完整代码 1. 题目描述 输入数字 n&#xff0c;按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3&#xff0c;则打印出 1、2、3 一直到最大的 3 位数 999。 用返回一个整数列表来代替打印n 为正整数&#xff0c;0 < n < 5 链接在…