IP编址数据转发(md版)

news2024/9/21 4:27:07

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.coloradmin.cn/o/932262.html

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

相关文章

Redis使用

环境配置 代码实现 Java public CoursePublish getCoursePublishCache(Long courseId){//查询缓存Object jsonObj redisTemplate.opsForValue().get("course:" courseId);if(jsonObj!null){String jsonString jsonObj.toString();System.out.println("从缓…

Linux安装1Panel(官方)

项目简介安装命令 curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh 访问地址 查看命令:1pctl user-info 常用命令 Usage:1pctl [COMMAND] [ARGS...]1pctl --helpCommands: status …

王道考研:特权指令、用户态与核心态、内核程序与应用程序;中断和异常;系统调用;宏内核与微内核;电脑开机全过程;虚拟机原理

一、操作系统的运行机制 kernel当中包含的是OS当中最核心的部分,像图形界面不是放在kernel当中的,离开图像界面OS仍然可以通过命令行来使用 CPU拿到一条指令就已经可以区分它是特权指令还是非特权指令了 操作系统根据PSW来判断当前正在运行的是用户程序…

html实现元素拖动替换

效果 实现 复制粘贴.html即可使用 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>拖动替换</title></head><style>.box {width: 500px;height: 500px;background: gainsboro;border-radius: 10px;}…

Java中HashMap的基本介绍和详细讲解,HashMap的遍历以及HashMap的底层源码的分析

HashMap 基本介绍 HashMap 是 Java 中的一个集合类&#xff0c;实现了 Map 接口&#xff0c;用于存储键值对&#xff08;key-value&#xff09;数据。它基于哈希表的数据结构实现&#xff0c;可以实现高效的查找、插入和删除操作。 HashMap 细节讨论 无序性&#xff1a; Has…

多语言对接电商平台api接口获取京东商品评论数据代码展示示例

商品评论接口的意义&#xff1a; 确认消费者关注与产品卖点是否一致&#xff1b; 洞察用户对价格、促销、直播的敏感度&#xff1b;发现产品质量、客服、物流等方面的问题&#xff1b;找到品牌宣称与用户预期、实际场景之间差异化&#xff1b;挖掘消费者偏好的差异性&#xff…

【设计模式--原型模式(Prototype Pattern)

一、什么是原型模式 原型模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;它的主要目的是通过复制现有对象来创建新的对象&#xff0c;而无需显式地使用构造函数或工厂方法。这种模式允许我们创建一个可定制的原型对象&#xff0c;然后通过复制…

windows下Qt、MinGW、libmodbus源码方式的移植与使用

windows下Qt、MinGW、libmodbus源码方式的移植与使用 1、前言 libmodbus官网&#xff1a;https://libmodbus.org/ github下载&#xff1a;https://github.com/stephane/libmodbus 截止2023年8月26日时&#xff0c;libmodbus最新版本为3.1.10&#xff0c;本篇博客基于此版本进…

揭秘蓝牙技术:从概念到应用的全解析

目录 引言一、蓝牙技术的概念和历史1、简介2、各个版本3、分类 二、蓝牙技术的工作原理二、蓝牙技术的优点和缺点三 、蓝牙技术的设计和应用四、总结 引言 当我们谈论蓝牙技术时&#xff0c;首先浮现在脑海中的可能是那些小巧的、形似鹅卵石的设备。它们是我们的移动电话、平板…

MIUI 欧版刷机教程(操作篇)

文章目录 0 前置条件1 下载ROM包2 确定刷机方式3 线刷教程4 卡刷教程使用系统更新使用 TWRP 问题汇总 0 前置条件 必须先解除手机的 bootloader 锁。详细教程参见官网&#xff1a;申请解锁小米手机 (miui.com)。 1 下载ROM包 在 MIUI EU 官方论坛&#xff08;需要科学上网&a…

java八股文面试[多线程]——合适的线程数是多少

知识来源&#xff1a; 【并发与线程】 合适的线程数量是多少&#xff1f;CPU 核心数和线程数的关系&#xff1f;_哔哩哔哩_bilibili

深入篇【C++】set和map(multiset/multimap)特性总结与使用

深入篇【C】set和map(multiset/multimap&#xff09;特性总结与使用 一.set/multiset总结二.map/multiset总结三.set/map应用 一.set/multiset总结 set是按照一定次序存储元素的容器在set中&#xff0c;元素的value也标识它(value就是key&#xff0c;类型为T)&#xff0c;并且每…

【趣味随笔】怎么维护自己的电脑?

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

微信小程序开发教学系列(4)- 数据绑定与事件处理

4. 数据绑定与事件处理 在微信小程序中&#xff0c;数据绑定和事件处理是非常重要的部分。数据绑定可以将数据和页面元素进行关联&#xff0c;实现数据的动态渲染&#xff1b;事件处理则是响应用户的操作&#xff0c;实现交互功能。本章节将详细介绍数据绑定和事件处理的基本原…

Java项目-苍穹外卖-Day06-微信小程序开发

文章目录 前言1.HttpClienthttpclient是什么入门案例发送GET请求发送POST请求Httpclient工具类 2.微信小程序介绍准备工作注册小程序和完善对应信息下载开发者工具 入门案例 前言 本篇主要是主要是wx小程序开发入门和HttpClient的使用介绍 完成了苍穹外卖用户端的 微信登陆 和…

Leetcode-每日一题【剑指 Offer 37. 序列化二叉树】

题目 请实现两个函数&#xff0c;分别用来序列化和反序列化二叉树。 你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑&#xff0c;你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。 …

抖店必须绑定抖音账号吗?聊6个抖店不为人知的小细节,别外传

我是王路飞。 现在做抖店&#xff0c;比如绑定一个抖音账号吗&#xff1f; 了解过抖店的朋友都知道&#xff0c;之前开通抖音小店&#xff0c;是需要绑定一个抖音号作为店铺的官方账号的。 而且属于硬性规定&#xff0c;必须要绑定&#xff0c;否则店铺无法正常运营。 但是…

Adams软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 Adams是一款由Mechanical Dynamics Inc&#xff08;MDI&#xff09;开发的有限元分析软件&#xff0c;主要用于模拟机械系统的运动和动力学行为。它广泛应用于汽车、航空航天、机械、电子等多个领域。以下是对Adams软件的详细介…

利用lammps模拟蓝宝石在水润滑环境下的抛光

一 问题描述 蓝宝石&#xff08;Al2O3&#xff09;由于其独特的晶体结构&#xff0c;优异的物理化学特性&#xff0c;被广泛应用于航空航天等领域。高精尖的应用领域要求蓝宝石具有纳米级的表面粗糙度以及严格可控的亚表面缺陷。影响超精密加工最终性能的因素主要集中在工件表…