IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 【计算机网络】第一部分 概述(2) 网络模型(OSI和TCP/IP模型) -> 正文阅读

[网络协议]【计算机网络】第一部分 概述(2) 网络模型(OSI和TCP/IP模型)

网络利用硬件和软件的组合,将数据从一个地点发送到另一地点。硬件由「能够将信号从网络的一点传输到另一点的物理设备」组成,软件由指令集合组成,它使我们所期待的来自网络的服务成为可能。

可将网络的任务与运用计算机解决数学问题的任务进行比较。计算机解决数学问题时,最基础的工作是由计算机硬件完成的。然而,如果只使用硬件,这将是一项十分冗长乏味的工作。如果软件能够掌握这些情况,那么就可以很容易完成这些任务。在最高层,程序能够指导问题解决的过程。而像实际的硬件该如何完成任务之类的细节问题,则留给「由更高的层来调用的软件层」来完成 the details of how this is done by the actual hardware can be left to the layers of software that are called by the higher levels

计算机网络的情形与之相似。例如,将一份电子邮件从世界上的一个地点发送到另一个地点的任务,可以划分成几个子任务,每个子任务都是由一个强立的软件包来完成。每一份软件都使用另一软件包提供的服务来完成自己的工作。在最底层,将一个信号或一组信号从源计算机发送到目的计算机。

本章给出网络层次 the layers of a network 的总体概念,并讨论每一层各自的功能。这些层在以后的各章中详细描述。


2.1 任务分层

在日常生活中就使用层次的概念。举个例子,有两位朋友通过邮寄信件互相通信。如果没有邮局提供的服务,将信件发送给朋友的过程将是十分复杂的。图2.1显示了该任务是如何完成的。
图2.1 发送信件所包含的任务

2.1.1 发送方、接收方和载体

在图2.1中有一个发送方、接收方和传输信件的载体。任务具有层次结构。下面按顺序描述一下在发送方发生的活动。

  • 高层:发送方写信,将信件装入信封,写下发送方和接收方的地址,将信件投入信箱。
  • 中间层:信件被邮递员取出并送到邮局。
  • 低层:邮局对信件进行分拣 。邮车转运信件。
  • 路途中:然后,邮件走上到达接收方的路途。在到达接收方的本地邮局的路途中,它实际上还要经过中央邮局。另外,信件可能是通过卡车、火车、飞机、船或者以上交通工具的组合进行转运的。

下面按顺序描述一下在接收方发生的活动。

  • 低层:邮车将信件转运到邮局。
  • 中间层:信件分拣后递送到接收方的信箱。
  • 高层:接收方取出信件,打开信封,读信。

2.1.2 层次结构

根据分析,在发送方有三个不同的活动,在接收方也有另外三个活动。在发送方和接收方之间转运信件的任务是由邮车完成的。不能一眼看出来的是,这些任务必须按照给定的层次顺序完成。在发送方,信件必须是先写出、投进邮箱,然后才能让邮递员拣起再递送到邮局。在接收方,信件必须先放入接收方信箱,然后才能被接收方取出并被阅读。

服务

在高层的发送方使用中间层提供的服务,中间层使用低层提供的服务,低层使用邮车提供的服务。在接收方,每一层都使用其直接下层提供的服务。

1990年以前,在数据通信和网络文献资料中、占有主要地位的分层结构模型是开放系统互联 Open System Interconnection, OSI 模型。大家都认为OSI模型会成为数据通信的最终标准,但这种情况没有出现。TCP/IP协议族成为了占统治地位的业务体系结构,因为该协议族已在因特网中被大量采用,并对其已作过广泛测试,而OSI模型却从未完全实现过。

本节简要讨论OSI模型,然后集中关注TCP/IP协议族。


2.2 OSI模型

国际标准化组织 ISO 成立于1947年,它是一个致力于在世界范围内建立统一国际标准的多国组织。一个能包含络通信各方面的ISO标准是开放系统互联模型(见图2.2) ,它最初于20世纪70年代形成。开放系统 open system 是一组协议,它允许任何两个不同系统进行相互通信,而不管其底层结构如何。建立OSI模型的目的是使不同系统间的通信变得容易,而不要求对其底层软硬件的逻辑结构做任何改动

OSI模型并不是一个协议,而是一个模型。利用该模型可以理解并设计一个灵活、健壮和可互操作的网络体系结构。
图2.2 OSI模型

