TCP/IP 之网络层是如何工作的:协议,算法,和 Router

引言

1、搞定文章所有的 TODO
2、翻译文章的英文部分

不会深入介绍算法细节,因为???// TODO

使网络层工作的3个重要组件

本文中会涉及很多关于网络层用到的技术,为了让大家不被这些细节所累,对网络层有个整体的认识,我列出3个重要的网络层组件,最后你会发现,基本上所有的技术细节都是围绕它们展开的。

  1. The Internet Protocol (IP)
    • The creation of IP datagrams.
    • Hop-by-hop delivery from end to end.
  2. Routing Tables
    • Algorithms to populate router forwarding tables.
  3. Internet Control Message Protocol (ICMP)
    • Communicates network layer information between end hosts and routers.
    • Reports error conditions.
    • Helps s diagnose problems.

如果你不明白上面的内容,不要紧,这里你只需要记住它们3个对于网络层来说要非常重要,下文中,我会详细解释它们在网络层扮演的角色。

网络层的组织

网络层中有2种类型的组织:

  1. datagram organisation
  2. virtual circuits organisation

connectionless 服务 VS connection-oriented 服务

类似于传输层,传输层在2个进程之间提供 connectionless 服务或 connection-oriented 服务,而网络层可以在2个 hosts 之间提供 connectionless 服务或 connection-oriented 服务。但是,网络层不像传输层那样,可以同时提供2个服务。在目前所有的计算机网络架构(Internet, ATM, frame relay, and so on) 中,网络层要么提供 host-to-host connectionless 服务,要么提供 host-to-host connection-oriented 服务,但是不能同时提供2个!我们把只提供 connection-oriented 服务的计算机网络叫做 virtual-circuit (VC) 网络; 把只提供 connectionless 服务的计算机网络叫做 datagram 网络.

由于下文中重点介绍的 Internet 属于 datagram 网络,这里我只介绍 datagram organisation,想了解 VC 网络的童鞋请参考 Virtual circuit organisation

Datagram organisation

这个组织的形成是受邮政服务的启发。每个 host 都有相对应地一个网络层地址,如果它想要给其它的 host 发送信息,它需要创建包含下面内容的 packet(类比于一封信件):

  • 目标 host 的网络层地址(收信地址)
  • 自己的网络层地址(寄信地址)
  • 将要发送的信息(信件内容)

下面我用一个寄信的例子来说明 packet 被传送的过程。比如你从北京寄信到辽宁省沈阳市大东区,无论你选择哪家快递,你首先一定是把信件寄送到这家快递的北京所在地,称为中转站A,接下来 A 会抽取出你地址的部分内容,这个例子中是辽宁省,然后根据这个部分地址查询系统,然后把这个信件寄送到辽宁省的中转站 B,接下来同样的道理,信件被依次送到沈阳市的中转站C,大东区的中转站D,最后送到目标地址所在的地方。

类比于上面的例子,一个 packet 从一个 host 到另一个 host 需要经过一系列的 routers(中转站点),每个 router 根据目标 IP 地址(收件地址)的部分内容来查询 router 内部的转发表,然后决定出当前的这个 packet 应该被送到哪个 router,依此类推,最后把 packet 送到目标的 host 中。

由于 router 中的转发表有可能在任何时刻被修改,因此从一个 host 中发出的一系列的 packets 到另一个 host 可能会走不同的路径,并且到达目标 host 的顺序也有可能混乱。

Router

// TODO

Router 内部结构

对于 datagram organisation 来说,routers 用于 hop-by-hop forwarding,维基百科给出了关于 Hop 的定义。

hop-by-hop forwarding

Router 用 routing table 来存储 next hop 的位置,当一个 packet 到达 router 时

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值