【Coursera】Fifth week(3)

Ethernet

  • 在 PARC(Xerox) 发明。
  • 第一个 Local-Area-Network (LAN 局域网)。
  • 把 PCs 连接到 激光打印机上。
  • 在夏威夷大学,被早期的无线网络 Aloha 所启发。

Bob 确实从无线网络中受到了启发:共享同一个媒介。他所发明的 Ethernet 的线路,不谈在天花板上运行,确实很像一个巨型的 无线电广播(giant radio)。所以,这种简单的设计为早期的 Ethernet 带来了许多好处,虽然很简单,但是它降低了整个线路的价格,并且让速率变得更快。在那之后,WIFI 是由 Ethernet 变种而来的。
Bob 后来也创建了 3 Con 公司,是最先生产PC cards的公司之一。所以当你买了一台PC,你也会购买一个 3 Con 的 PC cards 安装在你的电脑后面。

Link Layer,大约有 20000 或者 50000 工程师花费了持续20年之久的时间解决了 数据链路层线路连接的问题。

Internetwork Layer (IP):Simple and Unreliable

这个层次所要解决的问题是:让所有的“post cards”有一个起始地址和一个目的地址,并且给予其充分的时间来允许其通过网络。

Internet Protocol Layer

  • 目标:让从你的电脑 发送的数据 穿越网络 到达世界上另一个地方的目的主机上。
  • 所有的路由器 都很清楚 周围有哪些路由器。
  • IP is best effort - 如果数据转递出现了错误,直接丢弃数据报。这是它的独特的特点所在。

我们第一次接触了 end to end 的机制,从发送主机端的协议栈(下图左侧方框),到目的主机端的协议栈(下图右侧方框)

IP address

  • IP address 是一串全球性的数字,它与某一个特殊的工作站或者是服务器有关。
  • 向 Internet 直接发送数据报的系统,必须有一个独一无二的IP address。
  • IP address 基于(are based on)连接点的位置。
  • IP address 并不是单纯的被某一个组织所控制,它的范围是被分配的。
  • 它们就像电话号码一样,偶尔会被改编(reorganized)。

Link Layer 的 MAC address,在硬件设备被生产出来的时候,它就被分配了,是一串连续的数字。
**The IP address are based on where station is connected. **They get reorganized once in a great while but not very often.

* IP address format

  • 4个数字,3个小数点,每一个数字在0-255之间(32 bit)。
  • 就像电话号码一样,有一个area code。
  • 地址的前置代号 说明了 “which network”。
  • 当数据报穿越 network 的时候,起作用的是 网络号。
美国的电话号码:(734) 764 1855 括号中的数字就是 area code
相似的,Network Number:141.211.144.188 其中的 141.211 就是Network Number(网络号)。
子网掩码:255.255.0.0

Four numbers separated by nots.
准确的来说,IP地址被分成两块:网络号和主机号。课程中举了美国的电话号码的例子,我觉得并不是那么好理解。
当数据报穿越网络的时候,真正起作用的是网络号,主机号往往是被忽略的(在IP 路由选路中)。所以可以这样子理解,所有发往密歇根大学的数据报 的目的IP地址均为 141.255..

* Mac Air 查询 IP address

左上角 -> 系统偏好设置 -> 网络 -> 高级 -> TCP/IP

* An example

当数据报经过一个路由器的时候,路由器做的工作其实是非常简单的,它只观察IP数据报的前半部分:网络号,而不是一整个。当它到达目的网络的时候,比如Stanford大学校园网络,大学网络就根据IP数据报后面的部分,也就是主机号,找到目的主机。而 如何把目的网络的信息封装到数据报里面 是发送端考虑的事情,如何把信息发送到正确的主机 是目的网络考虑的事情。
So while in the network, all that matter is the Network number.
数据报经过的中间网络,在某一个方面看上去十分复杂:既大又快;而在另外一个方面又十分简单:它只是把数据报从一个网络递送到另外一个网络中。

No single router knows the whole network - just which way to send data to get it "closer".
在中间网络中,没有一台路由器准确的知道整个网络是怎么样的,它们只是简单的转递数据报,为了让数据报离目的地“更近一些”。
network 的 其中一个目的是:就算是中间某一个路由器选择了错误的路径,中间网络也能自动的纠正它。所以,每个路由器都没有准确地知道整个网络的必要。

router tables 路由表

路由表中有许多网络号。根据转递的数据报的目的IP地址 决定了从哪个接口发送数据报;列举了相邻链路的带宽;链路的交通情况;以及相邻节点的状态(up or not)等等。
路由表动态更新(Update dynamically),询问周围的路由器寻求信息。根据动态选路协议 进行 动态选路,将选路策略添加到系统中来对路由表进行更新。
在交换信息的过程中,如果它看见了一些在表内没有出现过的路径,则把它添加到表中(一般来说,路由守护程序根据 RIP 应答数据报中的 度量 与 其路由表中的度量 进行比对,最短路径优先,度量相同取最先到达的应答数据报的路径)。
它的更新速度比较慢(相对而言,30s一次)。

IP is simple

数以万计的网络连接,每秒以亿计的字节单位数据。One "area code" to keep track of inside the Internet.

