当前位置:文档之家› 计算机网络-谢希仁第六版第五讲 传输层zm2014下

计算机网络-谢希仁第六版第五讲 传输层zm2014下


18
计算机网络 5. 传输层:TCP
TCP协议-可靠的
□ TCP的特点 – 面向连接 – 每一条连接只能有两个端点endpoint – 保证可靠交付 – 提供全双工通信 – 传送数据单元:报文段TCP segment – 面向字节流
TCP是一个面向连接的、端到端的、提供可 靠性服务的传输层协议
19
2 目的端口
2 长 度
2 检验和
UDP 用户数据报 发送在前 首 部
首 部


数 IP 数据报

15
计算机网络 5. 传输层:UDP
UDP校验和计算

计算范围:伪首部+UDP首部+UDP数据 计算方法:与IP首部校验和的计算方法相同
4 4 目的 IP 地址 2 源端口 2 目的端口 1 0 1 2 17 UDP长度 2 检验和
源端口和目的端口字段——各占 2 字节。端口是传输 层与应用层的服务接口。传输层的复用和分用功能都 要通过端口才能实现。 26
比特 0
8 源 端 口
16
24 目 的 端 口
31
序 号 TCP 首部 确 数据 偏移 保 留 认 号 窗 口 紧 急 指 针
U A P R S F R C S S Y I G K H T N N
4
传输层基本问题分析(脉 络)
◆ 通信源和目的地标识问题
数据从何而来?奔向何方?即数据传输的最初原
始地和最终目的地如何标识? ◆ 服务质量问题 传输层如何实现可靠性?拥塞控制机制?流量控 制机制?其他相关问题?……
□ 用户数据报协议UDP
□ 传输控制协议TCP
5
计算机网络 5. 传输层:进程标识
30
比特 0
8 源 端 口
16
24 目 的 端 口
31
序 号 TCP 首部 确 数据 偏移 保 留 认 号 窗 口 紧 急 指 针
U A P R S F R C S S Y I G K H T N N
20 字节 固定 首部
检 验 和


(长 度 可 变)


紧急比特 URG —— 当 URG 1 时,表明紧急指 针字段有效。它告诉系统此报文段中有紧急数据, 应尽快传送(相当于高优先级的数据)。 31
Application Layer
F T P
T E L N E T
23 TCP
H T T P
D N S
T F T P
S N M P
R I P
21 Transport Layer
80
53
69
UDP
161
520
Port Numbers
查阅:你常用的网络应用的端口号?端口扫描?
计算机网络 比特 0
8 源 端 口
16
24 目 的 端 口
31
序 号 TCP 首部 确 数据 偏移 保 留 认 号 窗 口 紧 急 指 针
U A P R S F R C S S Y I G K H T N N
20 字节 固定 首部
检 验 和


(长 度 可 变)


保留字段——占 6 bit,保留为今后使用,但目前 应置为 0
21
计算机网络 5. 传输层:TCP
TCP 是面向字节流的(1)
发送方

接收方
H x 表示 TCP 报文段的首部 表示序号为 x 的数据字节 从接收缓存 读取字节 加上 TCP 首部 构成 TCP 报文段 131211 H 10 9 H 发送 TCP 报文段 8 7 6H TCP
应用进程

5 4
应用进程
TCP/IP通信五要素
◆ 目的IP地址
要与之进行数据通信的目的主机所在位置
◆ 目的端口
定位远程主机进行数据交换的进程
◆ 源IP地址
数据的发送方,通过这个要素让远程主机系统知道对等 通信的主机
◆ 源端口号
通过这个来定位本地处理通信数据的进程。
◆ 协议
定位具体的通信协议
12
计算机网络 5. 传输层:UDP
传输层提供应用进程间的逻辑通信
AP3 AP4 5 4 IP 层
5 4 3 2 1
AP1 AP 2
应用进程
应用进程 端口 传输层提供应用进程间的逻辑通信 端口
3
2 1
主机 A
AP1 AP2 路由器 1 LAN1 WAN 路由器 2
主机 B LAN2
AP3 AP4
IP 协议- 提供主机之间的逻辑通信 传输层协议- 提供进程之间的逻辑通信
比特 0
8 源 端 口
16
24 目 的 端 口
31
序 号 TCP 首部 确 数据 偏移 保 留 认 号 窗 口 紧 急 指 针
U A P R S F R C S S Y I G K H T N N
20 字节 固定 首部
检 验 和


(长 度 可 变)


