网络协议之IP

首先我们肯定知道:

在windows下我们通过ipconfig命令可以获知IP信息;

在linux系统下我们通过ifconfig/ipp addr命令来或者IP信息,这两个命令的而不同主要是因为linux系统自带的两个不同的工具导致的;

ip是一个网卡在网络通讯世界的通讯地址,相当于我们现实中的门牌号。

网络协议之IP

32位的ip地址主要分为以上5类。

A/B/C类被划分为两部分:一部分是网络号,另一部分是主机号。

那么每类ip的最大主机数呢,如下图所示

网络协议之IP

 C类下的主机数只有254,对于一个家庭来说绰绰有余,但是对于一个小型企业的话,这样的ip都有可能不够用。

 A类的主机数又有点多,有些浪费。

于是有了一种折中的方式来进行重新划分ip范围——无类型域间选路(CIDR)

将32位的ip一分为二,前者是网络号,后者是主机号。例如:10.10.10.254/24,前24位位网络号,后8位位主机号。

伴随着CIDR的是,一个是广播地址:10.10.10.255。如果该地址发送一个包,那么在网络10.10.10下的所有的主机都可以收到该消息。另一个是子网掩码:255.255.255.0。广播地址与子网掩码地址取余后的ip:10.10.10.0则是网络号

还有一种比较特殊的划分例如:10.10.10.254/21

ip地址:     00001010   00001010    00001  010   11111110

子网掩码:111111111   111111111    11111    000     00000000========255.255.248.0

所以第一个ip地址为:00001010   00001010   <00001><000>   00000001  ======10.10.8.1

广播地址:00001010   00001010   00001 111 11111111=========10.10.15.255

网络号: 00001010  00001010   00001  000 00000000===========10.10.8.0

上面只是讲了ip地址这一信息,

 

我们还发现网卡后面有scope:

如果是global,则说明这张网卡是对外开放的,各路的包都可以接受;

如果是host,则这张网卡仅仅支持在本地进行通信。

 

ip信息的上一行为MAC地址:一个网卡的物理地址,16进制表示,6个byte。MAC地址全局唯一,不会有两个网卡,有着同样的MAC。我们之所以还要有IP信息,是因为MAC地址的定位范围比较窄局限在一个子网里,即同一个网络号码段的网络里,不像IP一样,具有远程访问功能。一旦跨越子网,这个时候就需要IP来访问了。

MAC设计的唯一性是为了放置网卡在同一网络里面发生冲突。

 

网络设备的标识状态:net_device flag

网络的开关就是通过这个值来控制的。

UP:启动;BROADCAST:这个网卡有广播功能,可以发送广播包;MUTILCAST:可以发送多播包;

LOWER_UP:网线是插着的;

 

MTU 1500:最大传输单元MTU为1500,以太网的默认值。是二层的概念。MAC头+正文信息(IP头、TCP、HTTP)不允许超过1500个字节。否则需要进行分片传输。

 

qdisc:排队规则。

如果是pfifo的话,不对数据包进行任何处理,先进先出。

如果是pfifo_fase的话,则有3个波段,优先级band0>band1>band2。网络包的优先级信息是通过IP层的信息获知的。

 

以上是ifconfig命令的大部分信息