4位版本
描述IP协议的版本IP协议分为两个版本,一个版本是IPv4版本,一个是IPv6版本,并且IPv6版本并不相兼容IPv4版本
4位首部长度:
表示IP协议头部长度4个比特位算出来的数值还需要乘以4,才是IP协议头部的长度。最大的IP协议头部长度为0XF乘以4等于60字节(固定的20字节,加上40字节的选项)
8位服务类型
a.前三个比特位表示优先权,但是已经弃用了
b.后面四个比特位,分别表示最小延迟SSH+最大吞吐量FTP+最高可用性+最小费用,这4个比特位是一个互斥的关系,一般情况下,如果都是0则表示默认属性
c.最后一个比特位保留位必须置为零。
16位总长度
表示IP数据报整体的长度,单位为字节,IP头部+有效载荷。
a.由于网络电气特性的影响,在数据链路层对数据帧做出了限制,MTU最大传输单元可以使用ifconfig来进行查看,单位是字节。
b.如果网络层提交给数据链路层的数据大小大于MTU,需要分片传输。
c.本身网络层IP协议最大的数据报长度为2^16 65536字节。
数据封装的时候,网络层的数据来源于传输层,而传输层的协议有两个协议,TCP\UDP。
TCP协议:
TCP由于按照MSS给网络层提交数据,所以在网络层上面,加上面上加IP头部之后也是小于等于MTU的,所以不需要分片传输。
TCP的三次握手的时候,已经协商了MSS(TCP独有的东西)。
TCP协议在传输的时候,就是按照MSS进行传输的。
UDP协议:
UDP是整条数据交付的,就有可能提交给网络层的数据,超过了MTU的大小
所以在网络层就需要对udp数据进行分片传输
Udp协议是不可靠的,网络层的IP协议也是不可靠的
如果在分片传输的时候,网络层丢失了一个分篇,则需要整条udp数据全部丢掉
16位标识:标识当前udp数据包分片数据哪一个完整的udp报文的,同一个udp数据包当中所有的分片具有相同的标识值
3位标志:位1:保留
位2:禁止分片
位3:标识更多分片
当标识自己不是最后一个分片的时候,该位置为1
当标识自己最是最后一个分片的时候,该位置为0
8位生存时间:数据在传输到达目的地之前允许经过的路由器的个数,TTL:跳数,描述该数据包最大可以经历的多少路由设备转发,每一个路由设备转发了之后,TTL就进行-1操作。
1.直到减为零,则转发设备就丢弃
2.该报文在TTL内到达了对端主机
一般TTL = 64,防止了路由死循环
8位协议:标识传输层使用了什么协议,意味着对端再进行分用的时候,对端的网络层通过该标识标志为知道将该数据提交给传输层的哪一个协议。
16位首部检验和:判断IP头部在传输过程中当中是否有损坏
IP地址管理
1.IPV4版本,本质uint32_t
2.ip地址=网络号+主机号
网络号:标识一个子网的
主机号:在子网当中标识一台主机的
3.早期ip地址划分的方式
A类:高1位固定为0,后面7位表示网络号, 24位表示主机号
网络号的范围: 0 ~ 127主机号的范围: 0 ~ 2^24次方ip地址的范围: 0.0.0.0 ~ 127.255.255.255
B类:高两位固定为10,后面14位表示网络号,16位表示主机号
网络号的范围128.0 ~ 191.255主机号范围0 ~ 2^16次方ip地址范围: 128.0.0.0 ~ 192.255.255.255
C类:高三位固定为110,后面21位表示网络号, 8位表示主机号
网络号的范围: 192.0.0 ~ 223.255.255主机号的范围 0 ~ 2^8ip地址的范围: 192.0.0.0 ~ 223.255.255.255
D类:高4位固定为1110,后边28位为多播组号
E类:高5位固定,27位留用
CIDR方式:
1.引入了子网掩码,就是为了更急精确化的划分子网,更加精确化的分配IP地址,避免IP地址浪费的问题;
2.子网掩码uint32_ .t 整数,由一段连续的二进制1构成的
netmask : 255.255.255.0 1111111 11111111 111111111 00000000
3.两种关系
最大的主机号=子网掩码取反
网络号=子网掩码& IP地址
4.主机号全为0的IP地址,表示网络号
主机号全为1的IP地址,表示广播号
私网网段的划分:
1.10.*.*.* 10.0.0.0 ~ 10.255.255.255
2.172.16.* .* ~ 172 .31.*.* 172.16.0.0 ~ 172.31 255.255
3.192.168.*.* 192.168.0.0 ~ 192.168.255.255
特殊的IP地址:
127.0.0.1 : 本地回环地址
0.0.0.0用于在服务器程序中,表示服务器机器上所有网卡的ip地址
255.255.255.255 : UDP的广 播地址,
DHCP协议:动态主机分配协议:谁上网给谁分配IP
主机号全为0,表示网络号
主机号全为1,表示广播号
路由选择:
目的ip地址:
1.用目的ip地址,和路由表当中的每一个条目 中的子网掩码进行按位与操作;
如果得到结果不是该子网的网络号( destination), 表示这个数据不是给这个子网当中的某一个机器的;如果得到的结果是该子网的网路号,则直接转发给子网当中的机器;
2.如果除了默认网关之外的其他路由条目都没有匹配.上,则这条数据就需要走默认网关,直接传递给上级路由器
3.如此往复,在每一个路由设备上进行比对,之后进行传输,直到TTL耗尽被丢弃,或者递达到目标主机;