1、计算机网络知识复习(day01)–计算机网络相关概念及

记录学习复习笔记的地方,学习视频来自哔站“王道考研”:www.bilibili.com/video/BV19E…

参考书籍:《图解TCP/IP》、《计算机网络-谢希仁》

1、计算机网络相关概念

1、计算机网络:

计算机网络是将分散在不同地点且具有独立功能的多个计算机系统,利用通信设备通信线路相互连接起来,在网络协议和软件的支持下进行数据通信,实现信息传递和资源共享的计算机共享的集合。总之,计算机网络是互连的、自治【无主从关系】的计算机集合。

2、计算机网络的组成

从组成部分上看,一个完整的计算机网络主要由硬件、软件、协议三大部分组成,缺一不可。

  1. 硬件:由若干结点和连接这些结点的链路组成;结点可以是计算机、集线器、交换机、路由器等
  2. 软件:通过网络交换信息
  3. 协议:通信协议-规则

image.png

而从其工作方式上看,计算机网络可以划分为以下两大块:

  • 边缘部分:由所有连接在互联网(计算机网络之间通过路由器连接,构成更大的网络,就是互连网,是网络的网络)上的主机host(端系统)组成。这部分是用户直接使用的,利用核心部分提供的服务进行通信和资源共享;
  • 核心部分:由大量网络和连接这些网路的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换),路由器是关键作用。

image.png

处在互联网边缘的部分就是连接在互联网上的所有的主机,这些主机又称为端系统
我们要首先明确下面的概念,我们说:“主机A和主机B进行通信”,实际上是指“主机A的某个进程和主机B的另一个进程进行通信",通常可以称为”计算机之间通信。在网络边缘的端系统之间的通信方式可以划分为以下两大类:客户-服务器方式(C/S方式)和对等方式(P2P方式)

  • 客户-服务器方式(C/S方式) :客户是服务请求方,服务器是服务提供方;
  • 对等连接方式(P2P方式) :两台主机在通信时并不区分哪一个是服务请求方哪一个是服务提供方;

3、计算机网络的功能

  • 数据通信

    它是计算机网络最基本和最重要的功能,用来实现联网计算机之间的各种信息的传输,并将分散在不同地理位置的计算机联系起来进行统一的调配、控制和管理。比如,文件传输、电子邮件等应用,离开了计算机网络将无法实现。

  • 资源共享

    资源共享可以使软件共享、数据共享,也可以是硬件共享。使计算机网络中的资源互通有无、分工协作,从而极大地提高硬件资源,软件资源和数据资源的利用率。

  • 分布式处理

    当计算机网络中的某个计算机系统负荷过重时,可以将其处理的某个复杂任务分配给网络中的其他计算机系统,从而利用空闲计算机资源可以提高整个系统的利用率。

  • 高可用

    计算机网络中的各台计算机可以通过网络互为替代机。

  • 负载均衡【比如Nginx】

    将工作任务均衡地分配给计算机网络中的各台计算机。

其中最重要的两大功能就是数据通信和资源共享,根据这两个功能,我们可以将计算机网络分为通信子网(实现数据通信)和资源子网两部分,如下图

image.png

4、计算机网络的类别

按照网络的作用范围分类:

  • 广域网(WAN):作用范围几十到几千公里,是互联网的核心部分,其任务是通过长距离运送主机所发送的数据,广域网各结点采用高速链路,有较大通信容量【交换技术】
  • 城域网(MAN):作用范围一个城市,用来将多个局域网进行互联,多采用以太网技术
  • 局域网(LAN):作用范围1km左右,一般用微机或工作站通过高速通信线路相连【广播技术】
  • 个人区域网(PAN):作用范围10m左右,把个人工作的地方属于个人的设备用无线技术相连,也叫无线个人区域网(WPAN)

按照网络的使用者分类:

  • 公用网:电信公司出资建造的大型网络,任何人都可付费使用,也称公众网
  • 专用网:为满足特殊业务需要建立的网络,不向外人提供服务

用来把用户进入到互联网的网络:

  • 接入网AN:又称本地接入网或居民接入网

按交换技术分类:

  • 电路交换、报文交换、分组交换

按拓补结构分类:

  • 总线型、星型、环型、网状型(常用于广域网)

按传输技术分类:

  • 广播式网络:共享公共通信信道
  • 点对点网络:使用分组存储转发和路由选择机制

