7.计算机网络的发展 计算机网络发展背景 原因 阿帕网与计算机网络 通信方式 电路 报文 分组 包 交换 卡恩 瑟夫 网络控制协议 NCP TCP ip诞生发展 tcp 协议族 应用编程接口

任何事物的创造发明都来源于需求和欲望

而科学技术的发展则推动实现了目标

互联网发展的编年体记录

百度百科:

https://baike.baidu.com/item/%E4%BA%92%E8%81%94%E7%BD%91%E5%8F%91%E5%B1%95%E5%8F%B2/4635625

"阿帕"(ARPA),是美国高级研究计划署(Advanced Research Project Agency)的简称。

阿帕网为美国国防部高级研究计划署开发的世界上第一个运营的封包交换网络

它是全球互联网的始祖。

背景

从某种意义上,Internet经常被认为是美苏冷战的产物。

在美国,20世纪60年代是一个很特殊的时代。

60年代初,古巴核导弹危机发生,美国和原苏联之间的冷战状态随之升温,核毁灭的威胁成了人们日常生活的话题。

在美国对古巴封锁的同时,越南战争爆发,许多第三世界国家发生政治危机。

由于美国联邦经费的刺激和公众恐惧心理的影响,"实验室冷战"也开始了。

人们认为,能否保持科学技术上的领先地位,将决定战争的胜负。

而科学技术的进步依赖于电脑领域的发展。

到了60年代末,每一个主要的联邦基金研究中心,

包括纯商业性组织、大学,都有了由美国新兴电脑工业提供的最新技术装备的电脑设备。

电脑中心互联以共享数据的思想得到了迅速发展。

观点

美国国防部认为,

如果仅有一个集中的军事指挥中心,万一这个中心被原苏联的核武器摧毁,

全国的军事指挥将处于瘫痪状态,其后果将不堪设想,

因此有必要设计这样一个分散的指挥系统——

它由一个个分散的指挥点组成,当部分指挥点被摧毁后其它点仍能正常工作,而这些分散的点又能通过某种形式的通讯网取得联系

以上来自于百度百科中阿帕网词条的释义

可以看得出来,任何东西都是需求和欲望产生的,计算机网络的发展也不例外

她不是为了给人类一个更好的生活,为了让你聊微信刷微博逛淘宝....而是为了战争!

1948年 香农 在 通信的数学理论中写道:

通信的基本问题是在一点精确地或者近似的复现在另一个点所选取的讯息,这些讯息往往都是有意义的

通信的本质是数据交换,只有实现了数据的交换,才能证明线路的连通性

通信方式有以下几种:

电路交换(CS:circuit switching)是通信网中最早出现的一种交换方式,也是应用最普遍的一种交换方式,主要应用于电话通信网中,完成电话交换。

建立连接时产生时延,既实用模拟信号,又适用数字信号。

独占性/实时性好/可靠性高

由于电路交换的特点,建立连接后,无论是否通话都将占用资源

后来出现了报文交换方式

报文交换以报文为数据交换的单位,报文携带有目标地址、源地址等信息,在交换结点采用存储转发的传输方式不需要为通信双方预先建立一条专用的通信线路

由于数据进入交换结点后要经历存储、转发这一过程,从而引起转发时延,只适用数字信号

报文长度没有限制,而每个中间结点都要完整地接收传来的整个报文,对缓冲有较大要求

再后来出现了分组交换

1961第一篇有关包交换(PS  Packet switching)的论文。

1962 MIT的J.C.R. Licklider和W. Clark发表On-Line Man Computer Communication,(8月)

包交换就是分组交换

分组交换仍采用存储转发传输方式

但将一个长报文先分割为若干个较短的分组,然后把这些分组(携带源、目的地址和编号信息)逐个地发送出去

分组交换是现代计算机网络通信的理论基础

随后包交换从理论应用到实践

1965年 ARPA资助进行分时计算机系统的合作网络研究。

随后ARPANET被提上了日程

1968年 开始着手建设ARPANET

它利用了无限分组交换网与卫星通信网。

通过专门的接口信号处理机(IMP)和专门的通信线路,相互连接把美国的几个军事及研究用电脑主机联接起来。

