计算机网络扫盲(1)——因特网

一、概述

        因特网是一个世界范围的计算机网络,即它是一个互联了遍及全世界数十亿计算设备的网络。大家对此应该并不陌生,我们身边有着不计其数的计算机设备被接入了因特网,如今计算机网络这个术语似乎已经有点过时了,用因特网的术语来说,所有的这些接入因特网的设备我们可以称之为主机(host)或者端系统(end system)。

        端系统通过通信链路(communication link)分组交换机(packet switch)连接到一起。当一台端系统要向另一台端系统发送数据的时候,发送端系统将数据分段,并为每段加上首部字节。由此形成的信息包用计算机网络的术语来说称为分组(packet)

        分组交换机从它的一条通信链路接收达到的分组,并从它的一条出通信链路转发该分组。市面上流行着各种类型、各具特色的分组交换机,但在当今的因特网中,两种最著名的类型是路由器(router)和链路层交换机(link-layer switch)。这两种类型的交换机朝着最终目的地转发分组。链路层交换机通常用于接入网中,而路由器通常用于网路核心中。从发送端系统到接收端系统,一个分组所经历的一系列通信链路和分组交换机称为通过该网络的路径(route 或 path)

        端系统通过因特网服务提供商(Internet Service Provider,ISP)接入因特网,包括有住宅区ISP、公司ISP、大学ISP,在公共场所提供WiFi接入的ISP,以及为智能手机等设备提供移动接入的蜂窝数据ISP。每个 ISP 自身就是一个由多台分组交换机和多段通信链路组成的网络。各ISP为端系统提供了各种不同类型的网络接入,包括如线缆调制解调器或 DSL那样的住宅宽带接入、高速局域网接入和移动无线接入。ISP也为内容提供者提供因特网接入服务,将Web站点和视频服务器直接连入因特网。因特网就是将端系统彼此互联,因此为端系统提供接入的ISP也必须互联。较低层的 ISP 通过国家的、国际的较高层 ISP互联起来。较高层ISP是由通过高速光纤链路互联的高速路由器组成的。无论是较高层还是较低层ISP网络,它们每个都是独立管理的,运行着IP协议,遵从一定的命名和地址规则。
        端系统、分组交换机和其他因特网部件都要运行一系列协议(protocol),这些协议控制因特网中信息的接收和发送。TCP (Transmission Control Protocol,传输控制协议)IP (Internet Protocol,网际协议)是因特网中两个最为重要的协议。IP协议定义了在路由器和端系统之间发送和接收的分组格式。因特网的主要协议统称为TCP/IP。
        鉴于因特网协议的重要性,每个人就各个协议及其作用取得一致认识是很重要的,这样人们就能够创造协同工作的系统和产品。这正是标准发挥作用的地方。因特网标准(Internet standard)由因特网工程任务组(Internet Engineering Task Force, IETF) [IETF 2016] 研发。IETF 的标准文档称为请求评论(Request For Comment, RFC)。RFC最初只是普通的请求评论(因此而得名),目的是解决因特网先驱者们面临的网络和协议问题[ Allma 2011]。RFC文档往往是技术性很强并相当详细的。它们定义了 TCP、IP、HTTP (用于 Web)和 SMTP(用于电子邮件)等协议。目前已经有将近 7000 个 RFC。其他组织也在制定用于网络组件的标准,最引人注目的是针对网络链路的标准。例如,IEEE 802LAN/MAN标准化委员会[IEEE 802 2016]制定了以太网和无线 WiFi 的标准。

