一、进程之间的通信
从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。
从这里可以看出网络层和运输层有明显的区别。网络层是为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信
二、运输层的两个主要协议
- 用户数据报协议UDP (User Datagram Protocol)
- 传输控制协议TCP(Transmission Control Protocol)
三、运输层的端口
a.由来
两个计算机中的进程要互相通信,不仅必须知道对方的IP地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)。这和我们寄信的过程类似。当我们要给某人写信时,就必须知道他的通信地址。在信封上还写明自己的地址。当收信人回信时,很容易在信封上找到发信人的地址。因特网上的计算机通信是采用客户-服务器方式。客户在发起通信请求时,必须先知道对方服务器的IP地址和端口号,TCP/IP的运输层用一个16位端口号来标志一个端口,16位的端口号可允许有65 535个不同的端口号。
b.分类
-
服务器端使用的端口号
最重要的一类叫做熟知端口号(well-known portnumber)或系统端口号,数值为0~1023。这些数值可在网址www.iana.org查到。IANA把这些端口号指派给了TCP/IP最重要的一些应用程序,让所有的用户都知道。另一类叫做登记端口号,数值为1024~49151。这类端口号是为没有熟知端口号的应用程序使用的。使用这类端口号必须在IANA按照规定的手续登记,以防止重复。
-
客户端使用的端口号
数值为49152~65535。由于这类端口号仅在客户进程运行时才动态选择,因此又叫做短暂端口号。这类端口号是留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的端口号,因而可以把数据发送给客户进程。通信结束后,刚才已使用过的客户端口号就不复存在,这个端口号就可以供其他客户进程使用。