计算机网络⑧ —— IP地址

news2024/11/17 17:48:30

IP位于TCP/IP参考模型的第三层,也就是⽹络层
⽹络层的主要作⽤:实现主机与主机之间的通信,也叫点对点通信

问题1:⽹络层(IP)与数据链路层(MAC)有什么关系呢?

  • MAC的作⽤:实现直连的两个设备之间通信。
  • IP的作⽤:负责在没有直连的两个⽹络之间进⾏通信传输
  • 在⽹络数据包传输中,源IP地址和⽬标IP地址在传输过程中是不会变的,只有源MAC地址和⽬标MAC⼀直在变化

1. IP地址的分类

在这里插入图片描述

  • 主机号全为1指定某个网络下的所有主机,用于广播
  • 主机号全为0指定某个网络
  • ⼴播地址⽤于在同⼀个链路中相互连接的主机之间发送数据包。⼴播地址可以分为本地⼴播和直接⼴播两种。
    • 在本⽹络内⼴播的叫做本地⼴播
    • 在不同⽹络之间的⼴播叫做直接⼴播
  • D 类和 E 类地址是没有主机号的,所以不可⽤于主机 IP,D 类常被⽤于多播,E 类是预留的分类,暂时未使⽤
    • 多播地址⽤于将包发送给特定组内的所有主机。由于⼴播⽆法穿透路由,若想给其他⽹段发送同样的包,就可以使⽤可以穿透路由的多播。

2. IP分类的优缺点

  • 优点:可以根据IP地址的前四位来判别IP地址属于哪个类别。简单明了,选路简单。
  • 缺点:地址划分缺少灵活性
    • A、B、C类不能很好的与现实⽹络匹配
    • C 类地址能包含的最⼤主机数量太少了,只有 254 个
    • B 类地址能包含的最⼤主机数量⼜太多了,⼀般的企业基本达不到这个规模

3. CIDR⽆分类地址

  • 32 ⽐特的 IP 地址被划分为两部分,前⾯是⽹络号,后⾯是主机号

  • 表示形式 a.b.c.d/x ,其中 /x 表示前 x 位属于⽹络号, x 的范围是 0 ~ 32 ,这就使得 IP 地址更加具有灵活性

  • 另⼀种划分⽹络号与主机号形式,那就是⼦⽹掩码,掩码的意思就是掩盖掉主机号,剩余的就是⽹络号
    在这里插入图片描述

  • 分离网络号和主机号的作用:

    • 因为两台计算机要通讯,⾸先要判断是否处于同⼀个⼴播域内,即⽹络地址是否相同。
    • 如果⽹络地址相同,表明接受⽅在本⽹络上,那么可以把数据包直接发送到⽬标主机。
    • 路由器寻址⼯作中,也就是通过这样的⽅式来找到对应的⽹络号的,进⽽把数据包转发给对应的⽹络内。
  • 如何进行子网划分:

    • 通过⼦⽹掩码划分出⽹络号和主机号,并且可以划分⼦⽹
    • ⼦⽹划分实际上是将主机地址分为两个部分:⼦⽹⽹络地址和⼦⽹主机地址!
      在这里插入图片描述

4. 公有IP地址与私有IP地址:

  • 私有 IP 地址通常是内部的 IT ⼈员管理,公有 IP 地址是由 ICANN 组织管理,中⽂叫互联⽹名称与数字地址分配机构。

5. IP地址与路由控制:

  • IP地址的⽹络地址这⼀部分是⽤于进⾏路由控制。路由控制表中记录着⽹络地址与下⼀步应该发送⾄路由器的地址。在主机和路由器上都会有各⾃的路由器控制表。
  • 在发送 IP 包时,⾸先要确定 IP 包⾸部中的⽬标地址,再从路由控制表中找到与该地址具有相同⽹络地址的记录,根据该记录将 IP 包转发给相应的下⼀个路由器。
  • 如果路由控制表中存在多条相同⽹络地址的记录,就选择相同位数最多的⽹络地址,也就是最⻓匹配。
  • 注:
    • 环回地址不会流向⽹络,环回地址是在同⼀台计算机上的程序之间进⾏⽹络通信时所使⽤的⼀个默认地址。 计算机使⽤⼀个特殊的 IP 地址 127.0.0.1 作为环回地址
    • 与该地址具有相同意义的是⼀个叫做 localhost 的主机名。使⽤这个 IP 或主机名时,数据包不会流向⽹络

6. IP分片与重组

  • 每种数据链路的最⼤传输单元 MTU 都是不相同的,因为每个不同类型的数据链路的使⽤⽬的不同。
    • 最常⻅数据链路是以太⽹,它的 MTU 是 1500 字节
  • 当 IP 数据包⼤⼩⼤于 MTU 时, IP 数据包就会被分⽚。 经过分⽚之后的 IP 数据报在被重组的时候,只能由⽬标主机进⾏,路由器是不会进⾏重组的。
  • 在分⽚传输中,⼀旦某个分⽚丢失,则会造成整个 IP 数据报作废,所以 TCP 引⼊了 MSS 也就是在 TCP 层进⾏分⽚不由 IP 层分⽚,对于 UDP 我们尽量不要发送⼀个⼤于 MTU 的数据报⽂

