运输层TCP/IP体系协议(TCP|UDP)(一)

    TCP和UDP是TCP/IP体系中,运输层最终要的两种协议。在介绍这两种协议之前,先介绍一下端口的概念。

    从IP层面来说,通信的两端是主机。IP数据报的首部明确表明了发送放和接受放的IP地址,但是,真正通信的实体是两个主机之间的进程,是一个主机中的进程跟另外一个主机中的进程在交换数据,端到端的通信是应用进程之间的通信。在单个计算机中,进程被进程标识符所表示,但是在因特网中的使用的操作系统种类很多,不同的操作系统有不同的进程标识符。

    而且进程的创建和撤销都是动态的,通信的一方几乎无法识别出进程,而且,我们往往也只需要知道目的主机所能提供的功能来识别连接终点,比如web服务器,我们无需知道具体知道是哪一个进程提供的功能。在因特网环境下,为了解决怎么样识别连接终点的问题,在运输层中使用了协议端口号。简称端口。也就是说,虽然通信的终点是进程,但是只需要把传送的报文发送到计算机的某一个端口,剩下的工作由tcp协议来完成就可以。

    在这里注意一下,这种在协议栈层间的抽象的协议端口是软件端口,路由器交换机上的硬件端口是两个不同的概念,硬件端口是不同硬件设备进行交互的接口,而软件接口是应用层的各种协议进程与运输实体进行层间交互的一种地址。不同的系统具体实现端口的方法可以是不同的。

    端口号只有本地意义。它只是为了计算机本地计算机应用层中的各个进程在和运输层交互是的一个接口。在不同的计算机中相同的端口号是没有关联的。

TCP/IP运输层用一个16位端口号来标志一个端口。算上0在一个计算机中可以有65536个不同的端口号。

因特网网上的计算机之间通信采用客户端、服务器方式。客户端发起通信请求时。必须先知道服务器的IP地址和端口号因此运输层间的端口号又分为以下两大类。

  1. 服务端使用的端口号,在这里面有分了两类,一类叫做熟知端口号,或者系统端口号,数值为0-1023,这些端口号都是TCP/IP最重要的一些应用程序。需要让所有用户知道。比如HTTP端口80,FTP端口21。另一类叫做登记端口号  数据为1024-49151这类端口号是为没有熟知端口号的应用程序使用的,在使用个这些端口号之前必须在LANA按照规定的手续登记,以防止重复。
  2. 客户端使用的端口号。  数值为49152 -65535 。由于这类端口号仅在客户进程运行时才动态选择,因此叫做短暂端口号。留给客户进程选择暂时使用的,放服务器进程收到客户进程的报文时,就知道了客户进程所使用的端口号,可以把数据发送到客户进程,通信结束后该端口号还可以共其他继承使用。

运输层的两个重要协议

TCP/IP运输层的两个主要协议都是因特网的正式标准

  1. 用户数据报协议UDP
  2. 传输控制协议TCP

    按照OSI的术语,两个对等运输实体在通信是传送的数据单位叫做运输协议数据单元 TPDU  ,但在TCP/IP体系中。根据所属的协议不同,叫法也不同,在TCP协议中,称其为TCP报文段,早UDP协议中,称其为UDP用户数据报。

    UDP早传送之前不需要先建立连接,接受主机的运输层在接受到UDP报文后,不需要给出任何的确认。  TCP则提供面向连接的服务。在传送数据前必须先建立连接,数据传送结束后要释放链接。也不提供广播或者多播服务。

    使用UDP的应用有,名字转换(域名系统):应用层协议是DNS、文件传送:协议是TFTP(后面还有一个FTP)、IP地址配置协议是DHCP、在聊天工具中常见的视频通话语音通话使用的是专用协议等。

    使用TCP的应用有,电子邮件协议是SMTP、远程终端接入协议是TELNET 、万维网协议是http、文件传动FTP等。

    下一篇会正式介绍TCP与UDP协议。

 

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页