二、服务描述

        前面的讨论已经辨识了构成因特网的许多部件。但是我们也能从一个完全不同的角度,即从为应用程序提供服务的基础设施的角度来描述因特网。除了诸如电子邮件和 Web 冲浪等传统应用外,因特网应用还包括移动智能手机和平板电脑应用程序,其中包括即时讯息、与实时道路流量信息的映射、来自云的音乐流、电影和电视流、在线社交网络、视频会议、多人游戏以及基于位置的推荐系统。因为这些应用程序涉及多个相互交换数据的端系统,故它们被称为分布式应用程序(distributed application)。重要的是,因特网应用程序运行在端系统上,即它们并不运行在网络核心中的分组交换机中。尽管分组交换机能够加速端系统之间的数据交换,但它们并不在意作为数据的源或宿的应用程序。
        我们稍深入地探讨一下为应用程序提供服务的基础设施的含义。为此,假定你对某种分布式因特网应用有一个激动人心的新想法,它可能大大地造福于人类,或者它可能直接使你名利双收。你将如何把这种想法转换成一种实际的因特网应用呢?因为应用程序运行在端系统上,所以你需要编写运行在端系统上的一些软件。例如,你可能用Java、C或python编写软件。此时,因为你在研发一种分布式因特网应用程序,运行在不同端系统上的软件将需要互相发送数据。此时我们碰到一个核心问题,这个问题导致了另一种描述因特网的方法,即将因特网描述为应用程序的平台。运行在一个端系统上的应用程序怎样才能指令因特网向运行在另一个端系统上的软件发送数据呢?
        与因特网相连的端系统提供了一个套接字接口(socket interface),该接口规定了运行在一个端系统上的程序请求因特网基础设施向运行在另一个端系统上的特定目的地程序交付数据的方式。因特网套接字接口是一套发送程序必须遵循的规则集合,因此因特网能够将数据交付给目的地。我们做一个简单的类比,假定Alice使用邮政服务向Bob发一封信。当然,Alice不能只是写了这封信(相关数据)然后把该信丢出窗外。相反,邮政服务要求alice将信放入一个信封中;在信封的中间写上Bob的全名、地址和邮政编码;封上信封;在信封的右上角贴上邮票;最后将该信封丢进一个邮局的邮政服务信箱中。因此,该邮政服务有自己的"邮政服务接口"或一套规则,这是Alice必须遵循的,这样邮政服务才能将她的信件交付给Bob。同理,因特网也有一个发送数据的程序必须遵循的套接字接口,使因特网向接收数据的程序交付数据。
        当然,邮政服务向顾客提供了多种服务,如特快专递、挂号、普通服务等。同样,因特网向应用程序提供了多种服务。当你研发一种因特网应用程序时,也必须为你的应用程序选择其中的一种因特网服务。

三、小结

        本文主体内容来自于《计算机网络 自顶向下方法》[美]James F.Kurose  Keith W.Ross。一本很好的书,笔者根据自己的需求和判断进行了一定部分的删减形成了本文,如果你时间充足,推荐阅读原书,本系列旨在快速了解和熟悉一些基本概念。

        文中对重要的术语进行了加粗,其实本文的目的也就是让我们了解这些基本概念,这里最后进行一个简单的回顾。

1、主机(host)/ 端系统(end system)

        同一个概念,指的是接入因特网的设备,例如个人pc,智能手机,平板电脑等一切可以上网的设备。

2、通信链路(communication link)

        通信传输的介质,由不同类型的物理媒体组成。

        关于这部分的详细内容,在下文中有详细介绍:

计算机网络扫盲(2)——网络边缘icon-default.png?t=N7T8https://blog.csdn.net/apple_53311083/article/details/134757655?spm=1001.2014.3001.5502

3、分组交换机(packet switch)

        分组交换机从它的一条通信链路接收达到的分组,并从它的一条出通信链路转发该分组。可以分成路由器(router)和链路层交换机(link-layer switch)

4、分组(packet)

        当一台端系统要向另一台端系统发送数据的时候,发送端系统将数据分段,并为每段加上首部字节。这就构成了一个分组。 

5、路径(route 或 path)

        从发送端系统到接收端系统,一个分组所经历的一系列通信链路和分组交换机称为通过该网络的路径(route 或 path)。

6、因特网服务提供商(Internet Service Provider,ISP)

      端系统通过因特网服务提供商(Internet Service Provider,ISP)接入因特网  

