zoukankan      html  css  js  c++  java
  • IPv4网络简介

    Ipv4网络

    IPv4数据报格式

    首部各字段描述

    • 版本号:用来确定IP协议的版本(比如IPv4还是IPv6),路由器根据版本号来判断怎样解析首部其他的字段信息,不同协议版本,数据报格式不同。——4比特
    • 首部字段:IPv4协议包含一些可选字段,即首部长度不固定,该字段用来确定首部长度,大多数版本的IP协议不包含可选字段,因此通常IP首部一般长20个字节。——4比特
    • 服务类型(TOS):有些数据报要求低时延高吞吐量可靠性传输。——8比特
    • 数据报长度:IP数据报总长度,以字节计算,包括IP首部和运输层报文段的长度,因为以太网帧最大传输单元不超过1500字节,所以一般数据报长度一般不超过1500字节。——16比特
    • 标识,标志,片偏移:与IP分片相关。——16比特——3比特——13比特
    • 寿命:每次经过一个路由器该值减一,当该值为0时必须丢弃该数据报。——8比特
    • 上层协议:IP数据报的数据部分应该交给哪个特定的运输层协议,跟运输层要存储哪个端口号来接收信号,即沟通运输层跟应用层。链路层帧也有一个字段来连接链路层跟网络层。——8比特
    • 首部检验和:将首部中的每两个字节当作一个数,按反码求和,用来检验首部信息是否发生错误,运输层的检验和是对整个报文段包括数据部分进行检验。——16比特
    • 源IP地址。——32比特
    • 目的地址。——32比特
    • 可有选项(IPv6已经不包含该选项)。
    • 数据部分。——有效载荷(要传输的数据)。
      若IP数据报不包含可有选项则首部一共有20个字节

    IPv4数据报的分片

    MTU:链路层帧的最大传输单元,限制着IP数据报的长度。
    现在考虑一种情况,一个数据长度为4000字节的数据报进行传播,但是当他被一个路由器转发时,出链路帧的MTU为1500字节,该数据报必须被分割为小的数据报,即数据分片。
    然后我们要考虑怎样分片以后的数据报我们怎么再把它拼接起来,什么时候拼接。

    什么时候拼接?

    假如我们在到达目的地前就拼接,那么在剩下的链路中仍然有被分片的可能,而且这样增加多次拆分和拼接的操作无疑增加了路由器的负担,所以应该在目的地进行拼接。

    怎么拼接?

    在IP首部的字段中有标志,标识,偏移。
    目的端系统根据16比特的标识来确定属于哪个数据报,标识位在源端系统发送分组时就进行设置。
    由于IP是不可靠的,所以怎末判断分片是否丢失已成功到达,就要根据,标志位信息,最后一个分片的标志位信息一般设置为0,而其他标志位信息设置为1。
    偏移字段用来指示,该分片在原数据报的位置,使其能够正确拼接。

    Ipv4编址

    主机通常与路由器由一根链路相连,主机跟链路之间的边界叫做接口。路由器跟它任意一条链路之间的边界也叫做接口。因为每台主机与路由器都能发送和接受IP数据报因此,每台主机跟路由器都有自己的IP地址。一个IP跟一个接口相关联,而不是一个主机与一个IP相关联。
    223.1.1.0/24其中24表示IP地址的前24位信息为IP所在子网的地址信息,称之为网络前缀。
    因特网的地址分配策略无类别域间路由选择(CIDR)
    IP地址聚合,就是把两个小网络合并为一个大网络,主要是通过修改子网位实现。通俗点说就是合为一个网段。要计算IP地址聚合后的地址,其实就是比较几个IP的网络前缀,相同的部分有多少位,这多少位就是聚合后的IP。
    利用IP聚合可以减小ISP服务器的负担。
    在CIDR被采用之前,IP地址的网络前缀部分长度被限制为8,16或24比特(分类编址也就是A,B,C类网络)。但是分类网络的地址利用率不高。
    当一台主机发送255.255.255.255的数据报时,该报文交付给同一网络中的所有主机。该路由器也会有选择的向邻近子网转发该报文。

    一个子网是如何给它内部的端系统分配IP的呢?

    一般网络管理员通过DHCP(动态主机配置协议)来管理子网内的地址。接下来我们看一下DHCP的工作步骤。

    • DHCP服务器发现
      当一台主机刚到一个区域,他会通过67端口发送一个UDP传输协议的IP数据报(此时本主机还没有自己的IP,IP数据报的源IP使用0.0.0.0)。目的地址为广播地址255.255.255.255。DHCP客户将该IP传递给链路层,链路层将该帧广播到所有节点。该报文叫做DHCP发现报文。
    • DHCP服务提供
      当一台DHCP服务器收到该报文后,或发送一个DHCP提供报文(通过广播),里边包含,DHCP服务器的IP以及申请的IP地址,事务ID(可能同时有多个主机申请IP,用来辨别),子网掩码,地址租用期(IP地址有效时间量)。
    • DHCP请求
      请求主机拿到DHCP服务器提供报文后,使用新的事物id,使用源IP(0.0.0.0)目的IP为选择的DHCP服务器地址,发送报文,注意这次不是使用广播,回显数据。
    • DHCP ACK
      DHCP服务器确认并广播ACK。
      客户收到ACK以后就可以在指定的时间内使用该IP。(地址的使用时间可以在不改变IP的情况下更新)

    网络地址转换

    每个IP联网设备都要一个IP地址,如果一个办公室网络如果被ISP分配了一段IP地址,随着该办公室的发展对IP地址需求增加,ISP就要重新分配一段IP地址给该办公室使用。家庭的路由器网络就是一个典型例子。
    家庭中的每台设备都被NAT路由器分配一个ip,该ip由NAT路由器自主分配,该ip也仅在家庭网络内有效,所有设备共用同一个IP。
    NAT路由器会从ISP拿到一个IP,然后NAT路由器上会运行DHCP服务器,为家庭内的联网设备提供ip,并且该NAT路由器会维护一张NAT转换表,表中记录LAN端ip以及端口号
    以及WAN端的IP(即该NAT路由器被ISP分配的ip)以及端口号。当外界的请求返回时,NAT路由器会查询NAT转换表根据WAN短的端口号确定LAN端的ip以及端口号,并进行分发。
    NAT工作流程就是,将内网往外界发送的的源IP地址换为自己的IP,以及更改后的端口号,等会请求回来后,将目的端口号跟IP改为本来的ip跟端口号再分发到子网特定主机。

  • 相关阅读:
    java 在线网络考试系统源码 springboot mybaits vue.js 前后分离跨域
    springboot 整合flowable 项目源码 mybiats vue.js 前后分离 跨域
    flowable Springboot vue.js 前后分离 跨域 有代码生成器 工作流
    Flowable 工作流 Springboot vue.js 前后分离 跨域 有代码生成器
    java 企业 网站源码 后台 springmvc SSM 前台 静态化 代码生成器
    java 进销存 商户管理 系统 管理 库存管理 销售报表springmvc SSM项目
    基于FPGA的电子计算器设计(中)
    基于FPGA的电子计算器设计(上)
    FPGA零基础学习:SPI 协议驱动设计
    Signal tap 逻辑分析仪使用教程
  • 原文地址:https://www.cnblogs.com/FCY-LearningNotes/p/14008765.html
Copyright © 2011-2022 走看看