【网络篇】第二篇——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从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
1天前
|
域名解析 网络协议 关系型数据库
【网络原理】——带你认识IP~(长文~实在不知道取啥标题了)
IP协议详解,IP协议管理地址(NAT机制),IP地址分类、组成、特殊IP地址,MAC地址,数据帧格式,DNS域名解析系统
|
2天前
|
数据采集 安全 搜索推荐
HTTP代理IP纯净度 提升用户网络体验的核心竞争力
随着互联网发展,使用HTTP动态代理IP的需求日益增加。高纯净度的代理IP在隐私与安全、网络体验和业务运营方面至关重要。它能保护用户信息、提高数据安全性、确保访问速度和连接稳定,并提升业务效率与信誉度。
17 2
|
2月前
|
存储 网络安全 数据安全/隐私保护
|
1月前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
52 4
|
1月前
|
网络协议 定位技术 网络架构
IP 路由:网络世界的导航仪
IP 路由:网络世界的导航仪
41 3
|
1月前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
【10月更文挑战第27天】计算机主机网关的作用类似于小区传达室的李大爷,负责将内部网络的请求转发到外部网络。当小区内的小不点想与外面的小明通话时,必须通过李大爷(网关)进行联系。网关不仅帮助内部设备与外部通信,还负责路由选择,确保数据包高效传输。此外,网关还参与路由表的维护和更新,确保网络路径的准确性。
55 2
|
1月前
|
数据采集 Java API
java怎么设置代理ip:简单步骤,实现高效网络请求
本文介绍了在Java中设置代理IP的方法,包括使用系统属性设置HTTP和HTTPS代理、在URL连接中设置代理、设置身份验证代理,以及使用第三方库如Apache HttpClient进行更复杂的代理配置。这些方法有助于提高网络请求的安全性和灵活性。
|
3月前
|
iOS开发 MacOS Windows
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
|
1月前
|
开发工具 git 开发者
「Mac畅玩鸿蒙与硬件3」鸿蒙开发环境配置篇3 - DevEco Studio插件安装与配置
本篇将专注于如何在 DevEco Studio 中安装和配置必要的插件,以增强开发功能和提升效率。通过正确配置插件,开发流程能够得到简化,开发体验也会更加顺畅。
111 1
「Mac畅玩鸿蒙与硬件3」鸿蒙开发环境配置篇3 - DevEco Studio插件安装与配置
|
2月前
|
机器学习/深度学习 Python
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda
本篇将详细介绍如何在Mac系统上安装和配置Anaconda,如何创建虚拟环境,并学习如何使用 `pip` 和 `conda` 管理Python包,直到成功运行第一个Python程序。通过本篇,您将学会如何高效地使用Anaconda创建和管理虚拟环境,并使用Python开发。
80 4
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda

热门文章

最新文章