比如你的学校所在的区域LAN,被分配了一个网络号:67.149.. ,世界各地的PC 或者网络 根据你的网络号 向你发送信息。所以,根据一个网络号,其它的网络可以很清楚地辨别出这个网络号所属的网络。

DHCP = Dynamic Host Configuration Protocol

当你在公司忙碌了一天,你很累,把正在工作的笔记本电脑合上,来到了咖啡厅,打开笔记本和自己的朋友们聊聊天,然后回到了家里,又一次打开了笔记本,呃开始游览网站,看一些视频来放松自己。
这个时候有人就会问了:Hey, guy. 你刚刚不是说 如果没有正确的IP地址我们是没有办法连接到Internet上,那我们怎么可能会在三个地方连接到 Internet??
这是因为,当你的电脑在出厂的时候被分配了一个 Ethernet 的地址,大多数电脑在第一次开机并连接到WiFi的时候 进行 询问IP地址,而不是直接在你的电脑上配置一个 IP地址。它们向外发送了一个请求:

来到了咖啡厅。
我的Mac:Hey,你好吗,我是新来的,我的主人想和朋友们聊聊天,在这个地方有人能够给我分配一个IP地址吗?

如果这个地方有一个 access point(访问接入点,一种无线网络模式),回答:

access point:当然啦,欢迎您,您可以使用这个:141.26.14.7 IP地址。

事实上,分配过来的IP地址的网络号,就是这个咖啡厅的网络号。
同理,在其他的办公室,学校等等其他的地方,都是类似的。

这就是 DHCP 协议的工作。

所以,我们有了一类很特殊的地址:Non-Routable Address

Non-Routable Address

  • A typical home router does Network Address Translation (NAT).
  • Your ISP gives your home router a real global routable address.
  • Your router gives out local addresses in special range.(192.168..)
  • The router maps remote address for each connection you make from within your home network.

名词解析:

NAT的作用是把内网的私有地址,转化成外网的公有地址。使得内部网络上的(被设置为私有IP地址的)主机可以访问Internet。
NAT的主要作用,是解决IP地址数量紧缺。当大量的内部主机只能使用少量的合法的外部地址,就可以使用NAT把内部地址转化成外部地址。
ISP(Internet Service Provider),互联网服务提供商,即向广大用户综合提供互联网接入业务、信息业务、和增值业务的电信运营商。

NAT保证了 家庭routers 有一个独一无二的 明显的 地址,它给你分配一个短暂的地址,这个地址无法在Internet上面使用,它只在这间屋子里面有效,但是当你向外发送的数据报离开你的这间屋子的时候,真正的地址被封装进去。当送到你主机的数据报进到你的屋子的时候,它的地址又 转换成了 当地地址 (屋子里的家庭路由器分配的 短暂的 有局限性的地址)。
上述屋子里的家庭路由器分配的 短暂的 有局限性的地址,叫做 Non-Routable Address。因为这些地址,仅在你的房间里面有效,而不适用在外部的Internet。

比如,你来到了咖啡厅工作,咖啡厅的 base station IP地址 是 141.206.14.3 ,它给了你的PC一个 IP地址 192.168.0.20 ,当你向外部发送信息的时候,数据报经过 base station 的时候,数据报中的目的IP地址从 192.168.0.20 转换到了 141.206.14.3。外界向你发送信息的时候,目的IP地址从 141.206.14.3 转换为 192.168.0.20。
It's being translated in the access point. NAT:network address translation

Peering into the Internet

  • 很多操作系统有显示到达目的地所经过的所有路由的一个命令,Mac 是 traceroute ,Windows 是 tracert 。
  • 每一个IP数据报都有一个 TTL(Time To Live)。
  • TTL解决IP数据报中的环路问题,简单的来说,环路的存在会使得路由器出现故障,造成网络阻塞。

关于路由环路,在我的上一篇博客:第十章 动态选路中有提到。路由器们一直做出它们认为的最优路由决定,造成了环路。解决方法是在 IP数据报 中添加TTL 字段。
当 IP数据报 每经过一个路由器的时候,TTL字段 的值自动减1。
当 TTL字段 的值为0时,路由器把它丢弃。

How Traceroute work

正常情况下,IP数据报 的 TTL字段值为255。
而 Traceroute 发送的数据报 TTL字段 为 1,2,3 ···
所以,每一个数据报,只经过一部分就被遗弃了。Traceroute 会获得一个通知:说明是在哪一个路由器终止的。
这样的话,Traceroute 建立了一幅关于数据报转递过互联网所经过路由器的地图。

重复运行 Traceroute 程序,得到的路由器信息会不一样,这是因为每一个路由器为 IP数据报 选择的路径不一定相同。

The perfect is the enemy of the good

TCP/IP 四层模型使得数据在网络中的传递速度十分之快,但是同时它也有很多的缺陷。
IP 做了最大的努力使得数据报能够从一个网络传递到另外一个网络。
IP 没有做到的是,保证数据传输的可靠性,它并不能保证数据能够安全的到达目的地。

2016/8/2

posted @ 2016-07-31 15:19  Wasdns  阅读(214)  评论(0编辑  收藏  举报