起初是为了便于这些学校之间互相共享资源而开发的。

ARPANET采用了包交换机制。

1968年 Bolt Beranek and Newman、Inc.公司(BBN)获得建立接口消息处理机(IMP)中的包交换部分的合同。

IMP是一种专用于通信的计算机,有些IMP之间直接相连,有些IMP之间必须经过其他的IMP间接相连。当IMP收到一个报文后要根据报文的目标地址决定把该报文提交给与它相连的主机还是转发到下一个IMP,这种通信方式叫做存储-转发通信。

1969年 使用BBN公司开发的接口消息处理器IMP建立节点(配有12K存储器的Honeywell DDP-516小型计算机);

AT&T公司提供速率为50kpbs的通信线路。

最初ARPAnet只联结4台主机

从军事要求上是置于美国国防部高级机密的保护之下,从技术上它还不具备向外推广的条件。

在阿帕网(ARPA)产生运作之初,通过接口信号处理机实现互联的电脑并不多,大部分电脑相互之间不兼容

在一台电脑上完成的工作,很难拿到另一台电脑上去用,想让硬件和软件都不一样的电脑联网,也有很多困难。

当时美国的状况是

陆军用的电脑是DEC系列产品,海军用的电脑是Honeywell中标机器,空军用的是IBM公司中标的电脑

每一个军种的电脑在各自的系里都运行良好,但却有一个大弊病:不能共享资源。

69年9月阿帕网诞生、运行后,才发现各个IMP连接的时候,需要考虑用各种电脑都认可的信号来打开通信管道,数据通过后还要关闭通道。

否则这些IMP不会知道什么时候应该接收信号,什么时候该结束,这就是我们所说的通信“协议”的概念。

