公共IP寻址过程 与 局域网 IP的转换

封装与解封装

封装
所谓封装是指在发送方发生的自上而下的过程 —— 在每一层为应用数据添加上特定的头部 / 尾部信息( PDU , Protocol Data Unit ,协议数据单元) Application (应用程序) →segment (数据段) →packet (数据包) →frame (数据帧) →bit (比特,二进制位)

解封装
所谓解封装是指在接收方发生的自下而上的过程 —— 逐层的去掉头部以及尾部信息 由于今天我们只讨论数据传输过程,所以只牵涉到数据的四层以下封装。

假设现在 A 要向 B 发送数据,那么 A 首先要对发送的数据进行封装,在每一层会加上相应的数据头,传输层主要是加上源和目标端口号,网络层则加源和目标 IP 地址,数据链路层则加上源和目标 MAC 地址

1、 通过二层设备交换机直连的两台主机之间数据传输

1) 由于 A 现在只知道 B 的 IP 地址,并不知道 B 的 MAC 地址,而二层设备交换机并不会按 IP 地址来转发数据,所以这时 A 会发一个 ARP 广播,目标 MAC 地址为 FF:FF:FF:FF:FF:FF,询问 IP 地址为 192.168.0.2 的 MAC 地址是多少
2) 交换机收到该帧后,发现是广播帧,于是转发到其它所有端口,并且会将该帧的源 MAC 地址(即 A 的 MAC 地址)添加到自己的 MAC 地址表中去 3) B 当然会收到该帧,于是和自己的 IP 进行对比,发现匹配后,再以A为目标M AC 地址响应A的ARP请求帧
4) 交换机收到B的回复帧后,将该帧的目标MAC地址与自己的MAC地址表进行对照,发现该帧对应的的端口是 F0/1 ,于是将帧转发到 F0/1 端口(如果数据帧的目标 MAC 地址在表中不存在,则会转发到除源端口外的其它所有端口),同时将该帧的源 MAC 地址(即 B 的 MAC 地址)加到自己的 MAC 地址表中
5) A 收到 B 的回复帧后,得知 192.168.0.2 的 MAC 地址是 2c 26.1ae3.2222 ,于是该信息保存到本地的 ARP 高速缓存中,同时以 B 的 MAC 地址为目标地址将要传的数据封装成帧,发送出去
6) 交换机再次收到 A 的数据帧,发现目的 MAC 地址是 2c 26.1ae3.2222 ,并且该地址对应的端口是 F0/2 ,于是将该数据转发到 F0/2 端口
7) B 成功收到 A 发来的数据

2、 跨三层设备路由器的两台主机之间数据传输



1) 由于 B 的 IP 地址并没有和 A 在一个网段,所以当 A 向 B 发送数据时, A 并不会直接把数据给 B ,而是交给自己的网关,也就是 192.168.0.254 ,所以 A 首先会 ARP 广播请求 192.168.0.254 的 MAC 地址
2) A 得到网关的 MAC 地址后,以它为数据帧的目标 MAC 地址进行封装数据,并发送出去
3) routerA 收到该帧后,检查该帧的目标 IP ,并到自己的路由表查找如何到达该网段,发现能够到过,并且下一跳地址是 routerB 的 s0 端口,于是将数据重新封装,将源地址改为 s0 端口 MAC 地址,目标 MAC 地址改为 routerB 的 s0 端口 MAC 址址,并发送给 routerB
4) 中间路由器传递过程同理
5) 最后一个路由(此例为 routerC )收到该帧,发现目标 IP 就在自己的直连网段,于是查看 ARP 缓存,如果找到该 IP 的 MAC 地址,则以该 MAC 地址封装数据发送出去,如果在 ARP 缓存没找到,则发出 ARP 广播,请求该 IP 的 MAC 地址,得到对应的 MAC 地址后,再发送给主机 B 在以上数据传递过程中,我们发现,数据帧的源 IP 和目标 IP 始终是不变的,而经过每个路由进行重新封装数据时 MAC 地址则在不断的变化,总是以自己的地址作为源 MAC 地址,下一跳的地址作为目标 MAC 地址

上面是 因特网上全球唯一的IP 地址的寻找转发过程,如果我们现在是在局域网内部发送消息到公网IP,应该怎么做呢?

这就是涉及到一个概念:NAT. NAT(Network Address Translation,网络地址转换)是1994年提出的

RFC 1918 为私有网络预留出了三个IP 地址块,如下:
A 类:10.0.0.0~10.255.255.255
B 类:172.16.0.0~172.31.255.255
C 类:192.168.0.0~192.168.255.255
上述三个范围内的地址不会在因特网上被分配,因此可以不必向ISP 或注册中心申请而在公司或企业内部自由使用。
随着接入Internet的计算机数量的不断猛增,IP地址资源也就愈加显得捉襟见肘。事实上,一般用户几乎申请不到整段的C类IP地址。在其他ISP那里,即使是拥有几百台计算机的大型局域网用户,当他们申请IP地址时,所分配的地址也不过只有几个或十几个IP地址。显然,这样少的IP地址根本无法满足网络用户的需求,于是也就产生了NAT技术。

借助于NAT,私有(保留)地址的"内部"网络通过 路由器发送 数据包时, 私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。
NAT将自动修改IP 报文的源IP地址和目的IP地址,Ip地址校验则在NAT处理过程中自动完成。有些应用程序将源IP地址嵌入到IP 报文的数据部分中,所以还需要同时对报文的数据部分进行修改,以匹配IP头中已经修改过的源IP地址。否则,在 报文数据部分嵌入IP地址的应用程序就不能正常工作。
NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad。
静态 转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于 静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当 ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。
端口多路复用( Port address Translation,PAT)是指改变外出数据包的 源端口并进行端口转换,即端口 地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有 主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有 主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
TCP/IP四层模型和五层模型是两种常用的网络协议参考模型,用于描述计算机网络中不同层次的功能和通信规则。 TCP/IP四层模型包括:网络接口层、互联网层、传输层和应用层。网络接口层负责将数据包转换成适合传输的物理格式,并进行网络接口的选择。互联网层负责进行网络间的数据传输,通过IP协议来确定数据包的传输路径。传输层负责提供端到端的数据传输服务,包括TCP和UDP协议,TCP提供可靠的面向连接的传输服务,而UDP提供不可靠的面向无连接的传输服务。应用层包括各种网络应用协议,如HTTP、FTP、SMTP等,负责应用程序之间的通信。 五层模型在TCP/IP四层模型的基础上增加了一个会话层。五层模型包括:物理层、数据链路层、网络层、传输层和应用层。物理层负责数据在物理媒介上的传输,包括电缆、光纤等。数据链路层负责将数据分帧,并进行错误检测和纠正,如以太网、无线局域网等。网络层负责进行数据包的路由选择和,如IP。传输层提供端到端的数据传输服务,如TCP和UDP。应用层包括各种应用层协议,如HTTP、FTP等。 两种模型虽然在命名和层次划分上有所不同,但其基本结构和功能相似。TCP/IP模型是互联网中使用最广泛的模型,而五层模型是OSI参考模型中的一部分。无论使用哪种模型,它们都为网络的设计、实现和管理提供了一种标准化的方法,使不同厂商和组织之间的网络设备和应用能够进行互通和协作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值