计算机网络知识点整理

计算机网络(Computer Network)

在计算机网络之前的网络被称为球鞋网络(Sneaker Network),即使用移动物理介质的方式传输电子信息,形式如磁带、软盘等。

计算机网络即利用通信设备和线路,将地理位置分散、功能独立的多个计算机系统相互连接起来,在网络协议和软件的支持下,实现网络联通和资源共享的计算机系统的集合。

计算机网络由若干结点(主机、集线器交换机路由器等)和连接这些结点的链路组成。其中主机(Host)又称端系统(End System),指与网络相连的计算机。

计算机网络的发展有如下四个阶段:面向终端;多台计算机互连;面向标准化;全球互连。

计算机网络的两个重要特点如下。

  • 连通性(Connectivity);
  • 共享性(Sharing):共享硬件、软件、信息。

计算机网络最基本的功能是数据通信,首先要连通,才能进行资源共享。

21世纪的重要特征是数字化、网络化和信息化,以网络为核心。三网融合(Triple Play)指电信网络、有线电视网络和计算机网络互联互通。三网融合难点在于其涉及各方经济利益和行政管辖权等问题。

网络的主要类别

网络的主要类别如下。

  • PAN(Personal Area Network): Used on a personal level, using wireless technologies such as: Bluetooth, Infrared(红外), NFC(Near Field Communication);
  • LAN(Local Area Network): A group of devices(computers, servers, switches, and printers) that are located in the same building, and the most common type of LAN is an Ethernet LAN;
  • WLAN(Wireless LAN): LAN but without using cables;
  • CAN(Campus Area Network): A network that joins two or more LANs together within a limited area;
  • MAN(Metropolitan Area Network): Spans over several buildings in a city;
  • SAN(Storage Area Network): Disk arrays, Servers, Switches;
  • WAN(Wide Area Network): Largest type of network that spanning over a large geographical area, and the Internet is an example of a WAN.

公用数据网(PDN; Public Data Network)是提供各种数据传输业务的通信网络,提供者为电信主管部门认可的机构。X.25是一种网络通信协议,它定义了在计算机网络中如何进行数据传输和信息交换,主要应用于公共数据网。

数字数据网(DDN; Digital Data Network)采用数字信道提供永久或半永久性电路来传输数据通信业务,提供者为邮电部门。

互联网(Internet)

互联网又译作因特网,是当前全球最大的计算机网络。互联网与互连网(internet)不同,互连网指在局部范围内互相连接的计算机网络,即网络的网络。

互联网基础结构发展的三个阶段如下。

  1. 从单个网络阿帕网(ARPANET)向互连网发展的过程:阿帕网是由美国高级研究计划署(ARPA; Advanced Research Projects Agency)创建的世界上首个分组交换网络,是互联网的鼻祖,可知互联网最初创建的目的是用于军事;
  2. 建成三级结构的互联网:三级结构即主干网、地区网和校园网;
  3. 逐渐形成多层次ISP结构的互联网:互联网服务提供商(ISP; Internet Service Provider)提供互联网接入等服务,而随互联网数据流量的急剧增长,允许两个网络直接相连并交换分组的互联网交换点(IXP; Internet Exchange Point)应运而生。

按照工作方式,互联网的组成可分为边缘部分和核心部分,或称资源子网和通信子网。边缘部分由所有连接在互联网上的主机组成,用户直接使用,且在网络边缘,主机间的通信方式可分为如下两类。

  • 客户-服务器方式(C/S; Client/Server):客户是服务的请求方,服务器是服务的提供方;
  • 对等方式(P2P; Peer to Peer):本质上还是C/S方式,每个主机既是客户又同时是服务器。

核心部分由大量网络和连接这些网络的路由器组成,为边缘部分提供服务。在网络核心,需要向网络边缘的大量主机提供连通性,其中路由器起特殊作用,实现分组交换。

主机和主机间的通信实际上是主机的进程间的通信。

网络性能(Network Performance)

网络性能指客户方的网络服务质量,可使用许多不同的标准衡量。

比特率(Bit Rate)

数据的传送速率,简称速率,或称数据率(Data Rate),单位为bps。当提到网络的速率时,往往指额定速率,而非实际上运行的速率。比特率与波特率的转换如下式。

其中,表示码元状态数。

比特率 波特率

码元、比特率和波特率的概念见计算机科学常识整理的数据通信

带宽(Bandwidth)

网络中某信道所能通过的「最高数据率」称为带宽,此处的带宽是时域称谓,单位为bps;而频域上,带宽原指某个信号所具有的频带宽度,这种意义的带宽以Hz为单位。

吞吐量(Throughput)

单位时间内通过某信道的实际数据量,单位为bps。

时延(Delay)

分组交换时,分组在沿途的各个结点会经受四种时延。

发送时延(Transmission Delay)又称传输时延,是主机或路由器发送数据帧所需要的时间,其定义如下式。

发送时延 数据帧长度(b) 发送速率(bps)

传播时延(Propagation Delay)即电磁波在信道中传播所需要的时间,其定义如下式。

传播时延 信道长度(m) 传播速率(m/s)

除发送时延和传播时延外,还有两种时延:处理时延(Processing Delay)即主机或路由器收到分组的处理时间;排队时延(Queuing Delay)即分组在路由器输入、输出队列的等待时延。

上述的时延累加起来称为结点总时延(Total Delay)。

时延带宽积(Bandwidth-Delay Product)

时延带宽积即传播时延和带宽的乘积,即以比特为单位的链路长度。

往返时间(RTT; Round-Trip Time)

往返时间即从发送方发送到接收方确认的时间。往返时间的计算式如下。

有效数据率(bps) 数据长度 (发送时间 )

许多情况下,互联网的信息传输是双向交互的,因此往返时间也是重要的性能指标。

开放系统互连(OSI; Open System Interconnection)

系统网络架构(SNA; System Network Architecture)由IBM制定。

OSI模型以SNA为原始模型架构而设计,包含如下七层:应用层;表示层(Presentation Layer);会话层(Session Layer);传输层网络层数据链路层物理层。网络分层可简化网络设计的复杂程度,上层可复用底层的功能,使功能抽象,使协议便于管理和维护。上层应用程序掌握更多关于数据和服务语义的信息,底层有更多数据传输的信息,这种折衷是分层的结果。

OSI模型的目的是解决多厂商设备和异构系统的相互连结问题,构造标准的公共系统模型,将网络的功能尽量标准化。但基于TCP/IP的互联网并未使用OSI标准,仅有如下四层:应用层(对应OSI模型的应用层、表示层和会话层);运输层;网际层;网络接口层(对应OSI模型的数据链路层和物理层)。

OSI模型市场化失败,是法律上的(de jure)国际标准;而TCP/IP却获得了最广泛的应用,常被称为是事实上的(de facto)国际标准。

协议(Protocol)

又称网络协议,即不同结点对等实体(即可发送或接收信息的硬件或软件进程)之间进行通信的规则或约定。协议的三要素内容如下。

  • 语法(Syntax):确定通信时采用的数据格式、编码、电平等;
  • 语义(Semantics):协议元素含义的解释,即需要发出何种信息、完成何种动作做作出何种响应;
  • 同步(Synchronization):规定何种流程、速度,事件实现顺序的说明。

相邻两层的实体进行交互的地方,通常称为服务访问点(SAP; Service Access Point)。在网络体系结构中,对等层实体间虚拟通信,实际通信在最底层完成,下层为上层提供服务,下层的协议对上层的服务用户是透明的。

协议的实现保证了服务的提供,协议是「水平的」而服务是「垂直的」。

协议号(Protocol Number)

指IPv4头部和IPv6头部中使用的协议号,是封装协议的标识。

常见协议的协议号

常见协议的协议号如下。

ICMP IGMP IPv4 TCP EGP IGP UDP IPv6 OSPF
1 2 4 6 8 9 17 41 89

协议数据单元(PDU; Protocol Data Unit)

