本期武汉海翎光电的小编和大家聊聊 计算机是如何通信的?IP地址和MAC地址是什么?Dhcp和arp又是什么?在我们的家庭网络中,有许多的网络设备,比如我们可以有两台计算机A和B, 一台手机一台电视机,他们都连接到了路由器上,并且路由器都过运营商线路,接入了因特网。
在这个网络模型中,有许多的应用场景。比如计算机A和计算机B之间可以互相发送文件、手机可以通过APP控制电视、电视机访问计算机A上共享的影片、计算机和手机访问互联网上的网站。在家中通过VPN连接到公司内网进行工作等等。以上几种工作场景都脱离不了一件事,就是通过网络进行通信。
听到IP地址这个概念,想必大家都不会陌生。如果我们想要和对方进行通信,通常我们需要知道对方的IP地址。但是在网络通信中,还有一个非常重要的地址MAC地址,它在网络中提到了至关重要的作用。到底IP地址和MAC地址是多少?他们又是如何起作用的?请随武汉海翎光电的小编一起耐心地看完本期的内容,你一定会有所收获。
在现实生活中,我们如果要给对方写信,除了信件内容以外,还需要填写信封地址。信封有两个重要信息。一个是收件地址,一个是收件人。收件地址表示这封信要寄到哪里?收件人表示信要寄给谁?同样的道理,在网络世界中,我们要发信息给别人,也需要知道收件地址、收件人。他们就是MAC地址和IP地址。MAC地址就是收件地址,IP地址就是收件人。
映射到上面的例子,比如说海翎光电的小编我,我是一个可以活动的人,我可以住在自己家,也可以住在公司,也可以住在父母家。如果你要给我写信,首先要知道我现在住在哪里?在网络中也是这样的,如果把网络比喻为我们生活的城市,那网卡就是城市中的建筑,MAC地址就是这些物理建筑的地址。而IP地址就是这些建筑中的人。
与写信不同,在计算机网络中发送信息,我们只需要填写内容和对方的IP地址,操作系统会根据目标IP自动查询arp表获取对方的MAC地址补齐这封信,从网卡发出。
虽然计算机,手机,电视机他们是不同类型的电子产品,但是他们的通讯,都是由内部的网卡设备所进行的。所以我们统一用网卡来表示设备。每张网卡在出厂时都写入一个地址,就是MAC地址。这个地址是由6个字节构成的。其中前3个数表示的是网络硬件厂商编号,由(IEEE)国际性电子技术与电子工程师协会分配。后3个字节代表的是该制造厂商所制造的网卡的序列号。所以MAC地址是全球唯一的地址。虽然可以通过一些其他手段修改MAC地址,但不在我们的讨论范围。
我们上面说了,MAC地址表示了网卡在网络中的确定位置,那这个位置是如何表示与确定的呢?比如我们的计算机A,通过网线接入到了交换机的端口1,那这个端口1就是网络中的具体位置,就像我们的门牌号一样。交换机就知道了某个MAC地址在端口1上,从而就把MAC地址与端口进行了绑定。
我们的网卡接入网络中,如果要通信需要给他配置另一个地址,就是IP地址。IP地址有两种,IPV4地址和IPV6地址。比如我们常用的192.168.1.N,这就是IPV4地址。由4位0-255的数字,用小数点间隔构成。目前IPV4的技术可以使用的IP地址最多有42亿,看上去像是很难用尽,但由于早期编码和分配上的问题,很多区域的编码实际上被空出或不能使用。随着互联网的快速成长,IPV4的42亿个地址最终于2011年2月3日用尽。相应的科研组织已经研究出128位的IPV6其IP地址的数量最高可达3.4*10-38个,届时每个人家中的每个网络设备,甚至地球上的每一粒沙子都可以拥有自己的IP地址。
现在我们知道了,网卡上需要配置好IP地址才可以工作。这时候又有朋友要问了,我的电脑接上网线或者手机连上路由器之后,没有让我配置IP地址也可以正常使用啊?这是因为由称之为dhcp的协议自动帮我们配置了。当电脑插上网线或者手机连入到WIFI操作系统,网络协议栈会自动向外发送一包DHCP请求,请求为其分配IP地址。路由器获取到DHCP请求后,会为其分配一个IP地址,并通过DHCP回复报文发送回去。操作系统收到了DHCP回包后,将其分配的IP地址配置到网卡上。注意在一个局域网中IP地址也是唯一的,路由器不会分配重复的IP地址给不同的设备。
当然你也可以手动把DHCP关掉,这样你需要手动来配置网卡IP地址,但是你要保证你配置的IP地址不能与此网络中的其他地址重复,这样网卡就配置好了IP地址。
我们上面提到,MAC地址是由操作系统来补齐的,那操作系统是如何知道对方的MAC地址的?实际上这一步是用arp协议来完成的。当计算机A想向计算机B发送消息时,操作系统并不会立即发出,他会先发送一包arp广播报文出去,问一下192.168.1.10的 MAC地址是多少,此时,网络中的所有设备都收到了这一包请求报文。除了192.168.1.0以外的设备都会丢弃这包请求报文,只有192.168.1.10会回复自己的MAC地址是多少,计算机A收到了回复,知道了计算机B的MAC地址,他首先会把计算机B的MAC地址缓存起来,以便下次使用。然后把这封信补全从网卡发送出去,交换机根据数据包中的目标的MAC地址找到了计算机B所在的端口,从此端口发送出去,数据就被B收到了。