网络的基础知识
一、协议
1、简介:
在计算机网络与信息通信领域里,人们经常提及“协议”一词。互联网中常用的具有代表性的协议有IP、TCP、HTTP等。而LAN(局域网)中常用的协议有IPX/SPX”等。
下面通过通俗一点的方式来解释一下协议:
有三个人A、B、C。A只会说汉语、B只会说英语、而C既会说汉语又会说英语。现在A与B要聊天,他们之间该如何沟通呢?若A与C要聊天,又会怎样?这时如果我们:
- 将汉语和英语当作“协议”
- 将聊天当作“通信”
- 将说话的内容当作“数据”
那么A和B之间由于采用的是不同的语言,那么可能永远都不能进行正常交流。因为他们之间所采用的协议不同,如果想要正常交流,那么必须采用相同的协议,要么都用汉语,要么都使用英语,这样就可以正常交流了。
那么计算机之间进行通信时也是如此,如果两个计算机之间所采用的协议不同,则两个计算将不能进行通信
2、协议分层
ISO在制定标准化OSI之前,对网络体系结构相关的问题进行了充分的讨论,最终提出了作为通信协议设计指标的OSI参考模型。这一模型将通信协议中必要的功能分成了7层。通过这些分层,使得那些比较复杂的网络协议更加简单化。
在这一模型中,每个分层都接收由它下一层所提供的特定服务,并且负责为自己的上一层提供特定的服务。上下层之间进行交互时所遵循的约定叫做“接口”。同一层之间的交互所遵循的约定叫做“协议”。
这样解释可能有点抽象,我们用一个比较形象的场景来解释一下:打电话
在这个图中,他们所用的语言协议作为麦克风的音频输入,在通信设备层被转换为电波信号传送出去了。传送到对方的电话机后,又被通信设备层转换为音频输出,传递给了对方。因此,A与C其实是利用电话机之间通过音频转化声音的接口实现了对话。
3、OSI参考模型:
前面只是将协议简单地分为了两层进行了举例说明。然而,实际的分组通信协议会相当复杂。0SI参考模型将这样一个复杂的协议整理并分为了易于理解的7个分层。
OSI参考模型中各个分层的作用:
OSI参考模型举例:
假定现在有两个用户,用户A和用户B,用户A发一封内容为“早上好”的邮件给用户B,那么在网络中这封邮件究竟做了哪些处理呢?
1、应用层:
应用层协议会在所要传送数据(早上好)的前端附加一个首部(标签)信息。该首部标明了邮件内容为“早上好”和收件人为“B”。这一附有首部信息的数据传送给主机B以后由该主机上的收发邮件软件通过“收信”功能获取内容。主机B上的应用收到由主机A发送过来的数据后,分析其数据首部与数据正文,并将邮件保存到硬盘或是其他非易失性存储器”以备进行相应的处理。如果主机B上收件人的邮箱空间已满无法接收新的邮件,则会返回一个错误给发送方。对这类异常的处理也正属于应用层需要解决的问题。
2、表现层:
表示层的“表示”有“表现”、“演示”的意思,因此更关注数据的具体表现形式”。此外,所使用的应用软件本身的不同也会导致数据的表现形式截然不同。例如有的字处理软件创建的文件只能由该字处理器厂商所提供的特定版本的软件才来打开读取。
此例中的“早上好”这段文字根据其编码格式被转换成为了“统一的网络数据格式”。即便是一段简单的文字流,也可以有众多复杂的编码格式。就拿日语文字来说,有EUC-JP、Shift_JIS、ISO-2022-JP、UTF-8以及UTF-16等很多编码格式0。如果未能按照特定格式编码,那么在接收端就是收到邮件也可能会是乱码”。
表示层与表示层之间为了识别编码格式也会附加首部信息,从而将实际传输的数据转交给下一层去处理。
3、会话层:
假定用户A新建了5封电子邮件准备发给用户B。这5封邮件的发送顺序可以有很多种。例如,可以每发一封邮件时建立一次连接”,随后断开连接。还可以一经建立好连接后就将5封邮件连续发送给对方。甚至可以同时建立好5个连接,将5封邮件同时发送给对方。决定采用何种连接方法是会话层的主要责任。
会话层也像应用层或表示层那样,在其收到的数据前端附加首部或标签信息后再转发给下一层。而这些首部或标签中记录着数据传送顺序的信息。
到此为止,我们通过例子说明了在应用层写人的数据会经由表示层格式化编码、再由会话层标记发送顺序后才被发送出去的大致过程。然而,会话层只对何时建立连接、何时发送数据等问题进行管理,并不具有实际传输数据的功能。真正负责在网络上传输具体数据的是会话层以下的“无名英雄”。
4、传输层:
主机A确保与主机B之间的通信并准备发送数据。这一过程叫做“建立连接”。有了这个通信连接就可以使主机A发送的电子邮件到达主机B中,并由主机B的邮件处理程序获取最终数据。此外,当通信传输结束后,有必要将连接断开。
如上,进行建立连接或断开连接的处理”,在两个主机之间创建逻辑上的通信连接即是传输层的主要作用。此外,传输层为确保所传输的数据到达目标地址,会在通信两端的计算机之间进行确认,如果数据没有到达,它会负责进行重发。
注意:会话层负责决定建立连接和断开连接的时机,而传输层进行实际的建立和断开处理。
eg:主机A将“早上好”这一数据发送给主机B。期间可能会因为某些原因导致数据被破坏,或由于发生某种网络异常致使只有一部分数据到达目标地址。假设主机B只收到了“早上”这一部分数据,那么它会在收到数据后将自己没有收到“早上”之后那部分数据的事实告知主机A。主机A得知这个情况后就会将后面的“好”重发给主机B,并再次确认对端是否收到。
由此可见,保证数据传输的可靠性是传输层的一个重要作用。为了确保可靠性,在这一层也会为所要传输的数据附加首部以识别这一分层的数据。然而,实际上将数据传输给对端的处理是由网络层来完成的。
5、网络层:
网络层的作用是在网络与网络相互连接的环境中,将数据从发送端主机发送到接收端主机。
6、数据链路层和物理层:
通信传输实际上是通过物理的传输介质实现的。数据链路层的作用就是在这些通过传输介质互连的设备之间进行数据处理。
物理层中,将数据的0、1转换为电压和脉冲光传输给物理的传输介质,而相互直连的设备之间使用地址实现传输。这种地址被称为MAC”地址,也可称为物理地址或硬件地址。采用MAC地址,目的是为了识别连接到同一个传输介质上的设备。因此,在这一分层中将包含MAC地址信息的首部附加到从网路层转发过来的数据上,将其发送到网络。
网络层与数据链路层都是基于目标地址将数据发送给接收端的,但是网络层负责将整个数据发送给最终目标地址,而数据链路层则只负责发送一个分段内的数据。
二、传输方式的分类
1、面向有连接和面向无连接:
面向有连接:在发送数据之前需要先得到对象的确认才可以发送,TCP就是面向有连接
面向无连接:发送数据的时候不需要得到对方的同意,直接发送,UDP就是面向无连接
2、电路交换和分组交换:
电路交换:交换机主要负责数据的中转处理。计算机首先被连接到交换机上,而交换机与交换机之间则由众多通信线路再继续连接。因此计算机之间在发送数据时,需要通过交换机与目标主机建立通信电路。我们将连接电路称为建立连接。建立好连接以后,用户就可以一直使用这条电路,直到该连接被断开为止。
分组交换:在分组交换中,由分组交换机(路由器)连接通信线路。分组交换的大致处理过程是:发送端计算机将数据分组发送给路由器,路由器收到这些分组数据以后,缓存到自己的缓冲区,然后再转发给目标计算机。因此,分组交换也有另一个名称:蓄积交换
3、单播、多播、广播和任播:
三、地址
1、地址唯一性:
在网络通信中,通信两端都必须有通信地址,而且地址必须是唯一的,否则将导致无法通信。比如一个班级如果有两个同名的同学都叫刘华,那么当老师叫刘华时就不知道叫的是哪个。
2、地址的层次性:
互联网中有成千上万个网络设备,每个设备都有对应的IP地址,那么在网络通信时如果这些IP地址没有规律的话将导致IP查询非常麻烦,这点可以类比我们常用的电话号码,使用电话和信件通信的过程当中,早已有了地址分层这种概念。例如,电话号码包含国家区号和国内区号,通信地址包含国名、省名、市名和区名等。正是有了这种层次分类才能更加快速地定位某一个地址。
MAC地址和IP地址在标识一个通信主体时虽然都具有唯一性,但是它们当中只有IP地址具有层次性。
首先,IP由网络号和主机号构成,IP地址中如果主机号不同,网络号相同,说明它们处于同一个网段。通常,同处一个网段的主机也都属于同一个部门或集团组织。
四、网络构成要素
在网络通信中,不仅仅只有主机的参与,还需要多种网络设备参与进来,才能构成一个完整的网络
上图是一套网络环境中所涉及的各种网络设备,下面简单介绍一下这些设备的作用
1、网卡:
任何一台计算机连接网络时,必须要使用网卡(全称为网络接口卡)。网络接口卡(NIC”)有时也被叫做网络适配器、网卡、LAN卡。
2、中继器:
中继器(Repeater)是在OSI模型的第1层——物理层面上延长网络的设备。由电缆传过来的电信号或光信号经由中继器的波形调整和放大再传给另一个电缆。
3、网桥/2层交换机:
网桥是在OSI模型的第2层——数据链路层面上连接两个网络的设备。它能够识别数据链路层中的数据帧(与分组意思大致相同)并将这些数据锁临时存储于内存,再重新生成信号作为一个全新的帧转发给相连的另一个网段(具有分割、划分网段的意思)由于能够存储这些数据帧,网桥能够连接10BASE-T与100BASE-TX等传输速率完全不同的数据链路,并且不限制连接网段的个数。
4、路由器/3层交换机:
路由器是在0SI模型的第3层——网络层面上连接两个网络、并对分组报文进行转发的设备。网桥是根据物理地址(MAC地址)进行处理,而路由器/3层交换机则是根据IP地址进行处理的。由此,TCP/IP中网络层的地址就成为了IP地址。
5、网关:
网关是OSI参考模型中负责将从传输层到应用层的数据进行转换和转发的设备”。它与4~7层交换机一样都是处理传输层及以上的数据,但是网关不仅转发数据还负责对数据进行转换,它通常会使用一个表示层或应用层网关,在两个不能进行直接通信的协议之间进行翻译,最终实现两者之间的通信。
TCP/IP基础知识
1、TCP/IP是什么:
从字面意义上讲,有人可能会认为TCP/IP是指TCP与IP两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用IP进行通信时所必须用到的协议群的统称。具体来说,IP或ICMP、TCP或UDP、TELNET或FTP、以及HTTP等都属于TCP/IP的协议。它们与TCP或IP的关系紧密,是互联网必不可少的组成部分。TCP/IP一词泛指这些协议,因此,有时也称TCP/IP为网际协议族
2、互联网是什么:
我们口中经常谈到的互联网时代,那么互联网到底是什么?
“互联网”,英文单词为“Internet”。从字面上理解,internet指的是将多个网络连接使其构成一个更大的网络,所以internet一词本意为网际网。将两个以太网网段用路由器相连是互联网,将企业内部各部门的网络或公司的内网与其他企业相连接,并实现相互通信的网络也是互联网,甚至一个区域的网络与另一个区域的网络相互连接形成全世界规模的网络也可以称作互联网。然而,现在“互联网”这个词的意思却有所变化。当专门指代网络之间的连接时,可以使用“网际网”这个词。
3、互联网和TCP/IP关系:
互联网进行通信时,需要相应的网络协议,TCP/IP原本就是为使用互联网而开发制定的协议族。因此,互联网的协议就是TCP/IP,TCP/IP就是互联网的协议。
4、互联网结构图:
互联网中的每个网络都是由骨干网(BackBone)和末端网(Stub)组成的。每个网络之间通过NOC”相连。如果网络的运营商不同,它的网络连接方式和使用方法也会不同。连接这种异构网络需要有IX”的支持。总之,互联网就是众多异构的网络通过IX互连的一个巨型网络。
5、TCP/IP协议分层模型:
TCP/IP是当今计算机网络使用最为广泛的协议,在前面我们介绍了OSI参考模型,那么TCP/IP对应着也有相应的分层模型
下面来分别介绍一下每一层的功能:
(1)、硬件(物理层):
TCP/IP的最底层是负责数据传输的硬件。这种硬件就相当于以太网或电话线路等物理层的设备。关于它的内容一直无法统一定义。因为只要人们在物理层面上所使用的传输媒介不同(如使用网线或无线),网络的带宽、可靠性、安全性、延迟等都会有所不同,而在这些方面又没有一个既定的指标。
(2)、网络接口层(数据链路层):
网络接口层利用以太网中的数据链路层进行通信,因此属于接口层。也就是说,把它当做让NIC起作用的“驱动程序”也无妨。驱动程序是在操作系统与硬件之间起桥梁作用的软件。计算机的外围附加设备或扩展卡,不是直接插到电脑上或电脑的扩展槽上就能马上使用的,还需要有相应驱动程序的支持。例如换了一个新的NIC网卡,不仅需要硬件,还需要软件才能真正投入使用。因此,人们常常还需要在操作系统的基础上安装一些驱动软件以便使用这些附加硬件。
(3)互联网层(网络层):
互联网层使用IP协议,它相当于OSI模型中的第3层网络层。
IP协议:
- IP是跨越网络传送数据包,使整个互联网都能收到数据的协议。IP协议使数据能够发送到地球的另一端,这期间它使用IP地址作为主机的标识”。
- IP还隐含着数据链路层的功能。通过IP,相互通信的主机之间不论经过怎样的底层数据链路都能够实现通信。
- 虽然IP也是分组交换的一种协议,但是它不具有重发机制。即使分组数据包未能到达对端主机也不会重发。因此,属于非可靠性传输协议。