一份菜单

互联网数据包之旅

尽管大多数最终用户没有’不在乎Internet的工作原理,其中有些人可能想了解Internet的工作原理。

在本文中,我们将详细阐述数据包从源到目的地的过程,以试图了解Internet的工作原理。从这个角度来看,我们’我将尽量使本文的内容保持基础。

在继续之前,让我们首先快速简要地了解DHCP和DNS的概念。

DHCP服务器

您是否想过您的计算机如何获得IP地址?好吧,重要的是要知道计算机有两种获取IP地址的方法。一个是静态的,而另一个是动态的。

静态方法是计算机管理员手动为计算机设置IP地址的一种方法。如果您的计算机连接到局域网之类的网络,那么请记住,设置的IP地址不应与同一网络上任何其他计算机的IP地址相同,否则可能会导致IP地址冲突两台机器都无法访问互联网。

动态方法是计算机(在系统启动时)要求服务器为其分配IP地址的一种方法。用于此过程的协议称为动态主机控制协议(DHCP)。此处引用的服务器是已知的DHCP服务器。该服务器负责为网络上的所有计算机分配IP地址。 DHCP服务器服务器有责任确保没有IP地址冲突。如果其中一台计算机出现故障,然后再次启动,则新的DHCP请求将发送到服务器,这一次可能会分配相同或一些不同的IP地址。通常会将IP地址池分配给DHCP服务器,并且仅使用这些IP地址进行分配。这样做是为了安全地将其他IP地址用于静态分配,而不会发生任何冲突。

域名解析

我们大多数人会使用google.com进行互联网搜索,但是您是否想过如何确保在网络浏览器中键入google.com会真正与正确的服务器联系?好了,要了解这一点,我们需要了解域名服务器(DNS)的概念。

在现实生活中,通过人们的名字来标识他们,就像在计算机网络中一样,通过分配给他们的IP地址来标识单个计算机。 IP地址 可以有两种类型:公共和私有。通常,服务器会使用公共IP,因为全球数百万台计算机都在与它们联系。通常为连接在路由器后面的计算机分配专用IP。由于可用的公共IP数量有限,因此网络(具有公共IP的路由器后面)中专用IP的概念已变得流行和成功。为此使用的更广泛的概念称为NAT或网络地址转换。

记住IP地址对于人类来说是一项艰巨的任务,因此每个服务器也都有一个名称(例如google.com)。因此,最终用户只需要记住该名称,然后在其Web浏览器中键入该名称,然后按Enter键即可。现在,让我们来谈谈在网络浏览器中输入名称后,用户点击Enter时会发生什么的故事。首先需要将域名转换为相应的IP。为此,将请求发送到默认网关(在大多数情况下为路由器),以联系DNS服务器。路由器具有已配置的DNS服务器IP,此请求将发送到该IP。

域名解析服务器用于将域名转换为IP地址。当DNS服务器收到请求时,它将检查它是否具有必需的信息。如果不存在此转换信息,则DNS服务器会将此请求转发到另一个DNS服务器。这样就完成了域名到IP地址的转换并将其发送回去。

一旦知道IP,便会向该特定IP发出正常的HTTP GET请求,然后事情就会继续进行。

发布DNS,情况如何发展?

要了解以下解释,您应该具有以下基本知识: TCP / IP协议套件层。还是我们’此处将尽量保持基本解释。

  • 通过DNS进程知道IP地址后,即可在应用程序层准备HTTP GET请求。然后,此请求将转发到传输层。
  • 在此层主要使用两种协议(TCP和UDP)。在这一层,请求以传输层数据包的形式封装。如果正在使用TCP,则还应注意数据包大小不应超过源和目标之间路径中的最低MTU。这样做是为了避免数据包在传输过程中的某个地方分裂。另一方面,如果使用UDP,则不会特别注意,因此数据包可能会变得碎片化。
  • 数据包在传输层形成后,便被推送到IP层。该层添加了与源IP地址和目标IP地址有关的信息,以及一些其他重要信息,例如TTL(生存时间),分段信息等。当数据包到达目的地时,所有这些信息都是必需的。
  • 此后,数据包进入数据链路层,在其中添加与MAC地址有关的信息,然后将数据包推到物理层。所以流0’s and 1’s从NIC发送到物理介质。

如果数据包的目的地没有直接连接到源计算机,则通过源计算机上存在的路由信息​​,将数据包传输到最近的相关计算机节点。网络中可以有各种节点,例如路由器,网桥,网关等。每个实体都有其自身的重要性,例如路由器用于转发数据包,网桥用于使用相同协议连接网络,而网关用于与网络连接。不同的协议。

如果我们考虑一个基本网络,则路由器是主要代理,它们在将数据包从源转发到目的地方面起着至关重要的作用。当数据包首次离开源计算机时,相关路由器(数据包将被传输到该路由器)的mac地址将用作其目标mac地址。