协议数据单元是对等层次之间传递的数据单位。

计算机网络架构模型各层对应的协议数据单元

各层对应的PDU如下。

对等实体间交换信息时的控制信息称为协议控制信息(PCI; Protocol Control Information)。

相邻两层实体间交换的数据单位是接口数据单元(IDU; Interface Data Unit),交换信息时的控制信息称为(ICI; Interface Control Information)。

物理层(Physical Layer)

物理层的作用是屏蔽传输媒体和通信手段的差异,即透明地传输比特流。

物理层的主要任务

物理层的主要任务为描述传输媒体的接口相关特性,具体如下。

  • 机械规格(Mechanical Specifications):指明接口所用接线器的形状、尺寸、引脚数目等;
  • 电气规格(Electrical Specifications):指明接口电缆各条线上出现的电压的范围;
  • 功能规格(Functional Specifications):指明某条线上出现某一电平的电压的意义;
  • 过程规格(Procedural Specifications):指明对于不同功能的各种可能事件的出现顺序。

数据通信(Data Communication)

见计算机科学常识整理的数据通信

中继器(Repeater)

中继器是物理层设备的一种,对衰减的数字信号进行再生和还原。

集线器(Hub)

集线器是多端口的中继器,不具备定向发送信号能力,是共享式设备。集线器的每个接口只是简单地发送比特,进行碰撞检测

传输媒体(Transmission Medium)

传输媒体又称传输介质或传输媒介,即数据通信的载体,可分为导引型传输媒体和非引导型传输媒体两种类型。

常见的导引型传输媒体有双绞线、同轴电缆、光纤等。

双绞线(Twisted Pair):最原始但最常用的传输媒体,绞合的目的是减少对相邻导线的电磁干扰,双绞线主要分为以下两类:非屏蔽双绞线(UTP; Unshielded Twisted Pair),重量轻且价格低;屏蔽双绞线(STP; Shielded Twisted Pair),抗干扰性强但价格昂贵。双绞线的线缆末端是由塑料制成的RJ(Registered Jack)-45接头,有时又称8P8C(8 Position 8 Contact)。

常见的绞合线

常见绞合线类别及其应用如下。

绞合线类别 带宽 具体应用 备注
CAT-3 16MHz 模拟电话,曾用于传统以太网 -
CAT-4 20MHz 曾用于令牌局域网 -
CAT-5 100MHz 传输速率不超过100Mb/s的应用 非屏蔽双绞线
CAT-5e 125MHz 传输速率不超过1Gb/s的应用 非屏蔽双绞线
CAT-6 250MHz 传输速率高于1Gb/s的应用 非屏蔽双绞线
CAT-7 600MHz 传输速率高于100Mb/s的应用 -

同轴电缆(Coaxial Cable)的外导体屏蔽层使其具有很好的抗干扰特性,被广泛用于传输较高速率的数据。同轴电缆的组成如下:内导体铜质芯线(单股实心线或多股绞合线);绝缘层;网状编织的外导体屏蔽层;绝缘保护塑料外层。

光纤(Optical Fiber)利用光导纤维传递光脉冲来进行通信。光纤可以分为以下两类。

  • 单模光纤(Single-Mode Optical Fiber):光线直线向前传播,不会产生多次反射,传输距离更远,损耗小,成本高;
  • 多模光纤(Multi-Mode Optical Fiber):光线的传输方式是不断地全反射,只适合近距离传输,性能低,成本低。

光纤通信的优点如下:通信容量大;传输损耗小,中继距离长,对远距离传输很经济;抗雷电和电磁干扰性能好;体积小,重量轻。

常见的非导引型传输媒体有无线电波(Radio Wave)、微波、卫星通信等。

微波(Microwave)在空间中是直线传播的,而地球表面是个曲面。为实现远距离通信,必须在微波通信信道的两个终端间建立若干中继站,以实现「接力」,即把前一站送来的信号放大后再发送至下一站。微波通信具有如下特点:频段范围很宽,因此信道容量大;频段高很高,高于工业干扰和天电干扰的频谱成分,因此传输质量高;建设投资少,见效快。卫星通信。

卫星(Satellite)通信则具有较大的传播时延。

复用(Multiplexing)

复用即使用同一共享信道进行通信,以提高信道利用率;而分用(Demultiplexing)是复用的相反概念。

频分复用(FDM; Frequency Division Multiplexing)

频分复用指所有用户在相同时间占用不用的带宽资源。波分复用(WDM; Wavelength Division Multiplexing)就是光的频分复用。

时分复用(TDM; Time Division Multiplexing)

时分复用指所有用户在不同时间占用同样的频带宽度。时分复用又称同步时分复用,时隙周期性出现,即使用户无数据发送也要分配时隙。统计时分复用(STDM; Statistic TDM)是时分复用的改进,按需动态分配时隙,以提高信道利用率。

同步光纤网络(SONET; Synchronous Optical Networking)和更先进的同步数字体系(SDH; Synchronous Digital Hierarchy)基于时分复用的技术。

码分复用(CDM; Code Division Multiplexing)

码分多址(CDMA; Code Division Multiple Access),使用伪随机序列码片区分信道的信道复用技术。

CDMA为每一个站点分配一个码片序列(Chip Sequence),由+1和-1的序列组成。

码片序列的规格化内积如下式。

下式的解读如下:任何一个码片序列和自己本身的规格化内积为+1;和自己反码的码片序列的规格化内积为-1;若规格化内积为0,则称这两个码片序列正交。

当多个终端发送多个信号时,信号就会在空中叠加。接收方如果希望接收某个站点的信息,则只需要计算该站点对应的码片串行和空中信号的规格化内积。

接收方必须知道发送站点的码片序列。发送其码片序列本身,表示发送1,接收方计算的结果为+1;发送其码片序列反码,表示发送0,接收方计算的结果为-1;未发送数据,则接收方计算的结果为0。

互联网接入(Internet Access)

即上网,将个人电脑、移动设备等通过各种技术连接至互联网,让用户能使用互联网服务。

拨号(Dial-Up)

拨号上网是指通过本地电话线经有调制解调器连接至互联网,速度慢且不能持续在线,逐渐被ADSL取代。

非对称数字用户线(ADSL; Asymmetric Digital Subscriber Line)

用数字技术对现有的模拟电话用户线进行改造,使其承载宽带数字技术,要点如下:上行宽带(用户到ISP)与下行宽带(ISP到用户)不对称,因为用户向互联网发送的信息量不大;ADSL不能保证固定的数据率,对质量很差的用户线甚至无法开通ADSL。

ADSL接入网的三大组成部分如下:用户线两端各一个ADSL调制解调器,又称接入端接单元(ATU; Access Termination Unit);数字用户线接入复用器;电话分离器。

光纤到户(FTTH; Fiber to the Home)

直接将光纤接到用户家中。

光纤同轴混合网(HFC; Hybrid Fiber Coax)

在有线电视(CATV; Cable Television)网的基础上开发的一种居民宽带接入网,将原CATV网的同轴电缆主干部分改为光纤,并使用模拟光纤技术。模拟光纤从头端连接到光纤结点,光信号在光纤结点被转换为电信号,光纤结点以下就是同轴电缆。

数据链路层使用的信道主要有以下两种类型。

  • 点对点(Point to Point):一对一的通信方式;
  • 广播(Broadcast):一对多的通信方式,较为复杂。

(Frame)是数据链路层传输和处理的单位,是由数据的前后添加首部和尾部所构成的。

数据链路层的基本问题

