• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > TCP/IP:在广域网(外网)上传输数据时会用到ARP协议吗?

TCP/IP:在广域网(外网)上传输数据时会用到ARP协议吗?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了tcp/ip在哪里,tcp/ip在哪,tcp ip协议在哪里设置,tcp/ip在哪里设置,win7tcp/ip协议在哪等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: TCP/IP: 在广域网(外网)上传输数据时会用到ARP协议吗?
描述:

我的理解:在局域网(内网),同一网段的两台机器,比如A机器192.168.0.11给B机器192.168.0.22发数据的话是需要知道B的网卡地址的,这时候要用到ARP协议了。

首先我以上的理解应该没错吧?

问题1:那如果在外网上,两个公网IP(A和B)互发数据,这个时候ARP还需要吗?ARP做广播的话明显不可能,范围太广了,而且广播应该只是在局域网做的。

问题2:如果是一个A机器(外网ip)要给一个B机器(内网ip中的某一台机器)发送数据的话呢,需要ARP协议吗?换句话说,需要知道B的MAC地址吗?

问题3:一个路由管辖着一个网段(内网),对外的话这个路由其本身是有一个公网ip的,外网要向内网中的机器发数据,它只知道路由的公网ip,并不知道内网中电脑的ip,那如果上述两个问题要用到ARP协议的话,那么要得知一个内网ip的机器的MAC地址,这个时候是不是就要用到路由器的NAT地址转换功能了?

问题4:A向B发送以太网数据帧(ARP请求)的时候,以太网数据帧(含ip数据报)(ps:这两个以太网数据帧是不同的)是处于待发状态(还在A中),还是说已经到达B的网段的路由器了?B机器的ARP应答是发给A机器还是发给路由器?

tcp协议新手,之前有查过许多资料,但还是很难理清思路,所以问题可能有点杂,请多多包涵


解决方案1:

1.同网段基于二层通信;跨网段基于三层。
2.只需要知道同样目标地址的下一跳即可。
3.默认情况,外网的数据并不能直接发送至内网的非边界设备上。
4.ARP作用范围为同一个广播域内,会发送到广播地址上。

解决方案2:

  1. ARP 是局域网内的协议 要是公网广播的话 那就广播风暴了

  2. 公网之间走路由 ip 层协议,局域网之间走交换机(如果网络不复杂的话),需要ARP知道MAC地址

  3. 看内网设计,内网的机器也可以获得独立的外网IP。如果没有独立外网IP的话,就需要NAT了

  4. ARP请求是广播协议,但是应答是直接返回到请求主机的。

解决方案3:

先明确两个事情:

  • MAC地址是在链路层上使用的地址,也就是以太网数据帧上

  • IP地址是在网络层上使用的地址,也就是TCP/IP帧。TCP/IP帧包装在以太网上面,所以当TCP/IP帧发送出去的时候需要由链路层再去确认MAC地址。

一个TCP包需要发送出去需要把它包装在以太网数据帧上面,也就意味着需要指明MAC地址,那么在还不知道目标主机MAC的情况下源主机就需要发送ARP请求来确定目的主机的MAC地址,在这段时间内以太网数据帧是没法发出去的(数据帧上的MAC都没设置怎么发?),也即等待(回答你的问题4).

外网不能直接和内网的IP通信,如果需要通信需要使用到NAT,NAT用于映射内外网的IP、端口关系,而IP和端口都是在网络层上的内容,只讨论这个的话暂时没有和MAC地址有直接的关系,需要将网络层上的数据通过以太网数据帧发送出去的时候才有MAC和ARP的事情。(问题2、3)

广域网上的主机并不是全部并联起来的,他们被无数的路由器和交换机划分成不同的子网,他们之间的数据(大部分,除非刚好就在同一个子网内)需根据路由策略经过不同的路由一级一级进行进行转发之后才能送到目标主机,而这一个个的子网你也可以简单的把它理解成局域网,ARP的确会在这个“局域网”内广播,但并不像你想象的整个网络上进行广播。
无论是公网还是局域网,链路层上的通信都需要MAC地址,也就意味着也可能需要ARP来确认MAC地址。只是对于主干网而言,为了提高安全性和效率,一般会做MAC和IP的静态绑定,减少ARP的次数。

网络的最精明之处就是路由,通过复用相同的模式将无数的小局域网变成大局域网,再将无数的大局域网联成庞大的广域网,而这些网络间的通信则使用路由策略来控制。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • TCP/IP:在广域网(外网)上传输数据时会用到ARP协议吗?

相关文章

  • 2017-06-05 小菜鸟100分求救!求[物理地址与线性转换]的c++代码。
  • 2017-06-05 c语言中嵌入lua
  • 2017-06-05 关于SOFTICE得安装,什么BOOT,SYSTEM,MANUAL方式得选择
  • 2017-06-05 请问撰写学驱动程式需要什么基础?
  • 2017-06-05 谁能给一个打印监控驱动的思路?
  • 2017-06-05 如何理解lua中的“resume返回除了true以外的其他部分将作为参数传递给相应的yield”
  • 2017-06-05 OV5640摄像头驱动配置
  • 2017-06-05 DMI问题:如何在Windows的WDM驱动程序中调用在指定物理地址位置上的函数?
  • 2017-06-05 寻求高手指点
  • 2017-06-05 谁能告诉我如何在VxWorks下使IDE硬盘工作在ultraDMA模式下

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 纯小数的补码原码
    • 在arm或者android使用alsa播放wav文件
    • 远距离身份识别
    • USB方式WinCE5连接ActiveSync出现“建立合作关系失败”错误
    • 求教各位大神,这个三极管电路何解,谢谢各位
    • 关于U盘传输中断后下载的内容去哪了?
    • 求教,加速度传感器测量物体运动轨迹。。。
    • 新手500分求教驱动基础问题
    • 求ARM、DSP开发高手
    • keil编译时的错误

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有