当数据包到达该路由器时,路由器将执行以下操作:

  • 它将减小TTL值并重新计算数据包的校验和。
  • 路由器在其路由信息表中搜索数据包指定的完整主机地址’的目标IP地址。如果找到,则路由器将采取措施将数据包转发到相关主机。
  • 如果未找到此类条目,则在表中搜索从目标IP派生的网络地址。如果找到,则路由器将数据包转发到该特定网络。
  • 如果以上两次检查均失败,则将数据包传输到从其路由信息表中的默认条目派生的默认路由器。

在上述任何一种情况下,每当路由器将数据包传输到其他路由器或目标位置时,数据包的目标mac地址都会更改为要发送到的直接路由器或目标地址。这样,数据包中的IP地址信息保持不变,但目标mac地址从一台路由器更改为另一台路由器。因此,数据包从一台路由器传播到另一台路由器,直到到达目的地。

现在,在目的地:

  • 该数据包首先在物理层接收,该物理层向CPU发出IRQ,以指示某些数据已到达并正在等待处理。
  • 此后,数据将发送到数据链路层,在此检查MAC层,以查看此数据包是否确实仅用于此计算机。
  • 如果通过了以上检查,则此数据包将被传递到IP层,在此进行一些IP地址检查和校验和验证,然后将其传递到相关的传输层协议。
  • 一旦完成此操作,然后根据端口的知识,信息(或本例中的HTTP GET请求)将在侦听该端口的应用程序上传递。
  • 这样,请求到达了Google Web服务器。

此后,以与上述相同的方式形成响应并将其发送回去。

