五、传输层
从通信和信息处理的角度看,运输层向上提供通信服务,属于面向通信部分的最高层,同时也是用户功能中的最底层。
问题:我们知道IP协议能够把源主机A发送出的分组按照首部中的目的IP送交到目的主机B,那么为什么还需要运输层呢?
答:从IP层来说,通信的两端是两个主机。但真正进行通信的实体是在主机中的进程,IP协议虽然能讲分组送到主机,但这个分组还停留在网络层而没有交付主机中的应用进程。从运输层的角度看,通信的真正端点并不是主机,而是主机的进程。也就是说端到端通信是应用进程之间的通信。
网络层是为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。运输层还要对收到的报文进行差错检测。
5.1运输层的两个主要协议
1)用户数据报协议UDP(User Datagram Protocol)
2)传输控制协议TCP(Transmission Control Protocol)
5.2运输层的端口
应用层的所有应用进程都可以通过运输层再传送到IP层,这就是复用。
运输层从IP层收到数据报后必须交付给指明的应用进程,这叫做分用。
实现上述的方法就是在运输层使用协议端口号,通常称为端口。这就是说,虽然通信的重点是应用进程,但我们只要把传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即交付给目的进程)就由TCP完成。
TCP/IP的运输层用16位端口号来标志一个端口。值得注意的是,端口号只具有本地意义,它只是为了标志本计算机应用层中的各个进程在和运输层交互时的层间接口。在不同的计算机中,相同的端口号是没有关联的。16位的端口号可允许有65535个端口。
因此,两个计算机中的进程要相互通信,不仅需要知道对方的IP地址,还要知道对方的端口号。因特网上的计算机通信是采用客户-服务器方式。
运输层的端口号共分为以下两大类
1)服务器端使用的端口号
又称为系统端口号、熟知端口号,数值为0-1023。IANA把这些端口号指派给了TCP/IP最重要的一些应用程序,让所有的用户都知道。当一种新的应用程序出现后,必须给它指派一个熟知端口,否则因特网上的其他应用进程就无法和它进