IP编址数据转发(md版)

IP编址&数据转发

  • 一、IP编址
    • 1.1、二进制、十进制和十六进制
    • 1.2、进制之间的转换
    • 1.3、IP编址
    • 1.4、子网掩码
    • 1.5、二进制和十进制转换
    • 1.6、IP地址分类
    • 1.7、IP地址类型
    • 1.8、地址规划
  • 二、VLSM与CIDR
    • 2.1、有类IP编址的缺陷
    • 2.2、变长子网掩码 VLSM
    • 2.3、缺省情况下的掩码
    • 2.4、子网划分的计算
    • 2.5、子网划分举例—C类地址
    • 2.6、无类域间路由CIDR
    • 2.7、网关
    • 2.8、总结
  • 三、数据转发过程
    • 3.1、数据转发过程概述
      • 3.1.1、TCP封装
      • 3.1.2、IP封装
      • 3.1.3、查找路由
      • 3.1.4、ARP
      • 3.1.5、以太网封装
      • 3.1.6、数据帧转发过程
      • 3.1.7、数据包转发过程
      • 3.1.8、数据帧解封装
      • 3.1.9、数据包解封装
      • 3.1.10、数据段解封装
    • 3.2、总结

一、IP编址

  • 网络层位于数据链路层与传输层之间。网络层中包含了许多协议,其中最为重要的协议就是IP协议。网络层提供了IP路由功能。理解IP路由除了要熟悉IP协议的工作机制之外,还必须理解IP编址以及如何合理地使用IP地址来设计网络。

1.1、二进制、十进制和十六进制

在IP网络中,二进制和十六进制是常用的编码方式。

1.2、进制之间的转换

1.3、IP编址

1、IP地址分为网络部分和主机部分。
2、IP地址由32个二进制位组成,通常用点分十进制形式表示。

1、网络地址:主机位全等于0。

2、广播地址:主机位全等于1。

3、这两个地址都不能够分配出去使用。

1.4、子网掩码

1.5、二进制和十进制转换

1.6、IP地址分类

默认掩码:

1.7、IP地址类型

1、私有地址范围

  • 10.0.0.0~10.255.255.255
  • 172.16.0.0~172.31.255.255
  • 192.168.0.0~192.168.255.255

2、特殊地址

  • 127.0.0.0~127.255.255.255
  • 0.0.0.0
  • 255.255.255.255

1.8、地址规划

二、VLSM与CIDR

2.1、有类IP编址的缺陷

在设计网络时使用有类IP地址会造成地址的浪费。

2.2、变长子网掩码 VLSM

  • 变长子网掩码(Variable-Length Subnet Masks,VLSM)的出现是打破传统的以类(class)为标准的地址划分方法,是为了缓解IP地址紧缺而产生的;
  • 作用:节约P地址空间;减少路由表大小。
  • 注意事项:使用VLSM时,所采用的路由协议必须能够支持它,这些路由协议包括RIPV2,OSPF,EIGRP和BGP。

  • 如上图:
  • 本例中的地址为C类地址,缺省子网掩码为24位。
  • 用一个主机位作为网络位,借用的主机位变成子网位。
  • 一个子网位有两个取值0和1,因此可划分两个子网。
  • 该比特位设置为0,则子网号为0;该比特位设置为1,则子网号为128;
  • 将剩余的主机位都设置为0,即可得到划分后的子网地址;
  • 将剩余的主机位都设置为1,即可得到子网的广播地址。

2.3、缺省情况下的掩码

1、IP地址:172.16.2.160 掩码:255.255.0.0

缺省情况下,未划分子网。

2、IP地址:172.16.2.160 掩码:255.255.255.0

“/16”表示子网掩码有16位
“/24”表示子网掩码有24位

3、IP地址:172.16.2.160 掩码:255.255.255.192

1、扩展了10位子网地址
2、子网划分的核心思想:“借用”主机位来“制造”新的“网络”

2.4、子网划分的计算

1、你所选择的子网掩码将会产生多少个子网?2的x次方(x:子网位数)2、每个子网能有多少主机?2的y次方-2(y:主机位数)3、有效子网(块大小)?块大小=2的y次方(y:主机位数)(结果叫做block size或base number)4、每个子网的广播地址是?主机位全为1。(广播地址=下个子网号-1)5、每个子网的有效主机分别是?忽略子网内全为0和全为1的地址,剩下的就是有效主机地址。

2.5、子网划分举例—C类地址

  • 子网:网络号,网络地址

2.6、无类域间路由CIDR

  • CIDR的概念:忽略A、B、C类网络的规则,定义前缀相同的一组网络为一个块即一条路由条目。(如:199.0.0.0/8)
  • CIDR的优点:
    • 减少了网络数目,缩小了路由选择表;
    • 从网络流量、CPU和内存方面说,开销更低;
    • 对网络进行编址时,灵活性更大。

