计算机网络(第三版)第7章:传输层

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字节 4 源 IP 地址 字节 12 伪首部 4 目的 IP 地址 2 源端口 2 目的端口 1 0 1 2 17 UDP长度 2 检验和
2 长 度
UDP 用户数据报 发送在前 首 部
首 部


数 IP 分组

17
《计算机网络》 第7章 传输层
在计算检验和时,临时把“伪首部”和 UDP 用户数据 报连接在一起。伪首部仅仅是为了计算检验和。
15432
10
《计算机网络》 第7章 传输层
• 网络环境中一个完整的进程通信标识需要一个五元组 来表示: 协议 本地地址 本地端口号 远地地址 远地端口号
11
《计算机网络》 第7章 传输层
传输层协议与其他协议的层次关系
应用层 SMTP FTP
...
HTTP
DNS
...
SNMP
传输层
TCP
UDP
网络层
25
《计算机网络》 第7章 传输层
7.3.3 TCP报文段格式
TCP头部 数据
0
源端口号
15 16
目的端口号
31
序号 确认号
头部长度 保留
URG ACK PSH RST SYN FIN
窗口大小 紧急指针
校验和(16位) 选项及填充
26
《计算机网络》 第7章 传输层
用三次握手建立 TCP 连接
客户 A CLOSED 服务器 B CLOSED 被动打开
21
《计算机网络》 第7章 传输层
22
《计算机网络》 第7章 传输层
7.3 传输控制协议TCP
7.3.1 TCP协议的主要特点
• TCP是一种面向连接的、可靠的传输层协议; • TCP协议建立在不可靠的网络层IP协议之上, IP不能提供任何可靠性机制,TCP的可靠性完 全由自己实现; • 提供全双工通信; • 面向字节流; • TCP采用的最基本的可靠性技术是: 确认与超时重传; 流量控制。
IP
12
《计算机网络》 第7章 传输层
4.传输协议数据单元
• 传输层之间传输的报文叫做传输协议数据单元 ( Transport Protocol Unit,TPDU); • TPDU有效载荷是应用层的数据。
帧头部 分组头部 TPDU头部 TPDU有效载荷
分组有效载荷 帧有效载荷
13
《计算机网络》 第7章 传输层
19
《计算机网络》 第7章 传输层
7.3.4 UDP数据报格式
8B UDP头部 数据
0 源端口号 总长度
15 16 目的端口号 校验和
31
20
《计算机网络》 第7章 传输层
UDP检验和的检验范围: 伪头部 UDP头 应用层数据
0 8 16 ´ IPµ · Ô × Ö ±·¿ Î Í ² 00000000 ¿ Ä IPµ · Ä µ × Ö ­ é Å ¨ © Ð Ò º £ 17£ ´ Ë Ú Å Ô ¶ ¿ º UDPÍ ² ·¿ UDP׳ ¶ Ü ¤È £ é Í Ð Ñ º UDPÓ » à § ý Ý ¨ Ê ¾ ± ý Ê Ý ¾ ¨× è ø £ ±Ð ½ Ð Ì ³ Ê Ê ¾ Ê 16Î µ ±Ê £ é ä ¹ ý Ý Ç » Ä ¶ ý © UDP³ ¶ ¤È ¿ Ä Ë Ú Å Ä µ ¶ ¿ º 24 31
第7章 传输层
本章学习要求:
• • • • • 了解:网络环境中分布式进程通的基本概念。 掌握:进程相互作用的Client/Server模型。 掌握:传输层的基本功能与服务质量。 掌握:用户数据报协议UDP。 掌握:传输控制协议TCP。
2
《计算机网络》 第7章 传输层
7.1 传输层与传输层协议
¦ Ã Ó Ó Ì ò ³ Ð ø Ì ½ ³ ¦ Ó Ó Ã Ì Ð ³ ò ø ³ ½ Ì
ESTAB主动关闭 LISHED
服务器 B
数据传送 ESTABLISHED
• 数据传输结束后,通信的双方都可释放连接。 现在 A 的应用进程先向其 TCP 发出连接释放 报文段,并停止再发送数据,主动关闭 TCP 连接。 • A 把连接释放报文段首部的 FIN = 1,其序号 seq = u,等待 B 的确认。 CLOSED CLOSED
主动打开
A 的 TCP 向 B 发出连接请求报文段,其首部中的 同步位 SYN = 1,并选择序号 seq = x,表明传送 数据时的第一个数据字节的序号是 x。
客户 A CLOSED
服务器 B CLOSED 被动打开
主动打开
• B 的 TCP 收到连接请求报文段后,如同意,则 发回确认。 • B 在确认报文段中应使 SYN = 1,使 ACK = 1, 其确认号ack = x 1,自己选择的序号 seq = y。
客户 A CLOSED
服务器 B CLOSED 被动打开
主动打开
数据传送
用三次握手建立 TCP 连接的各状态
客户 A CLOSED 服务器 B CLOSED 被动打开 LISTEN SYNSENT SYNRCVD ESTABLISHED
主动打开
数据传送
ESTABLISHED
TCP 的连接释放
客户 A
客户 A
ESTAB主动关闭 LISHED FINWAIT-1
服务器 B
数据传送 ESTABLISHED
通知 应用 进程
CLOSEWAIT 被动关闭 FINWAIT-2
等待 2MSL
LASTACK TIMEWAIT CLOSED CLOSED

