网络层 - IP协议

网络层:

  • 定义:网络层是OSI参考模型中的第三层,介于传输层和数据链路层之间
  • 功能:A主机经过路径选择将数据传到B主机
  • 路径选择:
    • 在众多网路中找到B主机所在网络(局域网)。
    • 在目标网络中找到目标主机。
      需要通过传输层协议(TCP协议)检验IP报文是否正确的从A->B。
      ps:网络协议:IP + TCP(保证报文正确的从A主机传到B主机)

IP协议

基本概念:

  • 主机:有IP地址,但是不进行路由控制的设备
  • 路由器:有IP地址,也能对路由进行控制
  • 节点:主机和路由器的统称

IP报文

网络层 - IP协议_第1张图片
如何分用的?

  • 8位协议决定交付给上层的哪个协议

如何分离的?

  • 通过首部长度 + 总长度,可以做到分离报头和有效载荷

基本信息:

  • 4位版本:当前IP协议使用的是哪个版本,目前是IPv4
  • 8位头部长度:IP报头有多长,最大15 * 4 = 60字节
  • 8位服务类型:三位优先权字段(已弃用),4位TOS字段和一位保留字段(必须为0).
    • 4位TOS:最小延时,最大吞吐量,最高可靠性,最小成本。只能选其一
  • 16位首部长度:IP数据包整体长度是多少
  • 8位生存时间:数据包到达目的地的最大报文跳数。
  • 8位协议号:上层协议的类型

分片问题:

  • 1.什么是IP分片?
    IP协议在传输数据包时会将数据报文分成若干份,并在目标系统中重组

  • 2.为什么要对IP报文进行分片?
    每一个物理网络中都会规定链路层数据桢的大小,称为链路层MTU。在以太网环境下MTU最大值为1500字节。因此如果IP数据包+IP报头的长度 > MTU长度,IP就会分片。

  • 3.如何分片
    我们先要了解IP报头中与分片相关的部分

    • 16位标识:唯一的标识主机发的报文。如果报文在数据链路层被分片了,则每一片的该部分id是相同的。
    • 3位标志字段:第一位保留。第二位置为1表示禁止分片,这时候如果IP报文的长度超过了MTU,IP模板就会丢弃报文。第三位置为1表示“更多分片”,如果分片的话,最后一个分片置为1,其他置为0.
    • 13位分片偏移:是分片相对于原始IP报文开始出的偏移,实际表示:当前报文在源报文的哪个位置。实际偏移量是这个值 * 8表示的。因此除了这个报文,其他报文的长度都必须是8 的整数倍。
    • 16位校验和:使用CRC进行校验,鉴别头部是否损坏

    分片方法:
    - 1.将有效载荷切分,同时每一个分片都要加上一个报头
    - 2.每个分片+报头的长度不能超过MTU
    组装方法

    • 1.根据16位标识确定该报头是否为同一报文的分片。
    • 2.依据偏移量进行从小到大的排序。
    • 3.依据标志确认是否到尾部。
    • 4.最后依据检验和确认是否拼接正确。

源地址和目标地址

标识发送端和接受段

网段划分(提高查找效率):

IP地址分为两个部分:网络号和主机号

  • 网络号:保证相互连接的两个网段具有不同的标识
  • 主机号:同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号
  • 子网:网络号相同的主机放到一起
  • 若果想要新增一台主机,网络号和子网网络号相同,主机号不能与其他主机号相同

管理子网内IP

动态主机设置协议DHCP能自动给子网新增的主机节点分配IP地址,一般路由器都自带DHCP功能

子网划分方法:

  • 1.划分网络和主机号将地址划分为五类
    • 特点:分为A,B,C,D,E五个IP地址
    • 缺陷:
      • 由于大多数组织都申请B类网络,导致B类已经被分配完了,但A类仍有大量地址
      • A类在使用中,并不会使用大量的主机,导致大量IP地址被浪费了。
  • 2.CIDR无类别域间路由
    • 特点:
      • 引入了子网掩码的来区分网络号和主机号
      • 网络号和主机号的划分跟IP地址是A,B,C类无关。
      • 特殊的IP地址:全部为0,代表网络号。全部为1,代表广播好,用于发给该局域网中所有主机。
      • 缺点:只是提高了使用率,但实际IP上限还是没有改变,IP仍然不够用。

IP地址的数量限制:

我们现在常用的IPv4,只有2的32次方个IP地址,是43亿左右,而TCP/IP规定,每个主机都需要一个IP地址,又因为一些特殊IP地址的存在,我们是既可以使用的IP地址要远远少于这个数,导致了我们IP地址已经远远不足了。
解决方法:
- 1.动态分配IP地址:只给接入网络的设备分配IP地址。因此同一个MAC地址的设备,每次接入互联网中,得到的IP地址是不同的。
- 2.NAT技术:子网主机需要外网通信时,将IP首部的IP地址替换成WAN口IP,逐级替换,最终数据包中的IP成了外网IP。
- IPv6:一共有2的128次方个IP地址,但仍未普及。

私有IP地址和公网IP地址

在一个局域网内,理论上来说任何IP地址都可以使用的,但是RFC1918规定了用于组建局域网的私有IP地址。

  • 10.* 前8位是网络号
  • 172.16~172.31,前12位是网络号
  • 192.168.*,前16位是网络号
    其他的被称为全局IP

NAT技术:

  • 1.每一个路由器可以分配两个IP,一个WAN口IP,一个LAN口IP
  • 2.路由器LAN口连接的主机,都属于这个路由器的子网
  • 3.不同路由器之间,子网IP可以重复。
  • 4.每一个路由器,都是运营商路由器的子网的一个节点,最外层的运营商路由器的WAN口实际上就是一个公网IP了。
  • 5.子网要和外网进行通信,路由器将IP首部中的IP地址替换成WAN口IP,直到替换成一个共网IP,这样的技术就叫做NAT(网络地址转换)

路由

在复杂的网络结构中,找出一条通往终点的路线。

  • 1.找到目标网络
  • 2.找到目标主机

路由的过程:

路由的过程实际是:一跳一跳“问路”的过程

  • 1.一跳一跳:
    指的是链路层的一个区间,是以太网中从源MAC地址到目的MAC地址之间桢传输区间。
  • 2.问路:
    指的是通过查看路由器,由路由器决定将数据包传给目标主机还是传给下一个路由器(通过路由表决定的)。

路由表:

  • 1.可以通过route查看。
  • 2.路由表的最后一行,是下一跳的地址。如果发来的IP报文的目的地址与路由表其他行都不匹配,就按缺省路由条目规定的接口发送到吓一跳地址。

你可能感兴趣的:(linux)