第4讲传输层之二 本讲目的: 本讲概述: 口 Interne传输层 的实现和实例 口面向连接的传输:TCP 教科书参考 o可靠传输 o流量控制 o第8章 o连接管理 TCP拥塞控制 口拥塞控制原则 主讲人:西安交通大学程向前 第4讲传输层之二41
主讲人:西安交通大学 程向前 第4讲 传输层之二 4-1 第4讲 传输层之二 本讲目的: Internet传输层 的实现和实例 教科书参考 第8章 本讲概述: 面向连接的传输: TCP 可靠传输 流量控制 连接管理 TCP拥塞控制 拥塞控制原则
TCP:概述 RFcs:793.1122.1323.2018.2581 口点对点 T全双工数据传输: 个发送方,一个接收方 o在同一连接上双向传输 口可靠,按序的字节流: o MSS: maximum o无“报文边界”,无结构 segment size(最大段字 但有顺序 节数-1500,536,512) 口流水式控制: 口面向连接: oTcP的拥塞和流量控制,设 o握手过程(交换控制信息) 置窗口大小 在交换数据前初始化收发 双方的状态,“三次握手” 口发送&接做缓存 口流量控制: application socket writes data O发送方的发送速度不得超 door TCP TCP 过接收方的处理速度 send buffer receive buffo 主讲人:西安交通大学程向前 第4讲传输层之二42
主讲人:西安交通大学 程向前 第4讲 传输层之二 4-2 TCP: 概述 RFCs: 793, 1122, 1323, 2018, 2581 全双工数据传输: 在同一连接上双向传输 MSS: maximum segment size(最大段字 节数-1500,536,512) 面向连接: 握手过程 (交换控制信息) 在交换数据前初始化收发 双方的状态,“三次握手” 流量控制: 发送方的发送速度不得超 过接收方的处理速度 点对点: 一个发送方, 一个接收方 可靠, 按序的字节流 : 无 “报文边界”,无结构 但有顺序 流水式控制: TCP的拥塞和流量控制,设 置窗口大小 发送& 接收缓存 socket door TCP send buffer TCP receive buffer socket door segment application writes data application reads data
TcP段格式(p238) 32 bits URG: urgent data source port dest port 按发送数据的字 (一般不用) sequence number 节计算 ACK: ACK acknowledgement number (不是按段数!) va UAPRSFI rcvr window size PSH: push data now len used (一般不用) checksum ptr urgent data bytes 接收方愿意 RST SYN. FIN Options(可变长度MSS 接受的 connection estab (setup, teardown commands) 应用数据 (可变长度) Internet checksum (as in UDP) 主讲人:西安交通大学程向前 第4讲传输层之二43
主讲人:西安交通大学 程向前 第4讲 传输层之二 4-3 TCP 段格式(p238) source port # dest port # 32 bits 应用数据 (可变长度) sequence number acknowledgement number rcvr window size checksum ptr urgent data UAP RSF head len not used Options (可变长度-MSS) URG: urgent data (一般不用) ACK: ACK # valid PSH: push data now (一般不用) RST, SYN, FIN: connection estab (setup, teardown commands) # bytes 接收方愿意 接受的 按发送数据的字 节计算 (不是按段数!) Internet checksum (as in UDP)
TCP seq.#s和ACKs Sea, #5s Host a st B o该数据段第一个字节 在(整个报文)字节 流中“编号 bes Seq=42, ACK=79, data=C ACKs: host ACKs receipt of oseq#为预期从对方 发来的“下一个”字 Seq=79, ACK=43, data=C'C echoes back c 节的编号 积累的AcK host ACks Q:接收方如何接受失序的cep 数据段 of echoed Seq=43, ACK= OA:TCP没有定义 由程序设计者决定 fime 简单的tene↑场景 主讲人:西安交通大学程向前 第4讲传输层之二44
主讲人:西安交通大学 程向前 第4讲 传输层之二 4-4 TCP seq. #’s 和 ACKs Seq. #’s: 该数据段第一个字节 在(整个报文)字节 流中 “编号” ACKs: seq #为预期从对方 发来的“下一个”字 节的编号 积累的 ACK Q: 接收方如何接受失序的 数据段 A: TCP 没有定义, - 由程序设计者决定 Host A Host B User types ‘C’ host ACKs receipt of echoed ‘C’ host ACKs receipt of ‘C’, echoes back ‘C’ time 简单的 telnet 场景
TCP:可靠数据传输 event: data received from application above 简化的发送方,假设 create, send segment 单向数据传输 无流量,拥塞控制 wait event: timer timeout for fc segment with seq# y or event retransmit segment event: AcK received with ACK #y ACK processing 主讲人:西安交通大学程向前 第4讲传输层之二45
主讲人:西安交通大学 程向前 第4讲 传输层之二 4-5 TCP: 可靠数据传输 简化的发送方, 假设 wait for event wait for event event: data received from application above event: timer timeout for segment with seq # y event: ACK received, with ACK # y create, send segment retransmit segment ACK processing •单向数据传输 •无流量, 拥塞控制