数据链路层的三个基本问题如下。

  • 封装成帧(Framing):又称帧定界,涉及到的控制字符有置于帧首、表示帧开始的SOH(Start of Header),和置于帧尾、表示帧结束的EOT(End of Transmission);
  • 透明传输(Transparent Transmission):若数据中的某个字节的二进制代码恰好和SOH或EOT一样则出现错误,而字节填充(Byte Stuffing)或称字符填充(Character Stuffing),即通过在数据中可能被误认为是SOH或EOT的字节前插入一个转义字符ESC(Escape Character),如果转义字符也出现在数据中,则在转义字符前插入一个转义字符;
  • 差错检测(Error Detection);帧检验序列(FCS; Frame Check Sequence)作为添加于数据后的冗余码,用于差错检测,而常用的检测方法有循环冗余校验等。

点对点协议(PPP; Point-to-Point Protocol)

PPP是目前使用得最广泛的数据链路层协议。PPP应满足的需求如下:简单,即无需纠错、序号和流量控制,是首要的需求;封装成帧;透明传输;差错检测;支持多种网络层协议;支持多种类型链路。

点对点协议的帧格式

PPP协议的帧格式如下。

  • 标志字段:1字节,帧定界符,取值为0x7E,位于最首和最尾;
  • 地址字段:1字节,预留,至今未使用,取值为0xFF;
  • 控制字段:1字节,预留,至今未使用,取值为0x03;
  • 协议字段:2字节,指明帧的数据部分送至何种协议处理;
  • 帧检验序列字段:2字节,位于尾部;

点对点协议的透明传输

面向比特同步传输使用零比特填充,即只要有5个连续1,则在后方填入一个0;面向字节异步传输使用字节填充,定义转义符为0x7D,填充方法如下。

  1. 将出现的每一个0x7E字节转变为2字节序列(0x7D, 0x5E);
  2. 将出现的每一个0x7D字节转变为2字节序列(0x7D, 0x5D);
  3. 在ASCII码的控制字符(数值小于0x20)前插入0x7D,同时将该控制字符的编码加上0x20。

PPPoE(PPP over Ethernet)是PPP协议能够适应多种类型链路的一个典型例子。

广播信道(Broadcast Channel)

局域网为一个单位所有,地理范围和站点数目均有限,其优点如下:具有广播功能,从一个站点可以很方便地访问全网;便于系统的扩展和演变,各设备可灵活调整改变;提高了系统的可靠性、可用性和生存性。

局域网可按网络拓扑进行分类,即星形网、环形网和总线网等。集线器和双绞线大量运用于局域网,星形以太网以及多级星形结构的以太网获得了非常广泛的应用。使用集线器的以太网,在物理上是星形网,在逻辑上仍是总线网,使用CSMA/CD协议。

局域网所使用的就是广播信道。

网络接口卡(NIC; Network Interface Card)

网络接口卡又称网卡或通信适配器,使计算机与外界局域网连接。

NIC实现的功能包含数据链路层和物理层两个层次,内容如下:进行串行数据和并行数据的转换:数据在计算机中采用并行传输方式,在通信线路即传输媒体上采用串行传输的方式,需要进行转换;对数据进行缓存;安装驱动程序以指导存储器访问;实现以太网协议。

现在的主板基本已嵌入通信适配器,不需要单独的NIC了。

以太网(Ethernet)

以太网是为实现局域网通信而设计的一种技术。为使通信简便,以太网采用如下两种措施:使用较为灵活的无连接的工作方式;以太网发送的数据都使用曼彻斯特编码的信号。以太网的两个标准如下。

  • DIX Ethernet V2:雏形为施乐以太网(Xerox Ethernet),世界上第一个局域网产品的规约;
  • IEEE 802.3:与DIX Ethernet V2标准只有很小的差别。

以太网的类型

以太网的类型如下。

  • 传统以太网(Classic Ethernet):传输速度为10Mbps,使用曼彻斯特编码;
  • 快速以太网(Fast Ethernet):传输速度为100Mbps,使用4B/5B编码;
  • 千兆以太网(Gigabit Ethernet):传输速度为1Gbps,使用8B/10B编码,帧结构增加扩展字段,支持全双工和半双工通信,在半双工通信中采用帧突发(Frame Bursting)技术,且使用暂停帧(Pause Frame)控制流量;
  • 万兆以太网(10 Gigabit Ethernet):传输速度为10Gbps,使用64B/66B编码,帧结构增加了长度字段和头部差错校验(HEC; Header Error Correction)字段,不支持CSMA/CD协议。

传统以太网在发送长报文时线路利用率高。

传统以太网的物理层结构如下。

  • 介质访问单元(MAU; Medium Attachment Unit):提网络介质之间的功能、电气和机械接口,负责将主机接入网络;
  • 连接单元接口(AUI; Attachment Unit Interface):提供物理信号层与介质访问单元之间的信号通道;
  • 物理信号层(PLS; Physics Layer of Signal):负责发送和接收数据、载波侦听和错误检测,物理信号层通过曼彻斯特编码信号来判断网络的活动情况。

高速以太网的物理层结构如下。

  • 介质相关接口(MDI; Medium Dependent Interface):对应硬件,负责将物理介质相关子层与介质进行连接;
  • 自动协商(Auto Negotiation):使得处于不同工作模式的设备能够共处同一个网络;
  • 物理介质相关(PMD; Physics Medium Dependent)子层:实际进行比特流发送和接收的实体;
  • 物理介质连接(PMA; Physics Medium Attachment)子层:物理介质相关子层和物理编码子层间的连接;
  • 物理编码子层(Physical Coding Sublayer):负责数据的编码和解码;
  • 介质无关接口(MII; Medium Independent Interface):使上层与网络介质类型无关;
  • 协调子层(RS; Reconciliation Sublayer):在媒体访问控制子层与介质无关接口之间进行数据的串并转换。

令牌(Token)即发信号的许可。任何一个结点只有在拿到令牌后才能在信道上发送数据。若结点不需发送数据,则将令牌交给下一个结点。使用令牌避免网络冲突的标准如下。

  • IEEE 802.4:即令牌总线(Token Bus);
  • IEEE 802.5:即令牌环(Token Ring)。

令牌环在重负载时线路利用率高。

反射内存(Reflective Memory)是构建共享存储器技术的实时网络的技术,具有严格的传输确定性和可预测性。计算机具备反射内存板,通过光纤等传输介质连结形成反射内存网络。反射内存网络的传输是纯硬件操作,不需要考虑网络的通信协议,因此反射内存网络的上层协议自主开发。

若以太网收到如下帧,则视为「发往本站的帧」并收下。

  • 单播(Unicast)帧:一对一,即物理地址与本站硬件地址相同;
  • 多播(Multicast)帧:一对多,即发送给本局域网上一部分站点的帧;
  • 广播(Broadcast)帧:一对全体。

数据以电信号形式传入共享的电缆,连在同一网络的其他计算机也能捕获数据,为使数据有明确的目的流向,以太网需要每台计算机有唯一的媒体访问控制(MAC; Media Access Control)地址,又称物理地址或以太网地址,用以确认网络设备位置。

物理地址共48位,以十六进制表示。规定第一字节的的最低位为I/G位,其为0表示单播,为1表示多播;最低第二位位G/L位,其为0表示全球管理,为1表示本地管理。前24位的剩余位由IEEE决定如何分配给每一家制造商;而后24位则由厂商自行指派。

同一个局域网上的两个设备具有相同的静态MAC地址,则这两个设备都不能通信。

MAC帧的格式

MAC帧的格式如下。

  • 目的地址:6字节;
  • 源地址:6字节;
  • 协议类型字段:2字节;
  • 数据字段:至少46字节,不足的以0填充;
  • 帧检验序列字段:4字节。

为了达到比特同步,在传输媒体上实际传送的要比MAC帧多如下8个字节:7个字节的前同步码,用于迅速实现MAC帧的比特同步;1个字节的帧开始定界符,表示后面的信息就是MAC帧。

逻辑链路控制(LLC; Logical Link Control)与传输媒体无关,负责与上层的交互、建立和释放逻辑连接、差错控制、帧序号处理等。

数据链路层可分为媒体访问控制子层和逻辑链路控制子层。局域网标准包含物理层、媒体访问控制子层和逻辑链与控制子层的协议,不同局域网的差异主要体现在物理层和媒体访问控制子层。

