计算机网络-1-计算机网络和因特网

最近参加了码农翻身的读书活动,目标是读完《计算机网络 自顶向下方法》 这本书,这篇文章将记录第一周所看到的本地第一章的相关内容。

学习计算机网络首先学习下什么是因特网?

描述这个问题需要从两个方面论述。

  1. 具体构成描述

    因特网是一个世界范围的计算机网络,即它一个互联了遍及全世界的数以万计的计算设备的网络。所有与因特网相连的设备都称为主机或者端系统

端系统通过通信链路分组交换机连接到一起。 通信链路是由不同的物理媒体组成。这些物理媒体包括同轴电缆、铜线、光纤和无线电频谱。不同的链路能够以不同的速率传输数据,链路的传输速率是以 比特/每秒 度量,(bit/s,或 bps)。当一台端系统要向另一台端系统发送数据时,发送端系统将数据分段,并为没段加上首部字节。由此形成的信息包用计算机网络的术语称之为分组。 这些分组通过网络发送到目的端系统,在那里被装配成初始数据。

分组交换机从它的一条入通信链路接收到到达的分组,并从它的一条出通信链路转发该分组。目前常见的分组交换机类型是 路由器链路层交换机。 这两种类型的交换机朝着最终目的地转发分组。链路层交换机通常用于接入网中,而路由器常用于网络核心中。 从发送端系统到接收端系统,一个分组所经历的一系列通信链路和分组交换机称为通过该网络的路径。

端系统通过 因特网服务提供商(Internet Servicve Provider,ISP)接入因特网,包括如本地电缆或者电话公司那样的住宅区ISP 、公司ISP、大学 ISP,以及那些在机场等公共场所提供的WIFI 接入的ISP。 每个ISP 其实是一个由多个分组交换机和多段通信链路组成的网络。 各ISP 为端系统提供了各种不同类型的网络接入,包括线缆调制解调器或DSL 那样的住宅宽带接入、高速局域网接入、无线接入和 56kbps拨号调制解调器计入。ISP 也为内容提供者提供因特网接入服务,将Web 站点直接接入因特网。因特网就是将端系统彼此互联,因此为端系统提供接入的ISP 也必须互联。低层的ISP通过国家的、国际的高层ISP(如AT&T、Sprint,联通、移动)互联起来。高层ISP 是由通过高速光纤链路互联的高速路由器组成的。无论是高层还是底层ISP网络,它们每个都是独立管理,运行着IP 协议。

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

为了使各个协议以及作用取得一致,方便人们能够创造协同工作的系统和产品,因此需要制定标准。 因特网标准因特网工程任务组 (Internet Engineering Task Force, IETF)研发。IETF 的 标准文档被称为 请求评论(Request For Comment, RFC)

  1. 服务描述

生活中我们都是用很多 app 这些被称为分布式应用程序。 大家思考下,运行在一个端系统上的应用程序怎样才能指令因特网向运行在另一个端系统上的软件发送数据呢?

与因特网相连的短息用提供了一个 应用程序编程接口(Application Ptogramming Interface, API),该API 规定了运行在一个端系统上的软件请求因特网基础设施向运行在另一个端系统上的特定目的地软件交付数据的方式。因特网 API 是一套发送软件必须遵循的规则集合,因为因特网能够将数据交付给目的地。

上面我们已经给出了因特网的两种描述方法,但是整个因特网,包括数据传输经过各层的协议,后面也会继续学习,分享出来。

在因特网中,凡是涉及两个或多个远程通信实体的所有活动都受协议的制约。 例如,在两台物理上连接的计算机中,硬件实现的协议控制了在两块网络接口卡间的 “线上” 的比特流。

网络边缘

顾名思义,网络边缘就是指位于各处的应用程序和端系统。 这里我觉得比较有意思的概念就是端系统接入网以及物理媒体。

接入网

接入网: 指将端系统连接到其边缘路由器的物理链路。
边缘路由器: 是指端系统到任何其他远程端系统的路径上的第一台路由器。

物理媒体

物理媒体划分为两类: 引导型媒体非引导型媒体。对于引导型媒体,电波沿着固体媒体前行,如光缆、双绞铜线或同轴电缆。对于非引导型媒体,电波在空气或外层空间中中传播,例如在无线局域网或数字卫星频道中。

网络核心

这一节主要学习了 分组交换、电路交换、网络的网络。

分组交换

