局域网的路由器&网卡

网卡

唯一的标志 MAC地址:14:21:S8:8B:44:89 昵称:TP-Link-4489

如何获取局域网IP?

DHCP(动态主机配置协议)

DHCP 服务器可以动态的分配地址。

1)网卡(TP-Link-4489)向局域网发送一个报文以获取自己在局域网中的IP地址。

网卡工作在数据链路层, 必须得知道对方的MAC地址才能发信,如果不知道就对外广播, 那就是所有局域网内的电脑都会收到。

报文包括:

应用层的DHCP发现报文, 然后被一个UDP的报文封装,然后再被一个IP的数据报封装,然后再被以太网数据链路层的数据报封装。

 

通过网线发给了交换机。  交换机看到FF:FF:FF:FF:FF:FF, 立刻转发给了所有连到交换机的设备。

2)局域网里可能有多台DHCP服务器,每台服务器都会跟进MAC和端口进行回复,里面包含了分配给你的IP地址和DHCP服务器地址。

3)需要网卡(TP-Link-4489)选择一个DHCP服务器地址并进行回复确认分配的IP。

4)DHCP会返回一个确认消息,包括网关路由器的地址 , DNS服务器的地址,当然还有IP地址。

最终,网卡(TP-Link-4489)得到了:自己在局域网中的IP : 192.168.1.2,网关路由器:192.168.1.1,DNS服务器:202.152.219.74

如何访问外网?

最直接获取域名IP地址的方式:

发件人: 192.168.1.2    (网卡(TP-Link-4489))

收件人: 202.152.219.74   (DNS服务器)

内容:  给我www.baidu.com的IP地址 

存在的问题:

  1. 网卡是数据链路层的需要通过mac地址通信
  2. DNS服务器不在我们的局域网内,要把这个发给网关路由器(有一个与ISP网络相连的外网IP地址89.32.288.156),由他转给DNS服务器的。
  3. 网关路由器的MAC地址是什么呢?

ARP(地址解析协议)

通过广播查询一个IP地址对应的MAC地址。

收件人: FF:FF:FF:FF:FF:FF (同一子网内的所有电脑)

发件人: 14:21:S8: 8B:44:89  (网卡(TP-Link-4489))

内容:网关路由器(192.168.1.1), 给我你的MAC地址!

通过返回信息获取网关路由器的mac地址(28:91:S8:3A:44:55)并进行保存。

NAT(网络地址转换)

发给网关路由器查询域名对应的IP:

发件人: 14:21:S8: 8B:44:89  (网卡(TP-Link-4489))

收件人: 28:91:S8:3A:44:55   (网关路由器)

内容: DNS服务器(202.152.219.74)  给我www.baidu.com的IP地址

把数据链路层的封装去掉, 发现IP数据包中的目标地址是 202.152.219.74, 网关就知道这是要向外网发出请求了。
于是把IP数据包中的源地址192.168.1.2 替换成网关的外网地址  89.32.288.156。
创建一个新的端口号1029, 把TCP数据包中的源端口也替换掉, 数据包就变成了这个样子:

把源地址和源端口都替换了, 其实就是让外部的网络认为这是网关路由器发出的, 而局域网内的网卡对外是不可见的。

这就是网络地址转换,网关路由器需要保存一份NAT转换表,譬如LAN端192.168.1.2:1028-->202.152.219.74:1029

当回复到达路由器时去掉数据链路层的封装,发现TCP和IP数据报中包含这样的信息:目的地IP : 202.152.219.74 , 端口 1029 ,根据NAT转换表,把数据报中的IP地址和端口号改了发回给网卡(TP-Link-4489)。

UPnP

网卡主动要求网关路由器建立一个NAT映射 (192.168.1.2 : 4096) <-> (61.52.247.112: 3001)。 

此时此网关的某个端口就是某块网卡专用了,此网卡的此端口就可以成为网卡与外界交流的专线。

 

posted @ 2018-03-12 14:52  wade&luffy  阅读(858)  评论(0编辑  收藏  举报