【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 ...
随机推荐
- js-jquery-对象与JSON字符串互相转换
1:jQuery插件支持的转换方式 代码如下: String→Object$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转 ...
- loadrunner 接口性能脚本编写(Get请求和Post请求)
前段时间接触了一下loadrunner的接口性能测试,然后尝试了一下手动编写脚本,毕竟录制这种东西,不是每次都能通的,而且录制下来的脚本,通常是有很多其他杂七杂八的请求夹杂在中间,没有达到真正的压测接 ...
- testng入门教程13同文件数据驱动
下面是@DataProvider有name和没有name时 有name的时候可以引用name 即:@DataProvider(name="testData")----------& ...
- 使用JDBC+POI把Excel中的数据导出到MySQL
POI是Apache的一套读MS文档的API,用它还是可以比较方便的读取Office文档的.目前支持Word,Excel,PowerPoint生成的文档,还有Visio和Publisher的. htt ...
- python-计算器实现
# 开发一个简单的python计算器# 实现加减乘除及括号优先级解析# 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * ...
- http协议基础(四)http状态码
一:http状态码 表示客户端http请求的返回结果.标记服务器端的处理是否正常.通知出现的错误等工作 状态码的类别如下: http状态码种类繁多,大概有60多种,实际上经常使用的只有14种,下面为一 ...
- centos安装samba
yum -y install samba samba-client samba-swat /etc/init.d/smb start chkconfig --level 35 smb on cp -p ...
- Maven的常用功能
一.jar包管理(仓库) 最佳实践: 1:排除依赖 pom中依赖了某个第三方API,此API又依赖其它API,有可能出问题.(必须申明排除该第三方依赖) Spring-core又隐式的依赖了commo ...
- isKindOfClass和isMemberOfClass 的区别
判断对象类型 -(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例 -(BOOL) isMemberOfClass: classObj 判断是否是这个类 ...
- Java实现递归将嵌套Map里的字段名由驼峰转为下划线
摘要: 使用Java语言递归地将Map里的字段名由驼峰转下划线.通过此例可以学习如何递归地解析任意嵌套的List-Map容器结构. 难度:初级 概述 在进行多语言混合编程时,由于编程规范的不同, 有时 ...