你有它。这就是数据包在Internet中从源到目的地传输的方式。

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 39 评论… 加一 }

  • 费萨尔·哈桑(Faisal Hasan) 2012年8月8日,上午10:35

    一个IP地址可以有多个域名吗?
    感谢和问候,费萨尔

  • Vellingiri 2012年8月8日,上午10:53

    很好的解释。不错的教程。

  • 贾拉尔·哈吉霍拉玛利 2012年8月8日,3d捕鱼达人12:41

    你好

    谢谢,有用的文章….

  • 比夫·马丁 2012年8月8日,3d捕鱼达人3:49

    关于数据包如何在客户端和服务器之间传输的详细说明。如果您问我,我可以将其简化为两段。

  • 匿名 2012年8月8日,3d捕鱼达人5:44

    很好的解释!

  • vr @ gon 2012年8月8日,3d捕鱼达人5:45

    优秀!!

  • 香尼尔 2012年8月8日,3d捕鱼达人7:27

    您好Biff Martin,至少他给了一个很好的解释,并使用TGS来教育来自世界各地的人们。请如果您不能欣赏他的工作,那么我建议您打开自己的网站并以自己喜欢的方式解释。伙计们就像您应该至少欣赏某人正在做某件事,而不是那样开始跳来跳去。我教CCNA,我已经把这个解释给了我的学生,现在他们说他们已经很好地理解了。

    别往心里放。

  • 洛基 2012年8月8日,晚上8:16

    嗨,Biff,

    是的,请同样显示您的评论。

    BR
    洛基

  • 阿维纳什 2012年8月8日,晚上8:41

    谢谢。
    非常有用的文章。

  • 伊森 2012年8月9日,上午4:14

    和我预期的一样简单,但是如果提供一些Debian Linux例子可能会做得更好

  • 缺口 2012年8月9日,上午11:19

    对于刚刚了解其中一些内容的人来说,这是一个很好的解释。我的计算机课几乎没有涉及网络,我们所学到的只是各层的名称。

  • 沃尔特 2012年8月9日,3d捕鱼达人12:15

    DHCP服务器是动态主机配置(非控制)协议

  • 塔里克 2012年8月9日,3d捕鱼达人2:43

    真好

    您可以通过描述数据包如何返回源来完成数据包的传输过程。

  • 杰姆·斯坦纳斯 2012年8月9日,3d捕鱼达人5:40

    一如既往,非常有帮助。我从事计算机和电子技术的教学已有40年之久了,我个人发现您在讲解过程中遇到了非常好的中等难度,而没有用专业术语掩盖。我总是从您的帖子中学到一些东西,如果对我来说这是一个新话题,也永远不会太困难。
    教学技术中最困难的事情是决定将演示文稿调整到哪个级别,然后您才能出色地做到。
    两段?我可以用两个字说出来。“It works.” But that wouldn’t help anyone! LOL
    所以坚持做你的事。没有人比您做得更好。实际上,您对他人的奉献精神真是太棒了。我一度希望您能够将其保持很多年!最好的祝福..

  • 马扬克 2012年8月10日,上午2:09

    V.Well撰写。谢谢

  • 斯瓦普尼尔 2012年8月10日,上午9:58

    做得好。非常感谢您投入大量时间和辛勤工作,撰写困难且显而易见的文章,这些文章确实需要详细说明。脱下帽子!保持良好的工作。

  • 苏海尔 2012年8月10日,3d捕鱼达人12:31

    很棒的解释

  • 桑托什 2012年8月17日,晚上10:34

    很棒的文章。
    有助于了解有关数据包旅程的清晰信息。

  • 卡尔提加延 2012年8月18日,上午1:06

    精湛的文章。酥脆和清晰。竖起大拇指!

  • 匿名 2012年8月22日,上午2:06

    很好的文章!

  • 扎克 2012年8月27日,上午10:18

    很棒的文章!始终为任何级别提供信息。我唯一的抱怨是我’d想在这些文章中看到更多的视觉辅助工具。一世 ’我是一个非常视觉化的学习者,我知道其他人也一样。视觉助手真的可以带回家。

  • 匿名 2013年3月29日,3d捕鱼达人12:21

    最佳文章…非常有用,非常感谢。

  • 匿名 2013年4月10日,上午12:36

    很好的文章。像我这样的初学者可以很好地理解,因为您没有使用任何技术性的词汇

  • 拉斐尔 2013年5月14日,3d捕鱼达人6:31

    该文档是信息的重要来源。我在课堂上一直都在使用它们。我希望跟进与文章相关的后续问题,可以分配给学生。谢谢。

  • 匿名 2013年5月20日,晚上9:03

    它的动态主机配置协议…我只是喜欢你的文章.. thnxðŸ™,

  • 网络新手 2013年5月27日,上午10:13

    优秀的文章!您提出了一个令人困惑的话题,这是可以理解的。谢谢

  • 科迪 2014年2月28日,晚上10:45

    回覆:“一个IP地址可以有多个域名吗?
    感谢和问候,费萨尔”

    是。您也可以为同一名称使用别名(例如DNS称呼中的规范名称,即CNAMES)(例如,如果google.com映射到74.125.224.166–它确实可以做到这一点,例如[每个域也可以有多个IP],那么您也可以拥有一个别名 http://www.google.com 通过映射到google.com映射到74.125.224.166。谷歌在这种情况下不使用CNAMES)。如果您真的想要更多信息,请查找DNS A记录,DNS PTR(即A记录的反面)记录和DNS CNAME记录(不过,这可能不适合您)… I don’t know as I’从未遇到过DNS或网络问题)。对于IPv6,A记录称为AAAA记录。

  • 科迪 2014年2月28日,晚上10:48

    嗯,该网站将我用于别名的名称转换为URL。无论如何,让我以另一种方式尝试:您可以为www加上别名,以指向不带www的域名称,并与其他名称相同(这意味着www不是唯一可以别名的域名)。这被称为DNS CNAME记录(尽管与其他记录类型相关,但存在一些限制,但我赢了’t get into that).

  • g 2014年12月17日,晚上9:39

    很好的解释!继续努力=)

  • 纳文 2015年1月20日,上午10:59

    语言简单,努力……………

  • 匿名 2015年1月27日,上午5:31

    超级好

  • 法扎尔·阿明 2015年6月5日,3d捕鱼达人12:34

    做得好
    谢谢

  • 阿里·阿拉 2015年6月8日,3d捕鱼达人1:00

    棒极了!…

  • 匿名 2015年6月8日,3d捕鱼达人1:04

    很好的解释。 。

  • Sanjana 2015年7月19日,3d捕鱼达人3:43

    你好
    很好的解释,非常有帮助。

    我毫不怀疑。帮帮我。
    1)设备最初如何知道DNS服务器IP地址?
    2)DHCP服务器是否已连接到每个子网,因为该设备最初会广播特殊消息,表明它已加入网络并且DHCP以其IP地址正确响应?
    3)此特殊消息包含什么? (供dhcp服务器识别吗?)

  • SAN 2015年8月6日,3d捕鱼达人6:27

    太棒了,您的解释方式很棒。

  • 苏尼尔 2016年2月18日,3d捕鱼达人1:47

    如果将MAC地址更改为路由器’mac地址,如何在目标区域的互联网上通过旅行识别目标。

  • 拉古巴尔 2016年5月30日,上午2:47

    嗨,Sunil,
    当我们说MAC地址将被更改时,则仅是源和目标MAC地址是本地的,即下一个节点成为本地目标,而当前节点是本地源,因此在数据分组传输期间,MAC地址会不断变化,具体取决于初始源和最终目标中存在的中间节点的数目。由于源IP地址和目标IP地址不变,因此在目标IP地址的帮助下,将识别目标主机。

  • 叶卡格拉·纳加尔(Ekagra Nagar) 2016年7月2日,上午5:57

    精湛的工作..感谢您的解释..?

发表评论