• 沒有找到結果。

第 1 天的第 5 学时主要学习传输层所涉及的重要知识点。 传输层是 OSI 参考模型中的第四层,

重要知识点围绕 TCP 和 UDP 协议展开。根据历年考试的情况来看,每次考试涉及相关知识点的分 值约在  2~5  分之间。传输层知识点的考察主要集中在上午考试中。本章考点知识结构图如图  5­1  所示。

图 5­1  考点知识结构图

5.1 TCP

5.1.1 考点分析

历年网络工程师考试试题涉及本部分的相关知识点有:面向连接和无连接服务、TCP。

5.1.2 知识点精讲 

1.面向连接和无连接服务

网络服务分为面向连接和无连接服务两种方式。

(1)面向连接服务。

面向连接的服务是双方通信的前提, 即先要建立一条通信线路, 这个过程分为三步: 建立连接、

使用连接和释放连接。 面向连接服务的工作方式与电话系统类似。其特点也是打电话必须经过建立 拨号、通话和挂电话这 3 个过程。

数据传输过程前必须经过建立连接、使用连接和释放连接 3 个过程;建立之后,一个虚拟的电 话联系信道就建立了。当数据正式传输时,数据分组不需要再携带目的地址。面向连接需要通信之 前建立连接,但是这种方式比较复杂,相对无连接的效率不高。

(2)无连接服务。

无连接的服务就是通信双方不需要事先建立一条通信线路, 而是把每个带有目的地址的数据包

(数据分组)送到线路上,由系统选定路线进行传输。IP  协议和  UDP  协议就是一种无连接协议;

邮政系统可以看成一个无连接的系统。

无连接收发双方之间通信时,其下层资源只需在数据传输时动态地进行分配,不需预留。收发 双方只有在传输数据时候才处于激活状态。

1

无连接服务通信比较迅速、使用灵活、连接开销小,但是这种方式可靠性低,不能防止报文丢 失、重复或失序。 

2.TCP 

传输控制协议(Transmission Control Protocol,TCP)是一种可靠的、面向连接的字节流服务。

源主机在传送数据前需要先和目标主机建立连接。然后在此连接上,被编号的数据段按序收发。同

l 源端口(Source Port)和目的端口(Destination Port)

该字段长度均为 16 位。TCP 协议通过使用端口来标识源端和目标端的应用进程,端口号取值 范围为 0~65535。

1

l 序列号(Sequence Number)

该字段长度为 32 位。因此序号范围为[0,2 32 –1]。序号值是进行 mod 2 32 运算的值,即序号值为 最大值 2 32 –1 后,下一个序号又回到 0。

【例  5­1】本段数据的序号字段为  1024,该字段长  100  字节,则下一个字段的序号字段值为  1125。这里序列号字段又称为报文段序号。

l 确认号(Acknowledgement Number)

该字段长度为 32 位。期望收到对方下一个报文段的第一个数据字段的序号。

【例 5­2】 接收方收到了序号为 100、 数据长度为 300 字节的报文, 则接收方的确认号设置为 301。

注意:如果确认号=N,则表示 N­1 之前(包含 N­1)的所有数据都已正确收到。

l 报头长度(Header Length)

报头长度又称为数据偏移字段,长度为 4 位,单位 32 位。没有任何选项字段的 TCP 头部长度 为 20 字节,最多可以有 60 字节的 TCP 头部。

l 保留字段(Reserved)

该字段长度为 6 位,通常设置为 0。

l 标记(Flag)

该字段包含的字段有:紧急(URG)——紧急有效,需要尽快传送;确认(ACK)——建立 连接后的报文回应, ACK 设置为 1; 推送 (PSH) ——接收方应该尽快将这个报文段交给上层协议,

不需等缓存满;复位(RST)——重新连接;同步(SYN)——发起连接;终止(FIN)——释放 连接。

l 窗口大小(Windows Size)

该字段长度为  16  位。因此序号范围为[0,2 16 –1]。该字段用来进行流量控制,单位为字节,是 作为接收方让发送方设置其发送窗口的依据。这个值是本机期望一次接收的字节数。

l 校验和(Checksum)

该字段长度为 16 位,对整个 TCP 报文段(即 TCP 头部和 TCP 数据)进行校验和计算,并由 目标端进行验证。

l 紧急指针(Urgent Pointer)

该字段长度为 16 位。它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的

1

双方通信之前均处于 CLOSED 状态。 

1)第一次握手。

源主机发送一个同步标志位 SYN=1 的 TCP 数据段。 此段中同时标明初始序号 (Initial Sequence  Number,ISN)。ISN  是一个随时间变化的随机值,即  SYN=1,SEQ=x。源主机进入  SYN­SENT  状态。

2)第二次握手。

目标主机接收到 SYN 包后发回确认数据报文。该数据报文 ACK=1,同时确认序号字段表明目 标主机期待收到源主机下一个数据段的序号, 即 ACK=x+1 (表明前一个数据段已收到且没有错误)。

此外, 在此段中设置 SYN=1, 并包含目标主机的段初始序号 y, 即 ACK=1, 确认序号 ACK=x+1, 

