运输层概述:
运输层向应用层提供通信服务,属于面向通信部分的最高层,同时也是用户功能中的最低层。
当网络的边缘部分中的两个主机使用网络核心部分的功能进行端到端的通信时,只有主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。
网络层为主机之间的通信提供服务。
运输层为应用层进程之间通信提供服务。
屏蔽作用:运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、路由选择协议),使应用进程看到的好像在两个进程之间有一条端到端的逻辑通信信道。
运输层的两个协议:
用户数据报协议UDP:不可靠信道
传输控制协议TCP:全双工的可靠信道
运输协议数据单元:
TPDU两个对等实体在通信时传送的数据单位。
TCP数据单位是TCP报文段。
UDP数据单位为UDP数据报。
UDP与TCP区别:
UDP传输数据之前不需要先建立连接,不提供可靠交付,收到UDP报后,不需要给出确认。
TCP提供可靠的、面向连接的服务,不提供广播或多播服务。
运输层的端口:
运输层的复用和分用:
应用进程可以通过运输层传送到IP层;运输层从IP层收到发送给应用进程的数据后,交付给指明的各应用进程。
端口是用来标志进程的。两个计算机中的进程要互相通信,不仅要知道对方的IP地址,还需要知道对方的端口号。
端口是协议端口号,软件端口,和路由器或交换机上的硬件端口是不同的概念。
硬件端口是不同硬件设备进行交互的端口,和路由器或交换机上的硬件端口是完全不同的概念。硬件端口是不同硬件设备进行交互的端口,而软件端口是应用层各种协议进程与运输实体进行交互的一种地址。
不同的系统,具体实现端口的方法不同。
用一个16位端口号来标志一个端口,共65535个不同的端口。但端口号只有本地意义,它只是为了标志计算机应用层中各个进程在和运输层交互时的层间接口。在互联网中不同的计算机中,相同的端口号没有关联。
端口号的种类:
系统端口号(0~1023):指派给TCP/IP最重要的应用程序,让所有用户都知道
登记端口号(1024~49151):为没有熟知端口号的应用程序使用。使用这类端口必须登记,以防止重复
短暂端口号(49152~65535):仅在客户进程运行时才动态选择,是留给客户进程暂时使用。
常见端口号:
RPC:111、FTP:21,20、TELNET:23、SMTP:25、DNS:53,TFTP:69、HTTP:80