网络原理(IP篇)

IP

    • IPv4(Internet Protocol)数据报首部格式
      • 版本
      • 首部长度
      • 可变部分
      • 区分服务
      • 总长度
      • 标识、标志、片偏移
      • 生存时间
      • 协议
      • 首部检验和
      • 源IP地址和目的IP地址
    • NAT 机制(**N**etwork **A**ddress **T**ranslator)网络地址转换
        • NAT将数据的转发由**私网**转向**公网**
        • NAT将数据的转发由**公**网转向**私**网
      • CIDR
    • 数据帧格式

IPv4(Internet Protocol)数据报首部格式

网络原理(IP篇)_第1张图片


版本

版本:占4bit,表示IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4


首部长度

与TCP中的首部长度含义相同,表示IP数据报 首部 的长度。该字段的取值同样以 4字节 为单位

  • 最小十进制取值为5(0101),表示IP数据报首部只有20字节的固定部分
  • 最大十进制取值为15(1111),表示IP数据报首部包含20字节的固定部分和最大40字节的可变部分

可变部分

  1. 可选字段

    主要功能用来:支持排错、测量及安全等措施。但这也增加了每一个路由器处理IP数据报的开销,实际上可选字段很少被使用。

  2. 填充
    使得添加功能后的数据报能够被4整除(因为首部长度是以4字节为单位的)


区分服务

区分服务:占8bit,用来获得更好的服务。但实际上一直未被使用过

每一位代表1个服务,分别是:3位优先权字段(已弃用);4位TOS字段;1位保留字段(必须置为0)

4位TOS字段分别为:

  1. 最小延时
    该数据报在传输过程中,会追求延时时间最小的路线。也就是从发送到接收的一个最小时间

  2. 最大吞吐量
    单位时间内,传输的数据(进出),尽可能的多

  3. 最高可靠性
    IP并非像TCP一样提供强可靠性,但内部也有一些机制来减少丢包的概率

  4. 最小成本
    成本:指硬件设备上的开销


总长度

总长度:占16bit,表示IP数据报的总长度(首部+数据载荷)


标识、标志、片偏移

这三个字段共同用于IP数据报分片

数据分片:

每一种数据链路层协议都规定了帧的数据载荷的最大长度(帧的数据载荷部分长度是有上限的),称为最大传输单元 MTU
例如:以太网的数据链路层就规定 MTU = 1500 字节
如果某个IP数据报的总长度超过了 MTU,则无法封装成帧,需要将原IP数据报分片为更小的IP数据报,再将各分片后的IP数据报封装成帧。

分成多个IP数据报,每个IP数据报携带一个TCP数据报的部分数据

标识:占16bit,标识分片数据报是否属于同一个数据报。即:哪几个IP数据报的载荷应该组合在一起。

标志:占3bit,每个bit都有不同的含义:

  1. DF位1 表示该数据报不允许分片0 表示允许分片

  2. MF位1 表示 “后面还有分片”;0 表示“这是最后一个分片

  3. 保留位:必须置0

片偏移:占13bit,指明分片数据报的数据载荷部分偏移了多少。即:描述了分片数据报的先后顺序。片偏移以8个字节为单位

注:上述的 “拆包” 过程都是 系统内核 自动完成的,程序员通过软件无法干预。


生存时间

生存时间(TTL):占8bit,现在以 “跳数” 为单位,每经过一个路由器转发该IP数据报,TTL值就 -1,若 不为0转发;若 为0丢弃该包

这个字段的作用防止因为路由环路,导致该数据报在路由环路中永久兜圈

注:TTL一般设置为 32/64,32其实就够用了


协议

协议:占8bit,指明该IP数据报携带的是何种协议数据

假设协议字段 = 6,说明该IP数据报的数据载荷部分是TCP报文段


首部检验和

首部检验和:占16bit,用于检测IP数据报的首部在传输过程中是否出现差错。比CRC检验码简单,称为 “因特网检验和“。(只校验首部,数据载荷部分并不需要,因为像TCP协议已经自带了校验流程)

注:IP数据报每经过一个路由器,路由器都要重新计算首部检验和


源IP地址和目的IP地址

源IP地址目的IP地址:各占32bit,标明源主机的IP地址和接收端的IP地址


NAT 机制(Network Address Translator)网络地址转换

NAT将网络IP地址分为了两大类:私网IP公网IP

私网IP段有3个:

  1. 10.0.0.0 ~ 10.255.255.255

  2. 172.16.0.0 ~ 172.31.255.255

  3. 192.168.0.0 ~ 192.168.255.255

其余的就都是公网IP了

公网上的设备IP都是唯一的,私网IP只需要保证局域网内部IP不重复即可

所以这就导致:

  1. 不同局域网内的设备,彼此间无法访问(因为IP地址会重复冲突)

  2. 局域网设备访问公网,就需要对局域网设备的 IP 进行地址转换(NAT的核心)

  3. 公网设备无法主动访问局域网设备(同样的还是因为IP会冲突)


NAT将数据的转发由私网转向公网

网络原理(IP篇)_第2张图片

进行如图所示的替换,本质上就是让一个公网IP能够对应多个设备,从而起到节省IP地址的效果。

注:只有网关路由器才会进行替换,普通路由器也可能是局域网的一部分。


NAT将数据的转发由网转向

网关路由器内部会维护一个,在私网主机发送数据包时,这个表就会记录该数据包的各种信息(如替换前的源IP地址、替换后的IP地址、目的IP地址、源端口号、替换后的端口号、目的端口号),当服务器发送数据过来时,网关路由器就会根据这些信息对照,找到对应的主机转发。

路由器会读取IP地址和端口号,所以说路由器工作在网络层传输层的设备

注:如果多台主机访问的服务器是同一个服务器,才会替换端口号


CIDR

127.* ;作为本地环回测试地址

主机号 为 “全 0” 的地址是网络地址(代表整个网络本身,又称为 “网段”)
主机号 为 “全 1” 的地址是广播地址

注:往广播地址上发消息,那么该广播地址对应的局域网中所有的设备都能收到该消息,但所发送的数据必须是UDP的。(本质上是无连接)


数据帧格式

网络原理(IP篇)_第3张图片

  1. 目的地址和源地址:指MAC地址

    IP地址侧重全局的转发(从起点到终点)

    MAC地址侧重局部的转发(相邻的设备)

  2. 类型:表示载荷数据的含义

  3. ARP:ARP协议能够通过 IP地址 获取设备的 MAC地址,在路由器/交换机中构建一个转发表

  4. RARP:通过 MAC地址 获取 IP地址

  5. 帧长度限制:以太网数据载荷长度最小46字节,最大1500字节(最大传输单元称为 “MTU”)

你可能感兴趣的:(网络,计算机网络)