网络层(IP)

基本概念

  • 子网和局域网是一个概念
  • 主机: 配有 IP 地址, 也能进行路由控制的设备;
  • 路由器: 即配有 IP 地址, 又能进行路由控制;
  • 节点: 路由器和主机的统称。

背景

  1. 两主机并不是直接连接的,路径选择问题?为什么? 由网络层(IP)解决
  2. 怎么把数据交给路由器,怎么办? 这是局域网通信的问题,两主机是直连的,在同一个子网中,由数据链路层解决

深入理解IP

  • 公网IP在全球具有唯一性。
  • IP,比如 192.168.72.1,这是点分十进制的
  • IP地址 = 目的网络 + 目的主机号

重谈TCP和UDP

  • IP解决的核心问题是主机距离变长

网络层报头

  • 4位首部长度:跟TCP报头中的一样
  • 16位总长度:报文的大小

  • 如何解包?封包?

    解包:固定的20字节,然后根据4位首部长度+16为总长度来解包

    封包:根据格式封包就可以了

  • 8位协议:表示上层协议类型(UDP,TCP...)

  • 如何分用?

    根据8位协议,就可以知道交给上层的哪个协议。


  • TTL(生存时间):报文的生存时间,每经过一个路由器都会 - -,可以防止报文在环路中一直滞留,占用资源的情况。

网段划分

  • 是什么?为什么?怎么办?

是什么?

  • 有了目的IP是不够的,网路是被** 精心设计 (子网划分)**的
    被谁设计的? 网路服务提供商

  • 路由器有两个IP,路由器的主机号大都为1
  • 子网是有网络号的(比如xxx.xxx.xxx.0)
  • 子网内的IP地址,都是从哪里来的?谁给的?
    路由器有构建子网的能力
  • IP = 目标网络号+目标主机号
  • IP报文被转发:
    1. 根据目标网络,将报文转发到目标网络
    2. 转发到目标网络后,将报文在内网进行转发

为什么?

  • 主机A将数据发送给主机B,但如何找到主机B?
  1. 线性遍历全球的主机,效率很低
  2. 主机A知道主机B的IP,将主机B的IP与主机A的网络号进行比较不相等,将数据交给路由器,路由器根据报文中目的IP查路由表,确定了主机B的网络,将报文交给相应的路由器,最后进行内网转发交给主机B。
  • 第二种方式效率高--->本质是查找--->本质是淘汰(淘汰效率高)
  • 在进入目标子网之前,不关心主机号--->报文在进行转发过程中,在进入目标网络之前,路由器只关心网络号,之后就是内网转发
  • 在进行路上路由时,路由的基本单位是网络
  • 总结,根据上面知道了为什么? 支持网络建设,提高了淘汰率。

怎么办?

  • 以前划分网络号和主机号的方式

子网掩码

  • 新的划分方案CIDR(Classless Interdomain Routing)
复制代码
IP 地址和子网掩码还有一种更简洁的表示方法,例如 140.252.20.68/24,
表示 IP 地址为140.252.20.68, 子网掩码的高 24 位是 1,也就是 
255.255.255.0

特殊IP

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

IP地址不够用

  • 随着网络的发展,更多的设备需要入网,IP不够用:
    1. 动态分配 IP 地址: 只给接入网络的设备分配 IP 地址. 因此同一个 MAC 地址的设备, 每次接入互联网中, 得到的 IP 地址不一定是相同的;
    2. NAT 技术(后面会重点介绍);
    3. IPv6: IPv6 并不是 IPv4 的简单升级版. 这是互不相干的两个协议, 彼此并不兼容; IPv6 用 16 字节 128 位来表示一个 IP 地址; 但是目前 IPv6 还没有普及;

公网IP和私有IP

  • 网络可以分为局域网和公网

  • 私有IP(只能用来组建局域网,私有IP不能出现在公网中)

    1. 10.*,前 8 位是网络号,共 16,777,216 个地址
    2. 172.16.到 172.31.,前 12 位是网络号,共 1,048,576 个地址
    3. 192.168.*,前 16 位是网络号,共 65,536 个地址
  • 公网IP不能重复

  • 在网络架设时,在内网,公网,在统一采用各自的子网掩码的方式,进行网络建设。

运营商

