传输控制协议/因特网互联协议TCP/IP(Transmission Control Protocol/Internet Protocol),
又名网络通讯协议,是Internet最基本的协议。它起源于60年代末美国政府资助的一个分
组交换网络研究项目,到90年代已发展成为计算机之间最常应用的组网形式。
从协议分层模型方面来讲,TCP/IP通常被认为由链路层、网络层、传输层、应用层这四
个层次组成.

基础理论部分按照这四个层次,对网络类涉及的知识点进行分类介绍。若一个知识点涉
及到多个层次,则优先考虑放在最为主要或常用的层次中介绍。若无法确定重要性或常
用性,则放在其中最低的层次介绍。
其中所涉及的各协议之间大致的层级关系如下图所示。

网络设备与网络通信介质共同构成网络的硬件基础设施,是网络的重要组成部分。相关
硬件部分将分别介绍LAN switch、路由器等常用的重要网络设备。
虚拟局域网VLAN(Virtual Local Area Network)是一种将局域网(LAN)设备从逻辑上
划分成多个网段,从而实现虚拟工作组的数据交换技术。VLAN可以应用于交换机和路
由器中,其中主要用在交换机中。
VLAN技术允许网络管理者将一个物理的LAN逻辑地划分成不同的广播域(即VLAN),
每一个VLAN都包含一组有着相同需求的计算机。由于VLAN是逻辑地而不是物理地划
分,所以同一个VLAN内的各个计算机无须被放置在同一个物理空间里,即这些计算机
不一定属于同一个物理LAN网段。
VLAN具有如下优点:
可以从不同的纬度,对VLAN进行划分:
VLAN基于IEEE 802.1Q标准,在普通帧的原MAC地址和类型字段之间插入了4字节的
802.1Q Tag标记。VLAN的帧格式如下图所示:

802.1Q Tag标记各字段含义如下:
根据端口接入设备的类型,VLAN的端口分为几种(默认的情况下所有的端口属于
VLAN1):
各类型端口示意图如下图所示。

VLAN传输帧的基本原理是使用Tag对帧进行标记,并根据Tag的内容进行相应的转发。
VLAN帧在网络中的简化传输过程如下图所示。

流程简单说明如下:
生成树协议STP(Spanning Tree Protocol)是一种链路层协议(在IEEE802.1D文档中定
义),它利用STA(Spanning Tree Algorithm),在存在交换环路的网络中生成一个没有
环路的树形网络,避免由于环路的存在而造成广播风暴问题。STP将交换网络冗余的备
份链路从逻辑上断开,当主要链路出现故障时,能够自动的切换到备份链路(逻辑上接
通),保证数据的正常转发。
STP主要有两个功能:
说明:路径开销用来衡量到达目标位置的代价,其值是两点之间某条路径上所有链路开销的总和。
IEEE给出了不同标准(速率)链路的路径开销。
STP具有以下特点:
STP的基本原理是,通过在交换机之间定期传递BPDU(Bridge Protocol Data Unit)报文
来对网络的拓扑、花费或优先级的变化做出及时的响应。该报文中包含了足够的信息来
保证交换机完成生成树计算。
BPDU分为配置BPDU和拓扑变化通知BPDU两种类型。配置BPDU包含配置信息;拓扑
变化通知BPDU在交换机检测到网络拓扑结构变化时发送。BPDU报文在直连的两个或
多个网桥间交换,不能被转发。没有运行STP协议的网桥将把BPDU报文当作普通报文
转发。
STP的实现过程主要分为以下几个环节:
选择根桥。
根桥的选择如下图所示。

