高级分布式系统-第3讲 网络与网络互联

news2024/11/15 19:52:59

万维网的诞生

1957年10月4日, 苏联发射了人类第一颗人造卫星—斯普特尼克一号

美国政府震惊不已。 他们认为, 在日趋激烈的冷战对抗中, 自己已经全面落后于苏联。

为了扭转这一局面, 美国国防部很快于1958 年 2 月组建了一个神秘的科研部门 ——ARPA( Advanced Research Projects Agency,高级研究计划局) 。

A R PA 信 息 处 理 技 术 办 公 室 ( I P TO ,Information Processing Techniques Office) 的第三任主管罗伯特 · 泰勒( Robert Taylor) 认为应该建立一个兼容的协议, 允许所有终端之间互相通信。

美国国防部决定研究一种分散的指挥系统。 它由无数的节点组成, 当若干节点被摧毁后, 其它节点仍能相互通信。

1966 年, 新型通信网络项目完成内部立项, ARPA 将其命名为“ ARPANET( 阿帕网) ” 。

1968年, 项目的第一阶段, 拉里 · 罗伯茨计划在美国西南部建立一个四节点的网络。

四个节点之间, 采用分组交换技术, 通过专门的 IMP 设备和通信线路(由 AT&T 公司提供, 速率为 50kbps) 进行连接。

IMP, 全名叫做 Interface Message Processor( 接口消息处理机) 。 它的基础硬件其实是配有 12K 存储器的 Honeywell DDP-516 小型计算机。 IMP被视为路由器的雏形。

1969 年 8 月 30 日, 来自 BBN 公司的第一台 IMP 运抵加州大学洛杉矶分校。 伦纳德.克兰罗克教授带着 40 多名工程技术人员和研究生进行安装和调试。10 月初, 第二台 IMP 运抵斯坦福大学研究院。 不久后, 1969 年 11 月, 第三台IMP 抵达加州大学圣巴巴拉分校。 12 月, 最后一台 IMP 在第四节点犹他大学安装成功。

ARPANET 正式启用, 人类社会开始进入“ 网络时代” !

1970 年, ARPANET 通信协议, 称为网络控制协议( NCP) 。

从 1970 年开始, 加入 ARPANET 的节点数不断增加。 到 1972 年时, 节点数达到 40 个。 E-mail、 FTP 和 Telnet, 是 ARPANET 上最主要的应用。尤其是 e-mail, 占据了 75% 的流量。 网络节点的不断增加, 给 NCP 协议带来很大的压力。 这种协议对节点及用户机数量存在限制, 因此无法满足需求。

1972 年, 来自 BBN 公司的罗伯特.卡恩( Robert E. Kahn) 、 来自斯坦福大学的温顿.瑟夫( Vinton G. Cerf) 共同提出了新的传输控制协议 ——TCP( Transmission Control Protocol) 。

1978 年, 温顿 · 瑟夫、 罗伯特.卡恩、 丹尼 · 科恩( Danny Cohen) 和约翰 · 普斯特尔( Jon Postel) 将 TCP 的功能分为两个协议: 用来检测网络传输中差错的传输控制协议 TCP, 以及专门负责对不同网络进行互联的互联网协议 IP。 形成了稳定版本 TCP/IP v4。

1980 年左右, ARPA 开始研究如何将不同的网络连接起来, 提出了 TheInterneting Project( 互连网技术) 项目。 这个项目的研究成果被简称为Internet, 也就是因特网。

1984 年, 美国国家科学基金会( NSF) 建立了 NSFnet, 作为超级计算机研究中心之间的连接。 80年代末NSFnet 开始取代 ARPANET, 成为Internet 的主干网。 1990年, ARPANET寿终正寝。

1991 年 8 月 6 日, 在瑞士日内瓦的核子研究中心( CERN) 工作的英国物理学家蒂姆 · 伯纳斯 · 李 Tim Berners-Lee,正式提出了 World WideWeb,也就是如今我们非常熟悉的 www 万维网。

他还提出了 HTTP( 超文本传送协议) 和 HTML( 超文本标记语言), 设计了第一个网页浏览器, 并建立了世界上第一个 web 网站。

钱天白( 1945-1998) 是中国网络事业的奠基者, 他不仅发出了中国第一封电子邮件( 1987年) , 揭开了中国人使用互联网的序幕, 还代表中国正式注册登记了中国的顶级域名 CN( 1990年) , 并且改变了中国的 CN 顶级域名服务器放在国外的历史, 被誉为“ 中国互联网之父” 。

网络和网际互连

支持分布式系统的网络类型: 个域网、 局域网、 广域网、 城域网等,互连网络( 如互联网) 是基于这些类型的网络构造出来的。

网络原理: 计算机网络的基础是20世纪60年代发展起来的包交换技术。 它使得发送到多个地址的消息可以共享同一条通信链接。

传输方式

