如上图,图中15.0.0.2,13.0.0.2等是设备的IP地址,m1,m2等是设备的物理地址(Mac地址,出厂即确定,全球唯一识别),如果图中左边的某个个人电脑(IP地址为15.0.0.2)要传输一段信息到右边的某个服务器(IP地址为13.0.0.2),那么需要将信息封装起来,并且需要在数据中记录数据发送方的IP地址,也就是个人电脑的IP地址(IP地址为15.0.0.2),同时记录接收方的IP地址(IP地址为13.0.0.2),这样就形成了一个数据包。数据包的形式如下所示:

上图中的灰色部分就是封装的信息,两个IP地址分别是发送方和接收方。

现在已经打包好数据信息,知道发送方和接收方的IP地址。这一段数据包怎么在网络中传输呢?网络怎么知道下一步要将这个数据包转到哪一个网关接口呢?这时候就用到了设备的Mac地址和数据帧。

现在假设发送方的IP地址为15.0.0.2,其Mac地址为m4,那么其下一步要传输给网关接口m5,也就是这段数据下一步要到达的地方。注意数据不可能一下子从发送方传输到接收方,中间需要经过很多次的中转站,这些中转站需要使用Mac地址进行标记。

现在我们已经有数据包,知道发送方的Mac地址为m4,需要中转的下一个中转站为路由器的网关接口,其IP地址为15.0.0.1,Mac地址为m5。这样,我们需要把当前Mac和下一个要到达的Mac地址记录在数据包中,这样就从数据包形成了数据帧。具体的数据帧形式如下:

当这个数据帧到达m5之后,发送位置变为m5,Mac地址为m5的路由器接收到数据帧后,需要访问数据帧中的IP地址知道接收到的IP地址,然后才能决定下一个中转站的具体位置,决定下一个中转站的具体位置后,将下一个中转站的Mac地址记录在数据帧中,因此需要把上图中的数据帧的两个Mac地址重写,然后再进行传输,一直到到达最终的IP地址接收方。

当数据帧到达接收方后,数据帧中的Mac地址已经不包括发送方的Mac地址了,但是发送方的IP地址仍然存在数据包中,因此我们可以知道是谁发送的请求,可以将其IP地址记录下来,这也是我们可以通过IP进行查询的原因。

物理地址Mac决定了下一站的位置,IP地址决定了最后的接收方是谁。

为什么不能直接使用IP地址代替Mac地址进行记录呢?查了一下,IP地址是TCP/IP网络层的寻址机制,Mac是802.3/Ethernet链路层的寻址机制,
他们是不同层次的东西,不是并排关系,想一想数据发出去走到网线上最终还是变成了电脉冲,TCP/IP是没有物理层定义的,IP包最终变成电信号之前需要以太网来处理,当度IP的数据给予了以太网之后,以太网就用属于它自己的寻址机制来处理以太帧,也就是用MAC地址。

同时,在数据链路层中,既有Mac又有ppp,怎么确定在传输的时候使用哪个呢?ppp属于广域网回范畴,MAC是局域网范畴,按实际情况和环境就选用不同的协议,ppp支持的网络答结构只能是点对点,mac支持多点对多点。
以太网中用mac,远程的话就用ppp(如ADSL拨号,就是基于ppp的)。

计算机网络——数据帧和数据包的区别相关推荐

  1. 数据帧、数据包、数据报以及数据段

    参考链接 数据在OSI七层模型中的名字 数据帧.数据包.数据报以及数据段 数据帧(Frame):是一种信息单位,它的起始点和目的点都是 数据链路层 数据包(Packet):是一种信息单位,它的起始和目 ...

  2. 数据帧,数据包,报文段,报文,分组,数据包的概念和区别

    应用层--消息 传输层--数据段(segment) 网络层--分组.数据包(packet) 链路层--帧(frame) 物理层--P-PDU(bit) 分组.包,packet,信息在互联网当中传输的单 ...

  3. 数据帧、数据包、数据报三者区分

    首先我们有清楚, 信息交换是发生在OSI模型中的相同层面,即:等层信息交换 ,源机中每一层都把信控制信息附加在数据中,而目的机器的每一层都会都接收到的信息进行分析,并从数据中移除控制信息 在开始之前, ...

  4. html几个数据包,报文和数据包的区别

    韩老师QQ 458717185 教学群:342458578 很多学习网络的同学 对报文和数据包 这个概念不理解,现在画图说明 报文 大家可以理解为要传递的一个完整 记事本文件 一个电影文件 总之是一个 ...

  5. (计算机网络)路由器数据包转发

    Q: Quidway路由器在执行数据包转发时,下列哪些项没有发生变化(假定没有使用地址转换技术): A: 原端口号 目的端口号 原网络地址 目的网络地址 原MAC地址 目的MAC地址 Result: ...

  6. 计算机网络中各层的pdu名称,在网络各个层中的数据包的名称分别是什么

    满意答案 vical130 推荐于 2017.09.21 采纳率:43%    等级:5 已帮助:807人 数据帧.数据包.数据报以及数据段 OSI参考模型的各层传输的数据和控制信息具有多种格式,常用 ...

  7. tcpdump - 数据包进行截获的包分析工具

    From:http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html 30 分钟掌握 tcpdump:http://zhuanla ...

  8. tcpdump使用详解及数据包分析

    tcpdump使用与数据分析 语法 tcpdump(选项) 选项 -A 以ASCII码方式显示每一个数据包(不会显示数据包中链路层头部信息). 在抓取包含网页数据的数据包时, 可方便查看数据(nt: ...

  9. tcpdump 网络数据包分析工具

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...

最新文章

  1. C/Cpp / 构造函数种类
  2. linux 64位兼容32位,linux的64位操作系统对32位程序的兼容-全面分析
  3. java发送和接收文件_Java通过套接字发送和接收文件(byte [])
  4. android通用的UUID唯一标示符
  5. access vba表字段_vba中如何在access的一张表中得到所有的列名?
  6. BZOJ——2697: 特技飞行
  7. 代码注释(图案:小狗)
  8. docker管理应用程序数据、容器网络
  9. matplotlib color 参数
  10. 创建mysql用户并在单个数据库上赋权
  11. python书籍_最好的Python书籍,让您像专业程序员一样编程
  12. 智能制造与大数据——数据采集实现数字化
  13. 苹果php集成环境安装包,MacOS平台免费的PHP集成开发环境
  14. java ant和maven_JAVA构建工具:Maven与Ant的区别
  15. 全国市场调查大赛经验分享(二)
  16. 链表的基本操作(C语言)
  17. FRM1 P1B1P1B2 整理笔记
  18. 农业节水自动灌溉 ic射频卡机井灌溉控制器智能取水
  19. 小强在用计算机计算968,最新苏教版三年级数学下册第四单元测试题及答案3套...
  20. 计算机专业刊头,浅谈报纸版面在电脑排版中的美学应用

热门文章

  1. 使用PostgREST构建PostgreSQL数据库的REST风格API
  2. NGINX配置基于Node.js服务的负载均衡服务器
  3. Spring AOP方法分析
  4. 创建设计模式 - 原型设计模式
  5. 设计模式 - 单例模式(Singleton Pattern)
  6. C# Replace字符替换函数
  7. npm 开发中 常用依赖包
  8. PrismJS,一款漂亮的代码高亮工具
  9. C#LeetCode刷题之#463-岛屿的周长​​​​​​​(Island Perimeter)
  10. go的goroutine像水一样自然