基本网络情况

  • 申请IP,无论公网,内网,网络建设工作--->由运营商来做

  • 家庭路由器有构建子网的功能

  • 局域网--->不仅我们自己在做,运营商也在做

  • 路由器:有家庭的,也有企业的

  • 路由器有两个IP:LAN口IP(对内),WAN口IP(对外)

  • 家庭路由器出去的报文到想到达公网,需要先到运营商构建的一个更大的子网中。

  • 为什么交钱给运营商?

    我们的报文必须经过运营商的转发才能到达公网。

    运营商可以因为你欠费不让你入公网

    访问非法目标地址,会被拦截

  • 科技上网的本质就是骗过运营商,不让运营商识别出来。

内网-->公网

  • 如果目的IP不在该子网中,会向上交付(交付给更大的子网)。

公网-->内网?(数据链路层会讲)


NAT技术

  • NAT技术为什么缓解了IP不足的问题?
    单独切分了一部分IP,只用它来做内网,这样IP地址就可以重复利用了。

全球网络

  • 公网就是对全球公网IP进行划分的过程
  • 在路由表条目中找不到目的网路号时,就会将报文交给缺省路由

路由

  • 路由器,一定尽可能帮助我们
    1. 配置默认路由
    2. 怎么走
    3. 到达入口路由器--->之后就是根据目标主机进行内网转发
      以上都是根据目标网络进行路由
  • 路由表信息,查看路由表信息的指令是 route
  • 路由表的信息有路由表生成算法来维护

  • IP报文的转发过程本质就是进行各个子网之间的转发
  • IP解决的核心问题:路径选择,淘汰其他子网
    1. 根据目的网络进行路由
    2. 内网转发

分片和组装

  • 为什么不把滑动窗口的数据打成一个报文呢?而是一个又一个的段报文?

    规定:数据链路层单次发送的数据帧不能超过MTU(1500)

  • IP报文太长,IP报文会分片--->网络层自己和对方分别进行分片和组装

  • 分片好不好?

    1. 分片和组装,上层传输层不关心
    2. 分片为更多的报文,任意一个丢包,组装就是不完整的--->分片之后丢包的概率增加,所以分片不能作为网络发送的主流
  • 如何不分片?

    传输层不能发过大的报文,所以滑动窗口的数据会被分为一段一段的数据


如果分片,如何分片?


16 位标识(id) : 唯一的标识主机发送的报文. 如果 IP 报文在数据链路层被分片

了, 那么每一个片里面的这个 id 都是相同的.
3 位标志字段 : 第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要

用到). 第二位置为 1 表示禁止分片 , 这时候如果报文长度超过 MTU, IP 模块就会丢弃报文. 第三位表示**"更多分片"**, 如果分片了的话, 最后一个分片置为 0, 其他是 1. 类

似于一个结束标记.
13 位分片偏移(framegament offset): 是分片相对于原始 IP 报文开始处的偏移. 其实就是在表示当前分片在原报文中处在哪个位置. 实际偏移的字节数是这个值 除以 8 得到的. 因此, 除了最后一个报文之外(之前如果都是 8 的整数倍,最后一片的偏移量也一定是 8 的整数倍), 其他报文的长度必须是 8 的整数倍(否则报文就不连续了).

注意:片偏移(13 位)表示本片数据在它所属的原始数据报数据区中的偏移量**(以 8 字节为单位)**

  • 如何判断是否是分片
  • 是否将分片收全?
  • 如何组装?
    组装,就说明了已经收全了,根据片偏移量就可以了。

  • 如何分片?
  1. 对IP报文的有效载荷进行分片
  2. 片偏移量(必须是8的整数倍)是数据相对于有效载荷的偏移量
  3. 分片之后,每一片就是一个IP报文
  • 分片和组装不一定只有在通信两端才会进行,在网络中也有可能进行
相关推荐
sunfove7 小时前
光网络的立交桥:光开关 (Optical Switch) 原理与主流技术解析
网络
Kevin Wang7279 小时前
欧拉系统服务部署注意事项
网络·windows
min1811234569 小时前
深度伪造内容的检测与溯源技术
大数据·网络·人工智能
汤愈韬10 小时前
NAT策略
网络协议·网络安全·security·huawei
汤愈韬10 小时前
Full Cone Nat
网络·网络协议·网络安全·security·huawei
zbtlink10 小时前
现在还需要带电池的路由器吗?是用来干嘛的?
网络·智能路由器
桌面运维家11 小时前
vDisk配置漂移怎么办?VOI/IDV架构故障快速修复
网络·架构
dalerkd11 小时前
忙里偷闲叙-谈谈最近两年
网络·安全·web安全
汤愈韬11 小时前
NAT ALG (应用层网关)
网络·网络协议·网络安全·security·huawei
运维栈记13 小时前
虚拟化网络的根基-网络命名空间
网络·docker·容器