IP协议讲解

IP协议

IP协议的本质:提供一种能力,将数据跨网络从A主机传输到B主机

在这里插入图片描述

4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4.

4位头部长度(header length): IP头部的长度是多少个32bit, 也就是 length * 4 的字节数. 4bit表示最大
的数字是15, 因此IP头部最大长度是60字节.

8位服务类型(Type Of Service): 3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0). 4位
TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个. 对于
ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要.

16位总长度(total length): IP数据报整体占多少个字节.
16位标识(id): 唯一的标识主机发送的报文. 如果IP报文在数据链路层被分片了, 那么每一个片里面的这个
id都是相同的.

3位标志字段: 第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要用到). 第二位置为1表示禁
止分片, 这时候如果报文长度超过MTU, IP模块就会丢弃报文. 第三位表示"更多分片", 如果分片了的话,
最后一个分片置为1, 其他是0. 类似于一个结束标记.

13位分片偏移(framegament offset): 是分片相对于原始IP报文开始处的偏移. 其实就是在表示当前分片
在原报文中处在哪个位置. 实际偏移的字节数是这个值 * 8 得到的. 因此, 除了最后一个报文之外, 其他报
文的长度必须是8的整数倍(否则报文就不连续了).

8位生存时间(Time To Live, TTL): 数据报到达目的地的最大报文跳数. 一般是64. 每次经过一个路由, TTL
-= 1, 一直减到0还没到达, 那么就丢弃了. 这个字段主要是用来防止出现路由循环

8位协议: 表示上层协议的类型

16位头部校验和: 使用CRC进行校验, 来鉴别头部是否损坏.

32位源地址和32位目标地址: 表示发送端和接收端.

网段划分

路由器也是一个主网的主机,也要配置ip地址

路由器一定至少连接了2个子网,路由器也就相当于同时在两个子网。

路由器可以配置多个ip。认为路由器有多张网卡即可。路由器可以构建子网。

ip地址 只有在联网的时候才有

在这里插入图片描述

A类网络:2的7次方个A类网络,一共包含了2的24次方台主机。

子网掩码:区分网络号和主机号

122.133.144.155
1111  1111  1000 0000 0000 0000 0000 0000

在这里插入图片描述

两个ip地址不用,主机号为0,或者全1

140.252.20.0100 0100
255.255.255.1111 0000  &
140.252.20.0100 0000   

私有IP地址和公网IP地址

如果一个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到Internet上,理论上 使用任意的IP地址都
可以,但是RFC 1918规定了用于组建局域网的私有IP地址
**10. **前8位是网络号,共16,777,216个地址
172.16.到172.31.,前12位是网络号,共1,048,576个地址
192.168.
,前16位是网络号,共65,536个地址
包含在这个范围中的, 都成为私有IP, 其余的则称为全局IP(或公网IP);

我们使用的ip地址都是私有ip

运营商

我们是怎么上网的?

调制解调器(光猫) : 将光信号转为电信号也就是01序列

家用路由器:构建局域网

NAT

Network Address Translation,网络地址转换)一种用于修改网络数据包中IP地址信息的技术。它在路由器或网关上运行,允许多个设备共享一个公网IP,从而节省IP地址资源。NAT广泛应用于家庭、企业网络及运营商网络中,帮助解决IPv4地址枯竭问题。

NAT的工作原理:

NAT通过将私有IP地址(通常在局域网中使用的地址,如192.168.x.x或10.x.x.x)转换为公共IP地址,实现内网设备与互联网的通信。当内网设备向外发送数据时,NAT会将设备的私有IP替换为路由器的公网IP;当返回的数据包到达时,NAT再将公共IP转换回私有IP,并将数据发送到对应的内网设备。

NAT的类型:

  1. 静态NAT

    • 一对一转换,即每个内部私有IP都有一个固定的公网IP进行映射。常用于某些需要固定IP地址的服务(如企业服务器)。
  2. 动态NAT

    • 路由器从公网IP池中动态分配公网IP给内网设备,当内网设备请求时,它们共享或轮流使用这些IP。动态NAT适合IP数量有限的场景。
  3. PAT(Port Address Translation),也叫端口地址转换

    • 常见的NAT类型,又叫“NAPT”或“过载NAT”。使用一个公网IP,但通过端口号区分多个内网设备的流量。每个内部设备的请求通过不同的端口号映射到相同的外部IP地址,这就是为什么多个设备可以通过一个公网IP访问互联网。