OSI模型提供了一个用来进行网络系统设计的层次化框架。它由 7 7 7 个相互独立、但又有互相关联的层次组成,每一层都定义了「通过网络传递信息 the process of moving information across a network 的流程」的一部分(见图2.2) 。深刻理解OSI模型的基本概念是探索数据通信领域知识的一个坚实基础。

2.2.1 层次化体系

OSI模型由 7 7 7 个有序的层组成:物理层(第一层)、数据链路层(第二层)、网络层(第三层)、传输层(第四层)、会话层(第五层)、表示层(第六层)以反应用层(第七层)。图2.3表示了当一个报文从设备 A A A 到设备 B B B 传输时所涉及的层次。当报文从设备 A A A 到设备 B B B 时,它可能通过许多中间节点。这些中间节点通常只涉及OSI模型的前三层
图2.3 OSI模型中层次间的交互
在建立模型的过程中,设计者将传输数据的过程归结为一些最基本的元素。他们确定了具有相关用途的网络功能,并将这些功能归类到一些独立的功能组。这些功能组就形成了各个层次,每一层都定义了一系列与其他层次不同的功能。通过这种方式进行功能定义和局部化,使设计者能建立一个既全面、又有灵活性的体系结构。最重要的是,OSI模型允许在不兼容系统之间的完全透明化

在单台机器中,每一层调用下一层提供的服务。例如,第三层使用第二层提供的服务,同时也向第四层提供服务。在两台机器之间,一台机器上的第 x x x 层与另一机器的第 x x x 层进行通信,这种通信由一系列称为协议的规则和约定来控制。每台机器上在特定层次进行通信的进程称为对等进程 peer-to-peer process 。因此,机器间的通信就是一个使用「适用于给定层次的协议」的对等过程 Communication between machines is therefore a peer-to-peer process using the protocols appropriate to a given layer

2.2.2 对等过程

在物理层,通信是直接发生的。在图2.3中,设备 A A A 将位流传送到设备 B B B(通过中间节点)。但是,在更高层次中,通信必须先在设备 A A A 中从上层传到下层,再传输到设备 B B B ,然后在设备 B B B 中再从下层传输到上层。在发送端,每一层都在从直接上层传来的报文加上自己的信息,并将整个分组传到它的直接下层。

在第一层,整个分组被转换成可以传输到接收端设备的形式。在接收端,报文被一层一层地打开,每一层接收并提取对它有意义的数据。例如,第二层将提取对它有意义的数据,并将剩下的传输给第三层。第三层提取对它有意义的数据,并将剩下的传输给第四层,依此类推。

1. 层间接口

发送设备将数据和网络信息从高层向低层传递,而接收设备将这些信息由低层向高层传递,这个过程是通过相邻两层的接口 interface 来实现的。每一层的接口都定义了该层必须向上层提供的信息和服务,良好定义的接口和层功能可使网络模块化——只要某一层仍能为上一层提供所期望的服务,该层功能的具体实现就可以在不改变周围层次的基础上进行修改和替换。

2. 层次组织

7 7 7 个层次分属于 3 3 3 个子功能组。第一层、第二层和第三层(物理层、数据链路层和网络层)是网络支持层它们处理从一个设备到另一个设备数据传输的物理方面问题(比如,电气特性、物理连接、物理寻址、传输的时序和可靠性)。第五层、第六层和第七层(会话层、表示层和应用层)可认为是用户支持层它们允许不相关的软件系统间的互操作。第四层即传输层,将这两个子功能组连接起来,并保证下层是以上层能够使用的形式传输的。

OSI的高层常通过软件来实现,而低层则是由硬件和软件混合实现,但物理层几乎都是由硬件实现。在图2.4中描述了OSI层次的整体结构,D7 指第七层的数据,D6 指第六层的数据,依此类推。整个过程从第七层(应用层)开始,然后一层层向下移动。在每一层,数据单元可能被加入头部 header 或者尾部 trailer通常仅在第二层加上尾部。当格式化的数据单元经过物理层(第一层)时,它被转换成电磁信号,并在物理链路上传输。
图2.4 使用OSI模型的传输过程

到达目的地后,信号传入第一层并被重新转换成数字形式。然后,数据单元由下向上传到OSI各层。当每一数据块到达下一个更高层时,在发送端对应层次附加的头部和尾部就被除去,并执行该层相应的动作。数据到达第七层时,报文又回到应用层的格式,并可以为接收者使用

2.2.3 封装

