网际协议 - IP

news2024/12/26 2:17:36

文章目录

目录

文章目录

前言

1 . 网际协议IP

1.1 网络层和数据链路层的关系

2. IP基础知识

2.1 什么是IP地址?

2.2 路由控制

3. IP地址基础知识

3.1 IP地址定义

3.2 IP地址组成

3.3 IP地址分类

3.4 子网掩码

IP地址分类导致浪费?

子网与子网掩码

3.5 CIDR与VLSM

3.6 全局地址和私有地址

5. IPV4首部

6. NDS

域名解析

域名的构成

域名服务器

7. ARP

工作机制

8 . DHCP

DHCP中继代理

拓展

IPV6

IP隧道

总结


前言

大家好,今天给大家介绍一下网络层中最重要的IP协议和一些辅助协议


 TCP/IP的核心是网络层。 这一层主要是由IP和ICMP两个协议组成

1 . 网际协议IP

IP协议属于OSI参考模型中的第三层 - 网络层。 因此IP协议被称之为网际协议。

网络层的主要作用是 "实现终端节点之间的通信" 。 这种终端节点之间的通信也被叫做 “点对点通信”。

在数据链路中解决的主要问题是数据在一段链路上的传输问题, 而网络层解决的则是数据在不同链路上传输的问题, 即在网络中的传输问题。

1.1 网络层和数据链路层的关系

数据链路层负责将数据帧从一个节点传输到另一个相邻节点,而网络层则负责将数据包从源节点传输到目标节点。数据链路层通过物理连接将相邻节点连接起来,而网络层则通过路由选择将不同网络之间连接起来。因此,网络层和数据链路层是相互依赖、相互配合的关系,共同构建了整个网络通信的基础。

以“Expedia”旅行网站为例,数据链路层负责在不同服务器和用户设备之间传输数据帧,类似于旅行社内部的信息传递;网络层则负责将数据包从源到目的地,类似于旅行规划者将客户从一个地方安全送达另一个地方。数据链路层和网络层共同构建了网络通信的基础,确保数据的可靠传输。

 总结: 

数据链路层控制数据在一段链路上的传递

网络层保证数据从发送端到达接收端,中间具体是如何传输的,它并不会理会


2. IP基础知识

2.1 什么是IP地址?

在计算机通信中, 为了识别通信双方, 必须要有一个类似于地址的识别码进行标识。

在数据链路层中我们使用MAC地址来标识一段链路中不同的物理主机, 在网络层中我们则是使用IP地址作为识别码, 用来标识网络中的不同主机。

因此在TCP/IP通信中所有的主机和路由器都必须要设定自己的IP地址

2.2 路由控制

假设在网络中有两个主机A和B, A想要给B主机发送数据包, 那么A发出的数据包怎么到达B呢? 即使数据碰巧正确的到达了B,那么B返回的响应还能碰巧的到达A吗? 

通过路由器实现路由控制

通过路由器最终可以实现数据正确的到达目的地

那么路由器是如何对数据包进行转发的呢?

路由其中存在一张路由控制表, 路由器是通过查表转发的方式来实现路由的

那么问题又来了,路由表是如何计算出来的? 或者说是如何配置的?

静态路由配置: 人工的方式

动态路由配置: 通过路由选择算法动态生成路由表(具体不展开)


3. IP地址基础知识

3.1 IP地址定义

IP地址由32位正整数来表示。 TCP/IP协议通信要求将IP地址分配给每个参与通信的主机,但是IP地址在计算机中是以二进制的方式进行处理, 与人类的记忆方式并不符合, 于是采用了一种表示方式对其进行优化, 规定每八位为一组, 分成四组, 每组之间以 . 隔开, 再将其转变为十进制数 - 点分十进制

 可以通过简单的计算得到, 其最大可以分配的IP地址数量为 4294967296 最多可以供43亿主机接入到互联网, 这在早期或许是够用的, 但是在现在已经远远不够了, 那么是如何解决这个问题的呢?(后面说)

3.2 IP地址组成

IP地址由 "网络标识" 和 "主机标识" 两部分组成

互联网是由大大小小不同的网络组成,每个网络中都会有其不同的主机, 通过网络标识我们可以轻松的找到该网络, 通过主机标识我们可以锁定该网络中的那个特定的主机

通过网络标识可以直接锁定网络进行转发