NAT的优势:

  1. IP地址节省:内网设备共享一个或多个公网IP,避免IPv4地址枯竭。
  2. 安全性:内网设备的私有IP隐藏在NAT后,外部设备无法直接访问这些设备,增加了一定的网络安全性。
  3. 灵活性:NAT允许多个设备通过同一个公网IP进行互联网通信,简化了网络管理。

NAT的缺点:

  1. 网络性能:NAT在转换IP地址和端口时会增加一些延迟,特别是在使用大量会话的情况下。
  2. P2P应用支持较差:某些点对点(P2P)协议或应用(如视频通话、在线游戏)可能会受到NAT的限制,因为这些应用通常需要设备之间直接通信。
  3. 影响端到端连接:NAT打破了IP层的端到端通信模型,这使得某些应用程序需要额外的配置才能正常工作,如VPN、VoIP等。

NAT是当前网络环境中重要的基础技术,随着IPv6的逐渐普及,NAT的需求会逐渐减少,但在短期内仍然是IPv4网络中的关键工具。

ARP

(Address Resolution Protocol,地址解析协议)是一种网络协议,主要用于通过已知的IP地址来查找对应的MAC地址。ARP协议在IPv4网络中非常重要,它负责在同一局域网内进行IP地址与物理地址(MAC地址)之间的转换,从而实现设备之间的通信。

ARP的工作原理:

  1. 当一个设备(如电脑)想与同一局域网中的另一台设备通信时,它会先知道目标设备的IP地址,但不一定知道它的MAC地址。
  2. 发送方设备会发送一个ARP请求,其中包含目标设备的IP地址,并询问网络“谁拥有这个IP地址?”
  3. 局域网中的所有设备都会接收到这个ARP请求,拥有该IP地址的设备会回应一个ARP回复,告诉发送方“这个IP地址对应我的MAC地址”。
  4. 发送方接收到ARP回复后,将IP地址与MAC地址的对应关系存储在它的ARP缓存中,以便后续通信中直接使用,无需再次查询。

ARP请求与回复的详细过程:

  • ARP请求:以广播的方式发出,因为发送方不知道目标设备的MAC地址。所有连接到网络的设备都会收到这个请求。
  • ARP回复:目标设备在收到ARP请求后,将自己的MAC地址封装在一个ARP回复中,并将其发给请求设备,这个回复是单播的,只发给请求方。

ARP示例:

假设设备A(IP地址为192.168.1.2,MAC地址为AA:AA:AA:AA:AA:AA)需要与设备B(IP地址为192.168.1.3,MAC地址为BB:BB:BB:BB:BB:BB)通信:

  1. 设备A知道设备B的IP地址(192.168.1.3),但不知道它的MAC地址。
  2. 设备A发送一个ARP请求:“谁是192.168.1.3?”。这个请求以广播形式发送给网络上的所有设备。
  3. 设备B接收到ARP请求后,发送一个ARP回复:“我是192.168.1.3,我的MAC地址是BB:BB:BB:BB:BB:BB。”
  4. 设备A接收到这个ARP回复后,将设备B的IP和MAC地址映射存储在ARP缓存中。
  5. 设备A现在可以直接使用设备B的MAC地址与它通信。

ARP缓存:

ARP缓存是一个临时存储设备IP地址和MAC地址映射的表,设备通过它来避免每次通信时都需要发送ARP请求。ARP缓存中的映射有一定的有效期,通常在几分钟后会过期。

ARP的优缺点:

优点:

  1. 提高网络通信效率:ARP缓存减少了每次通信都要请求MAC地址的频率。
  2. 动态解析:设备无需预先知道所有设备的MAC地址,可以根据需要动态解析。