1:数据包传输: 长度有限的二进制数据序列( 比特或字节数组) , 以及识别源和目的计算机的寻址信息。 使用长度有限的数据包是为了 :

网络中的每台计算机能为可能到来的数据包分配足够的缓冲空间。

避免长消息不加分割地传递所引起的过度延迟。

2:数据流: 多媒体应用中视频/ 音频流的传输需要保证其速度和一定范围内的延迟。 常见为资源保留协议( RSVP)、 实时传输协议( RTP) 。

3:交换模式: 网络是一组由电路连接起来的结点组成的, 需要构建交换方式。 如下四种常用:

广播

包交换( 分组交换)

帧中继

电路交换

协议

协议: 是指为了完成给定任务, 进程间通信所要用到的一组共同约定

的规则和格式。 协议的定义包括两个重要的部分:必须交换的消息顺序规约; 消息中数据格式的规约

路由

除局域网以外其他网络都需要的功能。 数据包都必须经过一个或多个路由结点, 辗转多次才能到达。 而决定数据包传输到目的地址的路由是由路由算法负责的——由每个结点的一个网络层程序实现。

路由算法包括两个部分:

1) 必须决定每个数据包穿梭于网络时所应经过的路径。

2) 必须通过监控流量和检测配置变化或故障来动态地更新网络的知识。

每个路由器使用路由器信息协议( Router Information Protocol, RIP) 通过发送自己路由表信息的概要和邻接结点相互交换网络信息。

拥塞控制:

网络的能力受到通信链路性能和交换结点性能的限制。

网际互连:

不同的网络、 链路和物理层协议形成了不同的网络技术,为了应用需求而建立一个集成的网络为互连网络。

互联网协议: TCP/IP协议组

TCP/IP规约没有详细描述互联网数据报层以下的层, 互联网层的IP数据包会转换成可以在几乎任何底层网络或数据链路上传输的包。

IP寻址

构造主机的命名和寻址方案以及将IP数据包路由到目的地的方案。 IP地址由国际组织NIC( Network Information Center) 负责分配。

构造主机的命名和寻址方案以及将IP数据包路由到目的地的方案。

IP 协议将数据报从一个主机传到另一个主机, 如果需要的话还会经过中间路由器。

IP 协议

IP 协议将数据报从一个主机传到另一个主机, 如果需要的还会经过中间路由器。

IP 路由

互联网上的每个路由器都实现了IP层的软件, 用以提供一个路由算法。

IPV6

解决IPV4潜在的问题。 IPv6 的地址有128比特。

移动 IP

动态主机配置协议( DHCP) 使新接入网络的计算机动态获得一个在本地子网地址范围内的 IP 地址, 并从本地 DHCP 服务器上找到诸如 DNS 服务器这样的本地资源地址。

TCP和UDP

UDP 基本上是IP在传输层的一个复制。 UDP数据报被封装在一个IP数据包中, 它具有4个16位的字段构成的头部: 源端口号、 目的端口号、 长度域和校验和。 UDP 不提供传输保证, 不需要任何创建开销以及管理用的确认消息, 只适应于不需要可靠传送单个或多个消息的服务和应用。

TCP 通过基于流的编程抽象, 提供可靠传输---- 排序 、 流控制、 重传、 缓冲、 校验和等机制。

域名

互联网支持一种使用符号名标识主机和网络的方案 , 如binkley.cs.mcgill.ca 或 hfut.edu.cn 。 己命名的实体被组织成一个命名层次结构。 已命名的实体称为域, 而符号名称为域名。

防火墙

可以是硬件, 也可以是软件。 主要功能包括:

( 1) 服务控制: 控制内部主机哪些可以接受外部访问, 外发服务请求与应答也受到控制。

( 2) 行为控制: 防止破坏组织策略的行为, 反社会的行为, 或者找不到可辨认的合法目的的行为。

( 3) 用户控制: 组织内部的用户加以区分, 设置不同的外部访问权限。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1360545.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

现代 C++ 小利器:参数绑定包装器堪称「Lambda 小平替」

以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/gt_zxMwhu8UixzCMF73Dng C 原生支持函数输入参数的默认值,但是有些业务场景下对原有设定的默认值不满意,那么可不可以临时…

【已解决】js定义对象属性是.如何访问