载波监听多点接入(CSMA; Carrier Sense Multiple Access)

多台计算机共享一个传输媒介,发送数据前检测是否有其他正在发送的数据。载波(Carrier)指运输数据的共享媒介。

定义帧间隔(IFP; Interframe Gap)或称帧最小间隙为96比特时间,即对于传统以太网(10Mbps)而言发送96b的时间为9.6μs。

载波监听多点接入的要点如下:准备发送阶段,NIC从网络层获得一个分组并封装成帧,放入NIC的缓存中,在发送前检查信道;若检测到信道忙则继续检测,直到信道空闲;若信道空闲且在以太网规定的帧最小间隔内保持空闲(等待的目的是使接收站缓存能及时清理以接收下一帧),则发送这个帧;在发送过程中不断检测信道。

碰撞检测(CD; Collision Detection)

碰撞检测又称冲突检测,边发送数据边检测信道上的信号电压变化情况。显然使用CSMS/CD协议时,一个站不可能同时进行发送和接收,因此只能进行半双工通信。

争用期(Contention Period)又称碰撞窗口(Collision Window),即端到端的往返时延,是规定的基本退避时间,即站点在发送数据帧后至多的争用期时间就能知道是否碰撞。对于传统以太网,发送512b的时间为51.2μs,即传统以太网争用期的长度。

同时以太网规定了最短帧长(Minimum Frame Length)或称最短有效帧,凡长度小于64字节的帧都是由于冲突而异常中止的无效帧,若发送的数据非常少,则必须加入一些填充字节,使帧长度不小于64字节。

截断二进制指数退避(Truncated Binary Exponential Back Off)算法指数级增长等待时间,即下式。

其中:为集合随机取出的数;重传次数

当重传16次仍不能成功则丢弃该帧,并向高层报告。

强化碰撞的情况下,当发送数据的站一旦发现发生了碰撞,立即停止发送数据,并发送32比特或48比特的人为干扰信号(Jamming Signal),以便让所有用户都知道发生了碰撞。

碰撞避免(CA; Collision Avoid)

碰撞避免通常用于无限局域网。

冲突域(Collision Domain)

又称碰撞域,两台主机在同时通信时会发生冲突,则处于同一冲突域。划分冲突域可过滤通信量,增大吞吐量,网络故障时仅影响个别网段,因而提高了可靠性。

网桥(Network Bridge)

网桥实现以太网的扩展,为接入结点提供「独享」的通路,可划分冲突域。常见的网桥有如下两种。

  • 透明网桥(Transparent Bridge):由网桥决定路由,即插即用,具备自学习功能,网桥和路由对各结点透明;
  • 源路由网桥(Source Routing Bridge):由发送源决定路由,使用探测帧选择最佳路由,路由信息位于帧首。

自学习功能的要点是查找转发表中与收到该帧的目的地址有无相匹配的项目,内容如下:若没有匹配项目则追加转发表,并通过其他接口转发;若有匹配项目则按转发表给出的接口转发;若转发表给出的接口就是该帧进入网桥的接口,则丢弃该帧。

生成树协议(STP; Spanning Tree Protocol)用于切断某些链路,使主机间通信经由交换机的路径是无环路的树状结构,避免网络资源的消耗。

交换机(Switch)

交换机即多端口的网桥,每个端口连接一台计算机,可将数据转发到需要接收的设备。交换机是即插即用设备,具有自学习功能,维护记录如下内容的转发表:物理地址;接口编号;有效时间。

通过引入路由功能,一些交换机也可以在第三层网络层转发数据,称为三层交换机。

虚拟局域网(VLAN; Virtual LAN)

虚拟局域网由一些具有某些共同需求的局域网网段构成的与物理位置无关的逻辑组。虚拟局域网只是局域网给用户提供的服务,并不是新型局域网。利用交换机可以很方便地实现虚拟局域网。虚拟局域网的两个标准如下。

  • 交换链路内协议(ISL; Inter-Switch Link Protocol):Cisco交换机独有的协议,兼容IEEE 802.1Q;
  • IEEE 802.1Q:被几乎所有的网络设备生产商所共同支持。

IEEE 802.1Q在以太网标准帧上插入了如下4个字节的内容。

  • 协议标识符(TPID; Tag Protocol Identifier):2字节,0x8100的固定值,表明该帧带有IEEE 802.1Q的标记信息;
  • 标记控制信息(TCI; Tag Control Information):2字节,其中包含12位的VLAN标识。

虚拟局域网标识(VID; VLAN Identifier)用于划分端口。虚拟局域网可以对应标记端口(Tagged Port)或非标记端口(Untagged Port)两种状态。

基于端口的虚拟局域网标识(PVID; Port-Based VLAN Identifier)对应一个物理端口,可以属于多个虚拟局域网。当一个物理端口拥有一个PVID时,必定会拥有和PVID相同的VID,且此VID对应非标记端口状态。PVID的作用是在交换机从外部接收到非标记帧时插入标记,让该帧在虚拟局域网内流通。

IEEE 802.1Q交换机的三类端口如下。

  • Access:计算机等设备的端口,发送帧时,剥离VLAN标记,接收帧时,若包含VLAN标记则丢弃,若不包含VLAN标记则插入PVID;
  • Trunk:交换机端口,发送帧时,比较PVID和VLAN标记,若相同则剥离VLAN标记,接收帧时,若不包含VLAN标记则插入PVID;
  • Hybrid:交换机端口,发送帧时,判断VLAN对应本端口的属性,若VLAN对应非标记端口则剥离VLAN标记,接收帧时,若不包含VLAN标记则插入PVID。

通用属性注册协议(GARP; Generic Attribute Registration Protocol)通过声明来实现属性注册和注销:当端口接收属性声明时,该端口注册属性;当端口接收注销属性声明时,该端口注销属性。GARP虚拟局域网注册协议(GVRP; GARP VLAN Registration Protocol)是GARP的高级应用,实现虚拟局域网的动态注册和注销,减少手动配置的工作量。GVRP使用如下方式管理VLAN信息。

  • 注册(Registration):表明交换机已加入某个VLAN;
  • 声明(Declaration):表明交换机支持某个VLAN。

单臂路由(Router on a Stick)通过汇聚链路(Trunk Link)连接至交换机,并于路由器配置连接VLAN的子接口。单臂路由和三层交换机可以实现虚拟局域网间的互通。

时间敏感网络(TSN; Time-Sensitive Networking)

时间敏感网络是为以太网协议建立的通用的时间敏感机制,派生于IEEE 802.1Q标准的虚拟局域网,以确保网络数据传输的时间确定性,在准确的时间内以最小的时间抖动传输。时间敏感网络通常用于工业控制和自动化领域。

时间敏感网络的前身是音视频桥接器(AVB; Audio Video Bridging),解决数据在以太网传输中的时序性、低延时和流量整形问题。音视频桥接器自动通过带宽预留协议将总带宽的一部分用于传输双向的高质量、无压缩的音频,剩余带宽用于传输非实时性要求的普通数据。

时间敏感网络可提供更高级的时钟同步、更低的端对端延迟及确定性、高容错性及高系统鲁棒性。

多协议标签交换(MPLS; Multi-Protocol Label Switching)

多协议标签交换是利用标签引导数据高速、高效传输的路由技术。多协议指支持多种网络层协议的同时,还可以兼容多种数据链路层协议。

多协议标签交换的工作原理是将数据流量分为若干个具有唯一标签的虚拟专用链路,标签(Label)指较短而定长且通常只具有局部意义的标识。路由器根据标签决定数据包的路由方式和下一跳。

