计算机网络——概述

因特网以及相关硬件概念

因特网是一个互联了全世界的计算机设备的网络,这些计算机设备包括传统的桌面PC,Linux工作站,服务器(用于存储和传输web页面和电子邮件报文等信息) 以及 非传统的因特网端系统(如手机,平板电脑,电视,游戏机等)和安全系统。我们统称这些设备为主机端系统

计算机网络——概述_第1张图片

 

互联网,局域网,万维网三者区别

(1)互联网是指多套设备(计算机,手机等)通过特定通信协议TCP/IP、IPX/SPX、NetBIOS、NetBEUI、Apple Talk组成的网络,一般分为:

  • 局域网
    局域网LAN:一般不大于10公里,而且通常只使用一种传输介质;地域上看局域网通常是用在一座建筑物或一个工厂内,使用上通常是某一单位或某一部门使用,规模上一般不超过几百个用户。以太网是为实现局域网通信而设计的一种技术。
  • 城域网
    城域网MAN:城域网是一种比局域网更大的网,通常覆盖一个城市,从几十公里到100公里不等,可能会有多种介质,用户的数目也比局域网更多。
  • 广域网
    广域网WAN:一切大于城域网的网都可称为广域网。不同的局域网、城域网或广域网还可以根据需要互相链接构成规模更大的国际网。

(2)因特网是由上千万台设备组成的网络(一般指具有一定规模的网络)。因特网使用TCP/IP协议让不同设备彼此通信。设备接入因特网需要满足两个要求,首先网络设备必须安装TCP/IP协议,用于和因特网的其他网络设备通信;其次必须具备一个公网地址,用于在因特网中标记该设备,使得因特网的其他网络设备能将其定位。

(3)万维网

万维网是基于因特网,通过TCP/IP应用层协议中的HTTP协议提供的服务,浏览器使用HTTP协议与服务器进行通信,发送数据请求,获取HTML文件,再通过浏览器解析,最终以网页的形式呈现给用户。

(4)三者联系

互联网 > 因特网 > 万维网

只要多台设备之间可以通过特定的通信协议进行通信,它们便组成了一个互联网。因特网中的设备则必须使用TCP/IP协议通信,且要构成一定规模的网络(包含若干子网络),不同子网络必须具备自己的公网地址。万维网则是TCP/IP应用层协议中的HTTP协议所提供的服务,实现用户通过浏览器浏览网页。

 

通信链路分组交换机

端系统通过通信链路分组交换机连接在一起。

多数分组交换机在链路的输入端使用存储转发传输机制,即在交换机能够开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组。

通信链路由不同类型的物理媒体组成,例如铜线,光纤等,不同的链路能以不同的速率传输数据。当一台端系统要向另一台端系统发送数据时,发送段系统会将数据分段,并为每段加上首部节点,由此形成的信息包称为分组

分组交换机从它的一条入通信链路 接受到来的分组,并从它的一条出通信链路转发该分组。在当今的因特网中,分组交换机有路由器链路层交换机两种类型。链路层交换机通常用于接入网中,而路由器通常用于网络核心中。

 

电路交换和分组交换

通过数据链路和交换机 移动数据有两种方法:电路交换 和 分组交换。

对于电路交换网络而言,在端系统之间通信期间,会预留端系统通信沿路径所需要的资源(缓存,链路传输速率):发送方和接收方需要建立一条连接,电路交换网络会在连接期间 在该网络链路上预留恒定的传输速率,这样发送方可以以确保的恒定速率向接收方传送数据。下图是一个电路交换网络,4条链路互联了4台电路交换机,每条链路都有4台电路。每台主机都有与一台交换机直接相连,当有主机要通信时,网络必须要预留一条电路,并且在整个通信过程中始终占用该链路。由于通信的过程中不可能一直在使用传输线路,因此电路交换对线路的利用率很低。

计算机网络——概述_第2张图片

