一:传输层概述
传输层功能:完成主机进程-主机进程之间的报文传输。
传输层是真正的端对端的通信:
传输层协议在端主机上运行,路由器一般没有传输层。
传输层从主机层面上对网络层采取相应补救措施,可以提供更高质量的数据传输能力。
传输层独立于网络设备,可以提供标准的传输服务接口(原语)。
传输层地位:位于网络体系结构的中间,作为数据通信和数据处理的分水岭,具有承上启下的作用。
进程之间的通信:
IP协议虽然能把分组交给目的主机,但是这个分组还停留在目的主机的网络层而没有交付给主机中的应用进程。
严格来讲,两个主机进行通信实际上就是两个主机中的应用进程互相通信,应用进程之间的通信又称为端到端的通信。
二:传输服务质量
网络服务与服务质量
服务是计算机网络中一个非常重要的概念,它描述了计算机网络体系结构中相邻层之间的关系。
在计算机网络层次结构中。N层总是利用N-1层所提供的服务,向N+1层提供更加完善和更高质量的服务。
在网络层次结构的每一层上都有服务质量的问题
在物理层,提供的原始比特流传输有速度高低、误码率高低之分;
在数据链路层,所提供的相邻节点间的帧传输服务传输速率、可靠性;
在网络层,多跳的数据传输;源到目标的分组传输根据通信子网的不同被分成了虚电路与数据报服务。
在计算机网络中,人们通常将这种服务质量简称为QoS(Quality of Service)
从网络传输质量的角度:
TCP/IP的网络层是一个典型的提供无连接“尽力而为”的不可靠服务,IP分组在传输过程中可能会出现丢包、乱序或重复等问题,需要在网络层之上增加一个层次来弥补网络层所提供的服务质量的不足,以便为高层提供可靠的端到端通信。
网络层及以下部分是由通信子网来完成的,由于历史及经济原因,通信子网往往是公用数据网,是资源子网中的端用户所不能直接控制的,用户不可能通过更换性能更好的路由器或增强数据链路层的纠错能力来提高网络层的服务质量,因此端用户只能依靠在自己主机上所增加的传输层来检测分组的丢失或数据的残缺并采取相应的补救措施。
传输层引入的新概念与新机制:
一系列实现端到端进程之间的可靠数据传输所必需的机制,包括:
面向连接服务的建立机制,即能够为高层数据的传输建立、维护与拆除传输连接,以实现透明的、可靠的端到端的传输;
端到端的错误恢复与流量控制,以能对网络层出现的丢包、乱序或重复等问题做出反应。
传输层与网络层最大的区别是传输层提供进程通信能力。为了标识相互通信的网络进程,IP网络通信的最终地址不仅要包括主机的IP地址,还要包括可描述网络进程的某种标识。因此,无论是TCP还UDP,都必须首先解决进程的标识问题。
网络进程标识。在单机上,为了区别不同的进程,采用进程标识或进程号(Process ID)来唯一地标识进程。即在网络环境中,完整的进程标识需要这样的一种形式:源主机地址+源进程标识,目标主机地址+目标进程标识。
端口号在TCP/IP传输层的作用类似IP地址在网络层的作用或MAC地址在数据链路层的作用
IP地址是主机的逻辑标识
MAC地址是主机的物理标识
端口号是网络应用进程的一种逻辑标识
由于同一时刻一台主机上可以有大量的网络应用进程在运行,因此需要有多个不同的端口号来对进程进行标识
端口号有两种基本分配方式,即全局分配和本地分配方式
全局分配是指由一个公认权威的机构根据用户需要进行统一分配,并将结果公布于众,因此这是一种集中分配方式
本地分配是指当进程需要访问传输层服务时,向本地系统提出申请,系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口绑定起来,因此是一种动态连接方式
实际的TCP/IP端口号分配综合了以上两种方式,由Internet赋号管理局(IANA)将端口号分为著名端口(well—known ports)、注册端口和临时端口3个部分:
(1)著名端口号:取值为0~1023,由IANA统一分配和控制,被规定作为公共应用服务的端口,如WWW、FTP、DNS、NFS和电子邮件服务等。
(2)注册端口号:取值为1024~49151,这部分端口被保留用作商业性的应用开发,如一些网络设备厂商专用协议的通信端口等。厂商或用户可根据需要向IANA进行注册,以防止重复。
(3)临时端口号:取值为49152~65535,这部分端口未做限定,由本地主机自行进行分配,因此又被称为自由端口
传输地址:
传输地址唯一地标识主机进程
传输地址=网络号+主机号+端口号,端口号用来标识应用进程
在IP网络,传输地址= IP地址+端口号