转发等价类(FEC; Forwarding Equivalence Class)是在转发过程中以等价的方式处理的一组数据分组,可通过地址、隧道等来标识创建转发等价类。转发等价类的数据流在不同的结点被赋予确定的标签,数据转发按照这些标签进行,数据流所走的路径称为标签交换通道(LSP; Label Switched Path)。各标签交换路由器使用专门的标签分配协议(LDP; Label Distribution Protocol)交换报文。标签分配的模式如下。

  • 下游按需(DoD; Downstream on Demand)标签分配;
  • 下游自主(DU; Downstream Unsolicited)标签分配。

提供标签交换和标签分发功能的网络核心交换机或者路由器称为标签交换路由器(LSR; Label Switching Router),其中位于网络边缘的称为标签交换边缘路由器(LER; Label Switching Edge Router)。

入口(Ingress)的LER为进入标签交换网络的数据流划分不同的转发等价类。数据流下游分配标签给上游,根据数据分组的标签,结点于标签转发表查找入标签进行转发。上游结点的出标签即下游结点的入标签。标签弹出可于出口(Egress)的LER或距离出口LER最近的LSR进行。

网络层(Network Layer)

网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据服务。

分组交换(Packet Switching)

分组(Packet)又称IP数据报或数据包,分组交换传输的数据单位。

分组的首部格式