对于分组交换网络,端系统相互交换报文,而报文可以包含协议设计者需要的任何东西,报文可以执行一种控制功能,也可以包含数据(例如电子邮件数据,MP3音频文件等)。源端系统将长报文划分为较小的数据块,简称分组。在源和目的之间,每个分组通过通信链路和分组交换机传送。在同一个传输线路上同时传输多个分组互相不会影响,因此在同一条传输线路上允许同时传输多个分组,也就是说分组交换不需要占用传输线路。但如果很多人同时使用网络,可能产生拥塞(congestion),导致分组延迟和丢失。

 

排队时延和分组丢失

每台分组交换机有多条链路与之相连,对于每条链路,分组交换机具有一个输出缓存,用于存储路由器准备发送某条链路的分组。如果到达的分组需要传输到某条链路时,发现该链路正用于传输其他分组,则到达的分组必须在输出缓存中等待。而排队时延是指分组在缓存中等待被发送到链路的时间,这些时延是变化的,变化程度取决于网络中的拥塞程度。

缓存空间的大小是有限的,一个到达的分组可能会发现该缓存已被其他等待传输的分组占满,因此可能会出现分组丢失(丢包),即到达的分组或已经排队的分组之一将会被丢弃。

 

网络协议

在因特网中,两个或多个远程通信实体的所有活动都受协议的制约,例如在端系统中,拥塞控制协议控制了发送方和接收方之间传输的分组发送的速率。不同的网络协议完成不同的通信任务。

 

转发表和路由选择协议

路由器通过与它相连的一条链路得到分组,将其从与它相连的另一条通信链路转发。在因特网中,路由器是决定向哪条链路转发的方法是通过转发表和路由选择协议来完成。

在因特网中,每个端系统有一个IP地址,当源主机要向目的端系统发送一个分组时,分组的首部包含了目的IP地址,而每台路由器都具有一个转发表,该表用于将目的地址映射为输出链路。当一个分组到达网络中的路由器时,路由器会通过目的地址搜索其转发表, 以发现适当的出链路。

因特网具有一些特殊的路由选择协议来自动的设置转发表,比如说,一个路由选择协议可以决定从每台路由器到每个目的的最短路径,并通过这些路径来配置路由器中的转发表。

 

集线器

集线器将内部网络上的所有网络设备连接在一起;它具有多个端口,可以接受来自网络设备的以太网连接。

当数据包到达端口之一时,它将被复制到所有其他端口,这样集线器上的所有设备都可以看到数据包。

与交换机,路由器的区别

交换机与集线器非常相似,它也具有多个端口。它可以识别已连接设备的物理地址(MAC地址),并且它还有交换表,用于记录某一个MAC地址需要送到哪个接口。因此,当数据包发送到交换机时,他们可以路由到预期的目标端口。这个特点是交换机与集线器最大的不同点,它减少了网络中不必要的流量。

集线器和交换机用于在本地网络内交换数据,不能用于在属于自己网络外共享数据。而路由器可以将数据包转发到另一个网络,因此路由器需要读取IP地址。路由器通过检查数据的IP地址,确定其是用于本地网络还是外部网络。

 

默认网关

网关

在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即便这两个网络连接在同一台交换机(或集线器)。TCP/IP协议根据子网掩码判定两个网络中的主机处在不同网络,若要实现这两个网络之间的通信,必须通过网关:网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。

因此,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。而网关的IP地址是指:具有路由功能的设备的IP地址,比如路由器。

网关通常用来表示一个概念,而非具体的一个产品。只要连接两个不同的网络的设备都可以叫网关。

默认网关

一台主机可以有多个网关,默认网关的意思是:若一台主机找不到可用网关,则把数据包发送给默认指定的网关,由他处理数据包。

 

因特网服务提供商(ISP)和应用程序编程接口(API)

端系统通过因特网服务提供商(ISP)接入因特网。每一个ISP是由多个分组交换机和多端通信链路组成的网络,各个ISP为端系统提供不同类型的网络接入,而ISP也是互联的。

与因特网相连的端系统提供了一个应用程序编程接口(API),该API规定了在端系统上的软件 去请求因特网基础设施(宽带、云存储等)来向运行在另一个端系统中特定的目的软件 交付数据的方式。

 


协议分层

网络设计者以分层的方式来组织协议 以及 实现这些协议的网络硬件和软件。