7、协议(protocol)

         端系统、分组交换机和其他因特网部件都要运行一系列协议(protocol),这些协议控制因特网中信息的接收和发送。TCP (Transmission Control Protocol,传输控制协议)IP (Internet Protocol,网际协议)是因特网中两个最为重要的协议。P协议定义了在路由器和端系统之间发送和接收的分组格式。因特网的主要协议统称为TCP/IP。

8、 因特网标准(Internet standard)

        世界上网络设备不计其数,遵循同一套协议非常的重要,因此就有了因特网标准。因特网标准(Internet standard)由因特网工程任务组(IETF)研发。IETF 的标准文档称为请求评论(Request For Comment, RFC)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32-GPIO

一、GPIO简介 GPIO(General Purpose Input Output)通用输入输出口 可配置8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V 输出模式下:可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输…

159.库存管理(TOPk问题!)

思路&#xff1a;也是tok的问题&#xff0c;与上篇博客思路一样&#xff0c;只不过是求前k个小的元素&#xff01; 基于快排分块思路的代码如下&#xff1a; class Solution { public:int getkey(vector<int>&nums,int left,int right){int rrand();return nums[r%…

多项式拟合求解

目录 简介 基本原理 例1 例2 例3 参考资料 简介 多项式拟合可以用最小二乘求解&#xff0c;不管是一元高阶函数&#xff0c;还是多元多项式函数&#xff0c;还是二者的混合&#xff0c;都可以通过统一的方法求解。当然除了最小二乘法&#xff0c;还是其他方法可以求解&…

Centos7.9搭建zabbix6.4.0过程及报错注意点

搭建参考此链接即可&#xff1a;https://blog.csdn.net/PerDrix/article/details/129624091 报错整理&#xff1a; 一、zabbix6.0以上版本默认必须安装mysql 8.0.30以上版本数据库&#xff0c;否则服务起不来 二、编译安装zabbix时&#xff0c;必须执行如下操作&#xff0c;…

【STM32】STM32学习笔记-课程简介(1)

00. 目录 文章目录 00. 目录01. 课程简介02. 硬件设备03. 软件工具04. 硬件套件4.1 面包板和跳线/飞线4.2 杜邦线和STM32最小系统板4.3 STLINK和OLED显示屏4.4 LED和按键4.5 电位器和蜂鸣器4.6 传感器和旋转编码器4.7 USB转串口和MPU60504.8 Flash闪存和电机模块4.9 SG90舵机 0…

人工智能中的模型评估

1 概述 1.1 定义 人工智能&#xff08;AI&#xff09;模型评估是一个关键的过程&#xff0c;用于确定模型在特定任务上的性能和有效性。这个过程涉及使用各种技术和指标来衡量模型的准确度、可靠性、泛化能力以及其他重要特性。在不同的应用场景中&#xff0c;模型评估的具体…

深入解析JVM内存结构:Metaspace、堆与垃圾收集器

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

Overflow Aware Quantization

Overflow Aware Quantization Framework N o _o o​是 amount of arithmetic overflow 辅助信息 作者未提供代码

前端开发环境与真实环境的接口联通的那些最佳实践

1. 背景 前端开发的产物通常是 app.js 、app.css &#xff0c;然后将这些资源放在真实环境域名下进行工作的。 但前端的开发环境通常是本地的 http://localhost:xxx&#xff0c;业务域名可能是 https://xxx.abc.com&#xff0c;两者不在一个域名下在调用接口或者调试时会非常不…

NacosSync 用户手册

手册目标 理解 NacosSync 组件启动 NacosSync 服务通过一个简单的例子&#xff0c;演示如何将注册到 Zookeeper 的 Dubbo 客户端迁移到 Nacos。 介绍 NacosSync是一个支持多种注册中心的同步组件,基于Spring boot开发框架,数据层采用Spring Data JPA,遵循了标准的JPA访问规范…

变量和引用

