网络层
IP协议
- 规定网络地址的协议叫IP协议,它定义的地址成为IP地址,它规定网络地址由32位2进制表示
例如:
172.16.10.1(10进制)
1010110.00010000.00001010.00000001(二进制)。 - 范围0.0.0.0 ->255.255.255.255 共有2的32次方个4294967296。
IP地址分成两部分
- 网络部分:标示子网
- 主机部分:标示主机
例子:172.16.10.1 与172.16.10.2在同一子网
子网掩码
所谓子网掩码,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。例如:IP地址172.16.10.1,如果网络部分是前24位,主机部分是后8位,那么子网掩码就是11111111.11111111.1111111.00000000,写成ip十进制就是255.255.255.0
知道了子网掩码,我没就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行And运算(两个数都位1,运算结果为1,否则为0),然后比较结果是否相同,吐过是的话,就表示他们在同一个子网中,否值就不是。
例如:172.16.10.1 和172.16.10.2 的子网掩码都是 225.255.255.0,
172.16.10.1 : 10101100.00010000.00001010.00000001
255.255.255.0:11111111.11111111.1111111.00000000
And 运算: 10101100.00010000.00001010.00000000 ->172.16.10.0
172.16.10.2 : 10101100.00010000.00001010.00000010
255.255.255.0:11111111.11111111.1111111.00000000
And 运算: 10101100.00010000.00001010.00000000 ->172.16.10.0
结果都是172.16.10.0 因此他们在同一个子网络
IP协议的作用有连个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网中。
IP数据包
IP数据包分为Head 和data 部分,无需为IP包第一单独的栏位,直接放入一台网包的data 部分
- head:长度20-60字节
- data:最长位65515字节
如果IP包数据超过了1500字节,就要分割成几个包来分开发送了。