SYN=1,自身序号 SEQ=y。此时目标主机进入 SYN­RCVD 状态,源主机进入 ESTABLISHED  状 态。 

3)第三次握手。

源主机再回送一个确认数据段,同样带有递增的发送序号和确认序号(ACK=1,确认序号  ACK=y+1,自身序号  SEQ) ,TCP  会话的三次握手完成。接下来,源主机和目标主机可以互相收 发数据。三次握手的过程如图 5­3 所示。

图 5­3  三次握手

(4)TCP 释放连接。 

TCP 释放连接可以分为四步,具体过程如下:

双方通信之前均处于 ESTABLISHED 状态。 

1)第一步:源主机发送一个释放报文(FIN=1,自身序号 SEQ  =x),源主机进入 FIN­WAIT  状态。

2)第二步:目标主机接收报文后发出确认报文 (ACK=1,确认序号 ACK=x+1,自身序号 SEQ 

=y),目标主机进入 CLOSE­WAIT 状态。此时,源主机停止发送数据,但是目标主机仍然可以发 送数据,此时 TCP 连接为半关闭状态(HALF­CLOSE)。源主机接收到 ACK 报文后等待目标主机

1

发出 FIN 报文,这可能会持续一段时间。 

3)第三步:目标主机确定没有数据,向源主机发送后,发出释放报文(FIN=1,ACK=1,确 认序号 ACK =x+1,自身序号 SEQ =z)。目标主机进入 LAST­ACK 状态。

注意:这里由于处于半关闭状态(HALF­CLOSE) ,目标主机还会发送一些数据,其序号不一 定为 y+1,因此可设为 z。而且,目标主机必须重复发送一次确认序号 ACK=x+1。 

4)第四步:源主机接收到释放报文后,对此发送确认报文(ACK=1,确认序号  ACK=z+1,

自身序号 SEQ=x+1),在等待一段时间确定确认报文到达后,源主机进入 CLOSED 状态。目标主 机在接收到确认报文后,也进入 CLOSED 状态。释放连接的过程如图 5­4 所示。

图 5­4  释放连接

5.2 UDP

5.2.1 考点分析

历年网络工程师考试试题涉及本部分的相关知识点有:UDP、端口。

5.2.2 知识点精讲  1.UDP 

用户数据报协议(User Datagram Protocol,UDP)是一种不可靠的、无连接的数据报服务。源 主机在传送数据前不需要和目标主机建立连接。数据附加了源端口号和目标端口号等 UDP 报头字 段后直接发往目的主机。这时,每个数据段的可靠性依靠上层协议来保证。在传送数据较少且较小 的情况下,UDP 比 TCP 更加高效。

1

如图 5­5 所示给出了 UDP 的头部结构。

源端口号(16 位) 目的端口号(16 位)

长度(16 位) 校验和(16 位)

数据 图 5­5  UDP 协议格式

l 源端口号字段

该字段长度为 16 位。作用与 TCP 数据段中的端口号字段相同,用来标识源端的应用进程。在 需要对方回信时用,不需要时可用全 0。

l 目标端口号字段

该字段长度为 16 位。作用与 TCP 数据段中的端口号字段相同,用来标识目标端的应用进程。

在目标交付报文时必须用到。

l 长度字段

该字段长度为 16 位。标明 UDP 头部和 UDP 数据的总长度字节。

l 校验和字段

该字段长度为 16 位。 用来对 UDP 头部和 UDP 数据进行校验, 有错就丢弃。 和 TCP 不同的是,

对 UDP 来说,此字段是可选项,而 TCP 数据段中的校验和字段是必须有的。 

2.端口

协议端口号(Protocol  Port  Number,Port)是标识目标主机进程的方法。TCP/IP 使用 16 位的 端口号来标识端口,所以端口的取值范围为[0,65535]。

端口可以分为系统端口、登记端口、客户端使用端口。

(1)系统端口。

该端口的取值范围为[0,1023],常见端口如表 5­1 所示。

表 5­1  常见端口

端口号 名称 功能 

20  FTP­DATA  FTP 数据传输 

21  FTP  FTP 控制 

22  SSH  SSH 登录 

23  TELNET  远程登录 

25  SNMP  简单邮件传输协议 

53  DNS  域名解析 

67  DHCP  DHCP  服务器开启,用来监听和接收客户请求消息

1

续表

端口号 名称 功能 

68  DHCP  客户端开启,用于接收 DHCP  服务器的消息回复 

69  TFTP  简单 FTP 

80  HTTP  超文本传输 

110  POP3  邮局协议 

143  IMAP  交互式邮件存取协议 

161  SNMP  简单网管协议 

162  SNMP(trap)  SNMP Trap 报文

(2)登记端口。

登记端口是为没有熟知端口号的应用程序使用的,端口范围为[1024,49151]。这些端口必须在  IANA 登记以避免重复。

(3)客户端使用端口。

这类端口仅在客户进程运行时候动态使用,使用完毕后,进程会释放端口。该端口范围为  [49152,65535]。

相關文件