网络层协议IP(二)

文章目录

特殊的IP地址

  • 将IP地址中的主机地址全部设为0, 就成为了网络号, 代表这个局域网;
  • 将IP地址中的主机地址全部设为1, 就成为了广播地址, 用于给同⼀个链路中相互连接的所有主机发送数据包;
  • 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1

环回接口处理数据报的过程

私有IP地址和公网IP地址

公网IP

公网IP地址 (Globally Routable IP Address)是在互联网域名与号码分配机构(ICANN)制定的全球统一地址空间中,由区域互联网注册管理机构(RIR)分配给本地互联网注册机构(LIR)或终端用户的、具备全球唯一性的网络层标识符。
地址分配层级:

私有IP

如果⼀个组织内部组建局域网,IP地址只用于局域网内的通信 ,而不直接连到Internet上,理论上 使用任意

的IP地址都可以,但是RFC 1918规定了用于组建局域网的私有IP地址 :专用于私有网络内部的非全球可路由地址空间 。这些地址在组织内部网络(内联网)中可重复使用

私有IP地址范围:

私有IP地址也会受到相应的技术约束:

  • 路由过滤 :互联网服务提供商(ISP)应在边界路由器部署入站/出站路由过滤器(如ACL或前缀列表),阻止RFC 1918前缀的传播。
  • NAT依赖:私有网络主机访问互联网资源必须通过网络地址转换(NAT)或代理服务器。
  • DNS限制:私有地址不应在公共DNS服务器中注册A/AAAA记录。

通信流程中IP转换:

  • ⼀个路由器可以配置两个IP地址, ⼀个是WAN口IP(Wide Area Network) , ⼀个是LAN口IP( Local Area Network)(子网IP)
  • 路由器LAN口连接的主机 , 都从属于当前这个路由器的子网中
  • 不同的路由器, 子网IP其实都是⼀样的(通常都是192.168.1.1). 子网内的主机IP地址不能重复. 但是不同子网之间的IP地址可以重复.
  • 每⼀个家用路由器, 其实又作为运营商路由器的子网中的⼀个节点. 这样的运营商路由器可能会有很多级, 最外层的运营商路由器, WAN口IP就是⼀个公网IP了.
  • 子网内的主机需要和外网进行通信时, 路由器将IP首部中的IP地址进行替换(替换成WAN口IP), 这样逐级替换, 最终数据包中的IP地址成为⼀个公网IP . 这种技术称为NAT (Network Address Translation,网络地址转换).
  • 如果希望我们自己实现的服务器程序, 能够在公网上被访问到, 就需要把程序部署在⼀台具有外网IP的服务器上.

路由

路由就是在复杂的网络结构中找出一条走向目标终点的路线

这里主机A要向主机B发送数据:

  • 每一跳的路由器,不关心你的目的IP是什么,只关心你的下一跳地址是什么。
  • ⼀跳" 就是数据链路层中的⼀个区间. 具体在以太⽹中指从源MAC地址到⽬的MAC地址之间的帧传输区间.
  • IP数据包的传输:
    当IP数据包, 到达路由器时, 路由器会先查看目的IP
    路由器决定这个数据包是能直接发送给目标主机, 还是需要发送给下⼀个路由器;
    依次反复, ⼀直到达目标IP地址;

通过每个节点内部维护的路由表来确定数据包应该发送到哪里:

  • 路由表可以使用route命令查看
  • 如果目的IP命中了路由表, 就直接转发即可;
  • 路由表中的最后一行,主要由下⼀跳地址和发送接口两部分组成,当目的地址与路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址。

设某主机上的网络接口配置和路由表如图:

  • 这台主机有两个网络接口,⼀个网络接口连到192.168.10.0/24网络,另⼀个网络接口连到192.168.56.0/24网络

  • 路由表的Destination是目的网络地址,

    Genmask是子网掩码,

    Gateway是下⼀跳地址,

    Iface是发送接口,

    Flags中的U标志表示此条目有效(可以禁用某些条目),G标志表示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发;

  • 如果要发送的数据包的目的地址是192.168.56.3:

    跟第一行的子网掩码做与运算得到192.168.56.0,与第一行的目的网络地址不符;

    再跟第二行的子网掩码做与运算得到192.168.56.0,正是第二行的目的网路地址,因此从eth1接口发送出去;

    由于192.168.56.0/24正 是与eth1接口直接相连的网络,因此可以直接发到⽬的主机,不需要经路由器转发;

  • 如果要发送的数据包的目的地址是202.10.1.2:

    依次和路由表前几项进行对比, 发现都不匹配;

    按缺省路由条目, 从eth0接口发出去, 发往192.168.10.1路由器;

    由192.168.10.1路由器根据它的路由表决定下一跳地址;

路由表可以由网络管理员手动维护(静态路由), 也可以通过⼀些算法自动生成(动态路由),比如距离向量算法, LS算法, Dijkstra算法等

相关推荐
静谧空间2 小时前
Linux自动备份Mysql数据
linux·运维·mysql
技术摆渡人2 小时前
专题一:【BSP 核心实战】Linux 系统死机与 DDR 稳定性“法医级”排查全书
linux·驱动开发·车载系统
云小逸2 小时前
同网段 vs 不同网段通信:深入解析网络通信的底层原理
网络
合新通信 | 让光不负所托2 小时前
两相浸没式液冷中,冷却液沸腾产生的气泡会不会干扰光模块的正常工作?
网络·安全·云计算·信息与通信·光纤通信
zzcufo2 小时前
北云GPS网络验证步骤
网络
素雨迁喜2 小时前
Linux系列文章(3)指令和权限
linux·运维·服务器
EndingCoder2 小时前
反射和元数据:高级装饰器用法
linux·运维·前端·ubuntu·typescript
草根站起来2 小时前
https加密证书
网络协议·http·https
yes_p_m2 小时前
Ubuntu误删/lib64自救指南
linux·运维·ubuntu