1
IP网络及互连技术
2
学习内容
TCP/IP协议与 OSI参考模型
TCP/IP协议栈各层次功能和原理
IPv4的不足和 IPv6的基本特点
3
TCP/IP协议和 OSI参考模型
TCP/IP协议栈具有简单的分层设计,与 OSI参考模型有清晰的对应关系。
应用层表示层会话层传输层网络层数据链路层物理层应用层传输层网络层
7
6
5
4
3
2
1 物理层数据链路层
OSI参考模型 TCP/IP
4
TCP/IP协议栈
HTTP,Telnet,FTP、
TFTP,Ping,etc
TCP/UDP
ARP/RARPIP
ICMP
Ethernet,802.3,PPP、
HDLC,FR,etc
接口和线缆应用层传输层网络层数据链路层提供应用程序网络接口建立端到端连接寻址和路由选择物理介质访问二进制数据流传输物理层
5
TCP/IP协议数据封装
当应用程序传送数据时,数据被送入协议栈中,
然后逐个通过每一层,直到被当作一串比特流送入网络。
一般来说,每一层对收到的数据都要增加一些首部信息,有时还增加相应的尾部信息。
6
TCP/IP协议数据封装数据数据数据数据数据
TCP/UDP头部
IP头部
LLC头部
MAC头部 FCS
FCS
011111110……011111110
应用层传输层网络层数据链路层物理层报文、段
( message,segment)
分组、数据包( packet)
帧( frame)
比特流( bits)
7
TCP/IP协议数据解封数据数据数据数据数据
TCP/UDP头部
IP头部
LLC头部
MAC头部 FCS
FCS
011111110……011111110
应用层传输层网络层数据链路层物理层报文、段
( message,segment)
分组、数据包( packet)
帧( frame)
比特流( bits)
8
应用层
文件传输
FTP,TFTP
邮件服务
SMTP,POP3
网络管理
SNMP,Telnet,Ping,Tracert
网络服务
HTTP,DNS,WINS
9
传输层应用层传输层网络层数据链路层
TCP
UDP
物理层
10
UDP协议
UDP是一种无连接的、不可靠的传输层协议;
在完成进程到进程的通信中提供了有限的差错检验功能;
设计比较简单的 UDP协议的目的是希望以最小的开销来达到网络环境中的进程通信目的;
进程发送的报文较短,同时对报文的可靠性要求不高,那么可以使用 UDP协议。
11
UDP协议 —— 数据封装与解封
12
UDP报文格式
0 8 16 24 31
16位源端口 16位目的端口
16位 UDP校验和数据
UDP报文格式
16位 UDP长度源端口号:使用 UDP传输发送数据包的应用程序和进程。 (使用动态端口号 )
目的端口号:目标应用程序或进程。 (使用知名端口号或注册端口号 )
长度域:从 UDP头部到有效数据尾端的数据段长度。
校验和:任选。
13
TCP协议
TCP是一种面向连接的、可靠的传输层协议;
TCP采用的最基本的可靠性技术是:
确认与超时重传流量控制连接的可靠建立与拆除
14
TCP协议 —— 数据封装与解封
15
TCP协议 —— 报文格式
0 8 16 24 31
16位源端口 16位目的端口
32位序列号
32位确认号URG ACK P
SH RST SYN FIN首部长度 保留 (6位 ) 16位窗口大小
16位 TCP校验和 16位紧急指针选项数据
TCP报文格式
16
TCP协议 —— 报文格式源端口号:使用 TCP传输发送数据包的应用程序和进程。
目的端口号:目标应用程序或进程。
序列号:能惟一标识 TCP数据段的标识符。
确认号:通信的另一端序号的下一个值。
头部长度,TCP头部长度,单位为 4字节。 (如该值为 5,则头部长度为 20B)
标识,URG(紧急 ),ACK(确认 ),PSH(推动 ),RST(重置 ),SYN(同步 )、
FIN(结束 )
窗口,TCP接收方缓冲的字节数。
校验和:同 UDP校验和域。
紧急指针:如果设置了 URG,这个域才有用。 (通过这个域知道首先从数据包的哪个位置读数据 )
选项:可选。
17
TCP协议 —— 连接建立
TCP连接的建立 (三次握手 ):
TCP TCP
客户应用程序主动建立服务器应用程序被动建立
SYN(序号 =x)
SYN(序号 =y,ACK=x+1)
(序号 =x+1,ACK=y+1)
连接建立客户应用程序连接建立服务器应用程序
18
TCP协议 —— 数据的可靠传输数据传送:
用确认和重传保证可靠传输
用窗口机制实现流量控制接收方的缓冲区发送方 接收方空 (共 4K)
2K
满
3K
应用程序写入 2K数据应用程序写入 2K数据最多可以写入 1K数据发送方被阻塞 应用程序读取 1K数据
19
TCP协议 —— 断开连接
TCP连接的拆除 (四次握手 ):
FIN(结束 )
ACK(确认域有效 )
ACK(确认域有效 )
FIN(结束 )
ACK(确认域有效 )
ACK(确认域有效 )
客户端 服务器
20
端口号
传输层协议用端口号来标识和区分各种上层应用程序。
HTTP FTP Telnet SMTP DNS TFTP SNMP
TCP UDP
IP 数 据 包
21
知名端口号 —— UDP
22
知名端口号 —— TCP
23
网络层应用层传输层网络层数据链路层
IP
ARP
ICMP
IGMP
RARP
物理层
24
ARP-地址解析协议需要 10.0.0.2的
MAC地址?
IP:10.0.0.1/24
MAC:00-E0-FC-00-00-11 IP:10.0.0.2/24MAC:00-E0-FC-00-00-12
ARP Request?
ARP Reply
10.0.0.2 对应的 MAC:
00-E0-FC-00-00-12
25
RARP-反向地址解析协议我的 IP地址是什么?
RARP Server
RARP Request?
RARP Reply
你的 IP地址是 10.0.0.1
26
ICMP—— 互联网控制报文协议
用于传递差错和控制报文
作为 IP的数据部分
B可达吗?
ICMP Echo Request
ICMP Echo Reply
我在A
B
27
IGMP
IGMP 被当作 IP 层的一部分。
支持主机和路由器多播。
IGMP报文通过 IP数据报进行传输。
有固定的报文长度( 8字节)。
IGMP报文封装在 IP数据报中
IP首部
( 20B)
IGMP报文
( 8B)
IP数据报
28
IP报文格式版本
(4b)
头部长度
(4b) 服务类型 (8b) 总 长 度 (16b)
标 识 符 标志 片 偏 移生存时间 协 议 头部 校 验 和源 IP 地 址目 的 IP 地 址
IP 选 项
0 4 8 16 19 31
~~ ~~
29
IP报文格式
版本,IP协议版本。
头部长度:长度单位为 4B
服务类型:
优先级子域,3位,优先级共分为 8级,数值越大的等级越高。
服务类型子域,4位,分别为
D:延迟( delay)
R:可靠性( reliability)
T:通信量( throughput)
C:成本( cost)
1位保留位
总长度:包括数据报中的所有内容,即头和数据。
标识符:确定一个新到达的分组属于哪一个数据报。
标志:确定某个分组是否可分段、是否为中间段。
分段偏移:某个分段在当前数据报中的位置。
用于分片和分片重组
30
IP报文格式
生存时间:表示一个数据报的生存时间,单位为“秒”。
协议:上层采用的协议 (TCP=6,UDP=17)。
头部校验和:只校验头部
源地址和目的地址:长度都是 32位,在数据报的整个传输过程中,无论采用什么样的传输路径或如何分片,源地址和目的地址是始终保持不变的。
选项:主要用于控制和测试两个目的。在网络测试、纠错与传输安全保证,以及网络管理软件的开发中非常重要。
31
数据链路层应用层传输层网络层数据链路层 PPP
SLIP
物理层
32
物理层应用层传输层网络层数据链路层比特流物理层
33
TCP/IP协议数据封装数据数据数据数据数据
TCP/UDP头部
IP头部
LLC头部
MAC头部 FCS
FCS
011111110……011111110
应用层传输层网络层数据链路层物理层应用层传输层网络层数据链路层物理层
34
IPv6引入
IPv4取得了极大的成功
Internet的快速发展同 IPv4地址的短缺矛盾越来越突出
新技术的应用对 IP提出了更多的要求
35
IP为什么要升级
以 IPv4为核心技术的 Internet获得巨大成功
但 IPv4地址资源紧张直接限制了 IP技术应用的进一步发展,
到 1996年已将 80%的 A类网络地址,50%的 B类地址,
10%的 C类地址全部分配了,有专家估计到 2010年 IPv4地址将全部用完
移动和宽带技术的发展要求更多的 IP地址
CIDR,VLSM,NAT,混合地址等技术只能暂时缓解
IPv4地址紧张,但无法根本解决地址问题
IP地址短缺问题直接加速了 IPv4升级的需求
36
IPv6主要特点
最本质的改进 —— 几乎无限的地址空间
地址长度由 32位增加到 128位
其他(锦上添花):
简单 —— 简化固定的基本报头,提高处理效率
可扩展 —— 引入灵活的扩展报头,协议易扩展
即插即用 —— 地址配置简化,自动配置
安全 —— 网络层的 IPSec认证与加密,端到端安全
QoS—— 新增流标记域
移动 —— Mobile IPv6
37
IPv6的发展历程
1992年 IETF成立了 IPng工作组
1994年 IPng工作组提出下一代 IP网络协议( IPv6)的推荐版本
1995年 IPng工作组完成 IPv6的协议文本
1996年 IETF发起成立全球 IPv6实验床 - 6BONE
1998年 启动面向实用的 IPv6教育科研网 - 6REN
1999年 完成 IETF要求的协议审定和测试
1999年 成立了 IPv6论坛,开始正式分配 IPv6地址,IPv6
的协议文本成为标准草案
2001年 多数主机操作系统支持 IPv6,Windows XP,
Linux,Solaris
2003年 各主流厂家基本已推出 IPv6网络产品
2003年 中国启动国家下一代网络示范工程 - CNGI
38
浅尝 IPv6地址
IPv6地址与 IPv4地址表示方法有所不同
用十六进制表示,如,FE08:….
4位一组,中间用,:”隔开,如,2001:12FC:….
若以零开头可以省略,全零的组可用,::”表示,如:
1:2::ABCD:….
地址前缀长度用,/xx”来表示,如,1::1/64
以下是同一个地址不同表示法的例子:
0001:0123:0000:0000:0000:ABCD:0000:0001/96
1:123:0:0:0:ABCD:0:1/96
1:123::ABCD:0:1/96
39
IPv6数据报一般格式基本首部 扩展首部 …… 扩展首部 N 数据 ……
可选的
40
IPv6基本首部版本号 数据流标号有效负载长度 跳转限制下一首部源地址 (4个 32位组 )
目的地址 (4个 32位组 )
0 4 15 16 23 24
41
各字段说明
版本 ( version) 占 4比特,指明版本号,IPv6该字段为 6;
流标号 ( flow label) 占 24比特。 IPv6可以支持资源预留机制,并允许将每个数据流与一个给定的资源分配相联系。 随机地选择 流标号为 0
净载荷长度 ( payload length) 占 16比特。 该长度指明除首部外,IPv6数据报的长度。 IPv6首部长度固定,无首部长度字段。
下一个首部 ( next header) 占 8比特。
跳数限制 ( hop limit)占 8比特。
IP网络及互连技术
2
学习内容
TCP/IP协议与 OSI参考模型
TCP/IP协议栈各层次功能和原理
IPv4的不足和 IPv6的基本特点
3
TCP/IP协议和 OSI参考模型
TCP/IP协议栈具有简单的分层设计,与 OSI参考模型有清晰的对应关系。
应用层表示层会话层传输层网络层数据链路层物理层应用层传输层网络层
7
6
5
4
3
2
1 物理层数据链路层
OSI参考模型 TCP/IP
4
TCP/IP协议栈
HTTP,Telnet,FTP、
TFTP,Ping,etc
TCP/UDP
ARP/RARPIP
ICMP
Ethernet,802.3,PPP、
HDLC,FR,etc
接口和线缆应用层传输层网络层数据链路层提供应用程序网络接口建立端到端连接寻址和路由选择物理介质访问二进制数据流传输物理层
5
TCP/IP协议数据封装
当应用程序传送数据时,数据被送入协议栈中,
然后逐个通过每一层,直到被当作一串比特流送入网络。
一般来说,每一层对收到的数据都要增加一些首部信息,有时还增加相应的尾部信息。
6
TCP/IP协议数据封装数据数据数据数据数据
TCP/UDP头部
IP头部
LLC头部
MAC头部 FCS
FCS
011111110……011111110
应用层传输层网络层数据链路层物理层报文、段
( message,segment)
分组、数据包( packet)
帧( frame)
比特流( bits)
7
TCP/IP协议数据解封数据数据数据数据数据
TCP/UDP头部
IP头部
LLC头部
MAC头部 FCS
FCS
011111110……011111110
应用层传输层网络层数据链路层物理层报文、段
( message,segment)
分组、数据包( packet)
帧( frame)
比特流( bits)
8
应用层
文件传输
FTP,TFTP
邮件服务
SMTP,POP3
网络管理
SNMP,Telnet,Ping,Tracert
网络服务
HTTP,DNS,WINS
9
传输层应用层传输层网络层数据链路层
TCP
UDP
物理层
10
UDP协议
UDP是一种无连接的、不可靠的传输层协议;
在完成进程到进程的通信中提供了有限的差错检验功能;
设计比较简单的 UDP协议的目的是希望以最小的开销来达到网络环境中的进程通信目的;
进程发送的报文较短,同时对报文的可靠性要求不高,那么可以使用 UDP协议。
11
UDP协议 —— 数据封装与解封
12
UDP报文格式
0 8 16 24 31
16位源端口 16位目的端口
16位 UDP校验和数据
UDP报文格式
16位 UDP长度源端口号:使用 UDP传输发送数据包的应用程序和进程。 (使用动态端口号 )
目的端口号:目标应用程序或进程。 (使用知名端口号或注册端口号 )
长度域:从 UDP头部到有效数据尾端的数据段长度。
校验和:任选。
13
TCP协议
TCP是一种面向连接的、可靠的传输层协议;
TCP采用的最基本的可靠性技术是:
确认与超时重传流量控制连接的可靠建立与拆除
14
TCP协议 —— 数据封装与解封
15
TCP协议 —— 报文格式
0 8 16 24 31
16位源端口 16位目的端口
32位序列号
32位确认号URG ACK P
SH RST SYN FIN首部长度 保留 (6位 ) 16位窗口大小
16位 TCP校验和 16位紧急指针选项数据
TCP报文格式
16
TCP协议 —— 报文格式源端口号:使用 TCP传输发送数据包的应用程序和进程。
目的端口号:目标应用程序或进程。
序列号:能惟一标识 TCP数据段的标识符。
确认号:通信的另一端序号的下一个值。
头部长度,TCP头部长度,单位为 4字节。 (如该值为 5,则头部长度为 20B)
标识,URG(紧急 ),ACK(确认 ),PSH(推动 ),RST(重置 ),SYN(同步 )、
FIN(结束 )
窗口,TCP接收方缓冲的字节数。
校验和:同 UDP校验和域。
紧急指针:如果设置了 URG,这个域才有用。 (通过这个域知道首先从数据包的哪个位置读数据 )
选项:可选。
17
TCP协议 —— 连接建立
TCP连接的建立 (三次握手 ):
TCP TCP
客户应用程序主动建立服务器应用程序被动建立
SYN(序号 =x)
SYN(序号 =y,ACK=x+1)
(序号 =x+1,ACK=y+1)
连接建立客户应用程序连接建立服务器应用程序
18
TCP协议 —— 数据的可靠传输数据传送:
用确认和重传保证可靠传输
用窗口机制实现流量控制接收方的缓冲区发送方 接收方空 (共 4K)
2K
满
3K
应用程序写入 2K数据应用程序写入 2K数据最多可以写入 1K数据发送方被阻塞 应用程序读取 1K数据
19
TCP协议 —— 断开连接
TCP连接的拆除 (四次握手 ):
FIN(结束 )
ACK(确认域有效 )
ACK(确认域有效 )
FIN(结束 )
ACK(确认域有效 )
ACK(确认域有效 )
客户端 服务器
20
端口号
传输层协议用端口号来标识和区分各种上层应用程序。
HTTP FTP Telnet SMTP DNS TFTP SNMP
TCP UDP
IP 数 据 包
21
知名端口号 —— UDP
22
知名端口号 —— TCP
23
网络层应用层传输层网络层数据链路层
IP
ARP
ICMP
IGMP
RARP
物理层
24
ARP-地址解析协议需要 10.0.0.2的
MAC地址?
IP:10.0.0.1/24
MAC:00-E0-FC-00-00-11 IP:10.0.0.2/24MAC:00-E0-FC-00-00-12
ARP Request?
ARP Reply
10.0.0.2 对应的 MAC:
00-E0-FC-00-00-12
25
RARP-反向地址解析协议我的 IP地址是什么?
RARP Server
RARP Request?
RARP Reply
你的 IP地址是 10.0.0.1
26
ICMP—— 互联网控制报文协议
用于传递差错和控制报文
作为 IP的数据部分
B可达吗?
ICMP Echo Request
ICMP Echo Reply
我在A
B
27
IGMP
IGMP 被当作 IP 层的一部分。
支持主机和路由器多播。
IGMP报文通过 IP数据报进行传输。
有固定的报文长度( 8字节)。
IGMP报文封装在 IP数据报中
IP首部
( 20B)
IGMP报文
( 8B)
IP数据报
28
IP报文格式版本
(4b)
头部长度
(4b) 服务类型 (8b) 总 长 度 (16b)
标 识 符 标志 片 偏 移生存时间 协 议 头部 校 验 和源 IP 地 址目 的 IP 地 址
IP 选 项
0 4 8 16 19 31
~~ ~~
29
IP报文格式
版本,IP协议版本。
头部长度:长度单位为 4B
服务类型:
优先级子域,3位,优先级共分为 8级,数值越大的等级越高。
服务类型子域,4位,分别为
D:延迟( delay)
R:可靠性( reliability)
T:通信量( throughput)
C:成本( cost)
1位保留位
总长度:包括数据报中的所有内容,即头和数据。
标识符:确定一个新到达的分组属于哪一个数据报。
标志:确定某个分组是否可分段、是否为中间段。
分段偏移:某个分段在当前数据报中的位置。
用于分片和分片重组
30
IP报文格式
生存时间:表示一个数据报的生存时间,单位为“秒”。
协议:上层采用的协议 (TCP=6,UDP=17)。
头部校验和:只校验头部
源地址和目的地址:长度都是 32位,在数据报的整个传输过程中,无论采用什么样的传输路径或如何分片,源地址和目的地址是始终保持不变的。
选项:主要用于控制和测试两个目的。在网络测试、纠错与传输安全保证,以及网络管理软件的开发中非常重要。
31
数据链路层应用层传输层网络层数据链路层 PPP
SLIP
物理层
32
物理层应用层传输层网络层数据链路层比特流物理层
33
TCP/IP协议数据封装数据数据数据数据数据
TCP/UDP头部
IP头部
LLC头部
MAC头部 FCS
FCS
011111110……011111110
应用层传输层网络层数据链路层物理层应用层传输层网络层数据链路层物理层
34
IPv6引入
IPv4取得了极大的成功
Internet的快速发展同 IPv4地址的短缺矛盾越来越突出
新技术的应用对 IP提出了更多的要求
35
IP为什么要升级
以 IPv4为核心技术的 Internet获得巨大成功
但 IPv4地址资源紧张直接限制了 IP技术应用的进一步发展,
到 1996年已将 80%的 A类网络地址,50%的 B类地址,
10%的 C类地址全部分配了,有专家估计到 2010年 IPv4地址将全部用完
移动和宽带技术的发展要求更多的 IP地址
CIDR,VLSM,NAT,混合地址等技术只能暂时缓解
IPv4地址紧张,但无法根本解决地址问题
IP地址短缺问题直接加速了 IPv4升级的需求
36
IPv6主要特点
最本质的改进 —— 几乎无限的地址空间
地址长度由 32位增加到 128位
其他(锦上添花):
简单 —— 简化固定的基本报头,提高处理效率
可扩展 —— 引入灵活的扩展报头,协议易扩展
即插即用 —— 地址配置简化,自动配置
安全 —— 网络层的 IPSec认证与加密,端到端安全
QoS—— 新增流标记域
移动 —— Mobile IPv6
37
IPv6的发展历程
1992年 IETF成立了 IPng工作组
1994年 IPng工作组提出下一代 IP网络协议( IPv6)的推荐版本
1995年 IPng工作组完成 IPv6的协议文本
1996年 IETF发起成立全球 IPv6实验床 - 6BONE
1998年 启动面向实用的 IPv6教育科研网 - 6REN
1999年 完成 IETF要求的协议审定和测试
1999年 成立了 IPv6论坛,开始正式分配 IPv6地址,IPv6
的协议文本成为标准草案
2001年 多数主机操作系统支持 IPv6,Windows XP,
Linux,Solaris
2003年 各主流厂家基本已推出 IPv6网络产品
2003年 中国启动国家下一代网络示范工程 - CNGI
38
浅尝 IPv6地址
IPv6地址与 IPv4地址表示方法有所不同
用十六进制表示,如,FE08:….
4位一组,中间用,:”隔开,如,2001:12FC:….
若以零开头可以省略,全零的组可用,::”表示,如:
1:2::ABCD:….
地址前缀长度用,/xx”来表示,如,1::1/64
以下是同一个地址不同表示法的例子:
0001:0123:0000:0000:0000:ABCD:0000:0001/96
1:123:0:0:0:ABCD:0:1/96
1:123::ABCD:0:1/96
39
IPv6数据报一般格式基本首部 扩展首部 …… 扩展首部 N 数据 ……
可选的
40
IPv6基本首部版本号 数据流标号有效负载长度 跳转限制下一首部源地址 (4个 32位组 )
目的地址 (4个 32位组 )
0 4 15 16 23 24
41
各字段说明
版本 ( version) 占 4比特,指明版本号,IPv6该字段为 6;
流标号 ( flow label) 占 24比特。 IPv6可以支持资源预留机制,并允许将每个数据流与一个给定的资源分配相联系。 随机地选择 流标号为 0
净载荷长度 ( payload length) 占 16比特。 该长度指明除首部外,IPv6数据报的长度。 IPv6首部长度固定,无首部长度字段。
下一个首部 ( next header) 占 8比特。
跳数限制 ( hop limit)占 8比特。