图2.4揭示了OSI模型中数据通信的另一个方面:封装。在第七层的一个分组(头部和数据)封装在第六层的一个分组中,第六层的整个分组封装在第五层的一个分组中,依此类推。换言之, N ? 1 N-1 N?1 层的分组中的数据部分是第 N N N 层的完整分组(数据、头部、也可能有尾部)

这种概念称为封装 encapsulation ,第 N ? 1 N-1 N?1 层不知道被封装分组中,那些部分是数据,那些部分是头部或尾部。对于第 N ? 1 N-1 N?1 层来说,来自第 N N N 层的分组是作为一个整体单元处理的


2.3 OSI模型的各层功能

在本节中,简要描述OSI模型每一层的功能。

2.3.1 物理层

物理层 physical layer 包含那些在物理介质上传输位流所必需的功能。它定义了「接口与传输介质」的机械和电气特性(机械和电气规范),也定义了物理设备和接口为了传输而必须执行的过程和功能。图2.5表示了对应传输介质与数据链路层的物理层的位置。
图2.5物理层
物理层负责单个比特从一个节点到另一个节点的传递。物理层考虑以下一系列问题:

  • 接口与介质的物理特性。物理层定义了设备与传输介质之间的接口特性,也定了传输介质的类型。
  • 位的表示。物理层的数据是没有任何解释的 bit 流(由 0 0 0 1 1 1 所组成的序列)。要进行传输,位必须编码成信号一一电信号或光信号。物理层定义编码 encoding 的类型(如何将 0 0 0 1 1 1 转换成信号)。
  • 数据速率传输速率 transmisson rate ,即每秒发送的位数,也在物理层定义。换言之,物理层也定义一个位持续多长时间
  • 位同步。发送方与接收方不仅使用相同的比特率,还必须位同步。换言之,发送方的时钟与接收方的时钟必须同步
  • 线路配置。物理层涉及设备与介质的连接。在点到点配置中,两个设备通过一条专用链路连接。在多点配置中,许多设备共享一条链路
  • 物理拓扑结构物理拓扑结构定义如何将设备连接成网络。设备的连接方式可以是网状拓扑结构(每台设备均与其他设备连接)、星型拓扑结构(通过中心设备与其他设备连接)、环状拓扑结构(每台设备与下一台设备连接以组成一个环)和总线拓扑结构(每台设备都在一条公共链路上)。
  • 传输方式。物理层也定义两台设备之间的传输方向:单工、半双工和全双工。在单工方式中,只有一个设备能发送,另一个设备只能接收。单工方式是单向通信。在半双工方式中,两台设备都能发送和接收,但不能在同一时刻。在全双工(或双工)方式中,两个设备能在同一时刻发送与接收。

2.3.2 数据链路层

数据链路层 data link layer 将「物理层一一对数据不做任何改动的传输通道」变成可靠的链路,这样可以将物理层的数据无差错地传递给上层(网络层)。图2.6表明了数据链路层与网络层及物理层之间的关系。
图2.6 数据链路层
数据链路层负责帧从一跳(节点)到下一跳(节点)的传递。数据链路层的具体职责如下:

  • 成帧。数据链路层将「接收到的来自网络层的位流」划分成称为 frame 的易处理数据单元。
  • 物理寻址。如果帧是发送给网络中不同系统,则数据链路层在帧的头部添加发送方的物理地址与接收方的物理地址。如果帧要发往发送方网络之外的系统,那么接收方的地址就是「连接一个网络到下一个网络的设备的地址」。
  • 流量控制。如果接收方接收数据的速率小于发送方发送的速率,那么数据链路层就会采用流量控制机制,以防止接收方过载。
  • 差错控制。数据链路层增加一些机制,用来检测与重发损坏帧或丢失帧,从而增加了物理层的可靠性。还用了一个机制防止重复帧。差错控制通常是在一个帧的结束处增加一个尾部来处理。
  • 访问控制。当两台或多台的设备连接到同一条链路上肘,数据链路协议必须能决定,在任意时刻由哪一台设备来获取对链路的控制权。

图2.7说明了数据链路层的跳到跳传递 hop-to-hop delivery ,或者称为节点到节点传递 node-to-node delivery
图2.7 跳到跳传递如图2.7所示,两个相邻节点在数据链路层通信。节点 A A A 发送数据到节点 F F F ,要经过三次传递。首先,节点 A A A 的数据链路层发送一个帧到节点 B B B(路由器)的数据链路层,其次节点 B B B 的数据链路层发送一个新帧到节点 E E E 的数据链路层,最后节点 E E E 数据链路层发送一个新帧到节点 F F F 的数据链路层。注意:三个节点之间交换的帧具有不同的头部值。从 A A A B B B ,以 B B B 作为目的地址和以 A A A 作为源地址;从 B B B E E E ,以 E E E 作为目的地址和以 B B B 作为源地址;从 E E E F F F ,以 F F F 作为目的地址和以 E E E 作为源地址。如果差错检测包括帧的头部,则尾部的值也可以是不同 The values of the trailers can also be different if error checking includes the header of the frame