5、计算机网络的性能指标

  1. 速率:指数据的传送速率,也称为数据率或比特率(比特:0/1),单位是bit/s(b/s或bps);【1Byte=8bit】

  2. 带宽:在计算机网络中,带宽表示网络的通信线路所能传送数据的能力,通常表示在单位时间内网络中的某信道所能通过的“最高数据率”;单位是“比特每秒”,也可以说是网络设备所支持的最高速度。

  3. 吞吐量:表示在单位时间内通过某个网络(或信道、接口)的实际的数据量;

  4. 时延:指数据从网络的一端传送到另一端所需的时间。包括发送时延、传播时延、处理时延和排队时延;

  5. 时延带宽积:时延带宽积 = 传播时延 * 带宽;

  6. 往返时间RTT:互联网上的信息双向交互一次所需的时间;

  7. 利用率:利用率越高,时延越高。

2、计算机网络体系结构

2.1、计算机网络的标准化工作及相关组织

因特网的标准都以RFC(Request For Comments)的形式在因特网上发布,但并非每个RFC都是因特网标准,RFC要上升为因特网的正式标准需要经过以下四个阶段。

  1. 因特网草案(Internet Draft)。这个阶段还不是正式RFC文档。
  2. 建议标准(Proposed Standard)。从这个阶段开始就成为RFC文档。
  3. 草案标准(Draft Standard)。
  4. 因特网标准(Internet Standard)。

在国际上负责制定、实施相关网络标准的标准化组织,主要有如下几个:

  • 国际标准化组织(ISO):制定的只要网络标准或规范有OSI参考模型、HDLC等。
  • 国际电信联盟(ITU):其前身为国际电话电报咨询委员会(CCITT),其下属机构ITU-T制定了大量关于远程通信的标准。
  • 国际电气电子工程师协会(IEEE):世界上最大的专业技术团体,由计算机和工程学专业人士组成。IEEE在通信领域最著名的研究成果是802标准。

为了使不同体系结构的计算机网络都能互联,国际标准化组织ISO提出了一个能使各种计算机在世界范围内互联成网的标准框架一开放 系统互连基本参考模型OSI.这样,只要遵循OSI标准,一个系统就可以和位于世界上任何地方的、也遵循这同一标准的其他任何系统进行通信。1983年形成了所谓的OSI七层协议体系结构,但是由于各方原因未能成为一个全球标准,而TCP/IP常常被称为事实上的国际标准

2.2、协议与层次划分

1、什么是网络协议?

在计算机网络中要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则。这些规则明确规定了所交换的数据的格式以及有关的同步问题。这里所说的同步不是狭义的(即同频或同频同相)而是广义的,即在一定的条件下应当发生什么事件(例如,应当发送一个应答信息),因而同步含有时序的意思。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(networkprotocol)。 网络协议也可简称为协议。

网络协议的组成要素

  • 语法,即数据与控制信息的结构或格式;
  • 语义,即需要发出何种控制信息,完成何种动作以及做出何种响应;
  • 同步,即事件实现顺序的详细说明

2、网络协议层次划分

为什么要分层?

我们可以举一个简单的例子来说明划分层次的概念。现在假定我们在主机1和主机2之间通过一个通信网络传送文件。这是一项比较复杂的工作,因为需要做不少的工作。我们可以将要做的工作划分为三类。第一类工作与传送文件直接有关。例如,发送端的文件传送应用程序应当确信接收端的文件管理程序已做好接收和存储文件的准备。若两台主机所用的文件格式不一样,则至少其中的一台主机应完成文件格式的转换。这两项工作可用一个文件传送模块来完成。这样,两台主机可将文件传送模块作为最高的一层(图1-17)。在这两个模块之间的虚线表示两台主机系统交换文件和一些有关文件交换的命令。

image.png

但是,我们并不想让文件传送模块完成全部工作的细节,这样会使文件传送模块过于复杂。可以再设立一个通信服务模块,用来保证文件和文件传送命令可靠地在两个系统之间交换。也就是说,让位于上面的文件传送模块利用下面的通信服务模块所提供的务。我们还可以看出,如果将位于上面的文件传送模块换成电子邮件模块,那么电子邮件模块同样可以利用在它下面的通信服务模块所提供的可靠通信的服务。

同样道理,我们再构造一个网络接入模块,让这个模块负责做与网络接口细节有关的工作,并向上层提供服务,使上面的通信服务模块能够完成可靠通信的任务。

