数据包端到端的流程

这篇具有很好参考价值的文章主要介绍了数据包端到端的流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

流程

A给F发送一个数据包的流程:数据包端到端的流程,计算机网络,网络,tcp/ip

  1. 首先 A(192.168.0.1)通过子网掩码(255.255.255.0)计算出自己与 F(192.168.2.2)并不在同一个子网内,于是决定发送给默认网关(192.168.0.254)

  2. 发送之前,A 需要通过 ARP 找到 默认网关 192.168.0.254 的 MAC 地址为ABAB

  3. A 将源 MAC 地址(AAAA)与 默认网关 MAC 地址(ABAB)封装在数据链路层头部,又将源 IP 地址(192.168.0.1)和目的 IP 地址(192.168.2.2) (注意目的 IP 地址千万不要以为填写的是默认网关的 IP 地址,从始至终这个数据包的两个 IP 地址都是不变的,只有 MAC 地址在不断变化)封装在网络层头部,然后发包

数据包端到端的流程,计算机网络,网络,tcp/ip

  1. 交换机 1 收到数据包后,发现目标 MAC 地址是 ABAB,查找MAC地址映射表通过某个端口,转发给路由器1

  2. 路由器 1 发现其目标 IP 地址是 192.168.2.2,查看其路由表,发现了下一跳的地址是 192.168.100.5

  3. 所以此时路由器 1 需要做两件事,第一件是再次匹配路由表,发现匹配到了端口为 2,于是将其封装到数据链路层,最后把包从 2 号口发出去。
    数据包端到端的流程,计算机网络,网络,tcp/ip

  4. 此时路由器 2 收到了数据包,看到其目的地址是 192.168.2.2,查询其路由表,匹配到端口号为 1,准备从 1 号口把数据包送出去。

  5. 但此时路由器 2 需要知道 192.168.2.2 的 MAC 地址了,于是查看其 arp 缓存,找到其 MAC 地址为 FFFF,将其封装在数据链路层头部,并从 1 号端口把包发出去。
    数据包端到端的流程,计算机网络,网络,tcp/ip

  6. 交换机 3 收到了数据包,发现目的 MAC 地址为 FFFF,查询其 MAC 地址表,发现应该从其 6 号端口出去,于是从 6 号端口把数据包发出去。

  7. F 最终收到了数据包!并且发现目的 MAC 地址就是自己,于是收下了这个包

总结

电脑视角:

  • 首先我要知道我的 IP 以及对方的 IP
  • 通过子网掩码判断我们是否在同一个子网
  • 在同一个子网就通过 arp 获取对方 mac 地址通过交换机直接扔出去
  • 不在同一个子网就通过 arp 获取默认网关的 mac 地址直接扔出去

交换机视角:

  • 我收到的数据包必须有目标 MAC 地址
  • 通过 MAC 地址表查映射关系
  • 查到了就按照映射关系从我的指定端口发出去
  • 查不到就所有端口都发出去(广播)
  • 交换机只管转,不会改变数据包里的东西

路由器视角:

  • 我收到的数据包必须有目标 IP 地址,当然也会有MAC地址
  • 通过路由表查映射关系
  • 查到了就按照映射关系从我的指定端口发出去
  • 查不到则返回一个路由不可达的数据包
  • 经过路由器时,数据链路层MAC地址会发生改变

如果你嗅觉足够敏锐,你应该可以感受到下面这句话:

  • 网络层(IP协议)本身没有传输包的功能,包的实际传输是委托给数据链路层(以太网中的交换机)来实现的。可以看到上面的数据包,网络层的IP地址一直不会变,变得是数据链路层的MAC地址

涉及到的三张表分别是

  • 交换机中有 MAC 地址表用于映射 MAC 地址和它的端口

  • 路由器中有路由表用于映射 IP 地址(段)和它的端口

  • 电脑和路由器中都有 arp 缓存表用于缓存 IP 和 MAC 地址的映射关系

这三张表是怎么来的

  • MAC 地址表是通过以太网内各节点之间不断通过交换机通信,不断完善起来的(广播)
  • 路由表是各种路由选择算法 + 人工配置逐步完善起来的。
  • arp 缓存表是不断通过 arp 协议的请求逐步完善起来的(广播发送一个ARP请求包)

参考

有了 IP 地址,为什么还要用 MAC 地址? - 无聊的闪客的回答 - 知乎文章来源地址https://www.toymoban.com/news/detail-744637.html