2.3.3 网络层

网络层 network layer 负责将分组从源地址传递到目的地址,可能会通过多个网络(链路)。尽管数据链路层会监视同一个网络(链路)上两个系统之间分组的传递,但是还需要网络层确保每个分组能够从出发点到达目的地。

如果两个系统连接在同一条链路上,则通常不需要网络层。然而,如果两个系统在不同的网络(链路)上、并通过网络(链路)之间的设备连接,通常就需要网络层,以完成源端到目的端的传递。图2.8表示了网络层与数据链路层、传输层的关系。
图2.8 网络层

网络层负责将各个分组从源地址传递到目的地址。网络层的具体任务是:

  • 逻辑寻址物理寻址负责处理本地网络寻址问题,它由数据链路层完成如果一个分组通过网络边界,就需要另一个寻址系统来帮助区分源与目的系统。网络层给来自上一层的分组增加一个头部,它包括发送方与接收方的逻辑地址。在后面讨论逻辑地址。
  • 路由选择。当一些强立网络或链路连接在一起构成一个互联网(一个由网络连成的网络)或一个更大的网络时,连接设备(称为路由器或网关)把分组送到它们的最终目的地,网络层的功能之一是提供这种机制。图2.9说明了网络层端到端的传递。
    如图2.9所示,现在我们需要一个源到目的传递。节点 A A A 的网络层发送一个分组到节点 B B B 的网络层,当分组到达路由器 B B B 时,则该路由器按照该分组的最终目的地(节点 F F F )做出决定。
    在以后,会看到路由器 B B B 利用它的路由表寻找下一跳的路由器,该路由器是 E E E 。所以,节点 B B B 的网络层发送分组到节点 E E E 的网络层,节点 E E E 的网络层再发送分组到节点 F F F 的网络层。
    在这里插入图片描述

2.3.4 传输层

传输层 transport layer 负责整个报文的进程到进程传递 process-to-process delivery ,进程是主机上运行的应用程序。尽管网络层监管各个分组的源端到目的端传递 source-to-destination delivery ,但是它并不了解这些分组之间的相互关系。网络层独立处理每个分组,就像每个分组都属于一个独立报文一样,不管实际上是否这样。传输层正好相反,它确保整个报文无差错、并按顺序地到达目的地,且在源到目的层次进行差错控制和流量控制。图2.10表示了传输层与网络层及会话层的关系。
图2.10 传输层

传输层负责一个报文从一个进程到另一个进程的传递。传输层的具体任务如下:

  • 服务点寻址。常常会有许多程序同时在一台计算机上运行,因此源端到目的端的传递就意味着,不仅是从一台计算机传递到另一台计算机,而是从一 台计算机上的一个特定进程(运行的程序)传递到另一台计算机上的一个特定进程(运行的程序)。因此,传输层信息的头部就必须包含服务点地址(也叫端口地址)。网络层将每个分组传送到指定的计算机上,而传输层则将整个报文传送给该计算机上的指定进程。
  • 分段和组装。将报文分解成可传输的片段,并且给这些片段编上序号。这些序号不仅使传输层可以在接收端将报文正确地组装,而且可以用来标识和替换传输中丢失的分组
  • 连接控制。传输层可以是无连接的或面向连接的。无连接的传输层将每个片段作为一个独立的分组,并将它传递到目的机器的传输层。而面向连接的传输层,在传递分组之前,需要与目的机器的传输层建立一条连接,所有数据被传输后,该连接择放。
  • 流量控制。如同数据链路层一样,传输层担负流量控制的责任。然而,这一层的流量控制是在端到端上,而不是在单条链路上
  • 差错控制。如同数据链路层一样,传输层担负差错控制的责任。然而,这一层的差错控制是在进程到进程上,而不是在单条链路上发送方的传输层确保整个报文无差错(损坏 、 丢失或重复)地到达接收方的传输层,通常通过重发来纠正差错。图2.11 说明了传输层进程到进程的传递。
    图2.11 一个报文的进程到进程的可靠传递

2.3.5 会话层

