秋招Day12 - 计算机网络 - IP

article/2025/6/11 23:40:02

IP协议的定义和作用?

IP协议用于在计算机网络中传递数据包,定义了数据包的格式和处理规则,确保数据能够从一个设备传递到另一个设备,中间可能经过多个不同的设备(路由器)。

IP协议有哪些作用?

  • 寻址标识网络中的目标位置,确保数据准确地传送到目标设备。
  • 路由:IP协议负责数据包在网络中传输的路径,比如路由器可以目标IP地址信息匹配路由表中的下一跳
  • 分片和重组:数据包在传输的过程中可能被分为多个小片,接收端会根据头部信息将这些片段重组为完整的数据包。

举一个实际例子来说明

假设有两个设备 A 和 B 通过互联网通信,A 的 IP 地址是 192.168.1.1,B 的 IP 地址是 203.0.113.5。数据包的传输过程如下:

①、设备 A 发送数据包:

  • 设备 A 创建一个 IP 数据包,设置源地址为 192.168.1.1(本地地址),目的地址为 203.0.113.5,将要传输的数据放入数据部分。
  • 数据包封装后,通过本地网络发送到路由器

②、路由器转发数据包:

  • 路由器根据路由表查找目的地址 203.0.113.5,确定数据包的传输路径。
  • 数据包可能经过多个中间路由器,每个路由器都根据路由表选择下一跳,最终到达目标设备的网络。

③、设备 B 接收数据包:

  • 设备 B 接收数据包,读取 IP 头部信息,验证数据包的完整性
  • 并数据部分取出,交给上层协议处理(如 TCP 或 UDP)。

IP地址有哪些分类?

公网IP地址在互联网范围内是唯一的,IP 地址 = {<网络号>,<主机号>}。

网络号表示主机连接的网络地址在互联网中属于哪个网络,主机号用于唯一标识该网络中的设备

