【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
【Coursera】Fifth week(3)的更多相关文章
- 【Coursera】Security Introduction -Ninth Week(2)
对于公钥系统,我们现在已经有了保证它 Confidentially 的一种方法:SSL.SSL利用了公钥的概念. 那么 who we are talking to? Integrity Certifi ...
- 【Coursera】Security Introduction -Ninth Week(1)
前言 Coursera 的 Internet History,Technology,and Security 进入最后一周的学习了,在这最后一周内,需要进行的内容是 public-key 公钥系统的讲 ...
- 【Coursera】Security Introduction -Eighth Week(2)
Review -Terminology(术语): Confidentiallity & Integrity 泄密 & 欺骗 Confidentiallity: Prevent unau ...
- 【Coursera】History: Dawn of Electronic Computing学后小结
今天学习了Coursera上University of Michigan开的互联网的历史.技术和安全课程的FirstWeek内容. 先是吐槽下这个Coursera,认证非常麻烦,PC端需要摄像头拍照. ...
- 【Coursera】支持向量机
一.最大间隔分类器 1. 函数间隔:\(γ^{i} = y^{i}(w^{T} x + b)\), 改变w和b的量级,对分类结果不会产生任何影响,但是会改变函数间隔的大小.因此,直接对函数间隔求最大值 ...
- 【Coursera】Internet History 读书笔记
前言 这个Internet History 有些令人劝退.电脑无法播放视频.手机不能播放.最后百度了改了hosts文件才可以. 附上解决方法: 解决coursera可以登录但无法播放视频 第一周 第三 ...
- 【Coursera】Security Introduction -Summary
对这门课程的安全部分进行一个小结. 往期随笔 第八周第一节 第八周第二节 第九周第一节 第九周第二节 前言:为什么互联网要提及安全 因为security牵扯到我们每一个人,有人每时每刻都想着要偷取别人 ...
- 【Coursera】Security Introduction -Eighth Week(1)
Security Introduction People With Bad Intent 今天,Bob 向 Alice 发送了一条 "Hello,Allice!" 的信息,他们希望 ...
- 【Coursera】Seventh Week
Application Layer:Use the services of the TCP layer Quick Review Link Layer(Ethernet):gets the data ...
- 【Coursera】Sixth Week(2)
DNS:Domain Name System The Domain Name System convert user-friendly names,like www.umich.edu, to net ...
随机推荐
- java maven项目找不到jconsole-1.8.0.jar和tools-1.8.0.jar包
今天在整合jar包时候,出现了 这是我导入的jar坐标 <dependency> <groupId>com.alibaba</groupId> <artifa ...
- 置换检验(Permutation Test)学习[转载]
转自:https://www.cnblogs.com/bnuvincent/p/6813785.html http://www.bioinfo-scrounger.com/archives/564 1 ...
- python2.7 环境配置
1.安装python2.7.8之后,配置环境变量:在path中配置python的安装路径 在cmd框中执行python,进入到python命令执行,即为配置成功. 2.执行过程中,提示缺少xlutil ...
- MVC中Controller与View之间的数据传递
一.Controller向View传递数据 Controller向View传递数据有3种形式: 通过ViewData传递 在Controller里面的Action方法中定义ViewData,并且赋值, ...
- 改善深层神经网络_优化算法_mini-batch梯度下降、指数加权平均、动量梯度下降、RMSprop、Adam优化、学习率衰减
1.mini-batch梯度下降 在前面学习向量化时,知道了可以将训练样本横向堆叠,形成一个输入矩阵和对应的输出矩阵: 当数据量不是太大时,这样做当然会充分利用向量化的优点,一次训练中就可以将所有训练 ...
- node初识——node中的require方法与require.js的区别
出处:http://blog.csdn.net/u013613428/article/details/51966500 作为一个前端的新手,总是诧异于js的模块载入方式,看到了通过requireJs提 ...
- The Air Jordan 11 Gym Red will be available December 9
A few years ago Carmelo Anthony set the internet on fire when he was spotted rocking a never before ...
- Docker深入浅出1
Docker是一个开源的应用容器引擎,基于GO语言并遵从apache2.0协议开源. Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植的容器中,然后发布到任何流行的Linux机器上 ...
- Servlet—文件上传
什么是Commons? Apache的一个开源子项目,Commons-FileUpload是 Conmmons下子项目. Commons-FileUpload的作用? 1:该组件可以方便地嵌入JSP页 ...
- UVM中的regmodel建模(一)
UVM中的regmodel继承自VMM的RAL(Register Abstract Layer),现在可以先将寄存器模型进行XML建模,再通过Synopsys 家的工具ralgen来直接生成regmo ...