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跟端口号再分发到子网特定主机。

  • 相关阅读:
    自定义view的一些问题
    爬取基金持有股票并存进数据库
    python读取配置文件
    Linux防火墙
    解决vue微信浏览器H5页面ajax请求后无法播放问题
    解决微信浏览器页面超出一块儿问题
    iOS Safari浏览器上iframe overflow: scroll元素无法滑动bug解决方法整理
    vue html2canvas 实现截图功能
    解决html2canvas截图生成的图片偏移不完整
    使用Hilo做H5接金币接红包小游戏
  • 原文地址:https://www.cnblogs.com/FCY-LearningNotes/p/14008765.html
Copyright © 2011-2022 走看看