前面 3 3 3 层(物理层、数据链路层和网络层)提供的服务对某些进程是不需要的。会话层 session layer 是网络的对话控制器,它建立、维护和同步通信系统间的交互操作 It establishes, maintains, and synchronizes the interaction among communicating systems

会话层负责对话控制和同步。会话层的具体任务是:

  • 对话控制。会话层允许两个系统进入会话。它允许两个进程之间以半双工(一次一个方向)或全双工(一次两个方向)方式进行通信。
  • 同步。 会话层允许一个进程在数据流中增加检查点同步点 synchronization point 。例如,假定一个系统要传输 2000 2000 2000 页的一个文件,为了确保每收到 100 100 100 页就独立地进行确认,每 100 100 100 页后应适当插入一个检查点。在这种情况下,如果传输到第 532 532 532 页发生崩溃,则在第 501 501 501 页处开始重传,而第 1 1 1 页到第 500 500 500 页不必重传。图2.12描述了会话层与传输层及表示层的关系。
    图2.12 会话层

2.3.6 表示层

表示层 presentation layer 涉及两个系统之间交换信息的语义和语法。图2.13描述了表示层与会话层及应用层的关系。
图2.13 表示层

表示层负责翻译、加密和压缩数据 。表示层的具体任务是:

  • 翻译。两个系统中的进程(运行程序)通常以字符串、数字等格式来交换信息。在传输前,信息必须变换成位流。因为不同计算机采用不同的编码系统,因此表示层负责不同编码方法之间的互操作——发送方的表示层将信息从发送方使用的格式转换成一个公共的格式。接收方机器的表示层将公共格式转换成接收方使用的格式
  • 加密。为了传输敏感信息,一个系统必须保证秘密。加密是指发送方将原来的信息转换成另一种形式,并在网络上发送转换后的形式。解密是将信息转换回它的原始形式
  • 压缩。数据压缩减少需要传输数据的位数。数据压缩对于多媒体(如文本、音频和视频)的传输显得特别重要。

2.3.7 应用层

应用层 application layer 使得用户(不管是人还是软件)可以访问网络。它提供了用户接口和服务支持。比如电子邮件、远程文件访问与传输、共享数据库管理以及其他分布式信息服务。

图2.14说明了应用层与用户和表示层的关系。在许多现有的应用服务中,图中只表示了三种:X.400(报文处理服务)、X.500(目录服务)和文件传输、访问和管理 file transfer, access, and management, FTAM 。图中用户正在使用 X.400 发送电子邮件。
图2.14 应用层
应用层负责向用户提供服务。应用层的具体服务如下:

  • 网络虚拟终端一个网络虚拟终端是物理终端的软件版本,允许用户登录到一台远程主机上。为此,应用程序在远程主机上创建终端的软件仿真。用户计算机只与这个软件终端对话,而软件终端与主机对话,反之亦然。而远程主机认为自己是在与自己的一个终端通信,因而允许用户登录。
  • 文件传输、访问和管理。这项应用允许用户访问远程计算机上的文件(进行修改或读取数据),从远程计算机上检索文件,以及管理或控制远程计算机上的文件。
  • 邮件服务。提供电子邮件存储转发的基础。
  • 目录服务。提供分布式数据库资源、以及对不同对象和服务的全球信息的访问。

2.3.8 各层功能小结

图2.15对每层的功能做了小结。
图2.15 各层功能小结


2.4 TCP/IP协议族

TCP/IP协议族 TCP/IP protocol suite 是在OSI模型之前开发的,所以TCP/IP协议族的层次与OSI模型的层次并不严格对应

TCP/IP协议族由 4 4 4 个层次组成:主机到网络层、互联网层、传输层和应用层 host-to-network, internet, transport, and application 。然而,当TCP/IP与OSI模型比较时,则可以说主机网络层相当于物理层和数据链路层的组合,互联网层等价于网络层,应用层基本上完成了会话层、表示层和应用层的工作,而TCP/IP中的传输层负责会话层的部分功能

所以不妨假定TCP/IP协议族由 5 5 5 层组成:物理层、数据链路层、网络层、传输层和应用层。前面 4 4 4 层提供物理标准、网络接口、网际互联和传输功能,它相应于OSI模型前的 4 4 4 层。OSI模型最上面的 3 3 3 层由TCP/IP一个称为应用层(见图2.16)的单一层来表示

TCP/IP是由相互作用的模块组成的分层协议,每一层提供一个特定的功能,但它们不需要相互依赖。尽管OSI模型指定了属于每一 层的功能,但TCP/IP协议族的各层却包含一些相对独立的协议,这些协议依据系统的需要能棍合与匹配。术语分层意指每个上一层协议是由一个或多个下层协议支持的

