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

【Linux】IP

📝前言:

这篇文章我们来讲讲Linux网络——IP

🎬个人简介:努力学习ing
📋个人专栏:Linux
🎀CSDN主页 愚润求学
🌄其他专栏:C++学习笔记,C语言入门基础,python入门基础,C++刷题专栏


目录

  • 一,IP协议格式
  • 二,网段划分
  • 三,特殊IP地址
  • 四,私有IP和公网IP
  • 五,路由

一,IP协议格式

  • IP 位于五层结构中的网络层
  • 主机: 配有 IP 地址, 但是不进行路由控制的设备;
  • 路由器: 即配有 IP 地址, 又能进行路由控制;

在这里插入图片描述
第一行:

  • 版本: IPv4 或 IPv6
  • 4位首部长度:4字节为单位,表示IP报头长度
  • TOS:指定对数据报的处理方式(优先级、延迟、吞吐量、可靠性等)
  • 16位总长度:表示整个 IP 数据报(包括头部和数据部分)的长度,单位是字节

第二行(用于“分片”,与数据链路层有关)

  • 16位标识:同一分片的标号相同,不同分片标识不同
  • 3位标志:
    • 第一位:一般为0
    • 第二位:为1代表不分片,为0代表可以分片
    • 第三位:为1代表“更多分片”(即该分片不是结尾),为0代表此片为分片的最后一片(类似\0
  • 13位片偏移:体现该片开始距离原始片开始的偏移(单位8字节)。如第一片偏移为0,第二片为:0+第一片长度
  • 分片与组装:
    • 确认第一片:片偏移为0 + 有更多分片
    • 确认最后一片:片偏移不为0 + 没有更多分片
    • 确认中间片:按片偏移升序排序,然后用 前一片片偏移 + 前一片长度 得到下一片理想的片偏移,然后和实际的比较

第三行

  • TTL:单位 “跳数”,数据报能经过的路由器的最大数量。每经过一个路由器,TTL 值减 1,当 TTL 值为 0 时,数据报被丢弃(因为网络拓扑结构很复杂,有时候可能出现环,导致报文一直循环,浪费网络资源)
  • 8位协议:用来指明IP要交给的上层的上层协议,如TCP,UDP…
  • 16位首部校验和:用于检验 IP 头部在传输过程中是否出现差错。发送方计算头部的校验和,接收方收到后重新计算,若结果不一致,则说明头部存在差错,数据报可能被丢弃。

二,网段划分

IPv4 地址总量有限,存在短缺问题,同时为减少网络广播风暴、提升数据转发效率并简化管理,子网划分技术被广泛应用。它通过将大网段拆分为多个独立子网,既能高效复用有限的 IPv4 地址以避免浪费,也能以此为基础构建分层可控的网络拓扑结构,最终实现设备间高效、安全的通信。
传统的 A/B/C 类已基本淘汰,下面介绍CIDR 子网划分:

  • 引入一个额外的子网掩码(subnet mask)来区分网络号和主机号
    • 在同一个网段内主机号不能相同,在不同的网段内主机号可能相同
  • 子网掩码也是一个 32 位的正整数. 通常用一串 “0” 来结尾
  • 将 IP 地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号

在这里插入图片描述
还有一种更简单的写法:140.252.20.68/24,表示 IP 地址为140.252.20.68,子网掩码的高位为1,即子网掩码为:255.255.255.0

三,特殊IP地址

  • 将 IP 地址中的主机地址全部设为 0, 就成为了网络号,代表这个局域网
  • 将 IP 地址中的主机地址全部设为 1, 就成为了广播地址, 用于给同一个链路中
    相互连接的所有主机发送数据包
    • 如:家用路由器分配 IP 时(DHCP 服务):路由器会向 “192.168.1.255”(广播地址)发送 “地址分配通知”,网段内所有未获取 IP 的设备都能接收并响应,无需路由器单独联系每台设备
  • 一个网段内的 “可用主机地址” 范围是:网络地址(主机号全 0)+1 到 广播地址(主机号全 1)-1
  • 127.*的 IP 地址用于本机环回(loop back)测试,通常是 127.0.0.1
    • 当设备向 127.* 地址(如 127.0.0.1)发送数据时,这些数据不会经过网卡、路由器等硬件,也不会流入互联网或局域网,而是直接被本机的操作系统 “拦截”,并转发给本机上的目标程序;无论设备是否联网(比如断开 WiFi、拔掉网线),127.* 地址都能正常使用,因为它不依赖外部网络环境。

四,私有IP和公网IP

  • 私有IP不能出现在公网中,也不能出现在另一个内网中
  • 不同局域网的私有IP可以不同,同一局域网的私有IP不能相同

除了以下的私有IP,其他全是公网IP

  • 10.*,前 8 位是网络号,共 16,777,216 个地址
  • 172.16.*172.31.*,前 12 位是网络号,共 1,048,576 个地址
  • 192.168.*,前 16 位是网络号,共 65,536 个地址

五,路由

  • 一个路由器可以配置两个 IP 地址(路由器至少有两组IP), 一个是 WAN 口 IP(公网IP), 一个是 LAN 口 IP(子网IP)
    • 也就是说:路由器一般处在两个“子网”中,路由器有构建子网的能力
  • 内网的数据要传输到公网上的时候,要通过路由器的转发,同时要把私有IP替换成路由器的WAN口IP(NAT技术)

在这里插入图片描述

路由表
路由表(Routing Table)是路由器内部维护的一张数据表格,记录了 “到达不同目标网络的路径信息”。其核心作用是解决 “数据包转发的方向问题”—— 路由器不会无目的转发数据,而是通过路由表精准判断:“要去目标网络(比如百度服务器所在的公网 IP 段),下一步该交给哪个设备(比如上级路由器、网关)”。

数据来源

  • 直连路由(Connected Route):“自带的本地路由”
  • 静态路由(Static Route):“手动配置的固定路由”
  • 动态路由(Dynamic Route):“路由器自动学习的路由”

路由数据包转发的过程

  • 路由器收到数据包后,提取目标IP地址
  • 将目标IP地址与自身路由表中个条目对应的子网掩码按位与,得到目标网络地址
  • 然后比较
    • 如果路由表中有与该目标网络地址匹配的条目,且条目包含“下一跳地址”,则将数据报转发给下一跳地址
    • 如果没有匹配的,则丢弃数据包,或者按缺省路由转发

在这里插入图片描述

  • IP是“终极目标”,网络层解决的是“去哪里”
  • 数据链路层是“局部目标”,数据链路层解决“怎么去”

🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!

http://www.dtcms.com/a/445925.html

相关文章:

  • 近红外相机在机器视觉检测中的应用
  • 【QT常用技术讲解】multimedia实现指定分辨率打开摄像头
  • 阿里巴巴网站的搜索引擎优化案例邢台做网站的价格究竟多少钱?
  • 一个学校随机点名系统(代excel 自定义导入名字,+随机点名)
  • 苍穹外卖-缓存商品、购物车功能
  • 海南住房和城乡建设厅网站首页建站之星怎么使用
  • 番茄畅听音乐版自动化任务实现教程
  • java基础-12 : 单列集合(Collection)
  • 查看邮箱注册过的网站百度资源搜索引擎
  • 网站建设常用编程语言square wordpress
  • 动规:01背包
  • 返利APP的“订单追踪”技术难点:如何通过埋点+消息队列(RocketMQ)实时同步淘宝/京东订单状态?
  • Net开发工具最新Rider 2025使用
  • 基于华为openEuler部署Dillinger个人文本编辑器
  • wordpress 标签固定链接宁波seo网络推广外包报价
  • 网站建设数据库是什么百度一下京东
  • 【Leetcode hot 100】131.分割回文串
  • ARM - GCC - 建立自己的命令行编译环境
  • Nginx限流配置
  • 大岭山做网站九亭做网站公司
  • 微软宣布 Windows 11 v25H2 GA
  • Burp Suite模拟器抓包全攻略
  • 佛山营销型网站定制绿色企业网站源码
  • Qt 5.14.2+Mysql5.7 64位开发环境下无法连接数据库
  • 【Python】
  • [特殊字符]ui设计公司灵感备忘录 | 网格布局 UI 收集
  • Base UI:一款极简主义的「无样式」组件库
  • MySQL 运维知识点(十六)---- 读写分离
  • 网站建设生存期模型希音电商网站
  • 济南网站建设培训班永久免费网站建设