资源预览内容
第1页 / 共67页
第2页 / 共67页
第3页 / 共67页
第4页 / 共67页
第5页 / 共67页
第6页 / 共67页
第7页 / 共67页
第8页 / 共67页
第9页 / 共67页
第10页 / 共67页
亲,该文档总共67页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
西北工业大学软件与微电子学院,1, 2002, Cisco Systems, Inc. All rights reserved.,1,第十一章 传输层和应用层,早期的协议族 全球范围,11.1 TCP/IP介绍,西北工业大学软件与微电子学院,3,TCP/IP 的起源可以追溯到由美国国防部 (DoD) 高级研究计划局 (DARPA) 在二十世纪六十年代后期和七十年代早期进行的研究。 1970 年,ARPANET 主机开始使用网络 控制协议 (NCP),这就是后来的传输控制 协议 (TCP) 的雏形。,一、TCP/IP协议族历史,西北工业大学软件与微电子学院,4, 1972 年,Telnet 协议推出。Telnet 用于终端仿真以连接相异的系统。在二十世纪七十年代早期,这些系统使用不同类型的主机。 1973 年,文件传输协议 (FTP) 推出。 FTP 用于在相异的系统之间交换文件。 1974 年,传输控制协议 (TCP) 被详细规 定下来。TCP 取代 NCP,它为人们提供 了更可靠的通信服务。,西北工业大学软件与微电子学院,5,1981 年,Internet 协议 (IP)(又称 IP 版本 4 IPv4)被详细规定下来。IP 为端到端传递提供寻址和路由功能。 1982 年,国防通信署 (DCA) 和 ARPA 建立了传输控制协议 (TCP) 和 Internet 协议 (IP) 作为 TCP/IP 协议套件。 1983 年,ARPANET 将 NCP 替换为 TCP/IP。,西北工业大学软件与微电子学院,6, 1984 年,域名系统 (DNS) 推出。DNS 可将域 名(如 www.example.com)解析为 IP 地址(如 192.168.5.18)。 1995 年,Internet 服务提供商 (ISP) 开始向企业和个人提供 Internet 接入。 1996 年,超文本传送协议 (HTTP) 推出。万维 网使用 HTTP。 1996 年,第一套 IP 版本 6 (IPv6) 标准发布。,二、TCP/IP 模型与ISO/OSI模型比较,5,4,3,2,5,4,3,2,1,1,三、传输层概述,西北工业大学软件与微电子学院,9,TCP/IP的传输层,TCP/IP在传输层的协议有TCP和UDP两种 TCP:面向连接的、高可靠性、可重传、在目的地重组报文 UDP:无连接的、不可靠的、无确认机制、无流控、不重组、传输报文、不提供软件级检查 面向连接:在进行数据通讯前,先建立一个连接,例:电话系统 无连接:称为分组交换方式,分组数据可能经由不同路径从源到目的,例:邮政系统,西北工业大学软件与微电子学院,10,面向连接,西北工业大学软件与微电子学院,11,传输层的必要性和功能,必要性 网络层的分组传输是不可靠的。 无法了解数据到达终点的时间 无法了解数据未达终点的状态。 有必要增强网络层提供服务的服务质量。 功能 为应用进程提供端到端的连接服务。 建立连接 数据传输 释放连接 流量控制和差错控制,西北工业大学软件与微电子学院,12,11.1.2 会话的建立,西北工业大学软件与微电子学院,13,释放连接,两种释放连接的方法 非对称式:发送释放请求后单方面地终止连接,存在丢失数据的危险; 对称式:各自独立地发出释放连接请求,收到对方的释放确认后才可以释放连接。 但是在实际的通信过程中,使用三次握手 + 定时器的方法释放连接在绝大多数情况下是成功的。,西北工业大学软件与微电子学院,14,11.1.3解决连接问题的方法,三次握手方案(three-way handshake) A 发出序号为X的建链请求CR TPDU; B 发出序号为Y的接受建链CC TPDU,并确认A的序号为X的建链请求; A 发出序号为X+1的第一个连接建立成功,并确认B的序号为Y+1的接受建链。 三次握手方案解决了由于网络层会丢失、存储和重复包带来的问题。 对于重复的连接请求CR 对于重复的连接请求CR和重复的确认ACK,西北工业大学软件与微电子学院,15,三次握手方案,TCP属于面向连接,所以在进行数据通讯前先要建立会话,并且同步数据包编号,发送 SYN (seq=100 ctl=SYN),接收 SYN,Host A,Host B,TCP 三次握手,发送 SYN (seq=100 ctl=SYN),接收 SYN,发送 SYN, ACK (seq=300 ack=101 ctl=syn,ack),Host A,Host B,接收 SYN,TCP 三次握手,发送 SYN (seq=100 ctl=SYN),接收 SYN,发送 SYN, ACK (seq=300 ack=101 ctl=syn,ack),建立会话 (seq=101 ack=301 ctl=ack),Host A,Host B,接收 SYN,TCP 三次握手,发送 SYN (seq=100 ctl=SYN),接收 SYN,发送 SYN, ACK (seq=300 ack=101 ctl=syn,ack),建立会话 (seq=101 ack=301 ctl=ack),Host A,Host B,接收 SYN,TCP 三次握手,西北工业大学软件与微电子学院,20,DoS(拒绝服务攻击),DoS-Denial of service,利用三次握手的攻击。过程:当客户端要与服务器进行连接前,要进行三次握手。首先客户端先发出请求,服务端回复请求,攻击就在这个时候产生的,客,户端不做第三次握手,而是重新建立一个连接请求,服务器端一直保持这个回话,等待客户端的连接。这样客户端大量建立没有第三次握手的连接,导致服务器系统资源占用过高,Down机。,西北工业大学软件与微电子学院,21,11.2流量控制,由于计算机的处理速度不同,在传输过程中传输层调整传输速度,西北工业大学软件与微电子学院,22,流量控制和缓存,流量控制(Flow Control ):传输层利用可变滑动 窗口协议来实现流控。所谓可变滑动窗口协议,是 指发送方的发送窗口大小是由接收方根据自己的实 际缓存情况给出的。为了避免控制TPDU丢失导致 死锁,主机应该周期性的发送TPDU。 缓存(Buffering):由于网络层服务是不可靠的, 传输层实体必须缓存所有连接发出的TPDU,而且 为每个连接单独做缓存,便于重传。接收方的传输 层实体既可以做也可以不做缓存。,西北工业大学软件与微电子学院,23,窗口,窗口大小决定在收到确认信息前一次传输的最大数据量 滑动窗口 TCP使用“期望确认”,就是指确认号是下一个所希望得到的段。滑动窗口中的“滑动”,指在TCP的会话期间会对窗口的大小动态地协商,TCP 简单确认,滑动窗口 = 1,发送方,接收方,TCP 简单确认,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,TCP 简单确认,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,接收 ACK 2,发送 ACK 2,TCP 简单确认,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,接收 ACK 2,发送 ACK 2,发送 2,接收 2,TCP 简单确认,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,接收 ACK 2,发送 ACK 2,发送 2,接收 2,接收 ACK 3,发送 ACK 3,TCP 简单确认,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,接收 ACK 2,发送 ACK 2,发送 2,接收 2,接收 ACK 3,发送 ACK 3,发送 3,接收 3,滑动窗口 = 1,发送方,接收方,发送 1,接收 1,接收 ACK 2,发送 ACK 2,发送 2,接收 2,接收 ACK 3,发送 ACK 3,发送 3,接收 3,接收 ACK 4,发送 ACK 4,TCP 简单确认,11.2.1 TCP 顺序号和确认号,源端口,目标端口,顺序号 #,确认号 #,Source,Dest.,Seq.,Ack.,1028,23,10,1,我发送 #10.,TCP 顺序号和确认号,我已收到 #10, 现在我需要 #11.,源端口,目标端口,顺序号 #,确认号 #,1028,23,Source,Dest.,10,Seq.,1,Ack.,1028,23,Source,Dest.,11,Seq.,1,Ack.,我发送 #10.,TCP 顺序号和确认号,源端口,目标端口,顺序号 #,确认号 #,1028,23,Source,Dest.,11,Seq.,2,Ack.,1028,23,Source,Dest.,10,Seq.,1,Ack.,1028,23,Source,Dest.,11,Seq.,1,Ack.,我已收到 #10, 现在我需要 #11.,我发送 #10.,TCP 顺序号和确认号,源端口,目标端口,顺序号 #,确认号 #,1028,23,Source,Dest.,11,Seq.,2,Ack.,1028,23,Source,Dest.,10,Seq.,1,Ack.,1028,23,Source,Dest.,11,Seq.,1,Ack.,1028,23,Source,Dest.,12,Seq.,2,Ack.,我已收到 #11, 现在我需要 #12.,我发送 #11,TCP 窗 口,发送方,接收方,TCP 窗 口,Window size = 3 Send 2,发送方,接收方,Window size = 3 Send 1,Window size = 3 Send 3,Window size = 3 Send 2,TCP 窗 口,发送方,Window size = 3 Send 1,Window size = 3 Send 3,ACK 3 Window size = 2,数据 3 被丢弃,接收方,Window size = 3 Send 2,TCP 窗 口,发送方,Window size = 3 Send 1,Window size = 3 Send 3,ACK 3 Window size = 2,数据 3 被丢弃,Window size = 3 Send 4,Window size = 3 Send 3,接收方,Window size = 3 Send 2,TCP 窗 口,发送方,Window size = 3 Send 1,Window size = 3 Send 3,ACK 3 Window size = 2,数据 3 被丢弃,Window size = 3 Send 4,Window size = 3 Send 3,ACK 5 Window size = 2,接收方,西北工业大学软件与微电子学院,40,窗口,西北工业大学软件与微电子学院,41,滑动窗口,11.2.2 TCP 数据格式,Source port (16),Destination port (16),Sequence number (32),Header length (4),Acknowledgement number (32),Reserved (6),Code bits (6),Window (16),Checksum (16),Urgent (16),Options (0 or 32 if any),Data (varies),Bit 0,Bit 15,Bit 16,Bit 31,没有顺序号和确认号,11.2.3 UDP 数据格式,Source port (16),Destination port (16),Length (16),Data (if any),1,Bit 0,Bit 15,Bit 16,Bit
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号