确认比特 ACK —— 只有当 ACK 1 时确认号字 段才有效。当 ACK 0 时,确认号无效。
计算机网络 5. 传输层:TCP
TCP的连接标识
• TCP 使用“连接”(而不仅仅是“端口”)作为最基本的 抽象 • 如何标识一条TCP连接? – 用IP地址可以吗? – 用端口号可以吗? – 需要IP地址和端口号共同使用 所以,端点标识!!
20
计算机网络 5. 传输层:TCP
套接字(socket)
23
计算机网络 5. 传输层:TCP
TCP实现可靠传输基本问题
要实现可靠的数据流传输服务, 必须解决哪几个问题?
报文段格式 连接建立与关闭:三次握手+四次握手 可靠性机制 ①防丢失:确认与重传 ②防重复:报文段序号 流量控制:滑动窗口机制 拥塞控制:加速递减与慢启动技术
24
计算机网络 5. 传输层:TCP报文段 比特 0 8 源 端 口
9
计算机网络 5. 传输层:进程标识
端口号的分配
□ 两种基本分配方式 – 全局分配:集中式统一指派 – 本地分配: 动态指派 □ 服务器端使用的端口号0~49151 全局分配或动态指派 □ 客户端使用的端口号49152~65535 动态指派或OS随机分配
10
计算机网络 5. 传输层:进程标识
熟知端口号
用户数据报协议UDP
□ UDP作用 – 相对于IP协议,唯一增加的能力是提供协议 端口,以保证进行通信 □ UDP特点 UDP适合要求简洁、快速、 – 无连接 可靠性要求不高的应用 – UDP不使用拥塞控制,不保证可靠交付 (除了提供校验和机制) – 面向报文(传输基本单位:用户数据报) – 传输效率较高 – 适用于传输量比较少的情况 – 支持一对一、一对多、多对一、多对多通信
21 字节流 20 把字节写入 19 发送缓存
0 字节流 1 2 3
TCP
1817161514
TCP 连接(虚连接)
22
计算机网络 5. 传输层:TCP
TCP 是面向字节流的(2)
• TCP 连接是一条虚连接而不是一条真正的物理连接 • TCP 对应用进程一次把多长的报文发送到TCP 的缓存 中是不关心的。 • TCP 根据对方给出的窗口值和当前网络拥塞的程度来 决定一个报文段应包含多少个字节(UDP 发送的报文 长度是应用进程给出的)。 • TCP 可把太长的数据块划分短一些再传送。TCP 也可 等待积累有足够多的字节后再构成报文段发送出去
TCP报文段的首部
32 bit
16 24 目 的 端 口 31
序 号
TCP 首部 确 数据 偏移 保 留 检 验 和 选 项 (长 度 可 变) 认 号
固定首部 20字节
U A P R S F R C S S Y I G K H T N N
窗 口
紧 急 指 针 填 充
TCP 报文段 发送在前
TCP 首部
TCP 数据部分
IP 首部
IP 数据部分
25
比特 0
8 源 端 口
16
24 目 的 端 口
31
序 号 TCP 首部 确 数据 偏移 保 留 认 号 窗 口 紧 急 指 针
U A P R S F R C S S Y I G K H T N N
20 字节 固定 首部
检 验 和


(长 度 可 变)


7
计算机网络 5. 传输层:进程标识
进程标识—端口port
• 端口:是一种抽象的软件结构 (包括一些数据结构和I/O缓冲区) • 用于标识应用层的进程 • UDP和TCP都使用端口与上层的应用进程进行通 信
8
计算机网络 5. 传输层:进程标识
端口号
• 16 bit (0~65535) • TCP和UDP各自的端口号相互独立 • 端口号只具有本地意义 – 端口号只是为了标志本计算机应用层中的各进程 – 在因特网中不同计算机的相同端口号是没有联系的
进程之间的通信 • 两个主机进行通信实际上就是两个主机中的 应用进程互相通信。 • 应用进程之间的通信又称为端到端的通信。 • “传输层提供应用进程间的逻辑通信”。 – “逻辑通信”指:传输层之间的通信好像是沿 水平方向传送数据。但事实上这两个传输层 之间并没有一条水平方向的物理连接。
计算机网络 5. 传输层:进程标识
13
计算机网络 5. 传输层:UDP
UDP 报文封装
应用层
应用层报文
传输层
UDP首部 UDP数据区
网络层
IP首部
IP数据区
数据 链路层
帧首部
帧数据区
14
相关主题