[转]技术往事:改变世界的TCP/IP协议

原文链接 :
http://www.52im.net/thread-520-1-1.html

1、前言

作为应用层开发人员,接触最多的网络协议通常都是传输层的TCP(与之同处一层的另一个重要协议是UDP协议),但对于IP协议,对于应用程序员来说更多的印象还是IP地址这个东西,再往深一点也就很难说的清楚。

本文将简要回故TCP/IP协议的过去、简单介绍TCP/IP协议族的关系,并与大家一起直观地分享由TCP/IP协议族所构建的虚拟网络与真实世界的“连接”情况。

2、TCP/IP协议简介

互联网协议族(英语:Internet Protocol Suite,缩写为IPS),是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为TCP/IP协议族(英语:TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP协议。因为这个协议家族的两个核心协议,包括TCP(传输控制协议)和IP(网际协议),为这个家族中最早通过的标准。

对于应用层开发人员,接触最多的网络协议通常都是传输层的TCP,为什么这么说,因为再往上的应用层协议,如:HTTP、HTTPS、POP3、SMTP、RPC、FTP、TELNET等等都是基于TCP传输层协议。但对于IP协议,对于应用程序员来说更多的印象还是IP地址这个东西,实际上IP协议是位于TCP协议之下的网络层,对于应用层程序员来说很难直接接触。

下面这张图,直接的反映了TCP/IP协议族的关系情况:
[转]技术往事:改变世界的TCP/IP协议

3、TCP/IP协议之父

*对于罗伯特·卡恩的介绍:

常称鲍勃·卡恩(Bob Kahn),生于美国纽约州纽约市布鲁克林区,发明了TCP协议,并与文特·瑟夫一起发明了IP协议;这两个协议成为互联网存在基石。

*对于文顿·瑟夫的介绍:

文顿·格雷·瑟夫(英语:Vinton Gray Cerf,1943年6月23日-),昵称为文特·瑟夫(Vint Cerf ),生于美国康涅狄格州纽黑文,计算机科学家,因与罗伯特·卡恩设计了TCP/IP协议和互联网基础架构而被共同称为“互联网之父”。

文顿·瑟夫的履历:

  • 生于1943年,童年时酷爱算术和科学,1965年在斯坦福大学获得了数学学士学位。
  • 曾就职于IBM公司,1967年,考取了美国加州大学研究生院,取得计算机科学博士学位。
  • 1972年-1976年,任教斯坦福大学,其间与罗伯特·卡恩一道领导TCP/IP协议的研发小组。
  • 1997年12月,获得美国国家技术勋章 。
  • 现任ICANN(互联网名字和号码分配机构)主席,兼任美国MCI公司技术战略高级副总裁。

布什总统为罗伯特·卡恩(中者)和文特·瑟夫(左者)颁发勋章:
[转]技术往事:改变世界的TCP/IP协议

4、见证互联网诞生

1969年8月30日,由BBN公司制造的第一台“接口信息处理机”IMP1,在预定日期前2天运抵UCLA。美国加州大学洛杉矶分校(UCLA)计算机系教授、著名的网络先驱人物克兰罗克带着40多名工程技术人员和研究生进行安装和调试。10月初,第二台IMP2运到阿帕网试验的第二节点斯坦福研究院(SRI)。

经过数百人一年多时间的紧张研究,阿帕网远程联网试验即将正式实施。

不久后,1969年11月,第三台IMP3抵达阿帕网第三节点——加州大学圣巴巴拉分校(UCSB);1969年12月,最后一台供试验的IMP4在阿帕网第四节点——犹他大学(Utah)安装成功,基本实现了罗伯茨规划的设计蓝图。于是,具有4个节点阿帕网(ARPANet)正式启用,人类社会从此跨进了网络时代。

BBN程序员团队合影:
[转]技术往事:改变世界的TCP/IP协议

见证首次互联网连接实验的工作日志:
[转]技术往事:改变世界的TCP/IP协议

当时IMP1与主机Sigma-7的连接现场:
[转]技术往事:改变世界的TCP/IP协议

5、TCP/IP让网络变成真正的“互联网”

  1. 早期的网络并不实用

    把两台计算机连在一起,只是迈出了建立互联网的一小步。人们很快发现,如果要把更多的不同型号的计算机,通过不同规格的网络连接在一起,还要让它们能共享内容,就非得发明一套更先进的技术不可。

    假如看到互联网发明之初的那股子混乱劲儿,熟练操作着智能手机、利用无线信号进行视频对话的现代人可能会觉得难以置信。阿帕网问世之后,美国军方很快采纳了这一技术,但是,接入网络的电脑越来越多,造成发送信息的计算机很难在庞杂的网络中定位目标计算机。并且,最初的网络缺少纠错功能,数据在传输过程中一旦出现错误,网络就可能停止运行。出错电脑增多,使得网络运行效率大打折扣。

  2. TCP/IP协议诞生

    如今大名鼎鼎的两位科学家、TCP/IP协议的发明者——罗伯特·卡恩和文顿·瑟夫就是在这时开始了他们的重要工作。他们恐怕也是这一群拥有“互联网之父”头衔的科学家中知名度最高的。他们都获得过“计算机科学界的诺贝尔奖”——图灵奖,瑟夫还曾任谷歌公司的全球副总裁和首席互联网专家。

    两位科学家首先着眼于给每台电脑都分配一个唯一的确定的地址,就像住宅的门牌号一样,有了它快递员才能把包裹准确投递到位——这就是IP。而TCP则负责监督传输过程,一出现问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。这套思想直接导致了一种新设备——路由器的出现。

    在1973年问世并被持续不断改进的TCP/IP协议至今仍然是全球互联网得以稳定运作的保证。通过这项技术,两位科学家使信息传输的可靠性完全由主机设备保障,而与连接这些主机的网络硬件的材质与形态无关。人们评价说,TCP/IP技术将最终可以运行在“两个罐子和一根弦”上,甚至可以用信鸽来代替网络。

    1974年,人们亲眼见证了TCP/IP协议的成功。在这场实验中,科学家将数据包在卫星网络和陆地电缆之间反复传输,贯穿欧洲和美国的电脑系统,全程9.4万公里,没有丢失一个数据位。同年,美国*无条件公布了TCP/IP协议的核心技术,世界范围内的互联网浪潮随之兴起。

  3. 假设:如果将TCP/IP申请专利,世界首富还会是盖茨吗?

“全世界已经有超过10亿人在使用互联网。” 文顿·瑟夫说,“坦率说,三十多年前研究TCP/IP的时候,我们没有想到这项技术会得到如此广泛的运用。”
“申请专利从实际的角度是行不通的,如果新技术不是无偿和免费的话,人们就会远离我们而去。” 文特·瑟夫坚持将今天互联网成功的原因之一归结于他和罗伯特·卡恩没有申请专利,把TCP/IP视为私有财产。

1973年,文特·瑟夫和罗伯特·卡恩在设计互联网的时候,做出一项重要决定,一定要让电脑和电脑之间的沟通敞开和透明;1975年,开始布设互联网的时候,两人一致决定要把这个礼物贡献给人们,让大家*的分享。

TCP/IP协议发明人文顿·瑟夫:
[转]技术往事:改变世界的TCP/IP协议

6、如今的互联网

如今,TCP/IP协议让互联网越来越远,毫不夸张的说,没有这张“网”的世界将不能成为21世纪。“网”一直处于虑拟世界,看不见、摸不着,连接世界的互联网你有没有想过到底是什么样子的?一起来看看。

看起来是下面这个样子的(由Opte工程组绘制的互联网地图):

  1. 2003年的“互联网”
    [转]技术往事:改变世界的TCP/IP协议

  2. 2010年的“互联网”
    [转]技术往事:改变世界的TCP/IP协议

  3. 2015年的“互联网”
    [转]技术往事:改变世界的TCP/IP协议

  4. 以上图是根据什么绘制出来的?
    是基于真实的世界互联网真实路由节点绘制出来的,具体流程如下图所示:
    [转]技术往事:改变世界的TCP/IP协议

7、通过TCP/IP是如何缩短地球上人与人的距离?

答案是通过各国铺设在海地的通讯光缆实现的。下面一起来看看截至2015年国与国之间通过海底光缆的“连接”情况。

2015年全球互联网跨国通信光缆的连接情况图:
[转]技术往事:改变世界的TCP/IP协议

2015年全球互联网跨国通信光缆的连接情况图(中国部分放大显示):
[转]技术往事:改变世界的TCP/IP协议

补充:这张图里可以看到,中国的跨国海底光缆并不多,连接国外的网站延迟这么大也就是情理之中的事了。

一张更吊炸天的全球互联网跨国通信光缆的连接情况图(2015年版):
[转]技术往事:改变世界的TCP/IP协议

好吧,我要是麻花腾,也做一张类似的QQ、微信的连接情况,估计会有拿破仑征服欧洲那样的成就感。。。

8、TCP/IP重新定义了国与国、人与人之间的距离单位

对于互联网世界来说,网络之间的距离可以用“网络延迟”来衡量(单位通常是毫秒),从真实世界的角度讲,正是TCP/IP协议的威力,重新定义了国与国、人与人之间的距离单位,让“连接”变的没有距离感。

你可能会好奇,我们与世界各主要国家的通信延迟到底是多少呢?我们一起来看看下面几个图。

从香港发起的通信,与世界主要节点的延迟示意图:

[转]技术往事:改变世界的TCP/IP协议

说明:香港到美国的延迟大约是150ms、到英国超过200ms。

从英国发起的通信,与世界主要节点的延迟示意图:
[转]技术往事:改变世界的TCP/IP协议

说明:从英国到中国的延迟大约是200ms。

从美国发起的通信,与世界主要节点的延迟示意图:
[转]技术往事:改变世界的TCP/IP协议
说明:从美国到中国的延迟大约是120ms、到日本约80ms(果然是盟(er)友(zi))。

上一篇:SQL多表连接查询(详细实例)(转)


下一篇:Laravel技巧:使用load、with预加载 区别