现在的互联网中使用的TCP/IP协议是基于OSI(开放系统互联)七层参考模型的,如下表所示。

在进行数据传输时,应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据头部(header),称为封装(Encapsulation),如下图所示。

以太网头部主要包含:目标地址(接收端MAC)、源地址(发送端MAC)

IP头部主要包含:目标地址(接收端IP)、源地址(发送端IP)

基于此,即可知网络中数据传输需要获取发送端与接收端的IP地址与MAC地址,才能完成数据的封装,从而实现数据的传输。假设有A、B两台电脑,A需向B发送数据,则A主机先分别将自身IP、目标设备B的IP地址与自身的子网掩码进行“与”操作(若结果一致,则属于同一网段),从而来判断目标设备B与自身是否在同一网段。若目标设备在同一网段中,即两电脑分布如下图所示。

电脑A与B挂载在同一路由器下,此时A向B发送数据,若A未能获取到目标设备B的MAC地址,而仅知道其IP地址,则A以第二层广播的形式发送ARP请求报文(其中包含A与B的IP地址),同一网段内的其他设备都可以受到这一ARP报文,若发现报文中目标IP与自身IP相同,则向源设备A发回ARP响应报文,从而获取目标设备的MAC地址,即可完成数据的封装,从而实现数据的直接传输。

若存在两电脑A、C,A需向C传送数据,其分布如下图所示。

明显,PC-A与PC-C处于不同网段,其相当于处于广域网中的两台主机,PC-A要发送数据包到PC-C,若PC-A不知PC-C的IP地址,则PC-A需先发送一个dns请求,路由器A或dns解析器会给PC-A回应PC-C的IP地址,故而数据包的所需要的源IP地址(PC-A的IP地址)与目标IP地址(PC-C的IP地址)就都获取到了。

下一步,PC-A需了解如何到达PC-C,还需了解要到达PC-C需经过的下一跳信息。PC-A发送一个ARP的地址解析请求,路由器A对PC-A的ARP地址请求作出回应:要去往PC-C需先发包到自己这里,此时路由器A将自身的MAC地址发送给PC-A,这样PC-A数据包的源MAC地址(PC-A的MAC地址)与目标MAC地址(路由器A的MAC地址)就都有了,即可以完成数据的封装,从而发送数据包出去了。

路由器A收到此数据包后,首先查看此路由表中是否存在去往PC-C的路由,若不存在,则会丢弃包;若存在,则说明这是一个可路由的数据包,然后路由器对其进行一个所谓的线内重写过程:此处先忽略路由器A与路由器B之间复杂的网络连接,则此时数据包中的源IP需变为路由器的IP,即公网IP,目标IP需变为路由器B的公网IP(运用NAT技术进行地址的映射,路由器对此连接进行跟踪,以便有数据返回时,能正确的将数据返回到相应主机);源MAC地址变为路由器A的MAC地址,目标MAC地址编为路由器B的MAC地址。完成数据包的重写后,即可将数据包发送到路由器B,路由器B再依据建立的“连接跟踪”来判断此数据包是发送给PC-C的,然后再对数据包进行重写,更改目标IP地址与目标MAC地址,将数据包发送到PC-C中(此处的数据传输为两路由器下的两主机之间的数据传输,由于两主机都在局域网内,即其访问网络时都是通过其路由器对应的公网IP来进行数据传输的,故此种情况下的数据传输一般要依赖于服务器,即PC-A、PC-C先分别与服务器建立连接,从而使得路由器A与路由器B中均存在相应的“连接跟踪”,即当路由器收到相应信息时,能依据“连接跟踪”来判断该将数据发送到那台主机)。

就目前而言,对于那些没有中间服务器的纯 P2P 应用来说,若双方都位于 NAT 设备之后,双方一般是无法建立连接的,因为若没有中间服务器的中转,无法是两端的 NAT 设备上建立相应的映射条目,即对方无法向你发起一个连接。针对这一问题,现在已经有一些P2P-NAT穿越技术来解决这一问题。