分组的首部格式如下。

  • 版本:4位,指明使用协议的版本,通信双方使用的协议版本号必须一致;

  • 首部长度:4位,指明分组首部的长度,取值以4字节为单位,其最小值为0101(即5),表明分组固定首部长度20字节,其最大值为1111(即15),表明分组首部长度最大值60字节。

  • 区分服务:8位,一般情况下不使用;

  • 总长度:16位,指明首部和数据之和的长度,取值以1字节为单位,受限于最大传输单元(MTU; Maximum Transfer Unit),如以太网规定的MTU为1500字节;

  • 标识(Identification):16位,当分组需要分片时,该值就被复制到所有片的标识中;

  • 标志(Flag):3位,目前只有MF和DF两位有意义,MF(More Fragment)为0表示是最后一个分片,为1表示后面还有分片,而DF(Don't Fragment)为0才允许分片;

  • 片偏移:13位,指出某片在原分组的相对位置,取值以8字节为单位;

  • 生存时间(TTL; Time to Live):8位,以跳数为单位指出分组的「寿命」即剩余跳数;

  • 协议:8位,指出分组携带的数据是何种协议;

  • 首部校验和:16位,只检验数据报的首部,即包括数据部分;

  • 源地址:32位;

  • 目的地址:32位;

  • 可选字段;

  • 零填充。

电路交换(Circuit Switching)将电路连接到正确目的地,不灵活且价格昂贵,总有闲置的线路,但能最大限度地随意使用。电路交换无需共享、通信时延小、保证有序传输且没有冲突,但其建立连接时间长、灵活性差、难以规格化,且因为计算机数据的出现具有突发性而导致其线路传输效率往往很低。

报文交换(Message Switching)采用存储转发原理,现在已经不使用了。报文交换无需建立连接、动态分配线路,但需要较大存储缓存空间、引起较长转发时延。

分组交换以分组为单位传送到相邻结点,存储后查找转发表,转发至下一结点。分组交换以分组为单位,高效、迅速、灵活,是保证可靠的网络协议,但引起转发时延,且需要传输如分组首部的额外信息量。实际中,分组交换和电路交换往往是组合使用的。

曾经有人认为,计算机网络也应「先建立连接」即建立虚电路(Virtual Circuit),使所有分组都沿着这条逻辑连接按照存储转发方式传送,减少分组额外信息开销且保证分组按序接收,使可靠通信由网络来保证。虚电路交换是电路交换与分组交换的混合,而这种思路几乎不被采纳。

广播域(Broadcast Domain)

若两台主机能收到同样的广播消息,则处于同一广播域。

路由器(Router)

路由(Routing)即通过网络将信息从源地址传输到目的地址的活动。路由的一些概念如下。

  • 默认路由(Default Route):目的地不在路由表中,会被转发到默认路由,通常用0.0.0.0/0匹配;
  • 静态路由(Static route):被手工输入明确配置到路由表中的路由,若对特定的目的主机指明一个路由(掩码设置为255.255.255.255),则称特定主机路由,使网络管理人员能够更方便地控制网络和测试网络;

路由器实现分组交换的关键构件,作用是转发收到的分组,可划分广播域。路由器使用最长前缀匹配(Longest Prefix Match)以在路由表中进行选择。消息沿着路由跳转的次数称跳数(Hop Count)。

三层交换机(Layer-3 Switch)

三层交换机同时具有交换机和路由器的性质,其最重要目的是加快大型局域网内部的数据交换。

网际协议(IP; Internet Protocol)

又称IP协议或Kahn-Cerf协议,使性能各异的网络在网络层上看似统一,即如下的概念:「IP over Everything」指IP协议在各式各样的网络上运行;而「Everything over IP」指IP协议直接地为传输层提供服务,间接地为应用层各个协议提供服务。

网际协议版本4(IPv4; Internet Protocol version 4)是网际协议开发过程中的第四个修订版本,也是此协议第一个被广泛部署和使用的版本;直到IPv4地址分配尽时,网际协议版本6(IPv6; Internet Protocol version 6)处于部署的初期。IPv6是解决IPv4地址耗尽问题的治本措施。

从IPv4向IPv6过渡的两种策略如下:在IPv6结点中加入IPv4协议栈,称为双协议栈(Dual Stack);路由器将IPv6的分组封装入IPv4中,称为隧道技术(Tunneling)。

IP地址(IP Address)

IP地址在整个互联网范围内唯一,由因特网域名与数字地址分配机构(ICANN; Internet Corporation for Assigned Names and Numbers)进行分配。

IPv4地址共32位。两级的IP地址由网络号和主机号组成。

  • 网络号(Net ID):标志主机或路由器所连接到的网络;
  • 主机号(Host ID):标志该主机或路由器。

IPv4地址采用点分十进制(Dotted Decimal Notation)记法。

IPv4地址的类型

IPv4地址的分类如下,注意A类地址最大可指派的网络数为126,即

类型 二进制前缀 点分十进制的首个数范围 描述
A 0 0 ~ 127 8位网络号和24位主机号
B 10 128 ~ 191 16位网络号和16位主机号
C 110 192 ~ 223 24位网络号和8位主机号
D 1110 224 ~ 239 多播地址
E 1111 240 ~ 255 保留为今后使用

IPv4特殊地址

一般不作为主机地址使用的特殊地址如下。

网络号 主机号 源地址使用 目的地址使用 描述
0 0 本网络的本主机
0 Host ID 本网络的某台主机Host ID
全1 全1 只在本网络上广播
Net ID 全1 对Net ID的所有主机广播
127 非0或全1的数 用于本地软件环回测试

IPv6地址共128位,采用冒号十六进制记法(Colon Hex Notation),允许省略一串连续的0,且只能使用一次省略。IPv6的地址类型可以是如下三种之一:单播;多播;任播(Anycast),即终点是一组计算机,但分组通常只交付给最近的一个。

子网(Subnet)

即三级的IP地址,由网络号、子网号和主机号组成,对外仍表现为一个网络。注意子网号借用主机位,且允许为全0或全1。子网掩码(Subnet Mask)与IP地址一样是32位,为1的位覆盖网络号和子网号。

无分类编址(CIDR; Classless Inter-Domain Routing)

即构造超网。消除了传统地址分类以及划分子网的概念,使用网络前缀(Network Prefix)来指明网络,使用斜线记法(Slash Notation),或称CIDR记法,指明网络前缀所占的位数,记法也允许省略点分十进制中低位连续的0。网络前缀相同的连续的IP地址组成CIDR地址块。

路由聚合(Route Aggregation)指将网络前缀缩短。网络前缀越短,其地址块所包含的地址数就越多。

地址解析协议(ARP; Address Resolution Protocol)

IP地址对数据链路层不可见,而地址解析协议可由IP地址得到MAC地址。

每个主机设有ARP高速缓存(ARP Cache),存放本局域网的各主机和路由器的IP地址到MAC地址的映射表,即该主机目前已知的一些地址。主机通过广播发送ARP请求分组,若另一主机的IP地址与请求分组要查询的地址一致,则另一主机单播发送ARP响应分组,地址映射得以写入缓存。

反向地址转换协议(RARP; Reverse Address Resolution Protocol)则以与ARP相反的方式工作,允许发出要反向解析的物理地址并希望返回其对应的IP地址。

网际控制报文协议(ICMP; Internet Control Message Protocol)

ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。

ICMP报文的前4个字节是统一的格式,内容如下:报文类型占8位;代码占8位;检验和占16位。ICMP报文的后4个字节的内容和后面的数据字段长度与ICMP的类型有关。

常用的ICMP报文类型

常用的ICMP报文类型如下。

报文类型
3 终点不可达(无法交付运输层)
11 时间超过(即收到生存时间为0的分组)
12 参数问题(分组首部中有的字段的值不正确)
5 改变路由(可能通过更好的路由),即重定向(Redirect)
8或0 回送(Echo)请求或回答
13或14 时间戳(Timestamp)请求或回答

分组网间探测(PING; Packet Internet Groper)用于测试两台主机的连通性,通常ping命令实现之。ping命令和traceroute(Windows下使用tracert)命令是ICMP的典型应用,内容如下。

  • ping使用了ICMP回送请求或回答报文,源主机发送请求报文,目的主机必须给源主机或路由器发送回答报文,是应用层直接使用网络层协议的例子(它没有通过运输层的TCP或UDP);
  • traceroute向目的主机发送一连串分组,每个分组的生存时间即其发送顺序,封装无法交付的UDP用户数据报(使用了非法端口号),每个生存时间为0的报文被丢弃后,源主机收到ICMP时间超过报文,当抵达终点(生存时间为1)时因UDP用户数据包无法交付,源主机收到ICMP终点不可达报文,通过这种手段,源主机可获取到达目的主机所经过的路由器的IP地址。

网际组管理协议(IGMP; Internet Group Management Protocol)

组播(Multicast)允许向一组目标发送数据,有效地降低网络流量,并实现多对多的通信,以避免多播控制信息给网络增加大量开销。网际组管理协议用于维护组播地址的分配和管理。

IPv4中使用D类地址作为组播地址。组播MAC地址由IP组播地址衍生,IP地址最后23位拷贝至MAC地址最后23位,前一位置零,且目的MAC地址地前24位必须为0x01005E。

IPv6中,ARP和IGMP的功能已合并至ICMPv6。

自治系统(AS; Autonomous System)

路由选择策略可分为如下两种:动态路由选择,即随网络的通信量或拓扑变化而自适应地调整;静态路由选择,即手工去调整相关的路由信息。

互联网被划分为许多较小的自治系统,在目前的互联网中,一个大的ISP就是一个自治系统。自治系统相关的协议内容如下。

  • 内部网关协议(IGP; Interior Gateway Protocol):自治系统内部使用,如IS-ISRIPOSPF
  • 外部网关协议(EGP; External Gateway Protocol):自治系统间使用,如BGP-4。

热马铃薯路由(Hot-Potato Routing)是早期的路由选择协议,将分组比喻为滚烫的马铃薯,指当前自治系统接到分组时,尽可能快地把它传递另一个自治系统,即放入输出队列最短的方向上排队。

因此,热马铃薯路由不一定是最短路径,自治系统仅根据自己搜集到的相关信息作出路由选择的决定,与其他结点不交换路由选择信息,是孤立动态路由选择算法。

中间系统到中间系统(IS-IS; Intermediate System to Intermediate System)

IS-IS使用链路状态协议。

路由信息协议(RIP; Routing Information Protocol)

RIP是内部网关协议中最先得到广泛使用的,使用向量距离协议(Vector Distance Protocol),在相邻路由器路由信息的基础上计算路由的向量距离,其最大的优点是实现简单且开销较小。

RIP要求每一个路由器都要维护从它自己到其他每一个目的网络的最短距离目录,其中距离即跳数。路由器仅和相邻路由器按固定的时间间隔交换自己的路由表,内容如下:目的网络的网络地址;最短距离;下一跳路由器。

RIP允许一条路径包含至多15个路由器,适用于小型互联网,这限制了网络的规模。当网络出现故障时,设置距离为16表示可达,这会导致要经过较长的时间才能将信息传递到所有的路由器,即「好消息传播得快,坏消息传播得慢」的现象。

注意RIP协议是应用层协议,因为其报文封装于UDP报文中。

RIP防止路由环路的措施如下。

  • 最大跳数计数(Maximum Hop Count);
  • 水平分割(Split Horizon):从一个接口学习到的路由不再广播回该接口;
  • 毒性逆转(Poison Reverse):从一个接口学习到的路由发送回该接口时会被毒化,即设置为最大跳数;
  • 触发更新(Trigger Update):当路由器接收到其他路由器的路由信息时,立即广播路由刷新报文,并立即将更新后的路由信息发送给相邻的路由器;
  • 抑制计时器(Hold-Down Timer):路由器在发送路由信息时,会设置一个抑制计时器,在计时器到期后才会再次发送路由信息,防止路由表频繁更新而导致网络拥塞,增加了网络的稳定性。

开放最短路径优先(OSPF; Open Shortest Path First)

OSPF为克服RIP的缺点而开发。OSPF使用链路状态协议(Link State Protocol),广播链路状态信息,根据网络拓扑结构寻找和计算最短路径,而非像RIP一样使用距离向量协议。

OSPF中,指定路由器(DR; Designated Router)负责维护网络中所有路由器之间的连接信息,并协调它们之间的通信,以减少广播信息。当指定路由器不可用时,备用指定路由器(BDR; Backup Designated Router)会继续它的工作。

不同于RIP,OSPF是网络层协议。

虚拟专用网(VPN; Virtual Private Network)

利用公共互联网作为本机构各专用网之间的通信载体,而专用网指采用专用地址的网络。

专用地址(Private Address)又称可重用地址(Reusable Address),不可通过互联网传送数据,且不可路由,只用于机构内部通信。

专用地址的范围

专用地址的范围如下。

网络类型 地址范围 地址块位数
A 10.0.0.0/8(即10.0.0.0到10.255.255.255) 24
B 172.16.0.0/20(即172.16.0.0到172.31.255.255) 20
C 192.168.0.0/16(即192.168.0.0到192.168.255.255) 16

网络地址转换(NAT; Network Address Translation)是专用网内部主机与互联网主机通信所需要的地址转换技术。NAT路由器至少要有一个全球IP地址,才能和互联网相连。

软件定义网络(SDN; Software Defined Network)

软件定义网络是一种新型网络架构,利用OpenFlow协议将路由器的控制平面从数据平面中分离,改以软件方式实现,从而使得将分散在各个网络设备上的控制平面进行集中化管理成为可能。

SDN的转发表称为流表(Flow Table),包括数据队列、帧收发器以及具体动作。SDN将转发扩充为「广义的转发」:第一个步骤是「匹配」,即查找转发表中的网络前缀,进行最长前缀匹配;第二个步骤是「动作」,即把分组从指定的接口转发出去。SDN的网络体系架构模型如下。

  • 应用平面(Application Plane):负责路由选择、接入控制和负载均衡等;
  • 控制平面(Control Plane):在网络内部交换路径和生成边界业务路由,处理网络状态变化事件,北向(Northbound)接口连接应用平面,与网络控制的应用程序通信,南向(Southbound)接口连接数据平面,通过OpenFlow协议下发流表;
  • 数据平面(Data Plane):执行转发。

多个控制器构成集群,控制器实例之间可通过「东西向接口」实现控制信息的交互。

一些代表性的开源控制器(Open Source Controller)有Ryu、OpenDaylight、ONOS等。

网络功能虚拟化(NFV; Network Function Virtualization)将网络功能从专用硬件中解耦,使得在同一个物理基础架构上建立多个逻辑网络拓扑成为可能。NFV的架构模型如下。

  • 运营支撑系统(OSS; Operation Support System)业务支撑系统(BSS; Business Support System);
  • 网元管理系统(EMS; Element Manager System):协助VNFM管理VNF;
  • 虚拟网络功能(VNF; Virtualized Network Function);
  • 网络功能虚拟化基础设施(NFVI; NFV Infrastructure):将物理资源虚拟化为虚拟资源,提供计算、存储和网络资源,构成系统的数据平面,对用户流量进行检错、处理、转发操作;
  • 网络功能虚拟化管理与协调(NFV-MANO; NFV Management and Orchestration)。

NFV-MANO有如下内容。

  • 编排器(Orchestrator):控制将新网络服务和VNF集成至虚拟框架中,并且验证和授权NFVI资源请求;
  • 虚拟网络功能管理器(VNFM; VNF Manager):负责VNF的创建和资源扩展;
  • 虚拟基础设施管理器(VIM; Virtualized Infrastructure Manager):管理和监控NFVI,支持应用或管理系统对虚拟资源的管理,可与管理程序和SDN控制器交互。

传输层(Transport Layer)

前述物理层、数据链路层和网络层将主机通过异构网络互联,实现主机间的逻辑通信;而传输层提供进程间的逻辑通信,屏蔽了网络拓扑、采用的路由协议等细节。

协议端口号(Protocol Port Number)简称端口(Port)或软件端口,应用层各种协议进程与运输实体进行层间交互的一种地址。端口号可分为如下三类。

  • 熟知端口号(Well-Known Port Number):又称系统端口号,数值为0~1023,被指派给TCP/IP最重要的一些应用程序;
  • 登记端口号:数值为1024~49151,需要按规定登记以避免重复;
  • 短暂端口号:数值为49152~65535,客户进程运行时动态选择,通信结束可供其他客户进程使用。

单个计算机使用进程标识符来唯一标志进程;网络环境下则使用端口,原因是互联网上的计算机操作系统种类很多,而不同的操作系统又使用不同格式的进程标识符。端口号只具有本地意义,不同计算机的相同端口没有关联。

应用层的进程通过传输层的端口实现对网络层的「复用」。

常见的熟知端口号

常见的熟知端口号如下。

FTP TELNET SMTP DNS TFTP HTTP SNMP HTTPS RIP
20/21 23 25 53 69 80 161 443 520

TCP/IP运输层的端口号为16位即4字节。

用户数据报协议(UDP; User Datagram Protocol)

UDP的主要特点如下:连接的;尽最大努力交付,不保证可靠也不使用拥塞控制;面向报文;支持一对一、一对多、多对一和多对多的交互通信;首部开销小,仅8字节

UDP的首部格式

UDP的首部格式如下。

  • 源端口:2字节;
  • 目的端口:2字节;
  • UDP长度:2字节,最小值为8(仅有首部);
  • 检验和:2字节,检验传输中是否出错,有错就丢弃,使用伪首部计算。

UDP的伪首部组成

UDP的伪首部组成如下,注意当且仅当计算检验和时需要使用伪首部。

  • 源IP地址:4字节;
  • 目的IP地址:4字节;
  • 0:1字节;
  • 17(UDP的协议号):1字节;
  • UDP长度:2字节。

传输控制协议(TCP; Transmission Control Protocol)

TCP的主要特点如下:面向连接的(TCP通过握手的方式建立连接);提供可靠交付,使用流量控制和拥塞控制;面向字节流;支持一对一的全双工通信;首部开销大,最小20字节,最大60字节。

理想的传输条件有如下的特点:输送信道不产生差错;无论发送方速度多快,接收方总是来得及处理收到的数据。必须使用一些可靠的传输协议(如下述的自动重传请求),在不可靠的信道上实现可靠传输。

TCP的首部格式

TCP的首部格式如下。

  • 源端口:16位;
  • 目的端口:16位;
  • 序号:32位,本报文段所发送的数据的第一个字节的序号,当序号增加到最后一个即时,下一个序号又回到
  • 确认号:32位,期望收到对方下一个报文段的(首字节的)序号,若确认号为,表明序号为止的所有数据都已经正确收到;
  • 数据偏移:4位,取值以4字节为单位,指出报文段的数据初始处距离报文段的起始处有多远;
  • 保留字段:6位;
  • 控制位:6位,每个控制位占1位;
  • 窗口:16位,指出现在允许对方发送的数据量(以1字节为单位),窗口值经常动态变化;
  • 检验和:16位;
  • 紧急指针:16位,指出紧急数据的字节数(紧急数据后就是普通数据),即使窗口为0也可发送紧急数据;
  • 选项:长度可变,最长40字节,未使用选项的首部长度是20字节;
  • 零填充。

TCP首部的控制位

控制位的内容如下。

  • 紧急URG:为1时表示紧急指针有效,应尽快传送;
  • 确认ACK:为1时确认号才有效,TCP规定,在连接建立后所有传送的报文段都必须将ACK置1;
  • 推送PSH:接收方收到该值为1的报文段,尽快交付给应用程序;
  • 复位RST:为1时表明TCP连接出现严重差错,必须释放连接后重新建立,RST置1还用来拒绝一个非法的报文或拒绝打开一个连接;
  • 同步SYN:为1时表明用于建立连接时同步序号;
  • 终止FIN:为1时表明发送方数据发送完毕,要求释放连接。

TCP首部的选项

常见选项如下。

  • 最大报文段长度(MSS; Maximum Segment Size):只要缓存中存放的数据达到MSS字节,就组装为一个TCP报文段发送出去,显然选择较小的MSS,网络利用率就降低,因此MSS应尽可能大些;
  • 窗口扩大选项;
  • 时间戳选项;
  • 选择确认选项。

TCP的伪首部组成

TCP的伪首部组成如下,注意当且仅当计算检验和时需要使用伪首部。

  • 源IP地址:4字节;
  • 目的IP地址:4字节;
  • 0:1字节;
  • 6(TCP的协议号):1字节;
  • TCP长度:2字节。

套接字(Socket)

套接字即端口号拼接至IP地址,以冒号隔开。每一条TCP连接唯一地被通信两端的两个端点,即两个套接字所确定。

主动发起连接建立的应用进程称客户(Client),被动等待连接建立的应用进程称服务器(Server)。

握手(Handshake)

三报文握手(Three-Way Handshake)即TCP建立连接的过程,内容如下。

  1. 客户端向服务器端,SYN=1,序号为随机数
  2. 服务器端向客户端,SYN=1,ACK=1,序号为,确认号为随机数
  3. 客户端向服务器端,ACK=1,序号为,确认号为

三报文握手防止已失效的连接请求报文段,即超时重传且在释放连接后到达服务器,使服务器进入连接建立状态,而客户端不理睬,造成资源浪费。

TCP释放连接的过程可称作四报文握手(Four-Way Handshake),内容如下。

  1. 客户端向服务器端,FIN=1,序号为(紧接其上个发送的最后一个字节的序号);
  2. 服务器端向客户端,ACK=1,序号为(同前述),确认号为,此时的TCP连接处于半关闭(Half Close)状态,即客户端已经没有数据发送,但若服务器端发送数据,客户端仍要接收;
  3. 服务器端向客户端,FIN=1,ACK=1,序号为(同前述),确认号为
  4. 客户端向服务器端,ACK=1,序号为,确认号为

最长报文寿命(MSL; Maximum Segment Lifetime)保证最后的确认能到达客户端,并防止前述已失效的连接请求报文段。因此进入释放连接的最后阶段时,TCP连接并非立即释放,需要计时器经过两倍的MSL的时间后连接才关闭。

自动重传请求(ARQ; Automatic Repeat Request/Query)

若发送方在发送后一段时间之内没有收到确认,通常会重新发送,这称为自动重传请求。

ARQ包括停止等待ARQ协议和连续ARQ协议等。在运输层并不使用停止等待ARQ协议,如TCP采用连续ARQ协议。

停止等待(Stop-and-Wait)ARQ协议指每发送完一次就停止发送,等待并收到对方确认后再发送。停止等待ARQ协议的要点如下:在发送完后需要暂时保留副本以备重发;报文段和确认报文段必须进行编号;超时计时器的重传时间应当比数据在分组传输的平均往返时间更长。

为提升传输效率,发送方可不使用低效率的停止等待协议,而采用流水线传输,即连续发送多个报文段,不必每发完一个就停顿等待确认,以提高信道利用率。当使用流水线传输时,就需要使用连续ARQ协议和滑动窗口协议。

连续(Continuous)ARQ协议指发送方维护发送窗口,其内的报文段都可连续发送。接收方一般采用累计确认的方式,即不必对收到的报文段逐个发送确认,而是对按序到达的最后一个分组发送确认。连续ARQ协议包括回退N重传ARQ和选择重传ARQ,内容如下。

  • 回退N(Go Back N):接收点丢弃从第一个没有收到的报文段开始的所有报文段;
  • 选择(Selective):每个报文段设有计时器,一定时间内未收到确认则重传。

每收到一个确认后,窗口后沿向前滑动一个位置。前沿可能不动,也可能向前滑动。

发送端的发送窗口是根据接收端的接收窗口设置的,但在同一时刻它们并不总是一样大,因为网络传送窗口值需要一定时间滞后。

停止等待ARQ协议相当于连续ARQ协议中发送窗口和接收窗口大小均为1。

数据链路层,也可使用上述的各种ARQ协议。

流量控制(Flow Control)

流量控制使让发送方的发送速率不要过快,以让接收方及时接收,即保持发送方的发送窗口不能超过接收方的接收窗口。

糊涂窗口综合征(Silly Window Syndrome),即发送端应用进程产生数据很慢,或接收端应用进程处理接收缓冲区数据很慢,使进程间传送的报文段很小,导致TCP的性能变差。接收方的延迟确认可以解决这一问题。

应用层(Application Layer)

根据使用的传输层协议,可对应用层协议做如下分类。

  • 使用UDP协议:DNS、TFTP、RIP、DHCP、SNMP、NFS、IGMP;
  • 使用TCP协议:SMTP、TELNET、HTTP、FTP。

域名系统(DNS; Domain Name System)

域名系统即互联网使用的命名系统。

互联网采用层次树状结构的命名方法,域名(Domain Name)即连接在互联网上的主机或路由器的唯一的层次结构的名字,由标号(不超过过63个字符)序列组成,各标号间用点隔开。域名只是逻辑概念,并不代表计算机所在的物理地点。域名可根据级别进行如下分类。

  • 顶级域名;
    • 国家顶级域名:.cn表示中国,.us表示美国等;
    • 通用顶级域名:.com表示公司和企业,.net表示网络服务机构等;
    • 基础结构域名:即.arpa,又称反向域名解析。
  • 二级域名:国家顶级域名下的二级域名由国家决定,我国把二级域名按类别和行政区划分。
  • 三级域名等。

DNS服务器实现由域名到IP地址的解析,DNS服务器的类别如下。

  • 根域名服务器:最高层次、最重要的域名服务器,知道所有顶级域名服务器的域名和IP地址;
  • 顶级域名服务器:管理在改顶级域名服务器注册的所有二级域名;
  • 权限域名服务器:负责一个区域的域名服务器,当不能给出DNS查询回答时,告诉客户下一步应当查找哪个权限域名服务器;
  • 本地域名服务器:又称默认域名服务器,当一台主机发出DNS查询请求,这个查询请求报文就发送给本地域名服务器。

域名解析的过程要点如下。

  • 递归查询(Recursive Query):主机向本地域名服务器的查询;
  • 迭代查询(Iterative Query):本地域名服务器向根域名服务器的查询。

更改DNS记录可以更改电子邮件目的地、浏览器链接的目的地和下载请求目的地。未经授权的DNS更改称为DNS欺诈(DNS Spoofing)或DNS缓存下毒(DNS Cache Poisoning)。黑客利用DNS欺诈,将对合法网站的查询指向非法网站。

万维网(WWW; World Wide Web)

万维网又简写为Web,是大规模的、联机式的信息储藏所,用链接的方法从一个站点访问另一站点。超文本(Hypertext)用于描述可以存储文本文档的计算机系统,该系统可根据逻辑关系将文档彼此链接,并允许读者对所读材料进行注释。万维网是分布式的超媒体(Hypermedia)系统,它是超文本系统的扩充。在一个客户程序上显示出的万维网文档称为页面(Page)。

统一资源定位符(URL; Uniform Resource Locator)

URL用于表示从互联网上得到的资源位置和访问这些资源的方法。URL的一般形式由如下四个部分组成,可用于表示万维网上上网页的唯一地址。

<协议>://<主机>:<端口>/<路径>

URL中不含有空格,且有些Web服务器是区分大小写的。

超文本传输协议(HTTP; Hypertext Transfer Protocol)

HTTP规定浏览器如何向万维网服务器请求文档,以及服务器如何把文档传送给浏览器。HTTP的主要特点如下:面向事务的(Transaction-Oriented)客户-服务器协议;HTTP虽然使用TCP连接,但交换HTTP报文不需要连接,即无连接的;同一客户第二次访问同一服务器的页面,服务器的响应与第一次被访问时相同,即无状态的。

安全套接层(SSL; Secure Socket Layer)及其后继者传输层安全(TLS; Transport Layer Security)都是可以对客户端计算机与HTTP服务器之间传输的数据进行加密的协议。超文本传输安全协议(HTTPS; Hypertext Transfer Protocol Secure)则结合HTTP和SSL/TLS。

超文本标记语言(HTML; Hypertext Markup Language)

HTML是一种制作万维网网页的标准语言,消除了不同计算机间信息交流的障碍。

电子邮件(E-Mail)

电子邮件由信封(Envelope)和内容(Content)两部分组成。

电子邮件系统的三个主要组成如下:用户代理,即电子邮件客户端软件,是用户与电子邮件系统的接口;邮件服务器,用于发送和接收邮件,同时负责维护用户的邮箱;邮件协议。

简单邮件传送协议(SMTP; Simple Mail Transfer Protocol)

SMTP限于传送ASCII码,不能满足传送多媒体邮件的需要。

电子邮件的读取通常使用邮局协议(POP; Post Office Protocol)的第三个版本和网际报文存取协议(IMAP; Internet Message Access Protocol)。

通用互联网邮件扩充(MIME; Multipurpose Internet Mail Extension)

MIME并没有改动或取代SMTP,继续使用原来的邮件格式,但追加新的结构和规则。

文件传送协议(FTP; File Transfer Protocol)

FTP的客户和服务器需要建立如下两个并行的TCP连接:实际用于传输文件的数据连接,对应熟知端口号20;发送用户的传送请求等的控制连接,对应熟知端口号21。

动态主机配置协议(DHCP; Dynamic Host Configuration Protocol)

提供即插即用(Plug-and-Play)联网机制,允许一台计算机加入新的网络和获取IP地址而不用手工参与。

DHCP工作过程如下。

  • 发现阶段:需要IP地址的主机在启动时就广播发送发现报文,以发现DHCP服务器;
  • 提供阶段:DHCP服务器从地址池中取出一个地址,以广播形式向DHCP客户发送一个包含「保留」的IP地址和其他设置的提供报文;
  • 选择阶段:客户选择第一个响应的DHCP服务器,广播发送请求报文,告知其他的服务器已不需要提供DHCP服务了;
  • 确定阶段:被选择的DHCP服务器将「保留」的IP地址标记为「租用」,并广播发送确认报文。

DHCP分配给客户的IP地址是临时的,因此客户只能在租用期(Lease Period)内使用。