【网络篇】第二篇——IP协议与MAC地址详解(二)

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: 【网络篇】第二篇——IP协议与MAC地址详解

NAT(网络地址转换)


IPv4协议中, IP地址数量不充足的问题;

NAT技术当前解决IP地址不够用的主要手段, 是路由器的一个重要功能;

NAT能够将私有IP对外通信时转为全局IP. 也就是就是一种将私有IP和全局IP相互转化的技术方法:

很多学校, 家庭, 公司内部采用每个终端设置私有IP, 而在路由器或必要的服务器上设置全局IP;

全局IP要求唯一, 但是私有IP不需要; 在不同的局域网中出现相同的私有IP是完全不影响的;

image.png

  • 一个路由器可以配置两个IP地址, 一个是WAN口IP, 一个是LAN口IP(子网IP).
  • 路由器LAN口连接的主机, 都从属于当前这个路由器的子网中.
  • 不同的路由器, 子网IP其实都是一样的(通常都是192.168.1.1). 子网内的主机IP地址不能重复. 但是子网之间的IP地址就可以重复了.
  • 每一个家用路由器, 其实又作为运营商路由器的子网中的一个节点. 这样的运营商路由器可能会有很多级, 最外层的运营商路由器, WAN口IP就是一个公网IP了.
  • 子网内的主机需要和外网进行通信时, 路由器将IP首部中的IP地址进行替换(替换成WAN口IP), 这样逐级替换, 最终数据包中的IP地址成为一个公网IP. 这种技术称为NAT(Network Address Translation,网络地址转换).

两个主机如何跨网络通信呢?

image.png

电脑产生http报文,向下交给传输层TCP协议。TCP封装时,源端口在49152~65535间随机选择一个,如60128,目的端口为80。

image.png

TCP封装后,交给网络层IP协议,IP封装源地址为内网电脑的私网地址192.168.1.10,目的地址为公网服务器的地址98.76.54.32,协议号为6。

image.png

链路层的封装和前面文章所述一样,这里我们省略。这个报文发到NAT设备后,NAT设备将源地址修改为12.34.56.78,做好记录“内网地址192.168.1.10映射到外网地址12.34.56.78”,然后将报文发到公网。

image.png

公网根据报文中的目的地址98.76.54.32,将报文准确送达服务器。

服务器返回的信息,数据是这样封装的:

image.png

源和目的端口号、IP地址互换位置,公网会根据目的地址12.34.56.78,把报文送达NAT设备。NAT根据记录“内网地址192.168.1.10映射到外网地址12.34.56.78”,把目的地址12.34.56.78换回192.168.1.10,然后根据内网地址192.168.1.10把报文送达电脑。


但这样的转换方式并不妥当,因为一个内网地址需要对应转换为一个外网地址,内网电脑数量多就会消耗大量外网地址,并没有起到节省地址的作用。


因此,我们所使用的NAT,叫做NAPT(Network Address Port Translation,网络地址端口转换)

NAPT


NAT只转换IP封装中的IP地址,而NAPT则把传输层的端口号和IP地址一起转换,可以实现一个公网地址的复用

假设内网有两台电脑,地址分别为192.168.1.10和192.168.1.20,NAT设备地址和服务器地址和上例相同。假设两台电脑同时访问外网服务器,电脑A发出的报文封装是:

image.png

电脑B发出的报文封装是:

image.png

两个数据报文到达NAT设备后,NAT设备做个记录:

image.png

然后,NAT把电脑A的报文修改为:

image.png

而电脑B的报文也被NAT修改为:

image.png

可以看到,NAT把两台内网电脑发出去的报文转换后,仅传输层的源端口号不同,IP的封装完全相同。这样一来,就可以实现同一个公网地址被不同内网电脑重复使用,只需通过端口号区别开就可以。外网返回的数据报文回到NAT设备后,NAT根据之前记录的信息再转换回内网地址和内网端口号,即可把报文送达不同的内网电脑。

MAC地址


MAC地址(Media Access Control Address),直译为媒体访问控制地址,也称为局域网地址(LAN Address),以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网上设备位置的地址。在OSI模型中,第三层网络层负责IP地址,第二层数据链接层则负责MAC地址。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。

  • MAC地址用来识别数据链路层中相连的节点;
  • 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19);
  • 在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).

理解源MAC地址和目的MAC地址


大部分数据的传输都是跨局域网的,数据在传输过程中会经过若干个路由器,最终才能到达对端主机。

源MAC地址和目的MAC地址是包含在链路层的报头当中的,而MAC地址实际只在当前局域网内有效,因此当数据跨网络到达另一个局域网时,其源MAC地址和目的MAC地址就需要发生变化,因此当数据达到路由器时,路由器会将该数据当中链路层的报头去掉,然后再重新封装一个报头,此时该数据的源MAC地址和目的MAC地址就发生了变化。

对比理解MAC地址和IP地址


  • IP地址描述的是路途总体的 起点 和 终点;
  • MAC地址描述的是路途上的每一个区间的起点和终点;

举例说明:唐僧西天取经:

别人会问唐僧从哪来,要到哪里去。唐僧都会回答道,贫僧是从东土大唐而来,要到西方拜佛求经。

这里的东土大唐就是:源IP
西方雷音寺就是:目的IP

有人问:和尚,你上一站从哪里来,下一站要到哪里去。唐僧回答:贫僧上一站从火焰山来,下一站要到女儿国去。

火焰山和女儿国就是:MAC地址,MAC地址,在途中,是一直改变的。

只有一个MAC地址,可以传输数据嘛?


是可以的。

但是要有前提:他们同处于一个局域网内。

