目录
一、IP协议
IPV4长度的32位,分成4个8位,常点分10进制来表示。
IP协议的主要作用:
- 使得复杂的网络,变成虚拟互联的网络了;
- 使得网络层可以屏蔽底层的细节,而专注于网络层的数据转发;
- 解决了虚拟网络中,数据报传输路径的问题。
1、 IP数据报
对于数据链路层,IP数据报是组成帧的数据部分。而IP数据报,又是由IP首部和IP数据报的数据两部分组成。
1.1 IP首部
每一行都是32个比特,前5行是必须存在的;第六行选项非必须。也就是说,IP首部至少有20个字节长度。
第一层的32个比特的信息:
- 版本:IP协议的版本,主要是IPV4,也有IPV6;
- 首部长度:指的是IP首部的总长度,占4个比特,即最大为15,单位是“32比特”,或者说“4个字节”。所以,头部最大长度是60个字节,也就是说选项最长可以是60-20=40个字节;
- 总长度:整个IP数据的总长度(IP首部+IP数据),16位,单位是字节,即IP数据最长为65535字节。
第二层的32个比特的信息:
- 3位标志:目前只使用了前两位,用于标识IP数据报文是否可以分片;
- 13位片偏移:如果IP报文被分片了,则使用13位片偏移来记录当前的数据帧,是分片后的第几片;
第三层的32个比特的信息:
- 生存时间TTL:8位,IP报文在网络中的寿命,只要报文通过一台设备(路由器或者计算机),则TTL减一,当TTL为0时,网络会丢弃这个IP报文。用于避免IP报文在找不到终点的时候,无限的在网络中传输,消耗带宽;
- 协议:8位,指的是IP报文携带的数据,是什么协议的数据,例如TCP、UDP等。协议内容参考下面的图片;
- 首部校验和:校验IP的首部是否出错,如果出错就丢弃掉。
可以看到,IP数据中是可以继续封装IP数据的。
2、IP协议的转发
IP协议转发的大致流程:
抽象的来看,是通过逐跳(hop-by-hop)来实现的在不同网络中的传输:
2.1 路由表
路由表中,每一条路由存储的是两个信息:(目的网络地址,下一跳的地址)。目的网络地址指的是最终要到达的IP地址,下一跳地址,指的是要去目的网络地址,下一跳应该先去那个IP地址。
2.2 IP协议转发流程
IP协议转发的一个完整流程:
再加上数据链路层,传输过程如下:
1)A ----> E:
2)E ----> F:
3)F ----> C:
其中,在每一条中:
- 数据帧:每一跳的源MAC地址和目的MAC地址都在变化;
- IP数据报:每一跳的源IP地址和目的IP地址都不变。
3、子网划分
3.1 分类的IP地址
IPV4地址由网络号和主机号组成,总共32位。根据网络号和主机号长度的不同,IP地址分为如下几类:
- A类地址:网络号8位,主机号24位,并且首位是0;
- B类地址:网络号16位,主机号16位,并且首位是10;
- C类地址:网络号24位,主机号8位,并且首位是110。
三类地址的特点:
特殊主机号:
- 主机号全是0:表示当前网络段,不能分配给特定主机;
- 主机号全是1:表示当前网络段的广播地址,即向主机号全1的地址发送广播,用来通知当前网络段的全部主机,不能分配给特定主机。
特殊的网络号:
- 对于A类地址,网络段全0,表示特殊网络,不允许使用;
- 对于A类地址,网络段后7位地址全为1(即127),表示回环地址,不允许使用;
- 对于B类地址,网络段全0(即128.0),不可使用;
- 对于C类地址,网络段全0(即192.0.0),不可使用。
本地回环地址:127.0.0.1被称为本地回环地址,不属于任何一个有类别地址类。它代表设备的本地虚拟接