7. IPv6

  • 更多的地址,更好的安全性和扩展性,但IPV4和IPV6不能兼容

  • 特点:

    • 可分配地址变多
    • IPv6 可⾃动配置,即使没有 DHCP 服务器也可以实现⾃动分配IP地址
    • 简化了⾸部结构,减轻了路由器负荷,提⾼了传输的性能
    • IPv6 有应对伪造 IP 地址的⽹络安全功能以及防⽌线路窃听的功能,⼤⼤提升了安全性
  • 标识方法:![[1709170422983.png]]

  • 结构:![[1709170908211.png]]

  • IPV6单播地址类型:

    • 对于⼀对⼀通信的 IPv6 地址,主要划分了三类单播地址,每类地址的有效范围都不同。
    • 在同⼀链路单播通信,不经过路由器,可以使⽤链路本地单播地址,IPv4 没有此类型
    • 在内⽹⾥单播通信,可以使⽤唯⼀本地地址,相当于 IPv4 的私有 IP
    • 在互联⽹通信,可以使⽤全局单播地址,相当于 IPv4 的公有 IP
  • IPV4⾸部与IPV6⾸部:在这里插入图片描述在这里插入图片描述

    • 取消了⾸部校验和字段:因为在数据链路层和传输层都会校验,因此 IPv6 直接取消了 IP 的校验
    • 取消了分⽚/重新组装相关字段:分⽚与重组是耗时的过程,IPv6 不允许在中间路由器进⾏分⽚与重组,这种操作只能在源与⽬标主机,这将⼤⼤提⾼了路由器转发的速度
    • 取消选项字段:选项字段不再是标准 IP ⾸部的⼀部分了,但它并没有消失,⽽是可能出现在 IPv6 ⾸部中的下⼀个⾸部指出的位置上。删除该选项字段使的 IPv6 的⾸部成为固定⻓度的 40 字节。

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

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

相关文章

包子凑数 蓝桥杯

关于这题的数学定理,如果 a,b 均是正整数且互质,那么由 axby,x≥0,y≥0 不能凑出的最大数是 :a*b-a-b 想不起来的时候,把能列出来的数据列出来找规律,不互质得数不符合题目所说 类似于力扣零钱…

【boost_search搜索引擎】1.获取数据源

boost搜索引擎 1、项目介绍2、获取数据源 1、项目介绍 boost_search项目和百度那种不一样,百度是全站搜索,而boost_search是一个站内搜索。而项目的宏观上实现思路就如同图上的思路。 2、获取数据源 我们要实现一个站内搜索,我们就要有这…

包含多个段的程序

文章目录 包含多个段的程序在代码段中使用数据在代码段中使用栈将数据、代码、栈放入不同的段 包含多个段的程序 在代码段中使用数据 考虑这样一个问题,编程计算以下8个数据的和,结果存在ax 寄存器中:0123H,0456H,07…

中性点接地问题的matlab仿真与分析

1、内容简介 略 81-可以交流、咨询、答疑 2、内容说明 略电力系统的中性点接地方式通常是按电压等级 的高低来进行选取的, 我国中压电网普遍采用的有 3 种方式 :不接地 、经消弧线圈接地和经电阻接地。 电力系统在正常运行时, 对不同的中性点接地方式及其差异, 基本上没有…

海外媒体宣发:十大国外中文网站-大舍传媒

十大国外中文网站 1、欧洲时报 覆盖欧洲且较具影响力的华文媒体 国外中文新闻网站,欧洲时报文化传媒集团旗舰日报《欧洲时报》旗下官方网站,总部设在法国巴黎,创刊于1983年,现已成为唯一发行覆盖全欧、发行量最大、最具影响力的华…

ubuntu上一款好用的串口工具screen

看名字,你猜他是什么? 安装 sudo apt install screen 然后将USB串口接到虚拟机,执行dmesg命令查看串口设备名: 测试: sudo screen /dev/ttyUSB0 115200确实很简单。

Python入门(七)

递归 递归是函数调用其自身的操作。递归源自数学归纳法。数学归纳法(Mathematical Induction)是一种数学证明方法,常用于证明命题在自然数范围内成立。 计算1到100的和: def gaussian_sum(n): if n 1: return 1 else: return …

Spring Boot集成zxing实现生成二维码功能