在传输层,TCP/IP定义了 3 3 3 个协议:传输控制协议 TCP 、用户数据报协议 UDP 和流控制传输协议 SCTP 。在网络层,由TCP/IP定义的主要协议有网际协议 IP ,尽管还有支持数据运行的其他协议。

2.4.1 物理层和数据链路层

图2.16 TCP/IP和OSI模型
在物理层和数据链路层中,TCP/IP不定义任何协议,它支持所有标准和专门协议,采用TCP/IP互联的网络可以是局域网或广域网。

2.4.2 网络层

在网络层(或者更确切地说互联网络层),TCP/IP支持网际协议 Internetworking Protocol, IPIP使用 4 4 4 个支持协议:ARP、RARP、ICMP和IGMP。这些协议中的每个,都将在后面更详细地介绍。

(1) 网际协议

网际协议是TCP/IP协议使用的传输机制。它是一个不可靠、无连接数据报协议,即尽力传递 best-effort delivery 服务——尽力一词的意思是,IP不提供差错检测和跟踪。IP假定了底层是不可靠的,因此尽最大努力传输到目的地,但没有保证。

IP传输的数据称为数据报 datagram ,每一个数据报都独立地传输。数据报可以沿着不同的路由传输,有可能不按顺序到达,或者重复出现。IP没有路由跟踪,因此一且这些数据报到达目的地,它们没有重新排序的功能

然而,IP的这一局限功能并不被认为是一个缺点,因为它提供了基本的传输功能,使用户只需自由添加「已知应用所必需的那些设施」,就可以获得最大的效率。IP将在【计算机网络】第四部分 网络层(20) IP协议中讨论。

(2) 地址解析协议

地址解析协议 Address Resolution Protocol, ARP 将逻辑地址与物理地址相联系起来。在一个典型的物理网络中,比如说一个局域网,链路上的每一个设备都用物理地址或站点地址来标识,这个地址通常印记在网络接口卡 NIC上。ARP用于已知「节点的因特网地址」、寻找「该节点的物理地址」。将在【计算机网络】第四部分 网络层(21) 地址映射、差错报告和多播讨论ARP。

(3) 逆地址解析协议

逆地址解析协议 Reverse Address Resolution Protocol, RARP 允许主机在仅知道物理地址的情况下寻找因特网地址。如果主机是第一次连接到网络上或启动一台无盘计算机时,就要使用该协议。也在(21)讨论RARP。

(4) 因特网控制报文协议

因特网控制报文协议 Internet Control Message Protocol, ICMP 是由主机和网关所使用的一种机制,用来向发送方通知数据报所发生的问题。ICMP在(21)讨论。

(5) 因特网组报文协议

因特网组报文协议Internet Group Message Protocol, IGMP 用于将一个报文同时发送给一组接收者。在(22)讨论IGMP。

2.4.3 传输层

传输层在TCP/lP中用两个协议表示:TCP和UDP。IP是主机到主机协议 host-to-host protocol ,这就是说它可以将分组从一个物理设备传递到另一个物理设备。UDP和TCP则是负责将报文从一个进程(运行程序)传递到另一个进程的传输层协议 transport level protocol 。现在还设计出了一个新的协议STCP,以满足某些较新的应用需要。

(1) 用户数据报协议

用户数据报协议 User Datagram Protocol, UDP 是两个标准的TCP/IP传输层协议中较简单的一个。它是一个进程到进程的协议,仅将端口号、校验和、差错控制及信息长度添加到来自上一层的数据中。UDP在第23章中讨论。

(2) 传输控制协议

传输控制协议 Transmission Control Protocol, TCP 为应用程序提供了完整的传输层服务。TCP是一个可靠的流传输协议,流这个词在这里表示面向连接:在传输的两端可以传送数据以前,必须先建立连接。

在每个传输的发送端,TCP划分数据流为称为片段的更小的数据单元,每个片段都包括一个用来在接收后重新排序的序号,以及对接收到片段的确认序号。片段将包含在IP数据报中,通过互联网传输。在接收端,TCP收集每个到来的数据报,然后基于序号对传输重新排列。TCP在第23章中讨论。

(3) 流控制传输协议

流控制传输协议 Stream Control Transmission Protocol, SCTP 对较新应用提供支持,比如因特网上的音频传输。它结合了UDP和TCP最好的特点,在第23章中讨论。