简单说明如下:
a. 各交换机最初均认为自己为根桥。
b. 各交换机均向与其直连的交换机(可能为多个)发送配置BPDU报文,告知对
端自己的网桥ID。
c. 各交换机收到配置BPDU报文(可能为多个)后,比较配置BPDU报文中网桥
ID和自己网桥ID的大小,并记录自己的网桥ID为其中较小的值。网桥ID小者被
认为是根桥。上图中,A、B、C交换机认为A交换机为根桥,D交换机认为自
己为根桥。
d. 若仍存在多个网桥被认为是根桥,则重复发送配置BPDU报文,并进行比较和
记录。直至网络中只存在一个根桥。上图中,各交换机均认为A交换机为根
桥。
网桥ID应为唯一的。若两个网桥具有相同的最小ID,则MAC地址小的网桥被选作
根桥。
选择根端口。
根据如下方式选择根端口:
a. 选择到根桥的路径开销最小的端口。
b. 当到根桥的路径开销相同时,选择最高优先级的端口。
c. 当到根桥的路径开销和端口优先级均相同时,选择端口号最小的端口。
根端口的选择如下图所示。

以B交换机的3个端口为例,根端口的选择简单说明如下:
在正常稳定状态下,根桥定期发送配置BPDU以保证拓扑信息不超时。当某个端口长时
间不能接收到配置BPDU报文的时候,交换机认为端口的配置超时,网络拓扑可能已经
改变,此时重新计算网络拓扑,重新生成一棵树。拓扑改变消息的传播如下图所示。

简单说明如下:
Smart Link是一种在双上行组网中用于实现主备链路的冗余备份及故障快速迁移的链路
技术。
Smart Link具有以下特点:
Smart Link的组网如下图所示。

具体说明:
地址解析协议ARP(Address Resolution Protocol)是一个网络层协议,用于将目标网络
层地址转换成目标物理地址。在使用TCP/IP协议的以太网中,ARP负责将IP地址映射到
MAC地址,主机使用ARP协议通过目标设备的IP地址,查询目标设备的MAC地址,以
保证通信的顺利进行。
ARP缓存
在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,记录着已经获取的MAC地址和
IP地址的映射关系。如下图所示。

ARP缓存表采用了老化机制,在一段时间(一般15到20分钟)内如果表中的某一行没有
使用,就会被删除,从而减少ARP缓存表的长度,加快查询速度。
ARP工作过程
ARP代理
ARP本身无法跨越不同网段。因此当数据要发往外部网络时,需要使用ARP代理来进行
通信。ARP代理的作用是使网络内的主机误认为目标主机与自己处于同一网段内,从而
达到透明化子网划分的目的。
ARP代理的工作原理:
当ARP请求从一个网络的主机发往另一个网络的主机时,启用了ARP代理的、连接这两
个网络的路由器将回答该请求,使请求的发送者误以为此路由器就是目标主机,而将所
有数据帧发送到此路由器。路由器在收到数据帧后,再将其转发到真正的目标主机。
互联网协议IP(Internet Protocol)是为计算机网络相互连接并进行通信而设计的协议,
规定了计算机在Internet上进行通信时应当遵守的规则。
IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数
据报格式传输。IP协议提供不可靠、无连接的数据报传送服务,即它对数据进行“尽力
传输”,只负责将分组发送到目的主机,不管传输正确与否,不作验证,不发确认,也
不保证IP数据报到达顺序,它将纠错重传问题交由传输层来解决。
IP版本分为:
IP地址是在计算机网络中被用来唯一标识一台设备的一组数字,各个节点(设备)之间
使用IP协议进行通信。IP地址的层次是按网络结构进行划分。
IP地址分配
IP地址分配方式主要有以下两种:
表示形式
IPv4中IP地址由32位二进制数值组成,通常采用“点分十进制表示法”表示。采用了这
种表示法的IP地址由4个由点分隔的十进制整数来表示,每个十进制整数对应一个字
节。例如,A主机的IP地址使用二进制的表示形式为00001010 00000001 00000001
00000010,采用点分十进制表示法表示为10.1.1.2。
结构
IPv4地址由如下两部分组成:

在使用IP地址时要注意,一些IP地址是保留作为特殊用途的,一般的用户不能使用。各
类IP地址的范围如下图所示。

特殊IP地址



给定目的IP地址和子网掩码以后,主机就可以确定IP数据报的目的地是本子网上的主
机、本网络中其他子网中的主机或者其他网络上的主机。
因此,若知道了本机的IP地址,则就可以知道它为哪类地址,也就知道网络号和子网号
之间的分界线。而根据子网掩码就可知道子网号与主机号之间的分界线。
子网掩码除了可以用“点分十进制”方式表示外,还可以在IP地址后用一个斜线(/)后
面写明子网掩码的位数的方法来表示。例如,192.168.1.25/24表示IP地址192.168.1.25的
掩码为255.255.255.0。
IPv4数据报由IPv4首部和数据组成。普通的IPv4首部长度为20个字节(若没有可选项字
段)至60字节。IPv4数据报的格式如下图所示。

IP数据报中各字段的含义如下表所示。
| 字段 | 含义 |
|---|---|
| 版本 | 4,代表IPv4。 |
| 首部长度 | 将该值乘以4可以得到用字节表示的长度。 |
| 服务类型 | 由3bit优先域、4bit服务类型域和1bit未用位(必须为0)组成。优先域目前已被忽略。服务类型域分别代表最小时延、最大吞吐量、最高可靠性和最小费用。在一个IP数据报中该4bit只能有一位被置为1。 |
| 总长度 | 以字节为单位定义IP数据报的总长度(首部加上数据)。 |
| 标识 | 唯一地标识主机发送的每一份数据报。若数据报必须被分割成碎片以适应支持小型数据包的网络,则每个碎片中都设置相同的ID值。 |
| 标志 | 由3位组成。第1位保留。第2位为不分片标志,表示此数据报不可以被分片。第3位为更多分片标志,值为1表示此分片包不是最后分片,在其之后还有分片。 |
| 片偏移 | 若数据报被分片,则该域指明了当前分片在原始数据报中相对开始处的位置。该域的值单位为8字节。若数据报没有分片,则该值为0。 |
| 生存时间 | 设置了数据报可以经过的最多路由器数。指定了数据报的生存时间。TTL(Time to Live)的初始值由源主机设置(通常为32或64),一旦经过一个处理它的路由器,它的值就减去1。当该字段的值为0时,数据报就被丢弃,并发送ICMP报文通知源主机。 |
| 协议类型 | 表示使用IP层服务的更高层协议。一个IP数据报能封装来自诸如TCP(6)、UDP(17)、ICMP(1)等较高层协议的数据。 |
| 首部校验和 | 只对头部内容(不包含本字段)进行错误检测,不包括数据报的其他内容。校验和使用16位反码求和算法。 |
| 源IP地址 | 定义了源主机的IP地址。 |
| 目的IP地址 | 定义了源主机的IP地址。 |
| 源IP地址 | 定义了目的主机的IP地址。在IP数据报从源主机传送到目的主机期间,该字段必须保持不变。 |
| 可选项 | 通常用于网络测试和调试。虽然不是IP头部必需的部分,但要求IP软件能处理它们。目前,这些任选项定义如下: 安全和处理限制(用于军事领域) 记录路径(让每个路由器都记下它的IP地址) 时间戳(让每个路由器都记下它的IP地址和时间) 宽松的源站选路(为数据报指定一系列必须经过的IP地址) 严格的源站选路(与宽松的源站选路类似,但是要求只能经过指定的 这些地址,不能经过其他的地址) |
| 数据 | 内容根据实际情况填充。 |
** IPv6的特点包括:**
表示形式
IPv6的128位IP地址有以下两种表示形式:
** 结构**
IPv6地址由如下两部分组成:
l 网络前缀:n比特,相当于IPv4地址中的网络号码。
l 接口标识:128-n比特,相当于IPv4地址中的主机号码。
地址2001:A304:6101:1:0000:E0:F726:4E58/64(其中/64表示网络前缀为64位)的构成如
下图所示。