1.二维码介绍 二维码QR Code(Quick Response Code) 由Denso公司于1994年9月研制的一种矩阵二维码符号,它具有一维条码及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点。 ZXing 一个支持在图像中解码和生成条形码(如…

项目1-加法计算器

1.创建项目 2.导入前端代码 2.1 static包内 2.2 测试前端代码是否有误 显示成功说明无误 2.3 定义用户接口 请求路径:calc/sum 请求方式:GET/POST 接口描述:计算两个整数相加 请求参数: 参数名类型是否必须备注num1Integer是参与计算的第…

代码随想录算法训练营Day56 ||leetCode 583. 两个字符串的删除操作 || 72. 编辑距离

647. 回文子串 dp[i][j]表示第i位开始&#xff0c;第j位结束的字符串是否为回文串 class Solution { public:int countSubstrings(string s) {vector<vector<bool>> dp(s.size(), vector<bool>(s.size(), false));int result 0;for (int i s.size() - 1…

【WEEK4】 【DAY5】AJAX - Part Two【English Version】

2024.3.22 Friday Following the previous article 【WEEK4】 【DAY4】AJAX - Part One【English Version】 Contents 8.4. Ajax Asynchronous Data Loading8.4.1. Create User.java8.4.2. Add lombok and jackson support in pom.xml8.4.3. Change Tomcat Settings8.4.4. Mo…

深入探索C语言动态内存分配:释放你的程序潜力

&#x1f308;大家好&#xff01;我是Kevin&#xff0c;蠢蠢大一幼崽&#xff0c;很高兴你们可以来阅读我的博客&#xff01; &#x1f31f;我热衷于分享&#x1f58a;学习经验&#xff0c;&#x1f3eb;多彩生活&#xff0c;精彩足球赛事⚽ &#x1f31f;感谢大家的支持&#…

Rust egui(3) 增加多个tab

话说不知道咋写&#xff0c;要不直接上git patch吧。代码都是移植的官方demo&#xff0c;核心改动就是把原来的line_demo换成了plot_demo&#xff0c;里面实现多个ui&#xff0c;然后点击tab标题会切换不同的ui。 如下图&#xff0c;Lines和Markers两个不同的标签对应不同的ui。…

基于Google云原生工程师的kubernetes最佳实践(二)

目录 二、应用部署篇 为deployment打上丰富的label,以便selecting 使用sidecar容器部署agent、proxy等组件 使用init container处理依赖关系,而不要用sidecar 镜像tag使用版本号,不要用latest或空tag 为pod设置readiness和liveness探针 不要给所有服务都使用LoadBalance…

eNSP实验一(静态)

目录 命名更改 子网划分 配置IP DHCP配置 配置静态路由 NET设置 Telnet及端口映射 浮动静态路由 命名更改 <Huawei>system-view Enter system view, return user view with CtrlZ. [Huawei]sysname R1 [R1] 1、R6为ISP&#xff0c;接口IP地址均为公有地址(12.0…

RuleApp资源社区,知识付费社区,可对接typecho的小程序APP

强大的文章/社区/自媒体客户端&#xff0c;支持打包为安卓&#xff0c;苹果&#xff0c;小程序。包括文章模块&#xff0c;用户模块&#xff0c;支付模块&#xff0c;聊天模块&#xff0c;商城模块等基础功能&#xff0c;包含VIP会员&#xff0c;付费阅读等收费体系&#xff0c…

蓝桥杯第十五届抱佛脚(二)竞赛中的数据结构

蓝桥杯第十五届抱佛脚&#xff08;二&#xff09;内置数据结构 文章目录 蓝桥杯第十五届抱佛脚&#xff08;二&#xff09;内置数据结构在竞赛中常见的数据结构数组(Array)链表(Linked List)栈(Stack)队列(Queue)树(Tree)映射(Map) 内置数据结构的快速使用迭代器&#xff08;It…

stm32知识总结--简单复习各部件

目录 内部结构 部件介绍 配置步骤 之前学了很多部件&#xff0c;配置了很多参数&#xff0c;但是没有很系统地把他们连接在一起&#xff0c;今天这个图里简洁描述了资源与资源之间的关系。 内部结构 部件介绍 黑框部分为CPU、内部有一个内核专门处理事件&#xff0c;所有的…

【Node.js】zlib

gzip 和 deflate 的基本使用 const zlib require("zlib"); const fs require(fs)// 压缩 1. createGzip .gz 2. createDeflate .deflate // const readStream fs.createReadStream(index.txt) // const writeStream fs.createWriteStream(index.txt.gz) // rea…

更换 Jenkins 插件下载源(解决 Jenkins 插件安装失败)【图文详细教程】

Jenkins 插件安装失败的情况 这里提一下&#xff0c;Jenkins 插件安装失败&#xff0c;不一定是下载源的问题&#xff0c;还有可能你下载的 Jenkins 的版本与插件的版本不匹配&#xff0c;Jenkins 的版本较低&#xff0c;而安装的插件是为新的 Jenkins 版本准备的&#xff0c;此…