当变量没有length属性的时候,可能是个对象变量,当有键值对的时候就可能是个对象,读者都知道的是,用typeof(变量)可以查看属性,今天本文解决的问题是如果js定义对象中属性是"点"如何访问 问题再现 var a {…

java实验室预约管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java servlet 实验室预约管理系统是一套完善的java web信息管理系统 系统采用serlvetdaobean(mvc模式),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数 据库,系统主要采用B/S模式开发。开发环境为T…

【数据采集与预处理】流数据采集工具Flume

一、Flume简介 数据流 :数据流通常被视为一个随时间延续而无限增长的动态数据集合,是一组顺序、大量、快速、连续到达的数据序列。通过对流数据处理,可以进行卫星云图监测、股市走向分析、网络攻击判断、传感器实时信号分析。 (…

【Proteus仿真】【Arduino单片机】太阳能追光系统设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用LCD1602液晶、光敏传感器、ADC模块、按键模块、28BYJ48步进电机驱动模块、直流电机模块等。 主要功能: 系统运行后,L…

Jupyter Lab | 在指定文件夹的 jupyter 中使用 conda 虚拟环境

Hi,大家好,我是源于花海。本文主要了解如何在指定文件夹的 jupyter 中使用 conda 虚拟环境,即在 conda 里面创建虚拟环境、将虚拟环境添加至 jupyter lab/notebook、安装软件包。 目录 一、创建虚拟环境 二、激活并进入虚拟环境 三、安装 …

我们公司内应届生身上的6个共性问题

如题目,本文主要是根据我们公司内真实的应届生身上共同的问题,总结而来。 1. 一天会做很多工作:会跟很多人对接,会一会忙这个一会忙哪个 现象: 说实话,这种情况,我看着都替她着急。自己正在解…

IPD(集成产品开发)

一、简介IPD IPD是指应用于集成产品开发(Integrated Product Development)的一套流程。 IPD流程可分为很多小的流程,这些流程确保企业做正确的事,且正确地做事。 IPD核心的流程之一是PDP(Product Development Proce…

用C语言实现完全平方数计算【一题一策】第三期

题目:一个整数,它加上100后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少? 一、题目分析 首先假设该数为x,则x100y?,y为完全平方数。 然后加上168又是一个完全平方数&…

某金属加工公司的核心人才激励体系搭建项目纪实

【客户行业】金属加工行业 【问题类型】薪酬体系/激励体系 【客户背景】 某大型金属加工企业位于河北地区,成立于2000年,隶属于某大型有色金属集团,是一家集科研、开发、生产、销售于一体的国有企业,人员达到1000人。经过多年…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)主线程给子线程添加任务以及如何处理该任务

在看此篇文章,建议先看我的往期文章: 基于多反应堆的高并发服务器【C/C/Reactor】(中)在EventLoop的任务队列中添加新任务-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/135346492?spm1001.2014.3001.5501一…

kubesphere和k8s的使用分享

文章目录 什么是kubernetesKubernetes的部分核心概念互式可视化管理平台与kubernetes的关系市面是常见的kubernetes管理平台 什么是kubesphereKubesphere默认安装的组件Kubesphere涉及的服务组件kubesphere的安装Kubesphere相关的内容 什么是kubernetes 就在这场因“容器”而起…

backtrader框架初探,轻松跑通策略并策略分析

网上有很多backtrader的文章,并有些将其与vnpy做比较,经过安装后发现,还是backtrader教程简单。 1、前期准备 # 安装akshare免费行情源 pip install akshare -i http://mirrors.aliyun.com/pypi/simple/ --trusted-hostmirrors.aliyun.com …

kubectl 源码分析

Cobra库 k8s各组件的cli部分都使用Cobra库实现,Cobra 中文文档 - 掘金 (juejin.cn),获取方式如下: go get -u github.com/spf13/cobralatest cobra库中的Command结构体的字段,用于定义命令行工具的行为和选项。它们的作用如下&…

性能优化-OpenMP基础教程(五)-全面讲解OpenMP基本编程方法

本文主要介绍OpenMP编程的编程要素和实战,包括并行域管理详细实战、任务分担详细实战。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能(HPC)开发基础教程 🎀C…

Linux与安全

本心、输入输出、结果 文章目录 系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第八部分:Linux、安全 前言 Linux 文件系统解释应该知道的 18 个最常用的 Linux 命令HTTPS如何工作? 数据是如何加密和解密的?为什么HTTPS在数据传输过程…

IntelliJ IDEA远程查看修改Ubuntu上AOSP源码

IntelliJ IDEA远程查看修改Ubuntu上的源码 本人操作环境windows10,软件版本IntelliJ IDEA 2023.2.3,虚拟机Ubuntu 22.04.3 LTS 1、Ubuntu系统安装openssh 查看是否安装: ssh -V 如果未安装: sudo apt install openssh-server # 开机自启…

php 数组中的元素进行排列组合

需求背景:计算出数组[A,B,C,D]各种排列组合,希望得到的是数据如下图 直接上代码: private function finish_combination($array, &$groupResult [], $splite ,){$result [];$finish_result [];$this->diffArrayItems($array, $…

springboot实现ChatGPT式调用(一次调用,持续返回)

下边实现了一个持续返回100以内随机数的接口,在接口超时之前会每隔1秒返回一个随机数 GetMapping(value "/getRandomNum", produces MediaType.TEXT_EVENT_STREAM_VALUE) public SseEmitter getRandomNum() {SseEmitter emitter new SseEmitter();Th…