** 分类 **
IPv6主要有三种地址:

扩展包头不是必选部分。仅当需要路由器或目的节点做某些特殊处理时,才由发送方添
加一个或多个IPv6扩展包头。IPv6数据报的格式如下图所示。

IP数据报中各字段的含义如下图所示。


Internet控制报文协议ICMP(Internet Control Message Protocol)是一种面向无连接的协
议(在RFC792文档中定义),是TCP/IP协议族的一个子协议,使用IP做为底层支持。用
于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路
由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数
据的传递起着重要的作用。因此ICMP是一个非常重要的协议,对于网络安全具有极其
重要的意义。
ICMP的功能主要有:
ICMP报文一般可分为:
每类ICMP报文又可细分为多种类型,不同类型由报文中的类型字段和代码字段来共同
决定。详细分类请参见RFC792。

IP首部中的协议类型字段为1时表明其IP数据是ICMP报文。
ICMP报文的格式如下图所示。所有报文的前4个字节都是一样的,剩下的其他字节则
互不相同。

ICMP报文中各字段的含义如下表所示。

虚拟路由器冗余协议VRRP(Virtual Router Redundancy Protocol)是一种选择协议(在
RFC2338文档中定义),可以通过使用VRRP把虚拟路由器的任务分配给LAN上的VRRP
路由器中的一台。控制虚拟路由器IP地址的VRRP路由器称为主路由器,它负责转发数
据包到这些虚拟IP地址。当主路由器不可用时,VRRP提供了动态的故障转移机制,允
许将任意一个虚拟路由器的IP地址作为终端主机的默认第一跳路由器地址。在无需要求
每台终端主机都配置动态路由或路由发现协议的情况下,使用VRRP可以获得高可用性
的默认路由。
VRRP协议的实现有VRRPv2和VRRPv3两个版本。其中,VRRPv2基于IPv4,VRRPv3基
于IPv6。VRRPv2和VRRPv3在功能实现上并没有区别,只是应用的网络环境不同。
VRRP将LAN的一组路由器(包括一个主路由器和若干个备份路由器)组织成一个虚拟
路由器,称之为一个备份组。在备份组中,只有主路由器负责为网络内的主机提供路由
服务。如果备份组内的主路由器坏掉,备份路由器将会通过选举策略选出一个新的主路
由器,继续向网络内的主机提供路由服务。从而实现网络内的主机不间断地与外部网络
进行通信。
虚拟路由器拥有自己的IP地址(可以和备份组内的某个路由器的接口地址相同),备份
组内的路由器也有各自的IP地址。LAN内的主机仅知道虚拟路由器的IP地址,它们将自
己的缺省路由下一跳地址设置为该虚拟路由器的IP地址。于是,LAN内的主机就通过虚
拟路由器与其他网络进行通信。用VRRP实现虚拟路由器的示意图如下图所示。

说明如下:
由于在备份组中,只有主路由器为网络中的主机提供路由服务,而备份路由器和对应的
链路均处于闲置状态。这样造成了负载不均衡,当网络负载较大时此问题更加突出。因
此,通常使用双或多备份组来避免或减少此问题。例如,上图中设置两个备份组A和
B。A和B均包含路由器1~3。在备份组A中路由器1为主路由器,在备份组B中路由器2
为主路由器。主机1、2的缺省路由下一跳为路由器1,主机3、4的缺省路由下一跳为路
由器2。这样,既分担了设备负载和网络流量,又提高了网络可靠性。
VRRPv2的报文格式如下图所示。

VRRPv3的报文格式如下图所示。

报文中各字段的含义如下图所示。

