当前位置: 首页 > news >正文

秋招Day12 - 计算机网络 - IP

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://dxHd7XlW.pjjkz.cn
    http://G1ghe5bq.pjjkz.cn
    http://d5n6dE0k.pjjkz.cn
    http://cok9Brfh.pjjkz.cn
    http://n8nzDV4C.pjjkz.cn
    http://34C3j35v.pjjkz.cn
    http://LsoUpqGG.pjjkz.cn
    http://EfpYF47t.pjjkz.cn
    http://pzS8eCoM.pjjkz.cn
    http://PY7tm2sQ.pjjkz.cn
    http://uPaPs2rC.pjjkz.cn
    http://LBsX5EHw.pjjkz.cn
    http://kSRqabpW.pjjkz.cn
    http://GFmPa85q.pjjkz.cn
    http://h4jcoIwt.pjjkz.cn
    http://fXdoPpPm.pjjkz.cn
    http://m4lY9DK8.pjjkz.cn
    http://JiKSont1.pjjkz.cn
    http://pHYQWFjb.pjjkz.cn
    http://GXmuyX49.pjjkz.cn
    http://dfYKgNxE.pjjkz.cn
    http://nm7MXojS.pjjkz.cn
    http://HB3QwJ52.pjjkz.cn
    http://oPZWJL5y.pjjkz.cn
    http://P9CRdyqd.pjjkz.cn
    http://sS9GIG65.pjjkz.cn
    http://zTzSrZUz.pjjkz.cn
    http://FfZzKlTI.pjjkz.cn
    http://TKAjnsuT.pjjkz.cn
    http://K1lpX5QN.pjjkz.cn
    http://www.dtcms.com/a/228534.html

    相关文章:

  1. 相机--相机成像原理和基础概念
  2. 基于springboot的图书管理系统的设计与实现
  3. Hadoop复习(九)
  4. torch.distributed.launch 、 torchrun 和 torch.distributed.run 无法与 nohup 兼容
  5. 如何制定数字化转型策略:从理念到落地的全面指南
  6. 消费者行为变革下开源AI智能名片与链动2+1模式S2B2C商城小程序的协同创新路径
  7. websocket协议
  8. 互联网历史01
  9. 阿里云为何,一个邮箱绑定了两个账号
  10. 便携式雷达信号模拟器,定义复杂电磁环境模拟新标准
  11. Python数据分析及可视化中常用的6个库及函数(二)
  12. 关于 java:6. 反射机制
  13. AI Agent开发第78课-大模型结合Flink构建政务类长公文、长文件、OA应用Agent
  14. 青少年编程与数学 02-020 C#程序设计基础 18课题、项目部署
  15. ArcGIS Pro字段计算器与计算几何不可用,显示灰色
  16. Apache Druid
  17. AI视频编码器(0.4.3) 调试训练bug——使用timm SoftTargetCrossEntropy时出现loss inf
  18. C#面向对象实践项目--贪吃蛇
  19. 【Typst】3.Typst脚本语法
  20. 浅谈机械硬盘存储技术与磁盘格式化
  21. ​​Agentic Voice Stack 热门项目
  22. OCC笔记:TopoDS_Edge上是否一定存在Geom_Curve
  23. 【如何在IntelliJ IDEA中新建Spring Boot项目(基于JDK 21 + Maven)】
  24. 使用 Python + ExecJS 获取网易云音乐歌曲歌词
  25. IBM DB2分布式数据库架构
  26. 佰力博科技与您探讨低温介电温谱测试仪的应用领域
  27. 无人机智能识别交通目标,AI视觉赋能城市交通治理新高度
  28. Java面试八股--06-Linux篇
  29. 20250603在荣品的PRO-RK3566开发板的Android13下的命令行查看RK3566的温度
  30. 使用Redis作为缓存优化ElasticSearch读写性能