3.3 IP地址分类

  • A类地址:以0开头,范围从1.0.0.0到126.255.255.255,用于大型网络,可以容纳约16百万台主机。

  • B类地址:以10开头,范围从128.0.0.0到191.255.255.255,用于中型网络,可以容纳约6万台主机。

  • C类地址:以110开头,范围从192.0.0.0到223.255.255.255,用于小型网络,可以容纳约250台主机。

  • D类地址:以1110开头,范围从224.0.0.0到239.255.255.255,用于多播(Multicast)通信。


3.4 子网掩码

IP地址分类导致浪费?

IP地址分类是根据固定的规则来划分地址范围的,比如A类地址范围是1.0.0.0到126.255.255.255,B类地址范围是128.0.0.0到191.255.255.255等。这种固定划分可能导致某些网络获得了更多的IP地址资源,而另一些网络可能获得了比实际需要更多的IP地址,从而造成了IP地址资源的浪费。

就拿B类来说, 理论上一段链路允许6万5千多台计算机连接, 然而在实际情况中根本不存在这样的情况,这不就造成浪费了吗?  本来IP地址都不够用, 还要浪费!!

子网与子网掩码

子网是一个逻辑上的概念,用于将一个大的IP地址范围划分为多个小的网络。子网掩码用于确定一个IP地址属于哪个子网。子网掩码是一个32位的二进制数字,通常用点分十进制表示,例如:255.255.255.0。在子网掩码中,所有网络位都设置为1,所有主机位都设置为0。当一个IP地址和子网掩码进行逻辑与运算时,可以得到该IP地址所在的子网。

通过引入子网掩码, 一个IP地址可以不再受限于自己的类别, 而是可以通过子网掩码自由的指定自己网络标识长度!

对于子网掩码目前有两种表示方式, 一种是将IP和子网掩码分别放一行

另一种就是在IP地址后面拼接上 /+网络地址位数

3.5 CIDR与VLSM

由于A类地址过大, C类地址过小, B类地址因此出现严重匮乏, 为了解决这个问题, 人们开始放弃IP地址的分类, 采用任意长度分割IP地址的网络标识和主机标识。 这种方式就是 CIDR, 意为 "无类型域间选路"

根据CIDR可以将连续多个C类地址划分到一个较大的网络中。

VLSM是在CIDR基础上发展而来的技术,它允许在一个网络中使用不同大小的子网掩码。这样可以更有效地利用IP地址空间,避免浪费。VLSM通常用于大型网络中,可以根据不同子网的需求来分配不同大小的子网。

3.6 全局地址和私有地址

最开始的时候由于IP地址使用量不大, TCP/IP规定互联网中的每个主机和路由器都必须有一个唯一的IP地址。

然而对着互联网的普及, IP地址不足的问题日趋显著。 如果一直按照这个办法采用唯一地址的话,会有IP地址耗尽的危险。

于是衍生了一种新的技术, 它不需要为每一台主机或路由器分配一个固定的IP地址, 而是在必要的时候为相应数量的设备分配唯一的IP地址 - NAT技术

私有IP

私有IP地址是指在局域网内部使用,不直接暴露在公共互联网中的IP地址范围。私有IP地址用于内部通信和连接局域网内的设备,而不用于在互联网上进行通信。

范围

NAT技术就可以实现私有IP与全局IP的转换

5. IPV4首部

  • 版本(Version):4位,指示IPv4协议的版本号,通常为4。
  • 首部长度(Header Length):4位,指示IPv4首部的长度,以32位字(4字节)为单位,因此最小值为5。
  • 服务类型(Type of Service):8位,用于指定数据包的服务质量要求。
  • 总长度(Total Length):16位,指示整个IPv4数据包的长度,包括首部和数据部分。
  • 标识(Identification):16位,用于标识数据包的唯一性。
  • 标志(Flags):3位,用于控制数据包的分片和重组。
  • 分段偏移(Fragment Offset):13位,用于指示分段数据包相对于原始数据包的偏移量。
  • 生存时间(Time to Live):8位,指示数据包在网络中的生存时间,每经过一个路由器减1,直到为0时被丢弃。
  • 协议(Protocol):8位,指示数据部分使用的协议类型,如TCP、UDP等。
  • 首部校验和(Header Checksum):16位,用于检测首部在传输过程中是否发生错误。
  • 源IP地址(Source IP Address):32位,指示数据包的源IP地址。
  • 目标IP地址(Destination IP Address):32位,指示数据包的目标IP地址。

6. NDS

我们平时在访问网站时不会使用IP地址, 而是使用一个字符串来进行访问, 比如: www.baidu.com