开放最短路由优先OSPF(Open Shortest Path First)是一种基于链路状态的AS
(Autonomous System)内部路由协议。在IP网络上,它通过收集和传递AS的链路状态来
动态地发现并传播路由。OSPF属于IGP(Interior Gateway Protocol)。目前IPv4协议使
用的OSPF版本2在RFC2328中定义。
AS是为了便于网络的管理,人为地将Internet划分成的若干区域。每一个AS由一组在统
一的机构管理下的路由器组成,AS对外呈现统一的路由机制,并被看成独立的网络组成
单元。
在OSPF出现前,网络上广泛使用RIP(Routing Information Protocol)作为内部网关协
议。由于RIP是基于距离矢量算法的路由协议,存在着收敛慢、路由环路、可扩展性差
等问题,所以逐渐被OSPF取代。
OSPF具有如下特点:
路由计算过程
采用OSPF协议时,每个路由器主动测试与其邻站相连链路的状态,并将这些信息发送
给它的其他邻站,而邻站将这些信息在AS中传播出去。每个路由器接收这些链路状态信
息,并建立起完整的路由表。每个路由器再根据SPF(Shortest Path First)计算出到网络
中各个节点的路由表。
通过OSPF协议计算路由的过程如下图所示。

通过OSPF协议计算路由的过程如下:
区域划分
OSPF允许AS的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而
减少了占用网络的带宽。区域划分如下图所示。

AS 1内运行OSPF协议。AS 1被划分为三个不同的区域(Area 0、Area 1、Area 2)。其
中Area 0称作“骨干区域”。
说明:
如果AS被划分成一个以上的区域,则必须有一个区域是骨干区域,并且保证其他区域与骨干区域直接
相连或逻辑上相连,且骨干区域自身也必须是连通的。
OSPF的报文格式如下图所示。

报文中各字段的含义如下图所示。


传输控制协议TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字
节流的传输层通信协议(在RFC793中定义)。
TCP具有以下特点:
可靠性保障
TCP通过下列方式来保障数据传输的可靠性:
建立TCP连接
TCP通过三次握手完成连接的建立,如下图所示。

TCP连接建立的过程:
终止TCP连接
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。TCP通过四次握手完成
连接的终止,如下图所示。

TCP连接终止的过程:
流量控制
为了实现流量控制,TCP使用一种滑动窗口协议。TCP连接的双方为每个连接使用一个
窗口。窗口区间是缓冲区的一部分,包含一方在等待另一方的确认期间所能发送的字节
数据。该窗口之所以称为滑动窗口,是因为它能随着数据的发送、确认的接收,在整个
缓冲区内滑动。
TCP的滑动窗口是面向字节的。滑动窗口的使用使传输效率更高,同时也能控制数据流
量,使接收端不被数据所淹没。
拥塞控制
TCP提供4种拥塞控制机制来确保有效的利用带宽,并快速修复拥塞和错误:
TCP的报文格式如下图所示。

报文中各字段的含义如下表所示。

用户数据报协议UDP(User Datagram Protocol)是一种在因特网传输层提供用户进程,
并负责在应用程序之间无连接传递数据的协议(在RFC768文档中定义)。UDP不对传
送数据包进行可靠的保证,适合于传输少量数据,可靠性则由应用层来负责。UDP协议
位于IP协议之上。
UDP具有如下特点:
UDP协议适合于对可靠性要求并不高的应用程序,或者可以保障可靠性的应用程序,像
DNS、TFTP、SNMP等;UDP协议也可以用于传输链路可靠的网络。
UDP排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大降低
了执行时间,使速度得到了保证。UDP的典型应用包括流媒体、实时多媒体游戏和IP电
话等,这些应用不需要可靠机制,但更加注重实际性能的应用。
UDP的报文格式如下图所示。

UDP报文中各字段的含义如下表所示。

UDP校验和覆盖的内容超出了UDP数据报本身的范围。为了计算校验和,UDP把伪首部
(PSEUDO-HEADER)引入数据报中。在伪首部中有一个值为0的填充八位组,用于保证
整个数据报的长度为16比特的整数倍。使用伪首部的目的是检验UDP数据报已达到正确
的目的地。
在UDP校验和的计算过程中用到的伪首部长度为12字节,如下图所示。