2.4.4 应用层

在TCP/IP中的应用层相当于OSI模型中的会话层、表示层和应用层的组合。这一层定义了许多协议。在后面几章中,将讨论多个标准协议。


2.5 寻址

采用TCP/IP协议的互联网使用 4 4 4 层地址:物理(链路)地址 physical (link) address, 逻辑(IP)地址 logical (IP) address端口地址 port address专用地址(见图2.17) 。
图2.17 TCP/IP的地址
每种地址都与TCP/IP层次结构中的某个特定层有关,如图2.18所示。
图2.18 TCP/IP的地址与层的关系

2.5.1 物理地址

物理地址 Physical Addresses 也称为链路地址 link address它是局域网或广域网定义的节点地址,包含在数据链路层所用的帧中,是最低级的地址。物理地址在网络(LAN或者WAN)中使用,这类地址的长度和格式是可变的,它们与网络有关。例如,以太网使用 6 6 6 个字节( 48 48 48 位)物理地址,在网络接口卡 NIC 上标明。然而,LocalTalk(Apple)使用 1 1 1 个字节的动态地址,它每次在站点开始到来时改变。

【例2.1】在图2.19中,物理地址为 10 10 10 的节点发送一个帧到物理地址为 87 87 87 的节点,这两个节点通过链路连接(总线拓扑结构的LAN)。在数据链路层,该帧的头部含有物理(链路)地址,它们是需要的地址,头部还含有该层其他必要的信息。尾部通常是为了差错检测需要的附加位
如图2.19所示,具有物理地址为 10 10 10 的计算机是发送方,而具有物理地址为 87 87 87 的计算机是接收方。发送方的数据链路层接收来自上一层的数据,把它封装在一个帧中、并添加头部和尾部,其头部包含接收方和发送方的物理(链路)地址,作为信息的一个部分。注意:大多数情况下,数据链路协议的目的地址置于源地址之前,在本例中地址 87 87 87 在地址 10 10 10 之前。
已经说明总线拓扑结构为单一的局域网,帧在两个方向传播(左和右) ,向右传播的帧被送到网络上每一个站。凡是物理地址不是 87 87 87 的站都放弃这个帧,这是由于目的地址与它们的物理地址不相同,而具有目的地址的计算机发现帧中的目的地址与自己相同,就检验该帧、去掉头部和尾部,提取出数据部分、向上层传递
图2.19 物理地址
【例2.2】将在第13章看到,大多数局域网使用 48 48 48 位(六个字节)的物理地址,该地址被写作 12 12 12 个十六进制的数字,每个字节(两个十六进制数)用冒号分隔开,例如:07: 01: 02: 01: 2C: 4B

2.5.2 逻辑地址

逻辑地址 Logical Addresses 对于全世界通信是必需的,它与下层的物理网络无关。物理地址不适用于互联网的环境,其中的不同网络可能有不同地址格式,因此需要有全世界的寻址系统,其中每台主机有唯一的标记,而不管下面的物理网络。为此,设计了逻辑地址,因特网的逻辑地址现在流行的是 32 32 32 位地址,它唯一定义了连接到因特网的一台主机。因特网上没有两台主机具有相同的IP地址