到了这里,关于数据包端到端的流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【计算机网络】网络基础--协议/网络协议/网络传输流程/地址管理

    【计算机网络】网络基础--协议/网络协议/网络传输流程/地址管理

    网络的发展分为一下几个阶段: 独立模式: 计算机之间相互独立: 此时计算机之间是相互独立的,每个人在执行任务的时候是独立的,需要等待前一个将任务完成之后,自己才能进行执行任务,是串行执行的,效率很低。 网络互联: 多台计算机连接在一起, 完成数据共享:

    2024年02月03日
    浏览(9)
  • 计算机网络面试八股复习:常见的7/5/4层网络模型、各层协议以及键入网址到显示页面的流程

    计算机网络面试八股复习:常见的7/5/4层网络模型、各层协议以及键入网址到显示页面的流程

    OSI七层模型 TCP/IP四层模型 五层模型 精简部分,完整版见上图 ARP 和 RARP ,在TCP/IP模型中属于IP层(网络层), 在OSI 模型中属于 链路层。 逐层加东西。图源-小林codding 1、输入URL,解析URL,生成Http请求 2、逐级查看缓存(浏览器缓存、系统缓存、路由器缓存),若有则直接显

    2024年01月22日
    浏览(10)
  • 计算机网络——数据链路层

    计算机网络——数据链路层

    这篇文章是计算机网络系列文章的第二篇 计算机网络——物理层 计算机网络——数据链路层 计算机网络——网络层 计算机网络——传输层 计算机网络——应用层 问:数据链路层在现在的社会起到什么作用? 答:数据链路层在现在的社会起到关键性作用,比如:数据传输和

    2024年02月09日
    浏览(11)
  • 计算机网络-数据链路层

    计算机网络-数据链路层

    \\\"以太网\\\" 不是⼀种具体的网络,而是一种技术标准; 既包含了数据链路层的内容, 也包含了⼀些物理 层的内容。 例如:规定了网络拓扑结构,访问控制方式,传输速率等; 例如:以太网中的网线必须使用双绞线; 传输速率有10M, 100M, 1000M等; 以太网是当前应用最广泛的局域网技术

    2024年03月14日
    浏览(26)
  • 计算机网络—数据链路层

    计算机网络—数据链路层

    该层中的帧数据结构: 帧头部会因为不同的局域网协议而不同,因此会在另一篇博文中继续介绍不同的帧数据报,不在本博文介绍。( 不过除了PPP协议外一般都是目标MAC,源MAC,类型,占8字节,每个MAC占6字节,类型占2字节)帧尾一般是用于校验的数据。 在数据链路层传输

    2024年02月11日
    浏览(23)
  • 【计算机网络】——数据链路层

    【计算机网络】——数据链路层

    数据链路层之所以要把比特组合成帧为单位传输,是为了出错的时候,只重发出错的帧,而不必重发全部数据,从而提高效率。 组帧主要解决帧定界、帧同步、透明传输等问题。 透明传输:不管所传输的数据是什么样的比特组合都能在链路上传送。(数据中出现与定界符相同

    2024年02月12日
    浏览(9)
  • 【计算机网络】数据链路层

    【计算机网络】数据链路层

    数据链路层位于网络层之下,物理层之上。是我们程序员需要了解的最下层协议。 该层的主要功能就是在物理网络上提供可靠的数据传输,确保从一个节点(设备)到另一个节点的数据传输是无差错、有序、可靠和高效的。 将数据一跳一跳地从当前主机发送到目标主机,需

    2024年02月14日
    浏览(13)
  • 计算机网络 数据链路层

    计算机网络 数据链路层

         

    2024年02月13日
    浏览(9)
  • 计算机网络——数据链路层(1)

    计算机网络——数据链路层(1)

            在计算机网络中,数据链路层承担着点对点通信的任务,用于跨物理层在网段节点之间参数数据。它在网络分层中处于物理层之上,网路层之下。         在链路层的讨论中,我们将看到两种截然不同类型的链路层信道。第一种类型是广播信道,这种信道用于连

    2024年01月18日
    浏览(9)
  • 计算机网络(三)数据链路层

    计算机网络(三)数据链路层

    数据链路层功能 : 在物理层提供服务的基础上向网络层提供服务,主要作用是加强物理层传输原始比特流的功能, 将物理层提供的可能出错的物理连接改在为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路 为网络层提供服务 : 无确认的无连接服务: 源机

    2024年04月17日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包