TCPP传输层 TCP/IP协议栈 主要功能 流量控制:由滑动窗口实现流量控制 应用层 可靠通信:由序列号和确认机制实现端 到端的可靠通信 TCP 传输层 UDP 网络层 两种协议: 网络接口层 TCP Transmission Control Protocol) 面向连接的可靠传输协议,为用户 应用端之间提供一个虚拟电路 UDP:( User Datagram Protocol) 无连接的非可靠传输协议
TCP/IP传输层 TCP/IP协议栈 应用层 网络接口层 网络层 传输层 TCP UDP 主要功能: — 流量控制:由滑动窗口实现流量控制; — 可靠通信:由序列号和确认机制实现端 到端的可靠通信。 两种协议: — TCP :( Transmission Control Protocol) 面向连接的可靠传输协议,为用户 应用端之间提供一个虚拟电路。 — UDP :( User Datagram Protocol) 无连接的非可靠传输协议
TCP报文格式 TCP报文格式定义了12个字段: 比特数1616 32 6 源端口目端口序列号确认号报头长度保留编码位 16 16 16 0-32 窗口校验和紧急指针选项 数据 源端口( Source port):呼叫端端口号 一目端口( Destination port):被叫端端口号 序列号(Seqμ uence Number):分配给报文的序号,用于跟踪报文通信顺序,确保无丢失 确认号( Acknowledgement Number):所期待的下一个TCP报文的序列号,并表示 对此序列前报文正确接收的确认 报头长度(HLEN):报文头部的字节数 保留域( Reserved):设置为0 编码位( Code bits):控制功能(如TCP连接的建立和终止) 窗口( Window):发送者同意接收的字节数 校验和( Checksum):报头和数据字段的校验和 紧急指针( Urgent Pointer):指示紧急数据段的末尾 选项( Option):当前定义TCP段的最大值 数据(Data):上层协议数据
TCP报文格式 TCP报文格式定义了12个字段: 源端口 目端口 序列号 确认号 报头长度 保留 编码位 比特数 16 16 32 32 4 6 6 窗口 校验和 紧急指针 选项 数据 16 16 16 0-32 — 源端口(Source Port):呼叫端端口号 — 目端口(Destination Port):被叫端端口号 — 序列号(Sequence Number):分配给报文的序号,用于跟踪报文通信顺序,确保无丢失 — 确认号(Acknowledgement Number):所期待的下一个TCP报文的序列号,并表示 对此序列前报文正确接收的确认 — 报头长度(HLEN):报文头部的字节数 — 保留域(Reserved):设置为0 — 编码位(Code Bits):控制功能(如TCP连接的建立和终止) — 窗口(Window):发送者同意接收的字节数 — 校验和(Checksum):报头和数据字段的校验和 — 紧急指针(Urgent Pointer):指示紧急数据段的末尾 — 选项(Option):当前定义TCP段的最大值 — 数据(Data):上层协议数据
TCP/UDP端口号 FTISD T S TeMNFN 应用层p1TsTM n P P P 25369)16 层间端口号 传输层 TCP UDP 端口号是TCP和UDP报文的地址 端口号描述了传输层上正在使用的上层协议 TCP和UD用端口号把数据传送到上层,端口号用来跟踪同一时间内通过网络的不同会话 端口号分配遵循RFClπ00定乂,如果会话不涉及到特殊端口号,将在特定取值范围内随机 分配一个端口号 TCP和UDP保留了一些端口,应用程序不能随便使用 端口号指定范围: *低于255的端口号用于公共应用 *255~1023的端口号被指定给各个公司 *高于1023的端口号未做规定
TCP/UDP端口号 F T P T e l n e t S M T P D N S T F T P S N M P 21 23 25 53 69 161 TCP UDP 应用层 传输层 层间端口号 — 端口号是TCP和UDP报文的地址 — 端口号描述了传输层上正在使用的上层协议 — TCP和UDP用端口号把数据传送到上层,端口号用来跟踪同一时间内通过网络的不同会话 — 端口号分配遵循RFC1700定义,如果会话不涉及到特殊端口号,将在特定取值范围内随机 分配一 个端口号 — TCP和UDP保留了一些端口,应用程序不能随便使用 — 端口号指定范围: * 低于255的端口号用于公共应用 * 255~1023的端口号被指定给各个公司 * 高于1023的端口号未做规定
TCP/UDP通信和端口号 Telnet B 目标端口号 23,将报文 主机A 主机B 发送到 Telnet 应用程序 源端口目的端口 1028 23 TCP/UDP中对等通信实体之间的通信相互用端口号标识; TCP报文目的端口号必须根据 Telnet协议的端口号确定 源端口号由源主机动态地分配起始源端口号,通常是 些高于1023的端口号
TCP/UDP通信和端口号 主机A 主机B Telnet B 目标端口号 =23,将报文 发送到Telnet 应用程序中 源端口 目的端口 1028 23 — TCP/UDP中对等通信实体之间的通信相互用端口号标识; — TCP报文目的端口号必须根据Telnet 协议的端口号确定; — 源端口号由源主机动态地分配起始源端口号,通常是一 些高于1023的端口号
TCP连接的建立 主机A 主机B Telnet b 发送SYN报文 (SEQ=X) 接收SYN报文 SEQ:序列号 ACK:确认号 (SEQ=X) 发送SYN报文 接收SYN报文 (SEQ=Y, ACK-X+1) (SEQ=Y, ACK-X+1) 发送确认报文 (ACK=Y+1) 接收确认报文 (ACK=Y+1) TCP连接的建立实际上是一同步过程(又称三次握手) 初始序列号ⅹ、Y的确定,不同的系统可能采用不同算法 TCP是一种点对点的平衡式通信方法,任何一方发起建立连接和终止连接
TCP连接的建立 主机A 主机B Telnet B 发送SYN报文 (SEQ=X) 接收SYN报文 (SEQ=X) 发送SYN报文 接收SYN报文 (SEQ=Y,ACK=X+1) (SEQ=Y,ACK=X+1) 发送确认报文 (ACK=Y+1) 接收 确认报文 (ACK=Y+1) — TCP连接的建立实际上是一同步过程(又称三次握手) — 初始序列号X、Y 的确定,不同的系统可能采用不同算法 — TCP是一种点对点的平衡式通信方法,任何一方发起建立连接和终止连接 SEQ:序列号 ACK:确认号