1.2 按网络拓扑分类1)个人区域网(PAN) - Personal Area Network
(1)范围:通常是几米到十几米。
(2)用途:连接个人设备,如手机、平板、笔记本电脑、智能手表等。
(3)示例:蓝牙(Bluetooth)、红外线通信(Infrared Communication)。
2)局域网(LAN) - Local Area Network
(1)范围:通常覆盖一个建筑物、办公室或校园。
(2)用途:在小范围内实现高速数据传输和资源共享。
(3)示例:以太网(Ethernet)、Wi-Fi(Wireless Fidelity)。
3)城域网(MAN) - Metropolitan Area Network
(1)范围:覆盖一个城市或多个相邻的城市。
(2)用途:连接多个局域网,提供城域范围内的数据传输服务。
(3)示例:光纤网络(Fiber Optic Network)、有线电视和DSL(Digital Subscriber Line)连接。
4)广域网(WAN) - Wide Area Network
(1)范围:覆盖国家、洲际甚至全球范围。
(2)用途:连接多个局域网和城域网,实现长距离数据传输。
(3)示例:互联网(Internet)、企业专用网(Enterprise Private Network)。
1.3 按网络用途分类1)总线型拓扑(Bus Topology)
所有设备共享一条通信介质(总线)。
(1)优点:布线简单,成本低。
(2)缺点:总线故障会导致整个网络瘫痪。
2)星型拓扑(Star Topology)
所有设备通过单独的通信链路连接到一个中央节点(如交换机)。
(1)优点:易于管理和扩展,单个设备故障不会影响整个网络。
(2)缺点:中央节点故障会导致整个网络瘫痪。
3)环型拓扑(Ring Topology)
每个设备连接到两个相邻设备,形成一个环。
(1)优点:数据传输延迟低,适合实时通信。
(2)缺点:任何一个节点或链路故障都会影响整个网络。
4)网状拓扑(Mesh Topology)
每个设备都有多个连接点,与多个其他设备直接相连。
(1)优点:高度冗余,可靠性强,任意节点或链路故障不影响整体通信。
(2)缺点:布线复杂,成本高。
1.4 按网络的交换技术分类1)互联网(Internet)
全球范围内连接各种网络的集合。
用途:提供全球范围的通信和信息共享。
2)企业内部网(Intranet)
仅限于企业或组织内部使用的网络。
用途:提供内部资源共享和通信。
3)外联网(Extranet)
连接企业内部网与外部合作伙伴或客户的网络。
用途:在安全受控的环境下,与外部实体进行通信和协作。
1.5 按网络的通信方式分类1)电路交换网络(Circuit-Switched Network)
通信路径在传输前建立,并在通信期间保持不变。
示例:传统电话网络(Traditional Telephone Network)。
2)分组交换网络(Packet-Switched Network)
数据分成小包(分组)传输,每个分组可以通过不同的路径到达目的地。
示例:互联网(Internet)。
3)报文交换网络(Message-Switched Network)
整个消息作为一个单元传输,通过节点存储并转发。
示例:早期的电报网络(Early Telegraph Networks)。
2 计算机网络分层模型2.1 相关概念1)广播网络(Broadcast Network)
一个节点发送的数据包可以被网络中所有节点接收到。
示例:以太网(Ethernet)、Wi-Fi(Wireless Fidelity)。
2)点对点网络(Point-to-Point Network)
数据包从一个节点直接发送到目标节点。
示例:点对点协议(PPP - Point-to-Point Protocol)、专用线路(Leased Line)。
计算机网络分层模型是网络通信的基础框架,它将复杂的网络通信过程划分为若干层次,每一层都执行特定的功能,并为上一层提供服务。这种分层的目的是简化网络设计,确保不同网络技术之间的兼容性和互操作性。与分层模型相关的概念包括分层、实体、协议、接口和服务。
1)分层(Layer)
分层是将网络通信过程划分为多个层次的过程。每一层关注网络通信的一个特定方面,比如物理传输、数据链路、网络路由、传输可靠性等。最著名的分层模型是OSI(开放系统互连)模型,它包含七层,以及TCP/IP模型,通常被认为包含四层。前者是学术和法律上的国际标准,后者是事实上的国际标准,即现实生活中被广泛遵循的分层模型。
2)实体(Entity)
在分层模型中,每一层都有实体,这些实体指的是执行特定层次功能的硬件或软件组件。同一层内的实体可以在不同的机器上,通过遵循相同层的协议进行通信。例如,两台计算机上的传输层实体可以是负责建立端到端连接的软件。同一层次的实体为对等实体。
3)协议(Protocol)
协议是一套规则和标准,用于控制同一层次内的实体如何相互通信。协议定义了通信的格式、时序、错误处理等。例如,TCP(传输控制协议)定义了如何在网络中的两个点之间可靠地传输数据。
4)接口(Interface)
接口是网络分层模型中,定义相邻两层之间如何交互的规范。它规定了一层如何向另一层提出服务请求,以及这些请求怎样被另一层接收和响应。接口包含了一系列的规则、命令、数据格式和过程,确保不同网络层之间的有效通信和数据交换。
服务访问点(Service Access Point,SAP)是接口概念的一个组成部分,具体化了接口在实现层次服务中的作用。
接口定义了相邻层之间交互的规范和方式,而SAP则是这种交互发生的具体逻辑位置。换句话说,SAP为接口提供了一个具体的实施机制,使得上层能够访问下层提供的服务。
5)服务(Service)
服务是指下层为紧邻上层提供的功能调用,是垂直方向的。描述了上层可以利用的具体功能和操作,但不涉及这些功能是如何实现的。服务强调的是功能性的提供,而不是实现细节。服务描述了“做什么”(功能),而不是“如何做”(实现细节)。服务是抽象的,隐藏了下层如何完成这些任务的具体细节,使得上层可以不依赖于下层的具体实现来进行设计和开发。
上层是通过SAP访问下层服务的。
2.2 OSI七层模型OSI(Open Systems Interconnection,开放系统互联)模型是由国际标准化组织(ISO)在1984年提出的一个网络架构模型,它将网络通信分为七个层次,每层都定义了特定的网络功能。自下而上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
1)物理层(Physical Layer)
负责传输原始比特流。它涉及的是物理设备及介质,如电缆类型、电信号传输和接收等。
2)数据链路层(Data Link Layer)
确保物理链路上的无误传输。它提供了如帧同步、流量控制和错误检测等功能。
3)网络层(Network Layer)
负责数据包从源到目的地的传输和路由选择。它定义了地址和路由的概念,如IP协议。
4)传输层(Transport Layer)
提供端到端的数据传输服务,保证数据的完整性。它定义了如TCP和UDP协议。端口
5)会话层(Session Layer)
管理会话,控制建立、维护和终止会话。
6)表示层(Presentation Layer)
处理数据的表示、编码和解码,如加密和解密。
7)应用层(Application Layer)
提供网络服务给终端用户的应用程序,如HTTP、FTP、SMTP等协议。
2.3 五层模型五层模型是将OSI模型的应用层、表示层和会话层合并为应用层,其它层不变。是为了教学而设计的一种网络分层模型。
本文基于五层模型对网络分层进行介绍。
2.4 TCP/IP四层模型TCP/IP四层模型,亦称互联网协议套件(Internet Protocol Suite),是一种按照功能标准组织互联网及类似计算机网络中使用的一系列通信协议的框架。该套件中的基础协议包括传输控制协议(TCP)、用户数据报协议(UDP)和互联网协议(IP)。
TCP/IP协议栈(Protocol Stack)是指TCP/IP协议套件的软件实现。
1)应用层(Application Layer)
(1)定义
这层是用户最直接交互的部分,是软件应用通过网络进行通信的地方。应用层使用下层提供的服务来创建用户数据,将这些数据传输给同一台机器上或远程机器上的其他应用。
(2)协议
该层包括了SMTP、FTP、SSH、HTTP等协议,这些协议都在应用层上实现,以实现客户端与服务器之间的通信和数据交换。
2)传输层(Transport Layer)
(1)定义
传输层管理着端到端的通信,即主机到主机的通信。它的主要职责是为不同主机上的应用程序提供数据传输,同时保证这些数据的完整性和可靠性。
(2)协议
在传输层,主要的协议有TCP(Transmission Control Protocol),它提供顺序的、可靠的、双向的连接流,并管理报文段的发送,确保无错误、不丢失、不重复、按序到达;以及UDP(User Datagram Protocol),它提供一种无连接的服务,数据以数据报的形式发送,不保证顺序或响应。
3)互联网层(Internet Layer)
(1)定义
互联网层处理跨网络界限的数据包交换,负责将数据报文段从源地址路由到目的地址。这层抽象了实际的物理网络拓扑结构,并且定义了如何在各种网络结构中发送和接收数据包。
网络层的IP协议是构成Internet的基础。Internet上的主机都是通过IP地址来互相识别。IP协议不保证传输数据的可靠性,可能出现丢包等情况。
(2)协议
主要协议是IP(Internet Protocol),它定义了数据包的路由方式和网络地址。其他重要的协议包括ICMP(Internet Control Message Protocol),用于错误报告和网络诊断。
4)数据链路层(Link Layer)
(1)定义
链路层涉及到在物理网络上的数据通信。链路层确保网络层传来的IP数据报可以在网络的物理链接上进行传输,不管是通过有线还是无线媒介。它还负责处理与物理网络链接相关的问题,例如MAC(Media Access Control)地址寻址、帧同步、错误检测和校正。
(2)协议
它包括了在物理网络链接中使用的所有协议,如以太网(Ethernet)、Wi-Fi以及PPP(Point-to-Point Protocol)。
2.5 OSI七层模型和TCP/IP四层模型对比以及TCP/IP协议栈OSI模型是学术和法律上的国际标准,TCP/IP模型是事实上的国际标准,是现实生活中被广泛遵循的分层模型。
2.6 网络传输中的数据单元1)PDU
协议数据单元(Protocol Data Unit,PDU),计算机网络各层对等实体间交换信息的数据单位。PDU包括头部(PCI)和负载(SDU)。不同层次的PDU有专门的术语,例如在网络层,PDU称为数据包,在传输层,PDU称为报文段或数据报,在数据链路层,PDU称为帧(frame)。
(1)数据包(Packet)
通常指网络层(如IP网络层)的数据单位。
(2)报文段(Segment)
通常用于描述传输层(TCP传输层)的数据单位。
(3)数据报(Datagram)
通常用于描述UDP协议的数据单位,它也是传输层的一个概念。
2)SDU
服务数据单元(Service Data Unit,SDU)是在通信协议的特定层次上传递的数据单元。这些数据被传递给下一层,由下一层进行处理或封装,并附加控制信息(PCI),将其转换为那一层的PDU。SDU是用户数据或者来自上一层的PDU,未包括当前层可能添加的头部或其他控制信息。
3)PCI
协议控制信息(Protocol Control Information,PCI)是PDU中的元数据部分,它包括用于在网络中传输数据的控制信息,比如地址、端口号、控制标志、协议类型等。它与SDU一起被封装成PDU。PCI基本上是头部和尾部信息,它使得网络或传输实体能够理解如何处理包含的SDU。
PDU=SDU PCI。
4)头部、尾部与PCI
头部(Header)和尾部(Trailer)都属于PCI。
头部和尾部是物理的,实际上是SDU前面或后面附加的一系列比特。而PCI是逻辑的,它是协议控制信息的集合,指导网络中的各层对数据做正确处理,确保网络协议正常运作。
通常PCI只包含头部,一个特例是以太网的数据帧不止包含头部,还包含尾部的帧检验序列(FCS,Frame Check Sequence,用于差错控制)。以太网帧的头部和尾部共同构成了它的PCI。
网络分层模型的层与层之间相互依赖,数据由上层到底层的过程中,每层都要加上该层协议的Header,我们称之为封装。
2.7 基于以太网的通信流程示例通过浏览器访问网站,这一过程中,我们会向网站后台的服务器发送数据,在TCP/IP模型中,数据的传输过程如下所示。
2.8 服务、协议和接口的关系服务:描述了下层可以为相邻上层提供的功能,是抽象的。而接口提供了访问这些功能的方法。接口是实现服务交付的框架,如网络编程框架(API库)。要实现服务,需要遵循特定的协议,协议定义了实现服务所需的数据格式、操作顺序、错误处理等规则。
服务告诉我们“可以提供什么功能”,接口解决的是“如何调用功能”,而协议定义了“如何实现功能”。
通过接口,上层不需要知道服务是如何实现的,只需要知道如何通过接口访问这些服务。而服务的具体实现需要遵循相应的协议。
以OSI七层模型中的传输层和网络层为例。
服务:网络层提供的服务是数据包的传输和路由选择。传输层可能会请求网络层提供的传输和路由服务来将数据包传输到目的地址。传输层不关心网络层如何实现这些服务,它只关心如何使用这些服务。
接口:在上述过程中,传输层使用的是网络层暴露的接口(比如使用IP协议栈的API)来发送和接收IP数据包。接口定义了传输层和网络层之间的交互方式,包括传输层如何向网络层提交数据包,以及网络层提供反馈信息的方式。这些API以一种对传输层透明的方式遵循网络层的协议。
协议:传输层通过网络层的接口发送数据时,实际上是在使用网络层的协议。网络层遵循的IP协议定义了如何在设备间路由数据包,包括如何寻址、打包和处理数据传输中的错误。实现IP协议栈时,必须遵守IP协议。