TCP/IP网络要求每一个互联的计算机都有其唯一的IP地址, 并基于这个IP地址进行通信, 但是这个IP地址并不便于记忆, 因此产生了一个可以有效管理主机名和IP地址对应关系的系统 - DNS

DNS内部维护了一个用来表示组织内部主机名和IP地址之间对应关系的数据库。

域名解析

在浏览器中我们输入一个主机名, DNS会自动检索那个注册了主机名和IP地址的数据库, 并迅速定位对应的IP地址

域名的构成

域名是用来标识互联网上计算机或其他资源的名称。域名的构成通常由多个部分组成,每个部分之间用点号(.)分隔。以下是域名的构成要素:

  1. 顶级域(Top-Level Domain, TLD):顶级域是域名中最高级别的部分,通常表示国家、地区或特定类型的组织。例如,.com、.org、.net、.edu、.gov、.cn、.jp等。

  2. 二级域(Second-Level Domain, SLD):二级域是位于顶级域之下的部分,通常用于标识特定的组织、公司或个人。例如,在example.com中,"example"就是二级域。

  3. 子域(Subdomain):子域是位于二级域之下的部分,可以用来进一步细分网站的结构或组织。例如,在blog.example.com中,"blog"就是一个子域。

  4. 主机名(Hostname):主机名是域名中最底层的部分,用于标识特定的计算机或服务器。例如,在www.example.com中,"www"就是主机名。

分层结构


域名服务器

在互联网中,域名服务器构成了一个层次化的系统,包括根域名服务器、顶级域名服务器、权威域名服务器和本地域名服务器等不同类型的服务器。当用户发起域名解析请求时,域名服务器会根据查询的域名层级逐级向上查询,直至找到对应的IP地址。域名服务器的作用是确保互联网上的域名能够正确映射到对应的IP地址,从而实现网络通信和资源访问。

7. ARP

ARP是一种解决地址问题的协议。以目标IP地址为线索,用来定位下一个应该接收数据包的网络设备对应的MAC地址。如果目标主机不在同一段链路上,可以通过ARP查找下一跳路由器的MAC,从而进行转发。

工作机制

 主机A为了获得主机B的MAC地址, 就需要通过广播发送一个ARP请求包, 这个包中包含了主机B的IP地址, 由于广播可以被同一段链路上的主机和路由器接收, 因此ARP请求包会被同一段链路上的主机和路由器进行解析。如果ARP请求包中的目标IP地址和自己的IP地址一致,就会把自己的MAC地址响应给主机A,反之则丢弃。

如果每发送一个IP数据包都需要进行一次ARP请求, 势必会造成不必要的网络流量, 为了解决这个问题, 通常是吧获取到的MAC地址缓存一段时间,存入一个叫做ARP缓存表的地方。

8 . DHCP

逐一为每一台主机设置IP地址是一件非常繁琐的事情。 特别是在使用移动设备的时候, 每移动到一个地方, 都需要重新设置IP地址。

为了实现自动配置IP地址, 统一管理IP地址分配, 就产生了一种协议 - 动态主机配置协议(DHCP), 有了DHCP, 计算机只要连接到互联网, 就可以进行TCP/IP通信。

DHCP中继代理

DHCP协议通常使用广播消息来进行IP地址分配和配置,但广播消息无法跨越子网边界。这就是DHCP中继代理发挥作用的地方。当一个客户端设备在一个子网中发送DHCP请求时,DHCP中继代理会接收该广播消息,并将其转发到其他子网中的DHCP服务器。DHCP服务器会收到这个消息,分配一个IP地址并将响应消息发送回DHCP中继代理,最终再由DHCP中继代理转发给客户端设备。

拓展

IPV6

IPv6(Internet Protocol version 6)是互联网协议的第六版,是当前互联网使用的下一代网络层协议。IPv6的设计目标是解决IPv4存在的地址枯竭、安全性、自动化配置等问题,并提供更大的地址空间和更好的性能。

  1. 更大的地址空间:IPv6采用128位地址,相比IPv4的32位地址,IPv6提供了更多的IP地址,可支持更多的设备连接到互联网。

  2. 改进的安全性:IPv6内置IPSec(Internet Protocol Security)协议,提供端到端的数据加密和认证功能,增强了网络通信的安全性。

  3. 简化的头部结构:IPv6头部相对IPv4头部更简洁,减少了路由器处理数据包的开销,提高了网络性能。

  4. 自动化配置:IPv6支持自动化的地址配置(如SLAAC),设备可以通过Router Advertisement消息获取IPv6地址和其他网络配置信息,简化了网络管理。

  5. 移动性支持:IPv6为移动设备提供了更好的支持,包括移动IP和移动路由等功能,使移动设备在网络中更容易地进行漫游。

  6. 多播和任播:IPv6对多播和任播进行了改进,支持更有效的多播传输和任播服务。

  7. 逐渐取代IPv4:随着IPv4地址的枯竭和IPv6的推广,IPv6逐渐成为互联网的主要协议,为未来互联网的发展提供了更好的基础。