A 必须等待 2MSL 的时间
• 为了保证 A 发送的最后一个 ACK 报文 段能够到达 B。
客户 A
ESTAB主动关闭 LISHED
服务器 B
数据传送 ESTABLISHED
通知 应用 进程
被动关闭
• 若 B 已经没有要向 A 发送的数据, 其应用进程就通知 TCP 释放连接。
客户 A
ESTAB主动关闭 LISHED
服务器 B
数据传送 ESTABLISHED
通知 应用 进程
被动关闭
• A 收到连接释放报文段后,必须发出确认。
7.2 用户报文协议UDP
7.2.1 UDP协议的主要特点
• UDP是一种无连接的、不可靠的传输层协议; • 在完成进程到进程的通信中提供了有限的差错检验功 能; • 设计比较简单的UDP协议的目的是希望以最小的开销 来达到网络环境中的进程通信目的; • 进程发送的报文较短,同时对报文的可靠性要求不高, 那么可以使用UDP协议。
¨Å Ó ø Í Ð ×Í
ø ç ã ­ é ÷Ó ¶ § Í Â ² Ð Ò ×à ·Î « ä ã ­ é ÷Ó ¶ § ´ Ê ² Ð Ò ×à ·Î
3
《计算机网络》 第7章 传输层
• 网络层及以下的各层实现了网络中主机之间的通信, 但是数据通信不是最终的目的; • 计算机网络最本质的活动是分布在不同地理位置的主 机之间的进程通信,以实现各种网络服务功能; • 设置传输层的主要目的就是要实现分布式进程通信。
9
《计算机网络》 第7章 传输层
3.多重协议的识别
• 传输层有TCP协议和UDP协议; • 网络环境中一个进程的全网惟一的标识需要一个 三元组来表示:协议,本地地址,本地端口号。
­ é à Í Ð Ò À Ð IPµ Ö × · Ë Ú Å ¶ ¿ º
TCP
121.5.21.2
15432
TCP
121.5.21.2
字节 4 源 IP 地址 字节 12 伪首部 4 目的 IP 地址 2 源端口 2 目的端口 1 0 1 2
百度文库
17 UDP长度 2 检验和
2 长 度
UDP 用户数据报 发送在前
首 部


首 部

IP 分组

18
《计算机网络》 第7章 传输层
7.2.3 UDP熟知端口号
端口号 53 67 68 69 111 123 161 服务进程 Name server Bootps Bootpc TFTP RPC NTP SNMP 说明 域名服务 下载引导程序信息的服务器端口 下载引导程序信息的客户机端口 简单文件传输协议 远程过程调用 网络时间协议 简单网络管理协议
7
《计算机网络》 第7章 传输层
端口号(port number) 简称为端口(port)
• 虽然通信的终点是应用进程,但我 们可以把端口想象是通信的终点, 因为我们只要把要传送的报文交到 目的主机的某一个合适的目的端口, 剩下的工作就由 传输层来完成。
8
《计算机网络》 第7章 传输层
• 公认端口(Well-Known Ports):这类端口也常 称之为“熟知端口”。这类端口的端口号从0到 1023 ,它们紧密绑定于一些特定的服务。 • 注册端口(Registered Ports):端口号从1023到 49151。它们松散地绑定于一些服务 。 • 动态和/或私有端口 (Dynamic and/or Private Ports):端口号从 49152到65535。理论上,不应把常用服务分配在 这些端口上。 有称为临时端口。
• A 收到此报文段后向 B 给出确认,其 ACK = 1, 确认号 ack = y 1。 • A 的 TCP 通知上层应用进程,连接已经建立。
客户 A CLOSED
服务器 B CLOSED 被动打开
主动打开
• B 的 TCP 收到主机 A 的确认后,也通知其上层 应用进程:TCP 连接已经建立。
23
《计算机网络》 第7章 传输层
TCP 面向流的概念
发送方

