欢迎来到天天文库
浏览记录
ID:9740283
大小:61.00 KB
页数:10页
时间:2018-05-07
《浅谈osi七层模型(三)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、浅谈OSI七层模型(三)~教育资源库 前文介绍了物理层、数据链路层、网络层,接着上文继续。 传输层:实现端到端的可靠传输。 传输单位:报 本层涉及的协议:1.TCP:传输控制协议,面向连接的可靠协议; 2.UDP:用户数据报协议,无连接的不可靠协议。 Inter在传输层有两种主要的协议:一种是面向连接的协议TCP,一种是无连接的协议UDP。由于UDP基本上是在IP的基础上增加一个短的报头而得到的,比较简单,因此本章将先介绍UDP,然后再重点介绍TCP。 在TCP/IP协议簇中,IP提供在主机之间传送数据报的能力,每个数据报根据其目
2、的主机的IP地址进行在Inter中的路由选择。传输层协议为应用层提供的是进程之间的通信服务。为了在给定的主机上能识别多个目的地址,同时允许多个应用程序在同一台主机上工作并能独立地进行数据报的发送和接收,TCP/UDP提供了应用程序之间传送数据报的基本机制,它们提供的协议端口能够区分一台机器上运行的多个程序。 也就是说,TCP/UDP使用IP地址标识网上主机,使用端口号来标识应用进程,即TCP/UDP用主机IP地址和为应用进程分配的端口号来标识应用进程。端口号是16位的无符号整数,TCP的端口号和UDP的端口号是两个独立的序列。尽管相互独立,如
3、果TCP和UDP同时提供某种知名服务,两个协议通常选择相同的端口号。这纯粹是为了使用方便,而不是协议本身的要求。利用端口号,一台主机上多个进程可以同时使用TCP/UDP提供的传输服务,并且这种通信是端到端的,它的数据由IP传递,但与IP数据报的传递路径无关。网络通信中用一个三元组可以在全局唯一标志一个应用进程: (协议,本地地址,本地端口号) 这样一个三元组,叫做一个半相关(half-association),它指定连接的每半部分。一个完整的网间进程通信需要由两个进程组成,并且只能使用同一种高层协议。也就是说,不可能通信的一端用TCP协议,
4、而另一端用UDP协议。因此一个完整的网间通信需要一个五元组来标识: (协议,本地地址,本地端口号,远地地址,远地端口号) 这样一个五元组,叫做一个相关(association),即两个协议相同的半相关才能组合成一个合适的相关,或完全指定组成一连接。 端口号的分配是一个重要问题。有两种基本分配方式:第一种叫全局分配,这是一种集中控制方式,由一个公认的中央机构根据用户需要进行统一分配,并将结果公布于众。第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回一个本地唯一的端口号,进程再通过合适的系统调用
5、将自己与该端口号联系起来(绑扎)。TCP/UDP端口号的分配中综合了上述两种方式。TCP/UDP将端口号分为两部分,少量的作为保留端口,以全局方式分配给服务进程。因此,每一个标准服务器都拥有一个全局公认的端口(即周知口,Protocol)是一个简单的面向数据报的传输层协议,进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。UDP不提供可靠性,它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地。应用程序必须关心IP数据报的长度。如果它超过网络的MTU,那么就要对IP数据报进行分片。RFC768[Post
6、el1980]是UDP的正式规范。 UDP报文格式:每个UDP报文成为一个用户数据报,分UDP报头和UDP数据区两部分。报头由四个16位长的字段组成,分别说明该报文的源端口、目的端口、报文长度以及校验和。UDP报文格式如下图所示: UDP源端口字段和目的端口字段包含了16位的UDP协议端口号,表示发送进程和接收进程。UDP长度字段指的是UDP报头和UDP数据的字节长度,该字段的最小值为8字节(发送一份0字节的UDP数据报是可以的)。UDP检验和覆盖UDP报头和UDP数据。UDP和TCP在报头中都有覆盖它们报头和数据的检验和。UDP的检验和是
7、可选的,如果该字段值为0表明不进行校验。一般来说,使用校验和字段是必要的。 传输控制协议TCP TCP(TransferControlProtocol)是专门设计用于在不可靠的Inter上提供可靠的、端到端的字节流通信的协议。Inter不同于一个单独的网络,不同部分可能具有不同的拓扑结构、带宽、延迟、分组大小以及其它特性。TCP被设计成能动态满足Inter的要求,并且足以健壮地面对多种出错。RFC793[Postel1981]是TCP的正式规范。123下一页友情提醒:,特别! UDP提供的服务是不可靠的数据传送服务,当传送过程中出现差错、
8、网络软件发生故障或网络负载太重时,分组可能会丢失,数据可能被破坏。这就需要应用程序负责进行差错检测和恢复工作,对传输数据量很大的应用来说,采用这种不可
此文档下载收益归作者所有