IP隧道

IP隧道(IP tunnel)是一种在网络中传输数据包的技术,它通过在原始IP数据包的基础上封装另一种IP数据包,使得数据包可以在一个网络协议的网络中传输到另一个网络协议的网络中。

IP隧道技术的基本原理是在原始IP数据包的头部添加一个额外的封装头部,将原始IP数据包作为负载传输。这样,数据包就可以在一个网络协议的网络中传输到另一个网络协议的网络中,而中间的网络设备只需根据封装头部信息进行路由转发。

 


总结

以上就是这篇博客的主要内容了,大家多多理解,下一篇博客见!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

笔记本如何调节亮度?笔记本亮度调节方法

对于经常长时间面对笔记本电脑的小伙伴们来说,屏幕亮度过暗或者过亮,都会对眼睛造成伤害。那么,我们如何调节笔记本亮度至适中呢?下面为大家介绍3种简单的调节屏幕亮度的方法,一起来看看吧! 笔记本亮度调节方法一: 1、…

【MySQL】4.MySQL日志管理与数据库的备份和恢复

备份的目的只要是为了灾难恢复,备份还可以测试应用,回滚数据,修改和查询历史数据,审计等 日志在备份、恢复中起着重要作用 一、数据库备份的重要性 在生产环境中,数据的安全性至关重要 任何数据丢失都可能产生严重的…

关系型数据库mysql(7)sql高级语句