1970年12月制定出来了最初的通信协议由卡恩开发、瑟夫参与的“网络控制协议”(NCP

TCP/IP

可以看得出来,计算机网络中的通信协议,自此时开始被摆上台面

“包切换”理论为网络之间的联接方式提供了理论基础。

卡恩  Bob Kahn  https://en.wikipedia.org/wiki/Bob_Kahn

在自己研究的基础上,认识到只有深入理解各种操作系统的细节才能建立一种对各种操作系统普适的协议

73年卡恩请 瑟夫Vint Cerf https://en.wikipedia.org/wiki/Vint_Cerf

一起考虑这个协议的各个细节,

他们这次合作的结果产生了在开放系统下的所有网民和网管人员都在使用的“传输控制协议”

(TCP,Transmission-Control Protocol)和“因特网协议”(IP,Internet Protocol)即TCP/IP协议。

TCP/IP参考模型是首先由ARPANET所使用的网络体系结构。

这个体系结构在它的两个主要协议出现以后被称为TCP/IP参考模型(TCP/IP Reference Model)。

这一网络协议共分为四层:网络接口层、互联网层、传输层和应用层

TCP/IP不是一个协议,而是一个协议族的统称

对于程序员来说,经常说到的网络的发展

其实可以狭义的理解为TCP/IP协议族中各个层次里面各个协议的发展

以及通信中涉及到的各个重点概念  IP地址  端口号 域名系统 DNS等等

当然还有最重要的就是  应用编程接口  也即是操作系统提供给我们的可以进行网络编程的接口

继续狭隘一点的话,应用编程接口 就成了应用程序员唯一直接接触的东西了

现在说的话就是Socket,几乎所有的应用程序都是采用socket

socket到底是什么?

随着操作系统的发展,1983年,TCP/IP被Unix 4.2BSD系统采用.

随着Unix的成功,TCP/IP逐步成为Unix机器的标准网络协议.

所谓的采用也就是用程序代码按照TCP/IP的逻辑实现了两个应用程序相互通信的功能

我们之前解释过操作系统的作用了

既然操作系统有了这个功能,自然会提供出来编程接口

这样应用程序员就不在需要去实现复杂的通信代码了

并不是每一项技术的出现,都是高屋建瓴,Socket也即是如此

TCP/IP很快被集成到Unix中之后,出现了许多成熟的TCP/IP应用程序接口(API)

这个API就是Socket 接口

Socket 起源于Unix  WINDOWS下也有一套socket规范

Socket是在TCP/IP模型分层的应用层和传输层之间的一个编程接口

也可以理解为对于应用程序员中编写需要通信的程序来说

TCP/IP模型中应用层和传输层又多了一个Socket层

只是逻辑思维的抽象理解,不是真的存在的

把复杂的TCP/IP协议族隐藏在Socket接口后面,

对用户来说,这一组接口,就是整个TCP/IP协议族的实现

让Socket去组织数据,以符合指定的协议。

这不就是之前说过的抽象封装规范的概念嘛

再次明确下Socket到底是什么:

Socket本质是编程接口(API),对TCP/IP的封装,也可以说是一种通信约定或者方式

两台计算机想要通信需要IP地址,协议,端口号

IP地址是为了实现网络中不同计算机之间的通信给每台计算机设置的唯一的标识

目前计算机所使用的通信协议是TCP/IP协议栈

端口是为了实现计算机中不同程序间的通信,给同一个主机每个不同的应用程序设置的唯一标识

IP地址和端口组合在一起就构成了一个socket

网络通信本质是socket之间的通信

数据在两个socket之间通过IO传输

Socket之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。

完整内容点击标题进入

《计算机软硬件发展系列个人理解与总结-导航页》

1.计算机发展阶段

2.计算机组成-数字逻辑电路

3.操作系统简单介绍

4.计算机启动过程的简单介绍

5.计算机发展个人理解-电路终究是电路

6.计算机语言的发展

7.计算机网络的发展

8.web的发展

9.java web的发展

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我和PYTHON有个约会

大牧夜话——爬虫篇-预告片PYTHON爬虫-江湖夜话

应大家的要求,最近打算整理一下PYTHON爬虫的东东,希望能对入门的童鞋们有所助益!本人技术一般水平有限,如有不妥请联系或者私信本人,互相进步。 内容会同步在...

992
来自专栏SDNLAB

我与SDN的缘分:一名初学者的学习之路与心得

SDN,Software Defined Network,是对传统网络架构的一次革新。经过短短三四个月的学习和实践,我本着授人以渔的理念,辅以我的一些理解,将我...

2884
来自专栏牛客网

2017年终总结:秋招心路历程+安卓/java知识总结Android 知识点总结Java知识点总结

一直想写一篇年终总结的,但是又不知道写点什么,感觉没有什么可总结的,但是今年有很多事情还是值得回顾纪念的,之后再来看这些东西应该会感触颇多。2017对我来说是值...

4498
来自专栏phodal

Serverless 应用开发指南:serverless 的 hello, world

在翻译了几篇 serverless 与物联网相关的文章之后,我开始想着好好掌握一下 serverless 的相关知识。 我对于 serverless 的第一认知...

3578
来自专栏一个会写诗的程序员的博客

20+个很棒的Android开源项目

20+个很棒的Android开源项目 本文摘自文章: 20+ Awesome Open-Source Android Apps To Boost Your D...

1372
来自专栏微信终端开发团队的专栏

关于Android N的那些事

今年3月,Google破天荒提前半年发布了Android N开发者预览版。当然,作为一个不合格的谷粉并没有第一时间体验安装,因为至今仍然能够回忆起来去年今日此门...

2996
来自专栏编程一生

实践高可用

1113
来自专栏小狼的世界

HTTP2.0之战

2009年,Google提议HTTP协议的举动引起了工业界的大讨论。当时的概念叫做 SPDY,时至今日,虽然人们对于Google的动机始终不是很清楚,但是毫无疑...

1092
来自专栏带你撸出一手好代码

做人肉代码翻译器是什么感受?

程序员编码的常规流程是通过大脑把将要实现的功能切分成一个个逻辑单元,使用编程语言将这些逻辑单元实现并组织在一起,积少成多, 形成电脑软件 缺乏经验的程序员可能...

3888
来自专栏企鹅号快讯

浅淡Python-初学者不得不说的秘密

不知道大家是否知道,Python的出现其实很偶然,是著名的“龟叔”Guido vanRossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言...

2655

扫码关注云+社区

领取腾讯云代金券