为什么采用分层结构?

模块化的分层易于系统更新,维护,任何一层服务的改变并不影响其他层;

利于标准化;

结构清晰,利于识别复杂系统的部件及关系;

分层网络体系结构的相关概念

计算机网络——概述_第3张图片

 

五层协议

因特网的协议由五层组成:

计算机网络——概述_第4张图片

应用层 

网络应用程序(例如电子邮件,文件传输等)及它们的应用层协议存留的地方。应用层的协议主要有:HTTP(提供了web文档的请求和传送),SMTP(提供了电子邮件报文的传输),FTP(提供两个端系统之间的文件传送),域名系统DNS(将域名转化为IP地址)等。我们将应用层的信息分组称为报文

传输层

负责应用程序之间传输应用层报文。由于一个主机可同时运行多个进程,因此运输层具有复用(多个应用层进程可同时使用下方的传输层的服务)和分用(运输层把收到的信息分别交付给上面应用层对应的进程)的功能。

在因特网中有两个传输层协议:TCP和UDP,我们将传输层分组称为报文段

网络层 

在因特网中 我们将网络层分组称为数据报。该层负责:

  • 把运输层产生的报文段封装成IP数据报(网络层使用IP协议)进行传送;
  • 选择合适的理由,使源主机运输层传下来的分组,能够通过网络中的路由器找到目的主机

因特网的网络层包括IP协议,该协议定义了在数据报中的各个字段以及端系统和路由器如何作用于该字段;同时该层还具有许多路由选择协议。

数据链路层 

该层把网络层传下来的IP数据报封装成帧,在两个相邻节点间的链路上传送帧中的数据。由于数据报从源到目的地传送通常需要经过几条链路,因此数据报可能被不同链路的不同链路层协议处理。

我们将链路层分组称为帧。

物理层 

该层负责将帧中的一个个比特从一个结点移动到下一个节点。该层协议是与链路(例如双绞铜线,单模光纤等)相关的,例如以太网中有许多物理层协议,有关于双绞铜线的,有关于同轴电缆的等等。

 

OSI

因特网协议栈并不是唯一的协议栈,计算机网络分为大约7层,称为OSI模型。它是一种逻辑上的定义,一种规范。它把网络分为了7层,每层都有对应的物理设备,如路由器,交换机等。

相比于因特网的层次,OSI多了两个层:

  • 表示层 :数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。

  • 会话层 :建立及管理会话。

如果应用程序开发者认为这两个层次的提供的服务重要,则需要开发者自己在应用程序中构建该功能。

 

TCP/IP

只有四层,相当于五层协议中数据链路层和物理层合并为网络接口层。

TCP/IP 体系结构不严格遵循 OSI 分层概念,应用层可能会直接使用 IP 层或者网络接口层。

 

数据在各层之间的传递过程

在发送主机端,一个应用层报文传输给运输层后,运输层会附上首部信息(包含如差错位信息等)。该首部会被接收端的运输层使用。

运输层向网络层传递报文段后,网络层会添加如源和目的端系统地址等 网络层首部信息,产生网络层数据报。然后传递给链路层。

而链路层会添加自己的链路层首部信息并创建链路层帧。

计算机网络——概述_第5张图片

 

封装过程通常要更复杂,比如一个大报文可能会被划分为多个运输层报文段,而报文段又可能被划分为多个网络层数据报,因此接收端需要从其连续的数据报中重构报文段。

为什么要数据封装?

  • 增加控制信息,包括地址(发送端,接收端),差错检测编码(用于差错检测或纠正),协议控制(实现协议功能的附加信息,例如优先级,安全控制等)。

 


参考博客

  • https://blog.csdn.net/TommyZht/article/details/45966689
  • https://cyc2018.github.io/CS-Notes/#/notes/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%20-%20%E7%9B%AE%E5%BD%951
  • https://segmentfault.com/a/1190000020139693
  • https://www.jianshu.com/p/0f3953004f4b
  • https://www.cnblogs.com/JuneWang/p/3917697.html

你可能感兴趣的:(计算机网络——概述)