zhouqijie

运输层概述

1、进程间通信

从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能的最低层

当网络的边缘部分的两台主机使用网络核心部分的功能进行端对端通信时,只有主机的协议栈才有运输层,网络核心部分的路由器在转发分组时最高只用到网络层。

从运输层的角度看,通信的真正端点并不是主机而是主机中的进程。也就是说端对端通信是应用进程之间的通信。

运输层向高层用户屏蔽了下面网络核心的细节(网络拓扑、路由选择协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端对端的逻辑通信信道。(网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端逻辑通信)

运输层还要对收到的报文进行差错检测。而在网络层,IP数据报首部的检验和字段,只检验首部是否出现差错而不检测数据部分。

根据应用程序不同需求,运输层需要有两种不同的运输协议:面向连接的TCP无连接的UDP。当采用面向连接的TCP时,尽管下面的网络是不可靠的,但是这种逻辑通信信道就相当于一条全双工的可靠信道。当运输层采用UDP时,这种逻辑通信信道仍然是一条不可靠信道



2、运输层的两个协议

运输层的TCP协议和UDP协议都是互联网正式标准。

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

  1. 用户数据报协议(User Datagram Protocol, UDP)
  2. 传输控制协议(Transmission Control Protocol, TCP)

TCP和UDP的运输协议数据单元TPDU分别称之为TCP报文段(segment)UDP用户数据报

UDP在传输数据之前不需要先建立连接,远程主机收到报文后不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP却是最有效的工作方式。

TCP提供面向连接的服务。在传输数据前必须先建立连接数据传输结束后要释放连接。TCP不提供多播服务。由于TCP要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多开销。

应用 应用层协议 运输层协议
名字转换 DNS(域名系统) UDP
文件传送 TFTP(简单文件传送协议) UDP
路由选择协议 RIP(路由信息协议) UDP
IP地址配置 DHCP(动态主机配置协议) UDP
网络管理 SNMP(简单网络管理协议) UDP
远程文件服务器 NFS(网络文件系统) UDP
IP电话 专用协议 UDP
流式多媒体通信 专用协议 UDP
多播 IGMP(网络组管理协议) UDP
电子邮件 SMTP(简单邮件传送协议) TCP
远程终端输入 TELNET(远程终端协议) TCP
万维网 HTTP(超文本传输协议) TCP
文件传送 FTP(文件传送协议) TCP



3、运输层的端口

应用层所有的应用进程都可以通过运输层再送到网络层,这就是复用。运输层从IP层收到发送给各应用进程的数据后,必须分别交付指明的各应用进程,这就是分用。显然,给应用层每一个应用进程都赋予一个非常明确的标志至关重要

单个计算机中的进程是用进程标识符来标识的。但是在互联网环境下,用进程标识符来标识运行在应用层的各种应用进程是不可行的,因为互联网上使用的计算机操作系统种类很多,不同操作系统都有不同的进程标识符。

解决方法就是在运输层使用协议端口号(protocol port number),简称端口(port)。只要把所传送的报文交到目的主机的某个合适的目的端口,剩下工作(交付目的进程)就交给TCP或UDP完成。

协议端口是软件端口,和路由器或交换机上的硬件端口是完全不同的概念。

端口号只具有本地意义,不同计算机中相同的端口没有任何关联。

TCP/IP运输层用16位的端口号标识一个端口,可允许有65535个不同端口。

服务器端使用的端口号

服务器端口又可分为熟知端口号(系统端口号)登记端口号

熟知端口号熟知为0~1023。IANA把这些端口号指派给了TCP/IP最重要的一些应用程序,让所有用户都知道。
|应用程序|FTP|TELNET|SMTP|DNS|TFTP|HTTP|SNMP|SNMP(trap)|HTTPS| |-|-|-|-|-|-|-|-|-|-| |熟知端口号|21|23|25|53|69|80|161|162|443|

登记端口号数值为1024~49151.这类端口是为没有熟知端口号的应用程序使用的。使用这类端口号必须在IANA按照规定的手续登记。

客户端使用的端口号

客户端端口数值为49152~65535。由于这类端口号仅在客户进程运行时才动态选择,因此又叫做短暂端口号。

(END)