目录
[一. 基本概念](#一. 基本概念)
[二. 协议头格式](#二. 协议头格式)
[三. IP的相关话题](#三. IP的相关话题)
[1. 网段划分](#1. 网段划分)
[2. 特殊的IP地址](#2. 特殊的IP地址)
[3. IP地址数量不足](#3. IP地址数量不足)
一. 基本概念
主机: 配有IP地址, 也要进⾏路由控制的设备;
路由器: 即配有IP地址, ⼜能进⾏路由控制;
节点: 主机和路由器的统称;
IP=目标网络 +目标主机
路由的本质其实在不同的子网进行信息的传递
二. 协议头格式
第二行的内容以后说和分片和组装有关

4位版本:IPV6 或者IPV4
4位头部⻓度::IP头部的⻓度是多少个32bit, 也就是 length 4 的字节数。4bit表⽰最⼤的数字是15,因此IP头部最⼤⻓度是60字节。和TCP的一样。
16位总⻓度: IP数据报整体占多少个字节。
8位服务类型:3位优先权字段(已经弃⽤), 4位TOS字段, 和1位保留字段(必须置 为0)。4位TOS分别表⽰:最⼩延时,最⼤吞吐量,最⾼可靠性,最⼩成本。因为从源IP到目的IP会有很多条路,有的路延迟比较低,有的路丢包的概率小,选择一条路去传递,这四者相互冲突,只能选择 ⼀个。对于ssh/telnet这样的应⽤程序,最⼩延时⽐较重要;对于ftp这样的程序,最⼤吞吐量⽐较重要。
8位⽣存时间(Time To Live, TTL):全球的网络的线路是很复杂的,报文在网络传输的过程中,会不断的衰减,此时可以用集线器来放大信号,同时也有可能会存在环路问题,导致报文一直在一个环路里面来回的传递,所以有了TTL。TTL:数据报到达⽬的地的最⼤报⽂跳数. ⼀般是64. 每次经过⼀个路由, TTL -= 1, ⼀直减到0还没到达, 那么就丢弃了,这个字段主要是⽤来防⽌出现路由循环。
8位协议:表⽰上层协议的类型,每一个协议都是有编号的。
16位头部校验和:使⽤CRC进⾏校验, 来鉴别头部是否损坏。
32位源地址和32位⽬标地址:表⽰发送端和接收端。
选项字段(不定⻓, 最多40字节): 略
三. IP的相关话题
1. 网段划分

在这个例子当中,这样去找是很高效的,但是这样做的为什么高效,本质就是进行了划分,不同的学院有不同的编号。
由于IP=目标网络 +目标主机,其中⽹络号是保证相互连接的两个⽹段具有不同的标识,主机号是同⼀⽹段内,主机之间具有相同的⽹络号,但是必须有不同的主机号。IP地址是从路由器里面分配的,分配的是内网IP,路由器内部有一个DHCP,能够⾃动的给⼦⽹内新增主机节点分配IP地址, 避免了⼿动管理IP的不便。
网段划分的方式:
刚开始采用如下图的分类方式,分为五类,随着Internet的⻜速发展,这种划分⽅案的局限性很快显现出来,这样的划分粒度太粗了,⼤多数组织都申请B类⽹络地址,导致B类地址很快就分配完了,⽽A类却浪费了⼤量地址。

所以有了新的划分⽅案,称为CIDR:

怎么理解呢,假如我申请了一个A类网络,但是我又没有那么多的主机,所以我设置一个子网掩码,这个子网掩码的前12位1,然后和这个A类网络进行按位与操作,也就是说我把这个A类网络的前12位当成一个网络号,后面的当成主机号,其实就是对A类网络进行又进一步的划分,这样提高了A类网络的利用率。
一个例子:
IP地址为140.252.20.68 最后的网络号为 140.252.20.64 可以分配15台主机,需要注意的是主机号为全0的叫做主机地址,为全1叫广播地址。

2. 特殊的IP地址
将IP地址中的主机地址全部设为0, 就成为了⽹络号, 代表这个局域⽹;
将IP地址中的主机地址全部设为1, 就成为了⼴播地址, ⽤于给同⼀个链路中相互连接的所有主机发 送数据包;
127.*的IP地址⽤于本机环回(loop back)测试,通常是127.0.0.1
3. IP地址数量不足

4. 私有IP地址和公网IP地址

由于IP分为私有IP和公网IP,所以网络宏观划分也分为公网和子网/局域网。怎么理解公网和子网还有公有IP和私有IP呢?
说一个场景在家里面使用Wi-Fi的情况下,我们查我们所用的IP地址的时候通常为私有IP,因为我们的家用路由器组建了一个局域网,当我们链接Wi-Fi的时候为我们分配一个私网IP,此时我们家的这个范围其实就相当于一个子网,但是我们要如何访问这个局域网外部的数据呢,通过路由器,虽然我们的各种设备是链接在这个局域网内部的,但是路由器是链接公网的或者可以说是链接外部的网的(路由器通常有两个IP地址,一个在这个局域网内部的iP地址(子网IP),一个是链接外部的IP地址,通过链接的是运营商的路由器(WAN口IP),我们把请求通过路由器传递出去获取数据。同时运营商的路由器的子网IP可能又是一个子网内部的IP地址,WAN口IP可能又是一个更大的子网内部的IP,以此的类推下去,到最后的一个运营商的WAN口IP链接的是公网IP。
家用路由器的本质其实是运营商路由器搭建子网的其中一个节点。

不同的子网当时可以有相同的IP地址。
我们在一个局域网内部怎么把请求传递到公网,然后数据又是怎么返回回来的呢?细节是什么?