接收方
H 表示 TCP 报文段的首部 x 表示序号为 x 的数据字节 从接收缓存 读取字节 TCP 5 4
应用进程

应用进程
21 字节流 20 把字节写入 19 发送缓存
TCP 1817161514 加上 TCP 首部 构成 TCP 报文段
4
《计算机网络》 第7章 传输层
传输层的基本功能
主机A 主机B
应用层 传输层端-端通信协议 传输层
应用层 传输层
网络层协议 网络层 数据链路层协议 数据链路层 物理层协议 物理层 物理层 数据链路层 网络层
网络层协议 网络层 数据链路层协议 数据链路层 物理层协议 物理层
通信子网
1.网络环境中分布式进程通信需要解决:
0 字节流 1 2 3
131211H
10 9 H TCP 连接
发送 TCP 报文段 8 7 6H
7.3.2 TCP的端口号分配和Socket地址
TCP常用的熟知端口号
端口号
20 21 23 25 80 111
服务进程
FTP FTP Telnet SMTP HTTP RPC
说明
文件传输协议(数据连接) 文件传输协议(控制连接) 虚拟终端网络 简单邮件传输协议 超文本传输协议 远程过程调用
7.3.5 TCP流量与拥塞控制
TCP的数据编码与确认
字节 4 源 IP 地址 字节 12 伪首部 4 目的 IP 地址 2 源端口 2 目的端口 1 0 1 2 17 UDP长度 2 检验和
2 长 度
UDP 用户数据报 发送在前 首 部
首 部


数 IP 数据报

16
《计算机网络》 第7章 传输层
用户数据报 UDP 有两个字段:数据字段和首部 字段。首部字段有 8 个字节,由 4 个字段组成, 每个字段都是两个字节。
客户 A
ESTAB主动关闭 LISHED
服务器 B
数据传送 ESTABLISHED
通知 应用 进程
被动关闭
• 在确认报文段中 ACK = 1,确认号 ack w 1, 自己的序号 seq = u + 1。
TCP 连接必须经过时间 2MSL 后才真正释放掉。 5.9.2 TCP 的连接释放
客户 A
ESTAB主动关闭 LISHED
服务器 B
数据传送 ESTABLISHED
通知 应用 进程
• B 发出确认,确认号 ack = u 1, 而这个报文段自己的序号 seq = v。 • TCP 服务器进程通知高层应用进程。 • 从 A 到 B 这个方向的连接就释放了,TCP 连接 处于半关闭状态。B 若发送数据,A 仍要接收。
14
《计算机网络》 第7章 传输层
7.2.2 UDP的基本工作过程
UDP用户数据报传输过程中的封装与拆封
发送端 接收端
进程
进程
进程数据
进程数据
UDP头
UDP数据
UDP头
UDP数据
IP头
IP分组的数据部分
IP头
IP分组的数据部分
帧头
帧数据
帧尾
帧头
帧数据
帧尾
15
《计算机网络》 第7章 传输层
UDP 用户数据报的 首部格式
• 寻址方法
• 多重协议的识别
6
《计算机网络》 第7章 传输层
2.网络环境中进程标识
• 在一台计算机中,不同的进程用进程号或进程标识 (process ID)惟一地标识出来。 • 网络环境中完整的进程标识应该是: • 本地主机地址-本地进程标识 ; • 远程主机地址-远程进程标识。 • 进程地址也叫做端口号(port number)。
相关文档
最新文档