UDP校验和使用的各字段的含义如下表所示。


超文本传输协议HTTP(HyperText Transfer Protocol)是一种详细规定了浏览器和万维网
WWW(World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的
数据传送协议(HTTP/1.1由RFC 2616定义)。
HTTP可以以普通文本、超文本、音频、视频等格式传输数据。称为超文本协议的原因
是在应用环境中,它可以快速的在文档之间跳转。HTTP通常在公认端口80上使用TCP
或其他可靠传输协议服务。
在实际应用中,客户端通常需要配置HTTP代理服务器。HTTP代理服务器用于保存对最
近请求的响应的拷贝。在其存在的情况下,当客户端访问网页时,客户端会向代理发出
请求,代理检查高速缓存,如果缓存中不存在响应报文,代理才会向相应的服务器发送
请求,从而降低了原服务器的负载,减少了通信量并降低了延迟。使用代理服务器,客
户端必须配置为访问代理服务器而不是目标服务器。
HTTP的工作过程如下图所示。

HTTP工作过程可分为:
局域网交换机LAN switch是一种在局域网中完成信息交换功能的网络设备。
LAN switch主要有如下几个特点:
按照不同标准,LAN switch可分为不同种类。
二层交换机工作原理
交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有端口都挂接在背部总
线上。
二层交换机的组网如下图所示,二层交换机划分了两个VLAN,每个VLAN
连三台设备。

VLAN内通信
当A1需要向A3发送信息,交换机工作过程如下:
交换机通过不断记录网络的MAC地址信息,建立和维护MAC地址表。这也称为交换机学
习能力。
VLAN间通信
当A1需要向B3发送信息,交换机工作过程如下:
三层交换机工作原理
三层交换机的组网如下图所示。

网络内通信
当A1需要向A2发送信息,通信过程如下:
网络地址是IP地址的网络部分,用于唯一标识一个网段。网络地址可以通过IP地址的二进制
与子网掩码的二进制进行与运算取得。例如,A2的IP地址为“192.168.0.1”,子网掩码为
“255.255.255.0”,则网络地址为“192.168.0.0”。
网络间通信
当A1需要向B1发送信息,通信过程如下:
这就是通常说的一次路由多次转发。它可消除路由选择造成的网络延迟,提高数据包转发效
率。
四层交换机主要技术
IP网络中,普遍使用的传输层协议是TCP和UDP。他们数据包的包头不仅包括端口号,
还指明数据包是什么类型的网络数据。四层交换机使用传输层数据包的包头信息进行信
息交换和传输处理,就可以进行与网络数据相关的服务质量和流量控制。下面介绍四层
交换机的主要技术:
交换方式

交换机主要技术参数如下表所示。

路由器是连接因特网中各局域网、广域网的设备。
路由器会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。路
由器工作在OSI七层模型的网络层,是互联网络的枢纽。路由器主要使用PPP协议、OSPF
协议和VRRP协议。路由器技术主要包括VPN和IPv6。
路由器的主要工作是为经过的每个数据包寻找一条最佳传输路径。为此,路由器中保存
着各种传输路径的相关数据,即路径表,供路由选择时使用。路径表中保存着子网的标
志信息、网上路由器的个数和下一个路由器的名字等内容。路径表主要分为如下两种。
路由器主要特点包括:
按照不同维度,路由器可分为不同种类。
路由器通过IP地址中的网络号识别不同的网络,进行路由选择。路由器的组网如下图
所示。

假设用户A1要向用户D2发送信息,信息传送过程如下。
路由器从交换机发展过来,它具有交换机的一些基本功能,同时克服了交换机不能路由
转发数据包的不足。路由器与交换机的主要区别如下表所示。

