网卡,见怪不怪,大家肯定都听说过,它是通往外面世界的桥梁,最近在研究一些网络协议的知识,大学时没好好看的《网络原理》真是给自己挖了一个大大的坑,看到MAC地址,DHCP协议,IP设置,网关设置这些都干了啥,想要深入了解就绕不开网卡,下面好好了解一下网卡。
MAC地址
MAC地址也叫硬件地址,长度是48比特(6字节),由一组12位的16进制的数字组成,前6位是生产厂商,后6位是设备号,如:11:27:F5:8B:67:52。MAC地址是在网卡生产时直接写入到硬件里面的,这个地址是由全球唯一的一个固定组织来分配的,未经认证和授权的厂家无权生产网卡,所以这个MAC地址是全球的网卡id。
DHCP
动态主机配置协议(Dynamic Host Configuration Protocol),如果刚买来一台电脑想要上网需要自己配置ip?一般不用,我们发现网络连接设置里面ip都设置的自动获取,而这个工作就是交给DHCP来完成的,每次开机打开电脑都会发送一个请求,去DHCP服务器请求一个ip,所以每次的主机ip会不同。
计算机开机后通过DHCP会从应用层开始向下层层封装封生成如下数据:
之后将这些数据通过网线发送给交换机,交换机一看目的地是FF:FF:FF:FF,看到该地址交换机会立刻转发给所有连接到交换机的设备,找到DHCP服务器后会返回其一个空闲的ip地址,如:192.168.1.10,计算机系统收到后会再向DHCP服务器发一条确认该ip信息。DHCP服务器收到确认信息后将网关路由器地址(192.168.1.1),DNS地址(202.102.224.68)再发回来。
DNS和ARP
当我们访问网站地址时,一般只知道网站的域名,并不知道网站的ip,这个时候就需要DNS服务器将域名转换成ip发给我们,浏览器会对其ip进行缓存方便之后访问。
那么问题来了,一般的DNS服务器不再局域网内,要想访问就必须发请求到网关路由器,交由它处理,而发给网关路由器就需要其MAC地址,我们只有网关路由器的IP地址,这个时候就需要 ARP(地址解析协议):目的MAC地址设为 FF:FF:FF:FF,这个时候就会向全网广播,ARP看到后就会返回网关路由器的MAC地址。假设网关路由器的MAC地址为:88:25:93:79:E0:C8
下面访问百度网站:
发送数据包,目的端口HTTP请求都是80,原端口由系统随机,请求会经过网关路由器,它一看是对外网ip的访问就会拦截下来,来个偷梁换柱。
这里会发现在链路层将MAC地址的源地址换成网关路由器的MAC地址,源IP换成路由器对外的IP(假如家里连的是联通宽带,其会提供一个对外IP地址,原端口换成网关路由器端口)
以上这个过程称为NAT(网络地址转换),在网关路由器中会保存一张NAT转换表
大家一定看过《雷神》吧,在阿斯加德(雷神老家)有一座彩虹桥,想要去外界就必须通过彩虹桥端的海姆达尔传送室,有没有发现路由器的网关概念和这个非常像,发送和接受都靠它,而且有一张登记表,是谁发出的请求,收到的响应该分配给谁,好好想想,一定会收获颇丰。