缺点:

  1. 安全性问题(ARP欺骗/ARP中毒)
    • ARP协议本身没有安全验证机制,因此容易被攻击。例如,在ARP欺骗攻击中,攻击者伪装成局域网中其他设备,向受害设备发送伪造的ARP回复,将受害设备的流量劫持到攻击者那里。这种攻击通常用于网络监听或中间人攻击。

解决ARP欺骗的对策:

  1. 静态ARP表:可以手动配置静态ARP条目,使得特定IP地址只能与指定的MAC地址对应。这可以防止ARP表被恶意篡改,但手动管理复杂,适合较小的网络。
  2. 安全网络设备:很多交换机和路由器支持ARP防护机制(如动态ARP检测,DAI),可以检测和阻止异常的ARP流量。
  3. 加密通信:通过加密数据传输(如VPN、SSL等)可以在ARP欺骗攻击发生时保护通信内容。

ARP的常见类型:

  1. ARP请求:用于查询IP地址对应的MAC地址,发出时是广播帧。
  2. ARP回复:用于响应ARP请求,提供MAC地址,发出时是单播帧。
  3. G ratuitous ARP(无偿ARP):当一个设备启动或IP地址改变时,它会发送无偿ARP告诉网络中的其他设备自己的IP地址和MAC地址。这通常用于检测IP地址冲突或更新其他设备的ARP缓存。

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

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

相关文章

【数据结构初阶】排序算法(下)冒泡排序与归并排序

文章目录 4. 交换排序4. 1 冒泡排序 5. 归并排序6. 非比较排序6. 1 计数排序 5. 排序性能分析6. 排序算法复杂度及稳定度分析 4. 交换排序 交换排序基本思想: 所谓交换**,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置**。 交换排序的特点是…

归并排序【C语言版-笔记】

目录 一、概念二、排序流程理解三、代码实现3.1主调函数3.2 merge函数 四、性能分析 一、概念 归并是一种算法思想,是将两个或两个一上的有序表合并成一个长度较大的有序表。若一开始无序表中有n个元素,可以把n个元素看作n个有序表,把它们两…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-27

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-27 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-27目录1. VisScience: An Extensive Benchmark for Evaluating K12 Educational Multi-modal Scientific Reasoning VisScience:…

java中的强软弱虚

在java中对象的引用有强、软、弱、虚四种,这些引用级别的区别主要体现在对象的生命周期、回收时机的不同。 文章目录 准备工作1. 设置内存2. 内存检测 强引用软引用弱引用虚引用 准备工作 1. 设置内存 为方便调试,将内存设置为16MB 依次点击菜单栏的R…

初识算法 · 双指针(1)

目录 前言: 双指针算法 题目一: ​编辑 题目二: 前言: 本文作为算法部分的第一篇文章,自然是少不了简单叭叭两句,对于算法部分,多刷是少不了,我们刷题从暴力过度到算法解法,自…

【Linux】进程概念-2

文章目录 1.环境变量1.1 基本概念1.2 常见环境变量1.3 查看环境变量方法1.4 测试PATH1.5 测试HOME1.6 和环境变量相关的命令1.7 环境变量的组织方式1.8 通过代码如何获取环境变量1.9 通过系统调用获取或设置环境变量1.10 环境变量通常是具有全局属性的1.11 实验 2. 程序地址空间…

安全中心 (SOC) 与 网络运营中心 (NOC)

NOC 和 SOC 之间的区别 网络运营中心 (NOC) 负责维护公司计算机系统的技术基础设施,而安全运营中心 (SOC) 则负责保护组织免受网络威胁。 NOC 专注于防止自然灾害、停电和互联网中断等自然原因造成的网络干扰,而 SOC 则从事监控、管理和保护。 NOC 提…

微信小程序 图片的上传

