IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异
子网掩码
子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分
子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上
同一网段
同一网段指的是IP地址和子网掩码相与得到相同的网络地址。想在同一网段,必须做到网络标识相同。各类IP的网络标识算法都是不一样的,需要根据子网掩码的位数来判断
计算方法
madmanazo@ubuntu:/$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:29:f5:1b:ea
inet addr:192.168.1.115 Bcast:192.168.1.225 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fef5:1bea/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:18780 errors:0 dropped:0 overruns:0 frame:0
TX packets:13274 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1965107 (1.9 MB) TX bytes:7111381 (7.1 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3163 errors:0 dropped:0 overruns:0 frame:0
TX packets:3163 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:276298 (276.2 KB) TX bytes:276298 (276.2 KB)
[root@iTOP-4412]# cat etc/eth0-setting
IP=192.168.1.230
Mask=255.255.255.0
Gateway=192.168.1.1
DNS=192.168.1.1
MAC=08:90:90:90:90:90
板子和服务器系统的IP必须在同一网段内,且单纯的两个IP不能直接拿来确认是否在同一网段,必须与子网掩码结合经过计算才能得出结论
计算方法为两个IP分别和相应的子网掩码做与运算,得出的结果相等则表明在同一网段内,举例如下:
Ubuntu系统的IP和子网掩码分别是:192.168.1.115 和255.255.255.0
开发板的IP地址和子网掩码分别是:192.168.1.230 和255.255.255.0
进行与运算首先要转换为二进制:
Ubuntu系统:
IP:11000000 10101000 00000001 01110011
MASK:11111111 11111111 11111111 00000000
Result二进制:11000000 10101000 00000001 00000000
Result十六进制:192.168.1.0
板子:
IP:11000000 10101000 00000001 11100110
MASK:11111111 11111111 11111111 00000000
Result二进制:11000000 10101000 00000001 00000000
Result十六进制:192.168.1.0
对比上面两个十六进制结果,可以发现这两个例子中的IP地址并在同一个网段,但是还需要注意路由器所允许的IP区间,故需要根据路由器修改IP地址
IP修改
登录自己的路由器管理界面,进入到DHCP服务器下面,如下图所示,选择DHCP服务器,这里会有一个分配局域网中的IP区间。也就是说IP可以设置为192.168.1.100 到192.168.1.199 这个区间:
重新计算配置IP地址如下
Ubuntu系统的IP和子网掩码分别是:192.168.1.115 和255.255.255.0
开发板的IP地址和子网掩码分别是:192.168.1.120 和255.255.255.0
Ubuntu系统:
IP:11000000 10101000 00000001 01110011
MASK:11111111 11111111 11111111 00000000
Result二进制:11000000 10101000 00000001 00000000
Result十六进制:192.168.106.0
板子:
IP:11000000 10101000 00000001 01111000
MASK:11111111 11111111 11111111 00000000
Result二进制:11000000 10101000 00000001 00000000
Result十六进制:192.168.106.0
修改板子的网络配置文件eth0-setting的IP地址为192.168.1.120即可
测试
连接板子的网口到路由器上,然后输入ping命令确认板子和TFTP服务器是连通的,通过下面的信息可以确认板子和TFTP服务器是连通的:
[root@iTOP-4412]# ping 192.168.1.115
PING 192.168.1.115 (192.168.1.115): 56 data bytes
64 bytes from 192.168.1.115: seq=0 ttl=64 time=56.244 ms
64 bytes from 192.168.1.115: seq=1 ttl=64 time=2.210 ms
64 bytes from 192.168.1.115: seq=2 ttl=64 time=2.553 ms
64 bytes from 192.168.1.115: seq=3 ttl=64 time=5.651 ms
现在便可以获取TFTP上的文件了:
[root@iTOP-4412]# tftp -g -l test -r test 192.168.1.115
[ 958.786917] [dm96-TxRound].0 for LEN_ODD tail_room +1, rslt add 1
[root@iTOP-4412]# ls
bin etc linuxrc proc sys tmp var
dev lib mnt sbin test usr
[root@iTOP-4412]# cat test
hello world
从上面也就意味着以后下载、调试程序可以直接使用TFTP服务器,比之前用U盘方便很多