变量和引用 2.1.深入认识变量 2.1.1.什么是变量 变量是在程序中保存用户数据的一段内存存储空间&#xff0c;变量名是内存空间的首地址 变量三要素&#xff1a;名称、类型、值 2.1.2.变量的名称 组成: 字母、数字、下划线组成&#xff0c;不能以数字开头 变量名称的长…

PyLMKit(4):基于本地知识库的检索增强生成RAG

基于本地知识库的检索增强生成RAG 0.项目信息 日期&#xff1a; 2023-12-2作者&#xff1a;小知课题: RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;是一种利用知识库检索的方法&#xff0c;提供与用户查询相关的内容&#xff0c;从而…

代码随想录day3 203.移除列表元素 707.设计链表 206.反转链表

数组是在内存中是连续分布的&#xff0c;但是链表在内存中可不是连续分布的。 双链表 单链表中的指针域只能指向节点的下一个节点。 双链表&#xff1a;每一个节点有两个指针域&#xff0c;一个指向下一个节点&#xff0c;一个指向上一个节点。 双链表 既可以向前查询也可以…

vcomp140.dll是什么意思?vcomp140.dll缺失怎么修复的五个方法

在电脑使用过程中&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中之一就是“由于找不到vcomp140.dll无法继续执行代码”。这个错误提示通常出现在运行某些程序时&#xff0c;给使用者带来了很大的困扰。那么&#xff0c;为什么会出现这个错误呢&#xff1f;又该如何解…

借助ChatGPT帮助程序员解决系统线上问题

对不同的业务以及不同的中间件提问题的方式不同 首先我们在每一种类型的提问前都需要对AI进行定义也就是让AI明白你提问的问题是那个行业的那个技术 定义身份话术 常见的 #接下来的对话你将以一名java高级开发工程师的身份和我聊天 接下来的对话你将以一名XXXX的身份和我聊天提…

关于Typora如何插入自己的云端视频的方法

关于Typora如何插入自己的云端视频的方法 文章目录 关于Typora如何插入自己的云端视频的方法前言&#xff1a;实现步骤&#xff1a;小结 前言&#xff1a; 我本来使用gitee来作为typora的图床&#xff0c;但我现在想要把我自己的视频上传到云端&#xff0c;然后通过超链接在ty…

Programming Contest 2023(AtCoder Beginner Contest 331)D题 Tile Pattern --- 题解

目录 D - Tile Pattern 题目大意&#xff1a; 思路&#xff1a; 代码&#xff1a; D - Tile Pattern D - Tile Pattern (atcoder.jp) 题目大意&#xff1a; 给你一个n和q&#xff0c;n为局部棋盘大小(n*n) 并且给出局部棋盘中黑白子位置的放置情况&#xff0c;q为查询次数…

java的四种内部类,从0讲清楚

什么是内部类&#xff1f; 为什么要学习内部类&#xff1f; 可以发现&#xff0c;发动机虽然跟汽车相关&#xff0c;但发动机不像车龄或颜色一样&#xff0c;只用一个变量就可以描述&#xff0c;而是要有发动机品牌&#xff0c;发动机年限&#xff0c;多个变量描述发动机。那么…

从“芯”到云,看亚马逊云科技如何让未来“平等”发生

文章目录 业界最全面算力选择&#xff0c;有效解决多样性需求多年自研芯片积累&#xff0c;带来性能与性价比双重优势全球基础设施与独特的业务模式&#xff0c;让创新不受限 “科幻作家威廉吉布森说‘未来已至&#xff0c;只是还没有均匀分布’。”2023年6月底&#xff0c;当亚…

【开源存储】minio对象存储部署实践

文章目录 一、前言1、介绍说明2、部署方式3、冗余模式4、约束限制4.1、规格参数4.2、API支持a、minio不支持的Amazon S3 Bucket APIb、minio不支持的Amazon S3 Object API 二、部署说明1、软件安装2、minio单机部署3、minio分布式部署3.1、前置条件3.2、开始运行3.3、操作说明 …