《计算机网络 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 ppt 作者 刘克成 郑珂 第7章 传输层》由会员分享,可在线阅读,更多相关《计算机网络 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 ppt 作者 刘克成 郑珂 第7章 传输层(118页珍藏版)》请在金锄头文库上搜索。
1、第7章 传输层,第7章 传输层,7.1 概述 7.2 传输协议的要素 7.3 用户数据报协议UDP 7.4 传输控制协议TCP(重点、难点),7.1 概述,从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。 从传输层的角度来看,通信的真正端点并不是主机,而是主机中的应用进程。 应用进程之间的通信又称为端到端的通信。 传输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。,7.1.1 传输层功能,连接管理 流量控制 差错检测 对用户请求的响应 建立无连接或面向连接的通信。,1. 连接管理,连接建立 在数据
2、传送开始时,发送方和接收方的应用进程都要通知各自的操作系统初始化一个连接,一台主机发起的连接必须被另一台主机接收才行。当所有的同步操作完成之后,一个连接就建立了,数据传输也就开始了。 数据传输 在传输过程中,两台主机还需要继续通过协议软件来验证数据是否被正确接收。 连接释放 数据传输完成后,发送端主机发送一个数据传输结束的标识。接收端主机在数据传输完成后确认数据传输结束,连接终止。,2. 流量控制,流量控制就是以网络普遍接受的速度发送数据,从而防止网络拥塞造成数据包的丢失。 传输层和数据链路层的流量控制区别在于: 传输层定义了端到端用户之间的流量控制 数据链路层定义了点到点(两个中间相邻节点)
3、的流量控制。,3. 差错检测,数据链路层的差错检测功能提供了点到点的链路传输的可靠,但无法保证端到端(源节点和目的节点之间)的传输的可靠性。而传输层的差错检测机制会检测到这种的错误。,4. 对用户请求的响应,对用户请求的响应包括对发送和接收数据请求的响应,以及特定请求的响应,如用户可能要求高吞吐率、低延迟或可靠的服务。,5. 建立无连接或面向连接的通信,提供面向连接和无连接的传输层服务。 根据应用程序的不同需求,传输层需要有两种不同的传输协议,即无连接的 UDP 和面向连接的 TCP 。,7.2 传输层编址端口,传输层要解决应用进程之间通信的问题,而且应用层可以同时存在多个进程。在进程通信的意
4、义上,网络通信的最终地址就不只是主机地址了,还应包括可以关联进程的某种标识符。为此,传输层使用了协议端口的概念,简称端口。 端口就是传输层服务访问点TSAP。,端口的作用,端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。 从这个意义上讲,端口是用来标志应用层的进程。 UDP和TCP都使用了端口(port)进行寻址。端口是一个很重要的概念,因为在通信时,只有找到了端口,才能最后找到我们所要找的目的进程。,端口在进程之间的通信中所起的作用,应 用 层,传 输 层,网 络 层,TCP 报文段,UDP
5、用户数据报,应用进程,TCP 复用,IP 复用,UDP 复用,TCP 报文段,UDP 用户数据报,应用进程,端口,端口,TCP 分用,UDP 分用,IP 分用,发送方,接收方,传输层的一个很重要的功能就是复用和分用。,端 口,端口用一个 16 位二进制比特进行标识。 由于 TCP 和 UDP 是完全独立的两个软件模块,它们的端口也相互独立,可以同号。 端口可以分为三大类: 熟知端口 注册端口,熟知端口,熟知端口又成为保留端口,由 IANA(互联网地址指派机构)以全局方式进行统一分配并公之于众。 熟知端口分配给服务器进程使用,每一种标准的服务器都分配有一个全局公认的端口号。 熟知端口只占一小部分
6、, TCP 和 UDP 均规定,号码为01023的端口才能作为熟知端口。,常见的熟知端口,协议,端口号,协议,描述,UDP,53,DNS,域名系统,UDP,69,TFTP,简单文件传输协议,UDP,520,RIP,路由信息协议,TCP,179,BGP,边界网关协议,TCP,20,FTP Data,文件传输服务器(数据连接),TCP,21,FTP Control,文件传输服务器(控制连接),TCP,23,Telnet,远程终端服务器,TCP,25,SMTP,简单邮件传输协议,TCP,80,HTTP,超文本传输协议,这些端口并非固定的捆绑于某一服务,而是松散地绑定于一些服务,即有许多服务绑定于这些
7、端口,操作系统将这些端口动态的分配给各个进程,同一进程两次分配有可能分配到不同的端口。 不过一些应用于程序并不愿意使用操作系统分配的动态端口 他们有其自己喜欢的“固定”端口,如QQ客户端的4000端口,木马冰河的7626 端口等都是固定而出名的;,注册端口,TCP/IP 的传输层有两个不同的协议: (1) 用户数据报协议 UDP (User Datagram Protocol) (2) 传输控制协议 TCP (Transmission Control Protocol),7.3 TCP/IP传输层的两个主要协议,传输协议数据单元:两个对等传输实体在通信时传送的数据单位叫作传输协议数据单元 TP
8、DU (Transport Protocol Data Unit)。 TCP 传送的协议数据单元是 TCP 报文段(segment)。 UDP 传送的协议数据单元是 UDP 报文或用户数据报。,TCP 与 UDP,TCP,当传输层采用面向连接的 TCP 协议时,尽管下面的网络层是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。 由于 TCP 要提供可靠的、面向连接的传输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。,UDP,当传输层采用无连接的 UDP 协议时,这种逻辑通信信道是一条不可靠信道。 UDP 在
9、传送数据之前不需要先建立连接。对方的传输层在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。,传输层向上提供 可靠的和不可靠的逻辑通信信道,应 用 层,运 输 层,发 送 进 程,接 收 进 程,接 收 进 程,数据,数据,全双工可靠信道,数据,数据,使用 TCP 协议,使用 UDP 协议,不可靠信道,发 送 进 程,7.3.1 UDP 概述,UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。 虽然 UDP 只能提供不可靠的交付,但 UDP 在某些方面有其特殊的优点。,UDP 的主要优
10、点,UDP 是无连接的,即发送数据之前不需要建立连接,因而减少了开销和发送数据之前的时延。 UDP没有拥塞控制,也不保证可靠交付,因此主机不需要维持具有许多参数的、复杂的连接状态表。 网络出现的拥塞不会使源主机的发送速率降低。这对传输实时数据是很重要的。 UDP 支持一对一、一对多、多对一和多对多的交互通信。 UDP 的首部开销小,只有 8 个字节。 UDP 是面向报文的。,面向报文的 UDP,发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。 应用层交给 UDP 多长的报文,UDP 就发送多长的
11、报文,即一次发送一个报文。 接收方 UDP 对 IP 层交上来的 UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。 应用程序必须选择合适大小的报文。,UDP 是面向报文的,IP 数据报的数据部分,IP 首部,IP 层,UDP 首部,UDP 用户数据报的数据部分,传输层,应用层报文,应用层,使用UDP协议的各种应用和应用层协议,7.3.2 UDP 的首部格式,源端口,目的端口,长 度,检验和,数 据,首 部,IP 数据报,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,UDP 有两个字段:首部字段和数据字段。首部字段有 8 个字节,由
12、4 个字段组成,每个字段都是两个字节。,源端口,目的端口,长 度,检验和,数 据,首 部,IP 数据报,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,源端口:发送端的 UDP 端口,当不需要返回数据时,该字段为 0 。,源端口,目的端口,长 度,检验和,数 据,首 部,IP 数据报,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,目的端口:接收端的 UDP 端口,必须使用。,源端口,目的端口,长 度,检验和,数 据,首 部,IP 数据报,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,长度:UDP 数据报总长度,其最小值是 8 (仅
13、有首部) 。,源端口,目的端口,长 度,检验和,数 据,首 部,IP 数据报,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,伪首部,源端口,目的端口,长 度,检验和,数 据,首 部,UDP长度,源 IP 地址,目的 IP 地址,0,17,IP 数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,检验和:在计算检验和时,临时把“伪首部”和 UDP 用户数据报连接在一起。伪首部仅仅是为了计算检验和,不进行传输。 该字段是可选的,如果该字段为“0”就表示不计算检验和。当应用程序对传输效率的重视程度高于可靠性时,就可以选择不
14、进行检验。,7.4 传输控制协议 TCP,TCP 是面向连接的传输层协议。 由于TCP 连接只能有两个端点(endpoint),因此TCP 连接只能是点对点的(一对一)。TCP 不能用于多播和广播。 TCP 提供可靠交付的服务。通过 TCP 连接传送的数据,无差错、不丢失、不重复、并且按序到达。 TCP 提供全双工通信。 面向字节流。,TCP 面向流的概念,发送 TCP 报文段,发送方,接收方,把字节写入 发送缓存,从接收缓存 读取字节,应用进程,应用进程,18,17,16,15,14,H,加上 TCP 首部 构成 TCP 报文段,TCP,TCP,字节流,字节流,H,表示 TCP 报文段的首部
15、,x,表示序号为 x 的数据字节,TCP 连接,应当注意,TCP 连接是一条虚连接而不是一条真正的物理连接。 TCP 对应用进程一次把多长的报文发送到TCP 的缓存中是不关心的。 TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)。 TCP 可把太长的数据块划分短一些再传送。TCP 也可等待积累有足够多的字节后再构成报文段发送出去。,一个TCP报文共分为首部和数据两个部分(见下页图)。TCP的全部功能都体现在它首部中各字段的作用。 首部的前20个字节是固定的,后面有4N字节是根据需要而增加的选项(N为整数)。因此TCP首部的最小长度是20字节。 TCP首部各字段意义如下:,7.4.1 TCP 报文段的首部,TCP 首部,20 字节的 固定首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,32 位,S Y N,R S T,P S H,A C K,U R G,位 0