第9章 传输层

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

李太君林元乖等编著清华大学出版社第9章传输层本章内容提要传输层概述TCP/IP体系中的传输层UDP协议TCP协议李太君林元乖等编著清华大学出版社9.1传输层概述•传输层又称为运输层,处于OSI/RM的第四层,是整个网络协议体系的核心。•从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。李太君林元乖等编著清华大学出版社9.1传输层概述•当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有传输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。李太君林元乖等编著清华大学出版社传输层为相互通信的应用进程提供了逻辑通信54321传输层提供应用进程间的逻辑通信主机A主机B应用进程应用进程路由器1路由器2AP1LAN2WANAP2AP3AP4IP层LAN1AP1AP2AP4端口端口54321IP协议的作用范围传输层协议TCP和UDP的作用范围AP3李太君林元乖等编著清华大学出版社应用进程之间的通信•两个主机进行通信实际上就是两个主机中的应用进程互相通信。•应用进程之间的通信又称为端到端的通信。•传输层的一个很重要的功能就是复用和分用。应用层不同进程的报文通过不同的端口向下交到传输层,再往下就共用网络层提供的服务。•“传输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:传输层之间的通信好像是沿水平方向传送数据。但事实上这两个传输层之间并没有一条水平方向的物理连接。李太君林元乖等编著清华大学出版社传输层协议和网络层协议的主要区别应用进程…应用进程…IP协议的作用范围(提供主机之间的逻辑通信)TCP和UDP协议的作用范围(提供进程之间的逻辑通信)因特网李太君林元乖等编著清华大学出版社传输层的主要功能•传输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。•传输层还要对收到的报文进行差错检测。•传输层需要有两种不同的运输协议,即面向连接的TCP和无连接的UDP。李太君林元乖等编著清华大学出版社两种不同的运输协议•传输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就是好像在两个传输层实体之间有一条端到端的逻辑通信信道。•当传输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。•当传输层采用无连接的UDP协议时,这种逻辑通信信道是一条不可靠信道。李太君林元乖等编著清华大学出版社9.2TCP/IP体系中的传输层•传输层是TCP/IP网络体系结构中至关重要的一层,它的主要作用就是保证端对端数据传输的可靠性。由于TCP/IP的网络层提供的是面向无连接的数据报服务,也就是说IP数据报传送会出现丢失、重复或乱序的情况,因此在TCP/IP网络中传输层就变得极为重要。李太君林元乖等编著清华大学出版社9.2.1传输层中的两个协议•TCP/IP的传输层有两个不同的协议:(1)用户数据报协议UDP(UserDatagramProtocol)(2)传输控制协议TCP(TransmissionControlProtocol)李太君林元乖等编著清华大学出版社9.2.1传输层中的两个协议•两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元TPDU(TransportProtocolDataUnit)。•TCP传送的数据单位协议是TCP报文段(segment)•UDP传送的数据单位协议是UDP报文或用户数据报。李太君林元乖等编著清华大学出版社TCPUDPIP应用层与各种网络接口传输层两种协议在协议栈中的位置TCP/IP体系中的传输层协议李太君林元乖等编著清华大学出版社一些应用和应用层协议主要使用的传输层协议应用关键字传输层协议域名服务DNSUDP简单文件传输协议SFTP路由选择协议RIPIP地址配置BOOTP、DHCP简单网络管理协议SNMP远程文件服务器NFSIP电话专用协议流式多媒体通信专用协议多播IGMP文件传输协议FTPTCP远程虚拟终端协议Telnet万维网HTTP简单邮件传输协议SMTP域名服务DNS李太君林元乖等编著清华大学出版社•UDP在传送数据之前不需要先建立连接。对方的传输层在收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP是一种最有效的工作方式。•TCP则提供面向连接的服务。TCP不提供广播或多播服务。由于TCP要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。9.2.1传输层中的两个协议李太君林元乖等编著清华大学出版社•传输层的UDP用户数据报与网际层的IP数据报有很大区别。IP数据报要经过互连网中许多路由器的存储转发,但UDP用户数据报是在传输层的端到端抽象的逻辑信道中传送的。•TCP报文段是在传输层抽象的端到端逻辑信道中传送,这种信道是可靠的全双工信道。但这样的信道却不知道究竟经过了哪些路由器,而这些路由器也根本不知道上面的传输层是否建立了TCP连接。9.2.1传输层中的两个协议李太君林元乖等编著清华大学出版社•传输层的协议实现应用进程间端到端的通信,网间进程通信要解决的是不同主机进程间的相互通信问题。为此,首先要解决的是网间进程标识问题。•怎么解决的是网间进程标识问题?9.2.2端口与Socket的概念李太君林元乖等编著清华大学出版社•同一主机上,不同进程可用进程号(processID)唯一标识;但在网络环境下,各主机独立分配的进程号不能唯一标识该进程。其次,操作系统支持的网络协议众多,不同协议的工作方式不同,地址格式也不同。因此,网间进程通信还要解决多重协议的识别问题。为了解决上述网间进程通信问题,TCP/IP协议引入了端口和套接字的概念。解决方法李太君林元乖等编著清华大学出版社•端口是协议端口号(protocolportnumber)的简称,是网络中可以被命名和寻址的通信端口,用于标识通信的进程。•虽然通信的终点是应用进程,但只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付给目的进程)就由TCP来完成。9.2.2端口与Socket的概念李太君林元乖等编著清华大学出版社•在协议栈层间的抽象的协议端口是软件端口。•路由器或交换机上的端口是硬件端口。•硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。软件端口与硬件端口李太君林元乖等编著清华大学出版社•每个端口都拥有一个叫端口号的整数型标识符,用于区别不同端口。每个端口都拥有一个叫端口号的整数描述符,用来标识不同的进程,可以在特定应用程序间建立连接和识别应用进程。•在TCP/IP的传输层,定义一个16Bit长度的整数作为端口标识,也就是说可定义216个端口,其端口号从0到216-1。由于TCP/IP传输层的TCP和UDP两个协议是两个完全独立的软件模块,因此各自的端口号也相互独立,即各自可独立拥有216个端口。9.2.2端口与Socket的概念李太君林元乖等编著清华大学出版社应用层与传输层之间的接口端口号应用层传输层李太君林元乖等编著清华大学出版社三类端口•保留端口,所有小于1024以及大于1024的个别专用TCP服务器端口号码属于保留号码,并被IANA注册。它们基本上都被分配给了已知的应用协议项目端口号关键字应用协议UDP保留端口举例53DNS域名服务69TFTP简单文件传输协议161SNMP简单网络管理协议520RIPRIP路由选择协议TCP保留端口举例21FTP文件传输协议23Telnet虚拟终端协议25SMTP简单邮件传输协议53DNS域名服务80HTTP超文本传输协议119NNTP网络新闻传输协议李太君林元乖等编著清华大学出版社三类端口•动态分配的端口,动态分配的端口又称为本地分配,这种端口的端口号一般都大于1024,这一类的端口没有固定的使用者,它们可以被动态地分配给应用程序使用。•注册端口,注册端口比较特殊,它也是固定为某个应用服务的端口,但是它所代表的不是已经形成标准的应用层协议,而是某个软件厂商开发的应用程序。大多数注册端口的端口号大于1024李太君林元乖等编著清华大学出版社套接字(Socket)•TCP连接的端点叫做套接字(Socket)。根据RFC793的定义:端口号拼接到(contatenatedwith)IP地址就构成了套接字。•所谓套接字实际上是一个通信端点,每个套接字都有一个套接字序号,包括主机的IP地址与一个16位的主机端口号,即形如(主机IP地址:端口号)。例如,如果IP地址是210.37.145.1,而端口号是23,那么得到套接字就是(210.37.145.1:23)。李太君林元乖等编著清华大学出版社套接字(Socket)•套接字Socket=(IP地址:端口号),套接字的表示方法是点分十进制的IP地址后面写上端口号,中间用冒号或逗号隔开。每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。李太君林元乖等编著清华大学出版社套接字示意图程序A程序B基于TCP/IP的网络网络管理软件网络接口卡套接字套接字主机A主机B李太君林元乖等编著清华大学出版社三种套接字⑴流式套接字•它提供了一种可靠的、面向连接的双向数据传输服务,实现了数据无差错、无重复地发送。流式套接字内设流量控制,被传输的数据看作是无记录边界的字节流。李太君林元乖等编著清华大学出版社三种套接字⑵数据报套接字•它提供了一种无连接、不可靠的双向数据传输服务。数据包以独立的包形式被发送,并且保留了记录边界,不提供可靠性保证。数据在传输过程中可能会丢失或重复,并且不能保证在接收端的数据按发送顺序接收。李太君林元乖等编著清华大学出版社三种套接字⑶原始套接字•该套接字允许对较低层协议(如IP或ICMP)进行直接访问,常用于检验新的网络协议实现,也可用于测试新配置或安装的网络设备。李太君林元乖等编著清华大学出版社9.3UDP协议9.3.1UDP概述•UDP只在IP的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。•虽然UDP用户数据报只能提供不可靠的交付,但UDP在某些方面有其特殊的优点。李太君林元乖等编著清华大学出版社UDP的主要特点⑴UDP是无连接的,即发送数据之前不需要建立连接。⑵UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。⑶UDP是面向报文的,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。⑷UDP没有拥塞控制、所以网络出现的拥塞不会使源主机的发送速率降低。⑸UDP支持一对一、一对多和多对多的交互通信。⑹UDP的首部开销小,只有8个字节。李太君林元乖等编著清华大学出版社UDP是面向报文的IP数据报的数据部分IP首部IP层UDP首部UDP用户数据报的数据部分传输层应用层报文应用层李太君林元乖等编著清华大学出版社9.3.2UDP数据报的首部格式伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报李太君林元乖等编著清华大学出版社UDP基于端口的分用IP层UDP数据报到达端口2端口3端口1UDP分用李太君林元乖等编著清华大学出版社伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报用户数据报UDP有两个字段:数据字段和首部字段。首部字段有8个字节,由4个字段组成,每个字段都是两个字节。李太君林元乖等编著清华大学出版社伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报在计算检验和时,临时把“伪首部”和UDP用户数据报连接在一起。伪首部仅仅是为了计算检验和。李太君林

1 / 132
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功