浅析局域网与广域网中数据传输相关推荐

  1. 要在某一房间中两台计算机之间,关于局域网、广域网和互联网的组建和因特网的接入,回答下列问题。要在某一房间中两台计算机之间实现网络通信,下列方法不可行的是...

    集市交易中的叫卖声和敲击声是最一种特殊的民俗现象,局域建和接入间中计算机之间实其共同特点为 网广网为什么有人会产生心理困扰() 牙周组织在受到异常的力作用其损伤一直存在,域网因特房但也会有组织修复 ...

  2. 广域网云主机或服务器_局域网或广域网主机的ip地址

    一文搞懂常用的网络概念:域名.静态IP和动态IP.域名解析DNS.动态域名解析DDNS 前言 在此之前,我对于网络通讯上的一些基础概念总是含糊其辞,感觉自己知道都又道不出个所以然,总之就是不成体系难以 ...

  3. 局域网,广域网,城域网

    局域网(Local Area Network,LAN): 是指在一个相对较小的地理区域内,由若干计算机和相关设备组成的计算机网络,其范围通常被限制在一个建筑物或校园内,用于连接局部的计算机设备.它的传 ...

  4. 网络中数据传输过程的解析

    网络中数据传输过程的分析     我们每天都在使用互联网,我们电脑上的数据是怎么样通过互联网传输到到另外的一台电脑上的呢?把自己的理解写一下,可能有很多细节还没有能的很清楚!希望在以后可以使之更加的完 ...

  5. 局域网、广域网、城域网的介绍,

    一.局域网 局域网(Local Area Network),简称LAN,是指在某一区域内由多台计算机互联成的计算机组."某一区域"指的是同一办公室.同一建筑物.同一公司和同一学校等 ...

  6. 局域网、广域网以及无线AP(胖AP、瘦AP)

    局域网.广域网以及无线AP(胖AP.瘦AP) 认识局域网.广域网.以太网 无线局域网WLAN 局域网的类型/局域网互连设备 无线AP 无线AP分类: 胖AP和瘦AP的区别 胖.瘦AP组网: 无线AP拥 ...

  7. 网络(局域网和广域网、网址、协议、网络硬件)

    网络(局域网和广域网.网址.协议.网络硬件) 局域网和广域网 1.局域网(Local Area Network),简称LAN,是指在某一区域内由多台计算机互联成的计算机组."某一区域&quo ...

  8. 2023-5-7 什么是公网、内网、局域网、广域网、互联网?已经有了mac地址为什么还需要ip地址?使用ip地址是如何进行构建互联网的?

    2023-5-7 什么是公网.内网.局域网.广域网.互联网?已经有了mac地址为什么还需要ip地址?使用ip地址是如何进行构建互联网的?什么是内网穿透? 文章目录 2023-5-7 什么是公网.内网. ...

  9. 计算机局域网和广域网的区别,广域网接口和局域网接口区别

    广域网接口和局域网接口区别 互联网时代,每个有网上的地方都等同于一个局域网,不管大小,那么你知道局域网与广域网接口标准是什么吗?下面是小编整理的一些关于局域网与广域网接口标准的相关资料,供你参考. 局 ...

最新文章

  1. Tomcat默认访问页面
  2. python实现最小二乘法(转)
  3. 你知道出现“乱码”的原因是什么吗?(4)
  4. vue.js tutorial for beginner [Is it possible for us to learn vue.js in a minute?]
  5. 4022-基于链表的简单选择排序(C++,附思路)
  6. Struts2的Action中访问servletAPI方式
  7. JavaScript replace()
  8. FISCO BCOS Solidity 智能合约 return string[] This type is only supported in the new experimental ABI
  9. 使用 ExtJS 实现 ASP.NET MVC 2 客户端验证
  10. java fastjson解析json_fastjson解析json数据 Java类
  11. 计算机丢失dll文件怎么弄,电脑开机提示dll文件丢失怎么办?
  12. Excel 点击单元格打钩,再点击取消
  13. MS-TS:免费微软TTS语音合成工具(一键合成导出MP3音频)
  14. win7系统ie被篡改怎么解决
  15. 现在国内的网站用户行为数据分析工具都有哪些?-宋星
  16. VS2013、VS2019配置和使用技巧
  17. dnf服务器未响应怎么解决方法,win7系统dnf经常未响应的解决方法
  18. asp.net mvc 项目使用Quartz.net添加定时任务
  19. Traceback (most recent call last)
  20. random.randint()用法

热门文章

  1. 2018年4月计算机组成原理试题,全国2018年4月自考(02318)计算机组成原理试题及答案.pdf...
  2. 支持MySql的数据库自动分表工具DBShardTools发布
  3. Linux 用户及权限详解
  4. CentOs下部署Core环境
  5. javaweb 发布目录
  6. Java报错 -- The public type c must be defined in its own file
  7. 【转载】动态载入DLL所需要的三个函数详解(LoadLibrary,GetProcAddress,FreeLibrary)...
  8. 1.6数组-像素翻转
  9. 使用 rem 设置文字大小(文字响应式)
  10. Android模拟器环境下SD卡内容的管理