在各种网络应用中,端系统彼此交换报文。 报文能够包含协议设计者需要的任何东西。为了源系统向目的系统发送一个报文,源将长报文划分为较小的数据块,称之为分组。在源和目的之间,每个分组都通过通信链路和分组交换机(交换机主要有两类:路由器和链路层交换机)传送。

在这里我们必须要知道的还有排队时延和分组丢失。

每个分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机具有一个输出缓存(也称为输出队列),它用于存储路由器准备发往那条链路的分组。该输出缓存在分组交换机中起着重要的作用。如果到达的分组需要传输到某条链路,但发现该链路正忙于传输其他分组,该到达分组必须在该输出缓存中等待。这个就叫做输出缓存的排队时延。 因为缓存空间的大小是有限的,一个到达的分组可能发现该缓存已被其他等待传输的分组完全充满了。在此情况下,将出现 分组丢失(丢包),到达的分组或已经排队的分组之一将被丢弃。

电路交换

首先总结的说电路交换一般用于数据链路层。

在端系统通信会话期间,预留了端系统间通信沿路径所需要的资源(缓存,链路传输速率)。 在分组交换网络中,这些资源则不是预留的; 传统的电话网络是电路交换网络的例子。

分组交换网中的时延

这部分内容应该是对于平时开发工作中非常有用的一部分,一定要掌握其相关原理。

分组从一台主机出发,通过一系列路由器传输,在另一台主机点(目的地)中结束它的历程。当分组从一个节点(主机或路由器)沿着这条路径到后续节点(主机或路由器),该分组在沿途的每个结点经受了几种不同类型的时延。这些时延最为重要的是 结点处理时延排队时延传输时延和传播时延,这些时延总体累计加起来是结点总时延。

处理时延

检查分组首部和决定将该分组导向何处所需要的时间是处理时延的一部分。处理时延也能包括其他因素,如检查比特级别的差错所需要的时间,该差错出现在从上游结点向路由器传输这些分组比特的过程中。高速路由器的处理时延通常是微妙或更低的数量级。在这种结点处理之后,路由器将该分组引向通往下一个路由器链路之前的队列。

排队时延

在队列中,当分组在链路上等待传输时,它经受排队时延。一个特定分组的排队时延长度将取决于先期到达的正在排队等待向链路传输的分组数量。如果该队列是空的,并且当前没有其他分组正在传输,则该分组的排队时延为0。 另一方面,如果流量很大,并且许多其他分组也在等待传输,该排队时延将很长。

传输时延

假定分组以先到先服务的方式传输,这在分组交换网中是常见的方式,仅当所有已经到达的分组被传输后,才能传输刚到达的分组。用 L 比特表示该分组的长度,用R bps (即 b/s) 表示从路由器A 到路由器B 的链路传输速率。 例如,对于一条10 Mbps 的以太网链路,速率 R = 10Mbps; 传输时延是L/R。 这是将所有分组的比特推向链路所需要的时间。实际的传输时延通常在毫秒到微妙量级。

传播时延

一旦一个比特被推向链路,该比特需要向路由器B传播。从该链路的起点到路由器B传播所需要的时间是传播时延。该比特以该链路的传播速率传播。 该传播速率取决于该链路的物理媒体(即光纤、双绞铜线等),其速率范围是 2 * 10(8) ~ 3 * 10(8) m/s,这等于或略小于光速。该传播时延等于两台路由器之间的距离除以传播速率。即传播时延是 d/s, 其中 d 是路由器A 和路由器B之间的距离,s是该链路的传播速率。一旦该分组的最后一个比特传播到B结点,该比特及前面的所有比特被存储于路由器B。整个过程随着路由器B执行转发而持续下去。在广域网中,传播时延为毫秒量级。


   转载规则


《计算机网络-1-计算机网络和因特网》 coderluo 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
计算机网络-2-应用层 计算机网络-2-应用层
本周进入到第二章应用层的学习,不得不说自顶向下学习果然能激发兴趣,因为平时开发工作经常也就是和应用层打交道,但是对具体原理总是一知半解,随着这章的阅读,能让自己对我们开发的应用程序,是怎样利用网络实现其功能的,有了更深入的了解。 我们日
下一篇 
Zookeeper深度学习2-Zab协议详解 Zookeeper深度学习2-Zab协议详解
今天讲解的主题是Zookeeper实现的基础协议–Zab协议(Zookeeper Atomic Broadcast),也称为zk原子广播协议。 首先大家可能会有疑问,Zab和我们上一篇讲解的Paxos之间有什么区别和联系?别着急,带着这
2019-09-08
  目录