像是在网吧打魔兽争霸,只要在一个局域网内,就不需要连接网络(指因特网),就可以打游戏。

为什么有了MAC地址还要有IP地址?


  • 只拥有MAC地址的话,只有在同一网络区域内,才能进行数据传输,不能跨网络区域。
  • 如果想跨网络区域进行数据传递,最现实的方法就是借助ISP提供的网络区域
  • ISP能提供全球互联的网络——因特网,借助因特网可以传输数据给连接因特网上的机器。
  • 有一个村落(局域网),它很封闭,与世隔绝,如同陶渊明讲的世外桃源。但是他的建筑非常美丽,几乎都是四合院,好几户人家居住在一个四合院里。(同一IP地址接入多个设备,每个设备都有一个MAC地址。)


人们总是相互串门,并借此交换物品(数据)。可是一天,伟大的天朝官员(ISP)发现了这里,看到这里的人居然还过着物物交换的生活,于是他决定为生活在这里的人修建公路(接入互联网),让其能够与外界的人能相互交流。


这里的人对外面的世界非常好奇,有一天,村庄的一个女人发现有镖局可以代购物品(数据),她看到琳琅满目的物品图片,她觉得她的生活仿佛打开了新的大门。于是她如有天助般完成了第一单,但是她不知道要填姓名和手机号(无MAC地址)。


几天过去,包裹(数据)到站点了,快递小哥一看,WTF,这是谁的,为什么只有收货地址(IP地址),没有个人信息(MAC地址),信息是不是出错了?他抱着试一试的心理,到了败家,emmm,那个女人所在的四合院(IP地址)。他拼命的敲门,有人给快递小哥开门。快递小哥兴奋地问他:“这是你买的东西吗?”,开门的人摇摇头。于是快递小哥见到一个人问一次是不是其的包裹,可是每个人都摇头。


快递小哥等的不耐烦了,正准备回头,那个买东西的女人出现了,询问快递小哥是不是东西到了。快递小哥郑重其事地对她说:“下次一定要写好你的个人信息(MAC地址),不然你只写一个地址(IP地址),我哪知道是谁的 ”。那个败家,emmm,那个女人就说知道了,下次肯定写上。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
基于阿里云,构建一个企业web应用上云经典架构,让IT从业者体验企业级架构的实战训练。
相关文章
|
5天前
|
运维 网络协议 网络安全
2023网络建设与运维正式赛卷-IP地址分配-上
该集团进行数字化转型,构建了包括总公司两个数据中心、异地灾备数据中心的“两地三中心”架构,使用OSPF、RIP、ISIS、BGP路由协议互联。核心交换机SW1、SW2、SW3及分公司的AC1配置了多个VLAN和Loopback接口,以IPv4和IPv6双栈进行地址规划。SW1和SW2的VLAN1024配置了VRF Finance,用于财务应用。所有设备均需配置以确保网络稳定、安全和可扩展,并通过客户端测试验证应用访问。
2023网络建设与运维正式赛卷-IP地址分配-上
|
11天前
|
机器学习/深度学习 网络协议 网络性能优化
[计算机网络]深度学习传输层TCP协议
[计算机网络]深度学习传输层TCP协议
24 1
|
15天前
|
监控 网络协议 安全
Verilog代码在上网行为管理软件中的网络设备控制与协议分析
**Verilog摘要:** Verilog是硬件描述语言,用于数字电路设计和网络设备控制。它在上网行为管理软件中用于控制路由器、交换机等,例如通过简单模块控制端口状态。此外,Verilog还支持协议分析,如解析以太网帧提取MAC地址。监控数据可结合Verilog实现自动化提交,例如通过HTTP发送请求到服务器,实现实时监控和响应。这些示例展示了Verilog在网络安全和性能优化中的应用潜力。
67 1
|
25天前
|
网络协议 C语言 网络架构
计算机网络——数据链路层-点对点协议(组成部分、PPP帧格式、透明传输、差错检测、工作状态)
计算机网络——数据链路层-点对点协议(组成部分、PPP帧格式、透明传输、差错检测、工作状态)
64 7
|
23天前
|
网络协议 算法 数据中心
IP:网络上的击鼓传花
首先你要打电话找一家电信运营商(接入 ISP,比如中国移动),他们会就近网点派人上门给你拉光纤,装个一体化路由器(光猫和路由器一体化设备),设置或者不设置一个 IP(一般是通过 ISP 的 DHCP 服务器自动获取),然后你交了钱,就能上网了。
22 2
|
4天前
|
安全 网络安全
IPXProxy代理提升网络安全:私人住宅IP的高匿名性
​在现代数字环境中,保护在线隐私和安全已成为关键问题。每次我们在网上浏览时,都会留下数据痕迹,这些痕迹可能被用来跟踪我们的活动,甚至有些网站会禁止访问我们的IP地址。为了保护上网安全并确保网络活动顺利进行,许多个人和企业转向使用私人住宅IP。那么,什么是私人住宅IP,它的高匿名性体现在哪些方面?
|
25天前
|
缓存
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
17 0
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
|
10天前
用UDP协议实现发送接收的网络聊天室
用UDP协议实现发送接收的网络聊天室
10 0
|
11天前
|
机器学习/深度学习 安全 数据安全/隐私保护
【计算机网络】深度学习HTTPS协议
【计算机网络】深度学习HTTPS协议
21 0
|
11天前
|
机器学习/深度学习 前端开发 JavaScript
【计算机网络】深度学习使用应用层的HTTP协议
【计算机网络】深度学习使用应用层的HTTP协议
32 0

热门文章

最新文章