1、前言

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

本文将简要回故TCP/IP协议的过去、简单介绍TCP/IP协议族的关系,并与大家一起直观地分享由TCP/IP协议族所构建的虚拟网络与真实世界的“连接”情况。(本文同步发布于:http://www.52im.net/thread-520-1-1.html)

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协议族的关系情况(高清下载点此进入):

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公司技术战略高级副总裁。

布什总统为罗伯特·卡恩(中者)和文特·瑟夫(左者)颁发勋章:

1997年12月,布什总统为表彰罗伯特·卡恩和文特·瑟夫为互联网的建立和发展所做的贡献而给他俩都颁发的美国国家技术勋章。

罗伯特·卡恩(左者)与文特·瑟夫(右者)一起接受访谈:

4、见证互联网诞生

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

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

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

BBN程序员团队合影:

见证首次互联网连接实验的工作日志:

当时IMP1与主机Sigma-7的连接现场:

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

5.1 早期的网络并不实用

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

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

5.2 TCP/IP协议诞生

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

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

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

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

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

“全世界已经有超过10亿人在使用互联网。” 文顿·瑟夫说,“坦率说,三十多年前研究TCP/IP的时候,我们没有想到这项技术会得到如此广泛的运用。”

TCP/IP协议发明人文顿·瑟夫:
 

“申请专利从实际的角度是行不通的,如果新技术不是无偿和免费的话,人们就会远离我们而去。” 文特·瑟夫坚持将今天互联网成功的原因之一归结于他和罗伯特·卡恩没有申请专利,把TCP/IP视为私有财产。

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

6、如今的互联网

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

看起来是下面这个样子的(由Opte工程组绘制的互联网地图),原图及说明请点此查看

6.1 2003年的“互联网” (原图及说明请点此查看)

6.2 2010年的“互联网” (原图及说明请点此查看)

6.3 2015年的“互联网” (原图及说明请点此查看)

6.4 以上图是根据什么绘制出来的?

是基于真实的世界互联网真实路由节点绘制出来的,具体流程如下图所示:

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

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

2015年全球互联网跨国通信光缆的连接情况图:原图点此进入

2015年全球互联网跨国通信光缆的连接情况图(中国部分放大显示):原图点此进入
 
补充:这张图里可以看到,中国的跨国海底光缆并不多,连接国外的网站延迟这么大也就是情理之中的事了。

一张更吊炸天的全球互联网跨国通信光缆的连接情况图(2015年版):原图点此进入
 
好吧,我要是麻花腾,也做一张类似的QQ、微信的连接情况,估计会有拿破仑征服欧洲那样的成就感。。。

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

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

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

从香港发起的通信,与世界主要节点的延迟示意图:
 
说明:香港到美国的延迟大约是150ms、到英国超过200ms。

从英国发起的通信,与世界主要节点的延迟示意图:
 
说明:从英国到中国的延迟大约是200ms。

从美国发起的通信,与世界主要节点的延迟示意图:
 
说明:从美国到中国的延迟大约是120ms、到日本约80ms(果然是盟友)。

(本文同步发布于:http://www.52im.net/thread-520-1-1.html)

【原创】技术往事:改变世界的TCP/IP协议(珍贵多图、手机慎点)的更多相关文章

  1. 技术往事:改变世界的TCP/IP协议(珍贵多图、手机慎点)

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

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

    原文链接 : http://www.52im.net/thread-520-1-1.html 1.前言 作为应用层开发人员,接触最多的网络协议通常都是传输层的TCP(与之同处一层的另一个重要协议是UD ...

  3. Ripple 20:Treck TCP/IP协议漏洞技术分析

    本文由“合天智汇”公众号首发,作者:b1ngo Ripple 20:Treck TCP/IP协议漏洞技术分析 Ripple20是一系列影响数亿台设备的0day(19个),是JSOF研究实验室在Trec ...

  4. 读书笔记——网络编程与开发技术(3)基于TCP/IP协议的网络编程相关知识

    TCP/IP协议:数据链路层,网络层,传输层,应用层. IP地址分为5类:A类.B类.C类.D类.E类. (A类.B类.C类是基本类,D类多用于多播传送,E类为保留类.) "*"表 ...

  5. iOS的TCP/IP协议族剖析&&Socket

    原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0 简介 该篇文章主要回顾--TCP/IP协议族中的TCP/UDP.HTTP:还有S ...

  6. 从网卡发送数据再谈TCP/IP协议—网络传输速度计算-网卡构造

    在<在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP>里面提到 单个TCP包每次打包1448字节的数据进行发送(以太网Ethernet最大的数据帧是1518字节,以 ...

  7. TCP /IP协议详解【转】

    转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...

  8. 深入浅出-TCP/IP协议族剖析&&Socket

    Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0 #简介 该篇文章主要回顾–TCP/I ...

  9. TCP/IP协议 (图解+秒懂+史上最全)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

随机推荐

  1. 浅谈PHP7新特性

    1. 运算符(NULL 合并运算符) 把这个放在第一个说是因为我觉得它很有用.用法: $a = $_GET['a'] ?? 1; 它相当于: $a = isset($_GET['a']) ? $_GE ...

  2. asp.net 基礎部分一

    过程: 客户端像服务器发送一个请求,iis服务器接收到请求的数据,并且将数据交给c#程序进行处理,并且对数据库进行操作,并且将处理到的结果响应给浏览器客户端 过程2:第一次浏览器请求,后端应该发一个表 ...

  3. 使用Aspose.Cells读取Excel

      最新更新请访问: http://denghejun.github.io Aspose.Cells读取Excel非常方便,以下是一个简单的实现读取和导出Excel的操作类: 以下是Aspose.Ce ...

  4. 使用libjpeg.framework压缩UIImage

    +(void)writeFile:(NSString *)filePath withQuality:(int)quality { //初始化图片参数 UIImage *image=[UIImage i ...

  5. 一劳永逸:域名支持通配符,ASP.NET Core中配置CORS更轻松

    ASP.NET Core 内置了对 CORS 的支持,使用很简单,只需先在 Startup 的 ConfigureServices() 中添加 CORS 策略: public void Configu ...

  6. ASP.Net请求处理机制初步探索之旅 - Part 5 ASP.Net MVC请求处理流程

    好听的歌 我一直觉得看一篇文章再听一首好听的歌,真是种享受.于是,我在这里嵌入一首好听的歌,当然你觉得不想听的话可以点击停止,歌曲 from 王菲 <梦中人>: --> 开篇:上一篇 ...

  7. UITest 单元测试常用的断言

    XCTFail(format…) 生成一个失败的测试: XCTFail(@"Fail"); XCTAssertNil(a1, format...) 为空判断, a1 为空时通过,反 ...

  8. 【requireJS源码学习01】了解整个requireJS的结构

    前言 现在工作中基本离不开requireJS这种模块管理工具了,之前一直在用,但是对其原理不甚熟悉,整两天我们来试着学习其源码,而后在探寻其背后的AMD思想吧 于是今天的目标是熟悉requireJS整 ...

  9. thinkPHP入门

    什么是框架 框架就是一定结构的代码,框架提供一个开发web程序的基础架构以及常用的功能 代码,PHP框架的web程序开发拜倒了流水线上. php框架就是一定要按别人规定好的架构编写. php开发框架有 ...

  10. JS原生第八篇 (帅哥)

    1.1 复习     1. clientX          clientWidth   可视区域的宽度 clientWidth     width  +  padding offsetWidth   ...