错误示范 /*从相册中选择文件 微信小程序*/chooseImage(){wx.chooseMedia({count: 9,mediaType: [image],sourceType: [album],success(res) {wx.request({url:"发送的端口占位符",data:res.tempFiles[0].tempFilePath,method:POST,success(res){//请求成功后应该返…

Java在用增强for循环遍历集合时删除元素,抛出java.util.ConcurrentModificationException异常

文章目录 0. 前言1. 问题产生的背景2. Java中增强for循环的底层原理3. 为什么增强for循环不支持在遍历集合时删除元素3.1 问题排查3.2 modCount 变量的来源3.3 expectedModCount 变量的来源3.4 导致modCount变量和expectedModCount不相等的原因3.5 为什么用迭代器遍历元素时删除…

【Nacos架构 原理】内核设计之Nacos通信通道

文章目录 Nacos通信通道 (长链接)现状背景场景分析配置服务 长链接核心诉求功能性诉求负载均衡连接生命周期 Nacos通信通道 (长链接) 现状背景 Nacos 1.X 版本 Config/Naming 模块各自的推送通道都是按照自己的设计模型来实现的…

仪器数码管数字识别系统源码分享

仪器数码管数字识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comput…

Glide基本用法及With方法源码解析

文章目录 引入优点 使用步骤导入依赖权限使用 其他用法占位符错误图片后备回调符圆角过渡动画大小调整gif缩略图 使用RequestOptions缓存机制设置缓存策略清理缓存 使用集成库OkHttpVolley with源码解析getRetrieverGlide.getinitializeGlide getRequestManagerRetriever Reque…

【Spine】引入PhotoshopToSpine脚本

引入 右键Photoshop图标,选择属性 打开文件所在位置 找到目录下的\Presets\Scripts文件夹。 找到Spine目录下的\scripts\photoshop文件夹下的PhotoshopToSpine.jsx 复制它,丢到Photoshop刚才找的那个目录下。 使用 打开.psd文件,检查不要…

ubuntu 安装harbor

#安装包 wget https://github.com/goharbor/harbor/releases/download/v2.10.3/harbor-offline-installer-v2.10.3.tgz wget https://github.com/goharbor/harbor/releases/download/v2.10.3/harbor-offline-installer-v2.10.3.tgz.asc#导入签名公钥 gpg --keyserver hkps://ke…

文心一言 VS 讯飞星火 VS chatgpt (359)-- 算法导论24.3 1题

一、在图 24-2上运行Dijkstra算法,第一次使用结点 s s s作为源结点,第二次使用结点 z z z作为源结点。以类似于图 24-6 的风格,给出每次while循环后的 d d d值和 π π π值,以及集合 S S S中的所有结点。如果要写代码&#xff0c…

计算机毕业设计Spark+PyTorch股票预测系统 股票推荐系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

《SparkPyTorch股票预测系统》开题报告 一、研究背景与意义 随着信息技术的飞速发展和全球金融市场的日益繁荣,股票投资已成为广大投资者的重要选择之一。然而,股票市场的复杂性和不确定性使得投资者在做出投资决策时面临巨大的挑战。传统的股票分析方…

Python空间地表联动贝叶斯地震风险计算模型

🎯要点 使用贝叶斯推断模型兼顾路径和场地效应,量化传统地理统计曲线拟合技术。使用破裂和场地特征等地质信息以及事件间残差和事件内残差描述数学模型模型使用欧几里得距离度量、角距离度量和土壤差异性度量确定贝叶斯先验分布和后验分布参数&#xff…

CTMO时代下的营销新力量:2+1链动模式AI智能名片商城小程序

在当今这个瞬息万变的商业世界里,营销领域正经历着一场深刻的变革。传统的CMO岗位似乎在时代的浪潮中逐渐失去了它的光芒,CTMO正在悄然取代传统CMO的岗位。 随着营销丛林现象的出现,企业面临着前所未有的挑战。许多企业发现,那些传…

【SQL】未订购的客户

目录 语法 需求 示例 分析 代码 语法 SELECT columns FROM table1 LEFT JOIN table2 ON table1.common_field table2.common_field; LEFT JOIN(或称为左外连接)是SQL中的一种连接类型,它用于从两个或多个表中基于连接条件返回左表…

动态分配内存

目录 前言 一.malloc,free函数 1.malloc,free函数原型 2.使用方法 3.具体实例 4.注意事项 二.calloc函数 1.calloc函数原型 2.主要特点 3.使用案例 三.realloc函数 1.realloc函数原型 2.使用案例 3.注意事项 前言 动态内存是指在程序运行时,按需分配和…