分层的基本原则

  • 各层之间是独立的。某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间的接口(即界面)所提供的服务。由于每一层只实现一种相对独立的功能,因而可将一个难以处理的复杂问题分解为若干个较容易处理的更小一些的问题。这样整个问题的复杂程度就下降了。

  • 灵活性好。当任何一层发生变化时(例如由于技术的变化),只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。此外,对某一层提供的服务还可进行修改。当某层提供的服务不再需要时,甚至可以将这层取消。

  • 结构上可分割开。各层都可以采用最合适的技术来实现。

  • 易于实现和维护。这种结构使得实现和调试-一个庞大而又复杂的系统变得易于处理,因为整个的系统已被分解为若干个相对独立的子系统。

  • 能促进标准化工作。因为每-层的功能及其所提供的服务都已有了精确的说明。

  • 每层遵循某些个网络协议以完成本层功能

计算机网络的各层及其协议的集合就是网络的体系结构(architecture)。换种说法,计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定义[GREE82]

2.3、计算机网络分层结构模型

OSI的七层协议体系结构的概念清楚,理论也比较完整,但它既复杂又不实用。

TCP/IP体系结构则不同,它现在已经得到了非常广泛的应用,TCP/IP是一个四层的体系结构,它包含应用层、运输层、网际层和网络接口层(用网际层这个名字是强调这一层是为了解决不同网络的互连问题)。

不过从实质来讲,TCP/IP只有最上面的三层,因为最下面的网络接口层基本上和一般的通信链路的功能上没有多大差别,对于计算机网络来说,这一层并没有什么特别新的具体的内容,因此在学习计算机网络原理是往往采用折中的办法,即综合OSI和TCP/IP的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。

image.png

1、7层OSI参考模型

OSI七层模型有7层,自上而下为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。低三层统称为通信子网,它是为了联网而附加的通信设备,完成数据的传输功能;高三层统称为资源子网,它相当于计算机系统,完成数据的处理等功能。传输层承上启下。

OSI的层次结构如下图所示:

image.png

现在用一个例子来阐述一下七层模型中应用进程的数据在各层之间的通信过程,假设两台主机通过一个中间系统路由器连接起来:【这里的应用层表示的是会话层、表示层、应用层高三层,5层模型】

image.png

中间系统只有低三层,因此整个通信中高三层可以看做是端到端的通信,而低三层可以看做是点到点的通信,整个过程可以理解为装箱和拆箱操作

虽然应用进程数据要经过上图所示的复杂过程才能送到对方的应用进程,但这些复杂过程对用户来说,却都被屏蔽掉了,以致应用进程烀AP1觉得好像是直接把数据交给了应用进程AP2。同理,任何两个同样的层次(例如在两个系统的第4层)之间,也好像如同图中的水平虚线所示的那样,可将数据(即数据单元SDU加上控制信息PCI)直接传递给对方。这就是所谓的“对等层”之间的通信。我们以前经常提到的各层协议,实际上就是在各个对等层之间传递数据时的各项规定。

OSI参考模型各层详述:

参考链接:blog.csdn.net/cl19950327/…

(1)物理层(Physical Layer)

物理层考虑的是怎样才能在各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体,物理层的任务是尽可能地屏蔽掉传输媒体和通信手段的差异,使物理层上面的数据链路层感觉不到这些差异,使其只需考虑本层的协议和服务,而不必考虑具体的传输媒体和通信手段。物理层所传输的数据单位是比特,发送方发送1或0,接收方也接收1或0,物理层需要考虑用多大的电压代表1或0。物理层使用的中间设备是转发器。

(2)数据链路层(Data Link Layer)

数据链路层的任务是将网络层交下来的 IP 数据报组装成帧,在两个相邻结点之间的链路上传输帧,每一帧包括数据和必要的控制信息(同步信息、地址信息、差错控制等)。数据链路层的协议有 PPP、CSMA/CD 等。数据链路层使用的中间设备是网桥或桥接器。

(3)网络层(Network Layer)

网络层的任务是负责为分组交换网上的不同主机提供通信服务,在发送数据时网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。网络层的另一个任务是选择合适的路由,使源主机运输层传下来的分组能够通过网络中的路由器找到目的主机。网络层的协议有 IP、ARP、ICMP、IGMP 等。网络层使用的中间设备是路由器。

(4)传输层(Transport Layer)

运输层的任务是负责向两台主机进程之间的通信提供通用的数据传输服务。运输层的协议主要有

  • 传输控制协议 TCP,它提供面向连接的、可靠的数据传输服务,数据传输单位是报文段(segment);
  • 用户数据报协议 UDP,它提供无连接的、尽最大努力的数据传输服务,数据传输单位是用户数据报。

(5)会话层(Session Layer)

会话层允许不同主机上的各个进程之间进行会话。会话层利用传输层提供的端到端的服务,向表示层提供它的增值服务,这种服务主要为表示层实体或用进程户建立连接并在连接上有序地传输数据,这就是会话,也称建立同步(SYN)。

