网络层

  网络负责在不同网络之间尽力转发数据报,主要是基于数据报的IP地址进行转发,不负责处理数据报的丢失、充分、乱序等功能,不保证分组交换的时限

一、网际协议IP

  • IP协议指的是IPv4
  • 与IP协议配套使用的三个协议
    • 地址解析协议ARP
    • 网际控制报文协议ICMP
    • 网际组管理协议IGMP

  • 网络中间设备
    • 物理层:集线器,转发器
    • 数据链路层:交换机,网桥,桥接器,适配器
    • 网络层:路由器
    • 网络层之上:网关

二、IP 地址

1. 分类的IP地址

  • 格式:  <网络号>,<主机号>,一般用点分十进制记录IP地址,32位二进制
  • 网络号标志主机或路由器所连接到的网络,主机号标志该主机或路由器
  • 分类
    • A、B、C类地址的网络号自选分别为1、2、3个字节长,在网络号的类别为分别为0,10,110
    • A、B、C类地址主机号字段分别为3、2、1个字节长
    • D类地址(1110)用于多播,E类地址(1111)保留为以后用
  • IP地址中的全0表示本网络,全1 表示本地环回地址
  • IP地址是一种分等级的地址结构,IP地址管理机构在分配IP地址时只分配网络奥,剩下的主机号则由得到该网络号单位自行分配
  • 路由器仅根据目的主机所连接的网络号转发分组,减少了路由表所占存储空间和查找时间
  • 1个路由器至少有2个不同的IP地址,一个主机在一个局域网下至少有一个IP地址
  • 具有不同网络号的局域网必须使用路由器互连,转发器/网桥没有主机号,没有IP地址

2. IP地址与硬件地址的区别

  • IP地址是网络层和网络层以上各层使用的地址,是一种逻辑地址,IP地址放在IP数据报的首部。
  • 硬件地址是数据链路层和物理层使用的地址,是物理地址,硬件地址放在MAC帧的首部。
  • 在IP层抽象的互联网上只能看到IP数据报,在局域网的链路层只能看到MAC帧,MAC帧在不同网络转发中MAC地址会变化
  • IP数据报首部有源站IP地址,但路由器只根据目的站的IP地址的网络号进行路由选择,通过地址解析协议ARP从网络层使用的IP地址解析出数据链路层的硬件地址
  • 地址解析协议ARP:在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,以及存放的地址映射有效时间TTL,进行动态更新,增删改查。 <IP地址:MAC地址:TTL>

3. IP数据报

 一个IP数据报由首部和数据两部分组成,首部的前一部分是固定长度占20字节,后面是可选字段,长度可变。

  • 版本:占4位,IP协议版本
  • 首部长度:4位,字段最小值是5,最大值是15,当IP首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充
  • 区分服务:占8位,一般情况下不适用
  • 总长度(576~1500字节):指首部和数据之和的长度,完整IP数据报的长度,可以传递65536个字节大小的IP数据报,然而数据帧中最大数据传送单元MTU为1600个字节,所以IP数据报总长度不能超过MTU,必须把过长的数据报进行分片处理,IP协议规定在互连网中的所有主机和路由器必须能够接受长度不超过576个字节的数据报,因此IP数据报的数据内容最小是512个字节(首部长度最大是60个字节,还需余出4个字节的富余量)
  • 标识:占16位,相同标识字段值使分片后的各数据报片能正确地重装
  • 标志:占3位
    • 最低位标记MF:MF=1表示还有分片,MF=0表示已经是最后一个分片
    • 中间标志位DF:DF=0允许分片
  • 片偏移:占13位,表示数据报分片后某片在原分组中的相对位置,片偏移以8个字节为偏移单位,每个分片长度一定是8字节的整数位
  • 生存时间:8位,数据报在网络中的寿命,跳数,TTL最大数值为255
  • 协议:数据报携带的数据使用何种协议,ICMP=1,IGMP=2,IP=4,TCPP=6,UDP=17
  • 首部检验和:占16位,检验数据报首部,不包括数据,反码检验
  • 源IP地址32位
  • 目的IP地址32位
  • 可变部分:可选字段,用于支持排错、测量以及安全等

四、IP转发分组流程

  • 路由表转发:(目的网络地址,下一条地址),路由器记录了下一跳地址去向哪一个网络
  • 分组转发算法
    • 从数据报的首部提取目的主机的IP地址,得出目的网络地址为N
    • 若N是与次路由器直接相连的某个网络地址,则进行直接交付
    • 否则若路由器中 有目的地址为D的特定主机路由,则把数据报传送给路由表中的吓一跳路由器
    • 否则若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一个路由器
    • 否则若路由表中有一个默认路由。则把数据报传送给表中所指明的默认路由器
    • 否则报告转发分组错误

五、划分子网

  • 两级IP地址缺点:
    • IP地址空间利用率低
    • 给每一个物理网络分配一个网络号会使得路由表变得很大,网络性能变差
    • 两级IP地址不够灵活
  • 三级IP地址,划分了子网
    • 格式:  网络号,子网号,主机号
    • 子网号占用了原来的主机号位数,子网号不能全为1或全0
    • 子网掩码: 将网络号/子网号全部置1,主机号全部置0
    • 通过子网掩码和IP地址进行与运算可获得子网的网络地址
  • 所有的网络必须使用子网掩码,否则使用默认子网掩码
  • 使用子网划分后,路由表的内容包括: 目的网络地址,子网掩码和下一跳地址

六、网际控制报文协议ICMP

  • ICMP允许主机或路由器报告差错情况和提供有关异常情况额报告,ICMP报文作为IP数据报的数据,加上数据报的首部,组成IP数据报发送
  • ICMP报文格式,数据字段长度取决于ICMP的类型

    

 

 

 

  • 种类分为ICMP差错报告报文和ICMP询问报文

     

     

  • ICMP差错报告报
    • 终点不可达 :当路由器或主机不能交付数据报时向源点发送中等不可达报文
    • 时间超过:当路由器收到生存时间为0的数据报时,除丢弃该数据报外,向源点发送时间超过报文,当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,把已收到的数据报片丢弃,并向源点发送时间超过报文
    • 参数问题:当路由器或目的主机收到的数据报的首部中有的字段值不正确时,丢弃并向源点发送参数问题报文
    • 改变路由:路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器
    • 收到的ICMP差错报告报文的数据字段具有相同格式,把收到的需要进行差错报告的IP数据报首部和数据字段的前8个字节构成ICMP报文的数据字段,在加上对应的ICMP差错报告报文的前8个字节构成ICMP差错报告报文。
        

     

  • ICMP 询问报文
    • 回送请求和回答: ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文,用于测试目的站是否可达和其相关状态
    • 时间戳请求和回答:ICMP时间戳请求报文是请某台主机或路由器回答当前日期和时间,在ICMP时间戳回答报文中有一个32位的字段,写入的整数代表从1900年1月1日开始到当前时刻一共有多少秒,时间戳请求与回报用于时钟同步和时间测量
  • ICMP举例:PING和traceroute

七、IPv6

 IPv6是一个具有更大地址空间的IP 协议

  • 更大的地址空间,128位
  • 扩展的地址层次结构
  • 灵活的首部格式
  • 改进的IP数据报首部选项
  • 允许协议可以继续扩充
  • 支持即插即用,不需要使用DHCP动态主机配置
  • 支持资源的鱼粉配
  • IPv6首部改为8字节对齐
  • IPv6由基本首部和有效载荷组成

 

posted @ 2021-03-19 17:26  forever_fate  阅读(442)  评论(0)    收藏  举报