IP地址分为A、B、C、D、E五类

     

    域名和IP地址的关系?IP可以对应多个域名吗?

    IP 地址在同一个网络中是惟一的,用于在该网络中的设备;域名在同一个网络中也是唯一的。

    IP和域名的关系是多对多

    一个IP多个域名(域名别名

    203.0.113.10 ← example.com
    203.0.113.10 ← www.example.com  
    203.0.113.10 ← shop.example.com

    一个域名多个IP(负载均衡

    google.com → 142.250.191.14
    google.com → 142.250.191.46
    google.com → 172.217.164.110

    IPv4地址不够是如何解决的?

    • DHCP:只给接入网络的设备动态地分配IP地址,使得空闲的 IP 地址可以得到充分利用。
    • CIDR:无类别域间路由,消除了传统的固定类别边界,使子网划分变得更加灵活,不再受A、B、C类固定长度的限制。
    • NAT:网络地址转换协议,不同的局域网中设备的IP地址可以相同,一定程度上解决了IP地址耗尽的问题,而NAT又将局域网中的私有IP地址转换为公网地址
    • IPv6:使用128位的网络地址,可以从根本上解决网络地址不够用的问题,但还没有被广泛使用。

    说一下ARP协议的工作流程

    ARP是数据链路层的协议,将上一层(网络层)的IP地址解析为数据链路层MAC地址

    1. ARP请求:当主机A要发送数据包给主机B时,首先判断B是否在同一网络。然后在ARP缓存中查找下一跳IP地址(同网络时是B的IP,跨网络时是网关IP对应的MAC地址。如果没有找到,就会广播一个独立的ARP数据包,请求下一跳IP地址对应的MAC地址
    2. ARP应答:同一个网段内的设备收到广播,只有对应IP地址的那个设备才会应答自己的MAC地址,其他设备会忽略,并且所有收到广播的设备会将发起ARP请求的设备的IP与MAC映射缓存
    3. 更新ARP缓存:发起请求的设备收到对应IP-MAC映射后,会更新自己的ARP缓存。

    为什么既有IP地址,又有MAC地址?

    MAC地址和IP地址各自有什么作用?

    MAC地址是数据链路层使用的地址,是写在网卡上的物理地址,用来定义网络中的设备位置,是唯一的。

    IP地址是网络层之上使用的地址,是一个逻辑地址,有可能变更,用来区别同一个网络内的计算机,也可以用来跨网络寻址路由

    为什么有了MAC地址还需要IP地址?

    为了节省路由器的存储空间。如果只使用MAC地址来寻址,我们需要知道每个MAC地址所属的子网,路由器中需要存储2^48条MAC地址-子网映射,显然不现实。

    然而我们可以直接通过IP地址的前缀得到设备属于哪个子网,剩下的寻址交给子网内部去实现,范围逐渐缩小,最终找到目标。

    为什么有了IP地址还需要MAC地址?

    因为设备在联入网络之前没有IP地址,这时需要用MAC地址来区分不同的设备。

    而且IP地址是端到端的,一开始就知道最终目标设备的IP地址,逐步缩小网段范围,负责逻辑寻址;MAC地址是点到点的,负责物理传输,用于标识在同一个网段内的物理设备,只有最后一跳才知道最终目标设备的MAC地址。

    ICMP协议的功能?

    网络控制报文协议,作用在网络层

    是一个无连接的,用于网络设备之间交互信息,包括错误报告网络诊断网络控制

    当遇到无法访问IP地址对应的目标时,或者无法以期望的速率转发数据包时,会自动发送ICMP消息,根据得到的报告定位错误并进行网络控制优化

    ping命令的原理?

    ping用来测试网络的可达性延迟,基于ICMP协议。

    首先DNS解析出IP地址,然后向目标IP发送一个ICMP Echo Requst信息。

    目标IP收到一个ICMP Echo Request信息后,会响应一个ICMP Echo Reply

    发起ping命令的设备收到这个ICMP Echo Reply信息后,计算平均响应时间丢包率等信息,告诉我们网络连接的质量


    http://www.hkcw.cn/article/eXZaDwnJWj.shtml

    相关文章

    电阻电容的选型

    一、电阻选型 1.1安装方式 贴片电阻体积小&#xff0c;适用于SMT生产&#xff1b;功率小&#xff1b;易拆解插件电阻体积大&#xff1b;功率大&#xff1b;不易脱落 1.2阻值 电阻的阻值是离散的&#xff0c;其标称阻值根据精度分为E6、E12、E24、E48、E96、E192六大系列&am…

    【网络安全】SRC漏洞挖掘思路/手法分享

    文章目录 Tip1Tip2Tip3Tip4Tip5Tip6Tip7Tip8Tip9Tip10Tip11Tip12Tip13Tip14Tip15Tip16Tip17Tip18Tip19Tip20Tip21Tip22Tip23Tip24Tip25Tip26Tip27Tip28Tip29Tip30Tip1 “复制该主机所有 URL”:包含该主机上的所有接口等资源。 “复制此主机里的链接”:包括该主机加载的第三…

    论文中pdf图片文件太大怎么办

    文章目录 1.使用pdf文件的打印功能将文件导出2.操作3.前后文件大小对比 1.使用pdf文件的打印功能将文件导出 该方法在保证清晰度的同时&#xff0c;内存空间也能实现减少&#xff08;如果使用线上的压缩pdf工具&#xff0c;清晰度会直线下降&#xff09; 2.操作 点击文件—&…

    力扣刷题 -- 232. 用栈实现队列

    1. 题目 2. 思路分析 1&#xff09;创建两个栈空间&#xff0c;PushST&#xff0c;PopST&#xff1b; 2&#xff09;插入数据往PushST插&#xff0c;判断PopST是否为空&#xff0c;如果为空直接往PopST出数据&#xff1b;如PopST不为空&#xff0c;就先把PopST的数据先出栈&a…

    结构型设计模式之Decorator(装饰器)

    结构型设计模式之Decorator&#xff08;装饰器&#xff09; 前言&#xff1a; 本案例通过李四举例&#xff0c;不改变源代码的情况下 对“才艺”进行增强。 摘要&#xff1a; 摘要&#xff1a; 装饰器模式是一种结构型设计模式&#xff0c;允许动态地为对象添加功能而不改变其…

    完美解决在pycharm中创建Django项目安装mysqlclient报错的问题(windows下)

    正常情况下&#xff0c;在Windows安装mysqlclient会报错&#xff1a; 我这里用的是anaconda虚拟环境&#xff0c;安装前必须激活anacoda虚拟环境&#xff0c; 怎么激活虚拟环境&#xff1f;可以参考超详细的pycharmanaconda搭建python虚拟环境_pycharm anaconda环境搭建-CSDN博…

    mac环境下的python、pycharm和pip安装使用

    Python安装 Mac环境下的python安装 下载地址&#xff1a;https://www.jetbrains.com.cn/pycharm/ 一直点击下一步即可完成 在应用程序中会多了两个图标 IDLE 和 Python launcher IDLE支持在窗口中直接敲python命令并立即执行&#xff0c;双击即可打开 Python launcher双击打…

    Spark 单机模式部署与启动

    &#x1f680; Spark 单机模式部署与启动教程&#xff08;适配 Hadoop 3.1.1&#xff09; 本文记录了在 Linux 环境中部署 Spark 的完整过程&#xff0c;使用 Standalone 单机模式&#xff0c;适配 Hadoop 3.1.1&#xff0c;最终可通过 Web 页面访问 Spark Master 状态界面。 …

    【数据库】安全性

    数据库安全性控制的常用方法&#xff1a;用户标识和鉴定、存取控制、视图、审计、数据加密。 1.用户标识与鉴别 用户标识与鉴别(Identification & Authentication)是系统提供的最外层安全保护措施。 2.存取控制 2.1自主存取控制(简称DAC) (1)同一用户对于不同的数据对…

    数据采集器支撑循环水养殖系统智能化运维案例

    一、项目背景 渔业养殖是关系到我国食物安全和海洋经济发展的重要产业&#xff0c;随着科技的不断进步&#xff0c;传统的养殖模式面临着诸多挑战&#xff0c;如养殖环境复杂、水质变化难以实时监测、设备运行状态不稳定等&#xff0c;这些问题不仅增加了养殖成本&#xff0c;还…

    【卡点变速】节拍同步 讨论

    一、 "首尾对齐"的前提是变速在合理范围内 变速导致动作资源时长不足的情况咋办? 计算验证: 变速前: 动作原始:1小节 @ BPM 100 = 2.4秒变速后: 变速比例 = 1.18倍速变速后时长 = 2.4秒 1.18 ≈ 2.03秒歌曲要求:2.03秒结果:✓ 完美匹配! 但是会有问题的情…

    TDengine 高级功能——流计算

    简介 在时序数据的处理中&#xff0c;经常要对原始数据进行清洗、预处理&#xff0c;再使用时序数据库进行长久的储存&#xff0c;而且经常还需要使用原始的时序数据通过计算生成新的时序数据。在传统的时序数据解决方案中&#xff0c;常常需要部署 Kafka、Flink 等流处理系统…

    数据资产是什么?数据资产平台如何发挥作用?

    目录 一、数据资产是什么 &#xff08;一&#xff09;数据资产的定义 &#xff08;二&#xff09;数据资产的特征 二、数据资产的重要性 &#xff08;一&#xff09;支持企业决策 &#xff08;二&#xff09;提升企业竞争力 &#xff08;三&#xff09;促进业务创新 &a…

    MCP 科普 + 实践:基于 HAP 的大模型外部交互协议应用与开发案例

    基础知识 Function Call 背景&#xff1a;以前的AI大模型&#xff0c;就像一个知识丰富但被困在屋子里的人&#xff0c;只能依靠自己已有的知识回答问题&#xff0c;没有办法获取实时的数据或者与外部的系统进行交互 Function Call 是 OPEN AI 在 2023 年推出的一个非常重要的…

    颈部的 “异常坚持”

    生活中&#xff0c;有些人的颈部会突然变得 “异常坚持”—— 头部不受控制地偏向一侧&#xff0c;或是不自主地旋转、后仰&#xff0c;仿佛被无形的力量牵引着。这种情况不仅影响外观&#xff0c;还会带来强烈的不适感&#xff0c;颈部肌肉紧绷、酸痛&#xff0c;像被一根绳索…

    Windows应用-音视频捕获

    下载“Windows应用-音视频捕获”项目 本应用可以同时捕获4个视频源和4个音频源&#xff0c;可以监视视频源图像&#xff0c;监听音频源&#xff1b;可以将视频源图像写入MP4文件&#xff0c;将音频源写入MP3或WAV文件&#xff1b;还可以录制系统播放的声音。本应用使用MFC对话框…

    Linux账号和权限管理

    1 Linux用户账号和组账号 Linux系统是一个多用户多任务的分时操作系统&#xff0c;任何一个要使用系统资源的用户&#xff0c;都必须首先向系统管理员申请一个账号&#xff0c;然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪&…

    Linux——初步认识Shell、深刻理解Linux权限

    文章目录 文章引入初步认识Shell深入理解Linux下的权限用户的切换使用sudo进行短暂提权权限的深入理解权限的本质权限的意义如何控制权限Linux下的权限属性的分类Linux下对于角色的分类文件的权限查询权限的具体表现普通文件的权限表现chmod指令、chown指令和chgrp指令chmod——…

    Redis底层数据结构之深入理解跳表(1)

    在上一篇文章中我们详细的介绍了一下Redis中跳表的结构以及为什么Redis要引入跳表而不是平衡树或红黑树。这篇文章我们就来详细梳理一下跳表的增加、搜索和删除步骤。 SkipList的初始化 跳表初始化时&#xff0c;将每一层链表的头尾节点创建出来并使用集合将头尾节点进行存储&…

    嵌入式硬件篇---龙芯2k1000串口

    针对串口错误 “device reports readiness to read but returned no data (Device disconnected or multiple access on port?)” 的排查和解决方法 硬件方面 检查连接 确认串口设备&#xff08;如串口线、连接的模块等&#xff09;与龙芯设备之间的物理连接是否牢固&#xf…