会话层负责管理主机间的会话进程,包括建立、管理及终止进程间的会话。会话层可以使用校验点使通信会话在通信失效时从校验点继续恢复通信,实现数据同步。

(6)表示层(Presentation Layer)

表示层主要处理在两个通信系统中交换信息的表现方式。 不同机器采用的编码和表示方法不同,使用的数据结构也不同为了使不同表示方法的数据和信息之间能互相交换,表示层采用抽象的标准方法定义数据结构,并采用标准的编码形式。数据压缩、加密和解密也是表示层可提供的数据表示变化功能。

(7)应用层(Application Layer)

应用层是OSI模型的最高层,应用层的任务是通过应用进程之间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程是指主机中正在运行的程序。对于不同的网络应用需要有不同的应用层协议。在互联网中的应用层协议有很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,等等。应用层交互的数据单元是报文 (message)。

5层模型传输的数据的类型

OSI参考模型 各层次的传输单元【PDU类型】
应用层 报文
传输层 报文段
网络层 IP数据报,分组(如果IP数据报太大就切割成分组)
数据链路层
物理层 比特流

2、4层TCP/IP模型

摘自:blog.csdn.net/qq_42240729…

ARPR在研究ARPAnet时提出TCP/IP模型,模型从低到高依次为网络接口层(对应OSI参考模型中的物理层和数据链路层)、网际层、传输层和应用层(对应OSI参考模型中的会话层、表示层和应用层)。

TCP/IP的层次结构及各层的主要协议如下图:

image.png

  • 网络层的接口的功能类似于OSI的物理层和数据链路层。
    它表示与物理网络的接口,但实际上TCP/IP本身并未真正描述这一部分,只是指出主机必须使用某种协议与网络连接,一遍在其上传递IP分组。具体的物理网络既可以是各种类型的局域网,如令牌环网、令牌总线网等,也可以是诸如电话网、SDH、X.25、帧中继和ATM等公共数据网络。网络接口层的作用是从主机或结点接收IP分组,并把他们发送到指定的物理网络上。

  • 网际层(主机-主机)是TCP/IP体系结构的关键部分。它和OSI网络层在功能上非常相似。网际层将分组发往任何网络,并为之独立地选择合适的路由,但它不保证各个分组有序的到达,各个分组的有序交付由高层负责。网际层定义了标准的分组格式和协议,即IP。当前采用的IP是第四版,即IPv4,下一版本是IPv6。

  • 传输层(应用-应用或进程-进程)的功能同样和OSI中的传输层类似,即使得发送端和目的端主机上的对等实体进行会话。传输层主要使用以下两种协议:(1)传输控制协议(Transmission Control Protocol,TCP)。它是面向连接的,数据传输的单位是报文段,能够提供可靠的交付。(2)用户数据报协议(User Datagram Protocol,UDP)。它是无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。

  • 应用层(用户-用户)包含所有的高层协议,如虚拟终端协议(Telnet)、文件传输协议(FTP)、域名解析服务(DNS)、电子邮件协议(SMTP)和超文本传输协议(HTTP)。

3、分层结构总结

image.png

4、5层参考模型

image.png

2.4、TCP/IP模型与OSI参考模型的比较

相似之处:

  • 二者都采取分层的体系结构,将庞大而复杂的问题划分为若干较容易处理的、范围较小的问题,而且分层的功能也大体相似。
  • 二者都是基于独立的协议栈的概念。
  • 二者都可以解决异构网络的互联,实现世界上不同厂家生产计算机之间的通信。

差别之处:

  • OSI参考模型最大的贡献就是精确地定义了三个主要概念:服务、协议和接口,这与现代的面向对象程序设计思想非常吻合。而TCP/IP模型在这三个概念上没有明确区分,不符合软件工程的思想。

  • OSI参考模型产生在协议发明之前,没有偏向于任何特定的协议,通用性良好。但设计者在协议方面没有太多经验,不知道把哪些功能放到哪一层比较好。TCP/IP模型正好相反,首先出现的是协议,模型实际上是对已有模型的描述,因此不会出现协议不能匹配模型的情况,但该模型不适合于其他非TCP/IP的协议栈。

  • TCP/IP模型在设计之初九考虑到了多种异构网络的互联问题,并将网络协议(IP)作为一个单独的重要层次。

  • OSI参考模型在网络层支持无线连接和面向连接的通信,但在传输层仅有面向连接的通信。而TCP/IP模型认为可靠性是端到端的问题,因此它在网际层仅有一种无连接的通信模式,但传输层支持无连接和面向连接两种模式。