CIDR增强了网络的可扩展性。

2.7、网关

网关用来转发来自不同网段之间的数据包。

2.8、总结

1、子网掩码的作用是什么?区分IP地址的网络位和主机位。2、网关的作用是什么? 转发来自不同网段之间的数据包。


三、数据转发过程

  • TCP/IP协议簇和底层协议配合,保证了数据能够实现端到端的传输。数据传输过程是一个非常复杂的过程,例如数据在转发的过程中会进行一系列的封装和解封装。对于网络工程师来说,只有深入地理解了数据在各种不同设备上的转发过程,才能够对网络进行正确的分析和检测。

3.1、数据转发过程概述

数据包在相同网段内或不同网段之间转发所依据的原理基本一致。

3.1.1、TCP封装

  • 当主机建立了到达目的地的TCP连接后,便开始对应用层数据进行封装。
  • 0~ 1023:知名端口号,1024~65535:可以动态分配的范围。
  • 80:HTTP服务。
  • Source Port:源端口。
  • Destination Port:目的端口。
  • Sequential Number:序列号。
  • Acknowledgment Number:确认号。

3.1.2、IP封装

3.1.3、查找路由

主机A必须要拥有到达目的地的路由。

3.1.4、ARP

  • 通进ARP缓存表找到下一跳的MAC地址。
  • 如果表项里没有下一跳的MAC地址,主机A会发送ARP请求。

3.1.5、以太网封装

3.1.6、数据帧转发过程

  • 主机工作在半双工状态下,所以会使用CSMA/CD来检测链路是否空闲。
  • 前导码用于使接收者进入同步状态,定界符用于指示帧的开始。

  • 同一个冲突域里的设备都会接收到主机A发送的数据帧。
  • 只有网关(RTA)会处理该数据帧,并继续转发。

3.1.7、数据包转发过程

  • 网关检查是否具有到达目的网络的路由条目。
  • 如果存在转发路径,则为数摆包添加一个新的二层帧头和帧尾.并继续转发

3.1.8、数据帧解封装

  • RTB以服务器A的MAC地址作为目的MAC继续转发。
  • 服务器A接收到该数据帧后,发现目的MAC为自己的MAC,于是会继续处理数据帧。

3.1.9、数据包解封装

  • 服务器A检查数据包的目的IP地址,发现目的IP与自己的IP地址相同。
  • 服务器A剥掉数据包的IP头部后,会送往上层协议TCP继续进行处理。

3.1.10、数据段解封装

服务器A检查TCP头部的目的端口,然后将数据段发送给应用层的HTTP协议进行处理。

3.2、总结

1、数据在进行二层和三层封装之前,主机需要了解哪些信息?二层:目的MAC;三层:源IP地址2、当数据帧发送到非目的主机时,非目的主机将会如何处理?丢弃3、传输层如何能够准确的将数据交给特定应用?目的端口号4、当两台主机同时访问服务器的HTTP服务,该服务器如何区分数据属于哪个会话? 源IP(SIP)、源端口(SP)五元组区分:SIP、DIP、SP、DP、pro(协议)

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

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

相关文章

vscode远程调试

安装ssh 在vscode扩展插件搜索remote-ssh安装 如果连接失败,出现 Resolver error: Error: XHR failedscode 报错,可以看这篇帖子vscode ssh: Resolver error: Error: XHR failedscode错误_阿伟跑呀的博客-CSDN博客 添加好后点击左上角的加号&#xff0…

从探索到明确,比特币与美股等传统资产相关性如何?

早期阶段,比特币经历了一段摸索和模仿的时期,这是因为当比特币刚刚出现时,比特币的价值和用途在这一阶段并不明确,人们对其性质和潜力还不太了解。 然而,随着时间的推移,比特币去中心化、固定供应上限等特点…

解决报错: Could not initialize class com.platform.cache.J2CacheUtils

今天运行一个比较久远的SSM项目,访问接口时报错: Could not initialize class com.platform.cache.J2CacheUtils 找了半天也没有发现问题所在,突然发现报错里面有ShiroFilter字样,然后想起以前shiro好像是要跟redis对接&#xff0…

【C++】priority_queue优先级队列

🏖️作者:malloc不出对象 ⛺专栏:C的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录 前言一、priority_queue的介绍二、pr…

Aspose.Tasks for .NET V23Crack

Aspose.Tasks for .NET V23Crack 改进了大型项目的内存占用。 添加了API,允许您在应用程序无法访问系统字体文件夹时指定用户的字体文件夹。 Aspose.Tasksfor.NET是处理MicrosoftProject文件的可靠的项目管理API。API支持在不依赖Microsoft Project的情况下读取、写…

为 Python 创建别名