【例2.3】图2.20表示,用两个路由器连接三个局域网所组成的互联网的一个部分。每台设备(路由器和计算机)都有一对地址(逻辑的和物理的)用作连接。此时,每台计算机仅连接到一条链路,因此它只有一对地址。然而,路由器连接 3 3 3 个网络(图中仅连接 2 2 2 个) ,因此每一个路由器有 3 3 3 对地址,每个连接用一对。对每一个连接,每个路由器必须有一个单独的物理地址,虽然这一点可能很明显,但是为什么对每一连接,每个路由器并不需要一个逻辑地址?这一点可能并不明显。当讨论路由选择时,这些问题将在【计算机网络】第四部分 网络层(22) 传递、转发和(单播/多播)路由选择中讨论。
图2.20 IP地址
逻辑地址 A A A 和物理地址 10 10 10 的计算机,想要发送一个分组到逻辑地址 P P P 和物理地址 95 95 95 的计算机。此处用文字表示逻辑地址,用数字表示物理地址,但是需要注意的是,这两个地址实际上都是数字,这将在后面看到。

  • 发送方在网络层封装这个分组,并添加两个逻辑地址 A , P A, P A,P注意在多数协议中,逻辑源地址在逻辑目的地址之前与物理地址刚好相反)。
  • 在该分组传递之前,网络层必须要寻找下一跳的物理地址。网络层查阅它的路由表(见第22章) ,并找到下一跳的逻辑地址为 F F F(路由器 1 1 1 ),再通过前面提到的ARP,发现路由器 1 1 1 的物理地址是 20 20 20
  • 网络层将这个地址传给数据链路层,接着在该层用目的物理地址 20 20 20 和源物理地址 10 10 10 封装该分组为帧。
  • 该帧被LAN1中所有设备接收到,但除掉路由器 1 1 1 发现帧中的目的物理地址与它自己的物理地址相同外,其余的设备都废弃该帧
  • 路由器 1 1 1 拆封该帧为分组,并读出逻辑地址 P P P由于目的逻辑地址与路由器的逻辑地址不相同,路由器知道该分组需要转发。路由器查询它的路由表并应用ARP,发现下一跳目的物理地址(路由器 2 2 2 ) ,创建封装该分组的一个新帧,并发送到路由器 2 2 2 。注意:该帧中的物理地址发生变化——源物理地址由 20 20 20 变为 99 99 99 ,目的物理地址由 20 20 20 (路由器 1 1 1 的物理地址)变成 33 33 33(路由器 2 2 2 的物理地址)。源和目的逻辑地址必须保持相同,否则该分组将会被丢失
  • 路由器 2 2 2 有相似的过程,物理地址将被改变、并向目的计算机发送一个新帧。当帧到达目的地,被拆封为分组。目的逻辑地址 P P P 与计算机逻辑地址相同,由分组拆封数据,并传递给上一层

注意:虽然跳到跳时物理地址改变了,但源到目的逻辑地址保持相同。在后面,也有例外的情况。

2.5.3 端口地址

端口地址 Port Addresses 标识一台主机的进程。IP地址和物理地址对于从源主机到目的主机的数据传输是必需的,但是到达目的主机不是因特网数据通信的最终目标。只将数据从一台计算机传输到另一台计算机、而不做其他事情,是不完整的传输。今天,计算机能同时运行多个进程,因特网通信最终目的是进程到进程的通信。例如,计算机 A A A 使用TELNET与计算机 C C C 通信,同时计算机 A A A 使用文件传输协议 FTP 与计算机 B B B 通信。为了使这些进程同时接收数据,需要有一种方法标记不同的进程。换言之,需要地址标识符。在TCP/IP分层体系结构中,赋予进程的标识符称为端口地址,它的长度是 16 16 16 位。

【例2.4】图2.21表示了两台计算机通过因特网进行通信。发送计算机此时使用 3 3 3 个端口地址 a , b , c a, b, c a,b,c 、同时运行 3 3 3 个进程,接收计算机用 2 2 2 个端口地址 j , k j, k j,k ,也同时运行 2 2 2 个进程。发送计算机中的进程 a a a 需要与接收计算机中的进程 j j j 进行通信。注意:虽然两台计算机运行同一个应用程序,比如FTP ,但由于一个是客户进程,另一个是服务进程,它们的端口地址是不同的(在第23章中讨论)。
为了表示数据从进程 a a a 传递到进程 j j j 而不是进程 k k k ,传输层对来自应用层的数据添加两个端口地址 a , j a, j a,j ,即将源和目的地址封装在分组中。然后,网络层对来自传输层的分组,用源和目的逻辑地址 A , P A, P A,P 封装在另一个分组中。最后,该分组用下一跳的源和目的物理地址封装在帧中。此处没有表示物理地址,因为在因特网范围内从跳到跳它们是要改变的。注意:虽然从跳到跳物理地址要改变,但从源到目的逻辑地址和端口地址保持不变。后面也有一些例外的情况。
图2.21 端口地址
【例2.5】在第23章将会看到, 16 16 16 位端口地址用一个十进制数表示,例如 753 753 753

2.5.4 专用地址

专用地址是一个面向用户的地址,有些面向用户的应用被设计为专用地址。例如,电子邮件的地址(例如 forouzan@fhda.edu )和统一资源定位符 URL(例如 www.mhhe.com )。前一个地址定义邮件接发者(见【计算机网络】第六部分 应用层(26) 远程登录、电子邮件与文件传输) ,后一个是在万维网中寻找一个文档(见【计算机网络】第六部分 应用层(27) 万维网与超文本传输协议(HTTP协议))。这些地址,由发送计算机转换成对应的端口地址和逻辑地址(见【计算机网络】第六部分 应用层(25) 域名空间)。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 12:07:35  更:2022-02-26 12:09:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:42:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码