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

【Coursera】Fifth week(3)的更多相关文章

  1. 【Coursera】Security Introduction -Ninth Week(2)

    对于公钥系统,我们现在已经有了保证它 Confidentially 的一种方法:SSL.SSL利用了公钥的概念. 那么 who we are talking to? Integrity Certifi ...

  2. 【Coursera】Security Introduction -Ninth Week(1)

    前言 Coursera 的 Internet History,Technology,and Security 进入最后一周的学习了,在这最后一周内,需要进行的内容是 public-key 公钥系统的讲 ...

  3. 【Coursera】Security Introduction -Eighth Week(2)

    Review -Terminology(术语): Confidentiallity & Integrity 泄密 & 欺骗 Confidentiallity: Prevent unau ...

  4. 【Coursera】History: Dawn of Electronic Computing学后小结

    今天学习了Coursera上University of Michigan开的互联网的历史.技术和安全课程的FirstWeek内容. 先是吐槽下这个Coursera,认证非常麻烦,PC端需要摄像头拍照. ...

  5. 【Coursera】支持向量机

    一.最大间隔分类器 1. 函数间隔:\(γ^{i} = y^{i}(w^{T} x + b)\), 改变w和b的量级,对分类结果不会产生任何影响,但是会改变函数间隔的大小.因此,直接对函数间隔求最大值 ...

  6. 【Coursera】Internet History 读书笔记

    前言 这个Internet History 有些令人劝退.电脑无法播放视频.手机不能播放.最后百度了改了hosts文件才可以. 附上解决方法: 解决coursera可以登录但无法播放视频 第一周 第三 ...

  7. 【Coursera】Security Introduction -Summary

    对这门课程的安全部分进行一个小结. 往期随笔 第八周第一节 第八周第二节 第九周第一节 第九周第二节 前言:为什么互联网要提及安全 因为security牵扯到我们每一个人,有人每时每刻都想着要偷取别人 ...

  8. 【Coursera】Security Introduction -Eighth Week(1)

    Security Introduction People With Bad Intent 今天,Bob 向 Alice 发送了一条 "Hello,Allice!" 的信息,他们希望 ...

  9. 【Coursera】Seventh Week

    Application Layer:Use the services of the TCP layer Quick Review Link Layer(Ethernet):gets the data ...

  10. 【Coursera】Sixth Week(2)

    DNS:Domain Name System The Domain Name System convert user-friendly names,like www.umich.edu, to net ...

随机推荐

  1. 【Flask】关于Flask的request属性

    前言 在进行Flask开发中,前端需要发送不同的请求及各种带参数的方式,比如GET方法在URL后面带参数和POST在BODY带参数,有时候又是POST的表单提交方式,这个时候就需要从request提取 ...

  2. 搭建基于HTTP协议内网yum仓库

    目录 1. 前言 2. 把rpm包下载到本地 3. 配置nginx对外提供服务 4. 配置本地repo文件 5. 生成repodata信息 6. 检查及使用 7. 对管理机器上的仓库进行更新 参考资料 ...

  3. Py中pyplot之subplot例子【转载】

    转自:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplot.html 1.有NaN的余弦图subplot import numpy ...

  4. [LeetCode] 832. Flipping an Image_Easy

    Given a binary matrix A, we want to flip the image horizontally, then invert it, and return the resu ...

  5. js五星好评

    一般我们在一些购物以及美食的网站都会看到五星好评之类的,一下是使用js制作的五星好评! <!DOCTYPE html> <html lang="en"> & ...

  6. Summary: Java Inheritance

    In this tutorial we will discuss about the inheritance in Java. The most fundamental element of Java ...

  7. 【Rewrite重定向】Nginx使用rewrite重新定向

    使用nginx做重新定向. nginx参考网址:http://blog.sina.com.cn/s/blog_97688f8e0100zws5.html 语法规则: location [=|~|~*| ...

  8. Redis缓存穿透问题及解决方案

    上周在工作中遇到了一个问题场景,即查询商品的配件信息时(商品:配件为1:N的关系),如若商品并未配置配件信息,则查数据库为空,且不会加入缓存,这就会导致,下次在查询同样商品的配件时,由于缓存未命中,则 ...

  9. yii2中关联查询

    yii2 ActiveRecord多表关联以及多表关联搜索的实现 一个老生常谈的问题.最近通过群里的反馈,觉得很多人还是没有去理解这个问题.今天把这个问题讲明白了,看看yii2 ActiveRecor ...

  10. Java SE 基础知识(String,Array)

    String 类: 1. 对于String对象的相等性判断来说,请使用equals()方法,而不是==.String的equals()是判断当前字符串与传进来的字符串的内容是否一致. 2. Strin ...