目录 一.MySQL常用查询 1.按关键字(字段)进行升降排序 按分数排序 (默认为升序) 按分数升序显示 按分数降序显示 根据条件进行排序(加上where) 根据多个字段进行排序 ​编辑 2.用或(or&…

centos 7 安装磐维(PanWeiDB)数据库(单机)

前置环境准备 文件系统环境要求 文件系统环境所要求的扇区必须为512bytes,查看方法如下: [rootdevops-core-highapp3-b-32 ~]#df -h /apps/ [rootdevops-core-highapp3-b-32 ~]#ll /dev/mapper/vg--docker-lvapp [rootdevops-core-highapp3-b-32 ~]#f…

Apache ActiveMQ OpenWire 协议反序列化命令执行漏洞分析 CVE-2023-46604

Apache ActiveMQ 是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务、集群、Spring Framework等。 OpenWire协议在ActiveMQ中被用于多语言客户端与服务端通信。在Apache ActiveMQ 5.18.2版本及以前&#xff0…

小程序富文本图片宽度自适应

解决这个问题 创建一个util.js文件,图片的最大宽度设置为100%就行了 function formatRichText(html) {let newContent html.replace(/\<img/gi, <img style"max-width:100%;height:auto;display:block;");return newContent; }module.exports {formatRichT…

2024-03-26 Android8.1 px30 WI-FI 模块rtl8821cu调试记录

一、kernel 驱动&#xff0c;我这里使用v5.8.1.2_35530.20191025_COEX20191014-4141这个版本&#xff0c;下载这个版本的驱动可以参考下面的文章。 2021-04-12 RK3288 Android7.1 USB wifi bluetooth 模块RTL8821CU 调试记录_rk平台rtl8821cu蓝牙调试-CSDN博客 二、Makefile文…

基于nodejs+vue考试信息报名系统python-flask-django-php

本文拟采用nodejs技术和express 搭建系统框架&#xff0c;后台使用MySQL数据库进行信息管理&#xff0c;设计开发的考试信息报名系统。通过调研和分析&#xff0c;系统拥有管理员、学生和教师三个角色&#xff0c;主要具备登录注册、个人信息修改、对系统首页、个人中心、学生管…

在项目中数据库如何优化?【MySQL主从复制(创建一个从节点复制备份数据)】【数据库读写分离ShardingJDBC(主库写,从库读)】

MySQL主从复制 MySQL主从复制介绍MySQL复制过程分成三步&#xff1a;1). MySQL master 将数据变更写入二进制日志( binary log)2). slave将master的binary log拷贝到它的中继日志&#xff08;relay log&#xff09;3). slave重做中继日志中的事件&#xff0c;将数据变更反映它自…

JS等比压缩图片方法

AI给出来的答案&#xff0c;AI真的能改变世界&#xff0c;以后程序员这个职业真的有可能不存在了。 function compressImage(image, callback) {// 创建一个 canvas 元素const canvas document.createElement(canvas);canvas.width 48;canvas.height 48;// 获取 canvas 的绘…

【学海拾贝】| 关于Python的 PEP 484规则了解:类型提示,函数注解

在实际的工厂在实际的工程代码的开发中&#xff0c;常常可以碰到这种情况 上网查了之后发现这是PEP484规则~ 文章目录 1 Type Hints for Variables&#xff08;变量在这里插入图片描述2 Function Annotations&#xff08;函数注解&#xff09;3 Type Checking Tools&#xff08…

【比特币】比特币的奥秘、禁令的深层逻辑与风云变幻

导语&#xff1a; 比特币(Bitcoin)&#xff0c;这个充满神秘色彩的数字货币&#xff0c;自诞生以来便成为各界瞩目的焦点。它背后所蕴含的Mining机制、禁令背后的深层逻辑以及市场的风云变幻&#xff0c;都让人欲罢不能。今天&#xff0c;我们将深入挖掘比特币的每一个角落&…

视觉图像处理与FPGA实现第七次作业——生成512深度、8位宽度的双端口存储器IP,并分析IP包资料构成

一、生成IP 打开Vivado&#xff0c;点击IP Catalog&#xff0c;搜索memory&#xff0c;双击对应IP核 调整参数为——512深度、8位宽度&#xff0c;双端口&#xff0c;然后一直默认点击OK 二、分析IP构成 查看IP细节&#xff0c;查看设计资源和仿真资源 双击打开文件 设计文件…

代码随想录 图论-并查集

代码随想录 (programmercarl.com) 寻找图中是否存在路径这道题中的类可看做并查集的标准类 目录 1971.寻找图中是否存在路径 684.冗余连接 685.冗余连接II 1971.寻找图中是否存在路径 1971. 寻找图中是否存在路径 已解答 简单 相关标签 相关企业 有一个具有 n 个顶…

NOIP,CSP-J,CSP-S——输入输出进阶

一、输入scanf 格式&#xff1a; int a,b; scanf("%d%d", &a, &b) 类似于 int a,b; cin>>a,b; 双引号里面的两个“%d”表示要输入两个int类型的变量的占位符。然后是要输入的变量名&#xff0c;前面要加“&”&#xff0c;如果有多个变量则用…

SystemUI修改系统状态栏右边的ICON背景颜色

文件在 status_bar.xml 。 如下&#xff1a; <com.android.keyguard.AlphaOptimizedLinearLayout android:id"id/system_icon_area"android:layout_width"0dp"android:layout_height"match_parent"android:background"#ff0000"andr…

我的 Android 性能书上架了!内附书籍介绍

大家好&#xff0c;我是拭心。 很高兴地向大家宣布&#xff0c;我的新书《Android 性能优化入门与实战》上架了&#xff01; 点击下面的小程序进行购买&#xff1a; 封面介绍 这本书的封面来自之前的投票文章 # 投票啦&#xff01;最新安卓进阶书籍封面由你来定&#xff0c;从四…

基于SIR模型的疫情发展趋势预测算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于SIR模型的疫情发展趋势预测算法.对病例增长进行SIR模型拟合分析&#xff0c;并采用模型参数拟合结果对疫情防控力度进行比较。整体思路为采用SIR微分方程模型…

小迪安全48WEB 攻防-通用漏洞Py 反序列化链构造自动审计 bandit魔术方法

#知识点&#xff1a; 1、Python-反序列化函数使用 2、Python-反序列化魔术方法 3、Python-反序列化 POP 链构造&#xff08;payload构造&#xff09; 4、Python-自动化审计 bandit 使用 #前置知识&#xff1a; 函数使用&#xff1a; pickle.dump(obj, file) : 将对…

pdfjs 实现给定pdf数据切片高亮并且跳转

pdfjs 实现给定pdf数据切片高亮并且跳转 pdfjs 类的改写基本展示需求的实现高亮功能的实现查询功能分析切片数据处理 pdfjs 类的改写 需求&#xff1a; pdf文件被解析成多个分段&#xff0c;每个分段需要能够展示&#xff0c;并且通过点击分段实现源pdf内容的高亮以及跳转需求…