有时您有自己喜欢的 Python 版本,并且不想在新版本到来时放弃它。 您的旧脚本可能无法在新版本的 Python 上运行,或者旧版本上的项目太多,将它们迁移到新版本是一场马拉松。 在这种情况下,您决定保留两个版本的 Python。 在本文中…

功能测评-InsCode Stable Diffusion 美图活动一期

一、 Stable Diffusion 模型在线使用地址: https://inscode.csdn.net/inscode/Stable-Diffusion 进入之后点击运行并使用,会弹出一个购买算力资源的窗口。由于是试用,不涉及到连续生成多张图片等场合,因此算力足够用了&#xff…

基于SpringBoot实现MySQL与Redis的数据最终一致性

问题场景 在并发场景下,MySQL和Redis之间的数据不一致性可能成为一个突出问题。这种不一致性可能由网络延迟、并发写入冲突以及异常情况处理等因素引起,导致MySQL和Redis中的数据在某些时间点不同步或出现不一致的情况。数据一致性问题的级别可以分为三…

wazuh--sql检测

官网:Virtual Machine (OVA) - Installation alternatives Wazuh(Wazuh The Open Source Security Platform):是一整套基于ossec安全检测工具和EFK日志工具构成的终端安全管理工具。不管是将其分类至HIDS,还是EDR,它都是一套通过…

QCC_BES 音频重采样算法实现

+V hezkz17进数字音频系统研究开发交流答疑群(课题组) 这段代码是一个用于将音频数据进行立体声重采样的函数。以下是对代码的解读: 函数接受以下参数: pcm_buf:16位有符号整型的音频缓冲区,存储了输入的音频数据。pcm_len:音频缓冲区的长度。mic1:16位有符号整型的音频…

本地私有仓库、harbor私有仓库部署与管理

本地私有仓库、harbor私有仓库部署与管理 一、本地私有仓库1.本地私有仓库简介2.搭建本地私有仓库3.容器重启策略介绍 二、harbor私有仓库部署与管理1.什么是harbor2.Harbor的特性3.Harbor的构成4.harbor部署及配置5.客户端测试 三、Harbor维护1.创建2.普通用户操作私有仓库3.日…

不用循环数组,js+html实现贪吃蛇

功能描述:每走10步随机改变一个方方向,当键盘按下方向键 w,s,a,d时,使用键盘方向控制蛇的移动,蛇头每撞到一次自身时改变屏幕颜色,蛇头碰到边界时从另一边回来。 实现思路:用个30大小的数组存放每个结点&a…

学习率调整策略

学习率是可以控制更新的步伐的。 我们在训练模型的时候,一般开始的时候学习率会比较大,这样可以以一个比较快的速度到达最优点的附近,然后再把学习率降下来, 缓慢的去收敛到最优值。学习率前期要大,后期要小 在学习学…

命令行环境

sleep 20 延迟20秒 这个是操作系统的信号机制 ctrl z ^z可以恢复 jobs 可以查看 终端运行工作列表,bg可以将暂停的作业重新运行 通过kill暂停作业 通过 -KILL 之后才可以将 -HUP 作业悬挂起来 终端复路多用 会话 ^a p 上一个会话 ^ a n 下一个会话 别名 左右不能…

学习中ChatGPT的17种用法

ChatGPT本质上是一个聊天工具,旧金山的人工智能企业OpenAI于2022年11月正式推出ChatGPT。那么,ChatGPT与其他人工智能产品相比有什么特殊呢? 它除了可以回答结构性的问题,例如语法修正、翻译和查找答案之外。最关键的是它能够去解…

LeetCode 1267. 统计参与通信的服务器

【LetMeFly】1267.统计参与通信的服务器 力扣题目链接:https://leetcode.cn/problems/count-servers-that-communicate/ 这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表…

UE4 材质学习笔记

CheapContrast与CheapContrast_RGB都是提升对比度的,一个是一维输入,一个是三维输入,让亮的地方更亮,暗的地方更暗,不像power虽然也是提升对比度,但是使用过后的结果都是变暗或者最多不变(值为1…

【Java基础增强】Stream流

1.Stream流 1.1体验Stream流【理解】 案例需求 按照下面的要求完成集合的创建和遍历 创建一个集合,存储多个字符串元素 把集合中所有以"张"开头的元素存储到一个新的集合 把"张"开头的集合中的长度为3的元素存储到一个新的集合 遍历上一步得…

HDLBits-Verilog学习记录 | Verilog Language-Modules(1)

文章目录 20.Module21.Connecting ports by position | Moudle pos22.Connecting ports by name | Module name23.Three modules | Module shift24.Modules and vectors | Module shift8 20.Module practice:You may connect signals to the module by port name or port posi…

ubuntu 22.04 LTS openai triton 安装

第一种方法: pip install triton 第二种方法,安装最新的版本: pip install -U --index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/Triton-Nightly/pypi/simple/ triton-nightly 第三种方法: git c…