Chapter5 运输层(一)
解决对方在何处的问题
负责主机中两个进程之间的通信,提供有效,可靠,保证质量的服务。
- 为应用程序提供复用网络的能力(端口和套接字)
- 提供可靠的信息传输(连接管理,可靠传输,流量控制,拥塞控制)
数据链路层:提供相邻节点之间的逻辑通道
网络层:提供主机到主机之间的逻辑通道
运输层:提供进程到进程之间的逻辑通道
进程和进程之间的通信又称为端到端的通信。
运输层的重要功能是复用和分用。应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。
IP协议提供主机之间的逻辑通信。
TCP和UDP协议提供进程之间的逻辑通信。
UDP在传送数据之前不需要先建立连接。对方收到UDP报文后,不需要给出任何确认。
TCP提供可靠的面向连接的服务。开销较大,使得协议数据单元的首部增大很多,还要占用处理机资源。
运输协议数据单元(TPDU)
TCP传送TCP报文段
UDP传送UDP报文段或用户数据报
当运输层采用面向连接的TCP协议时,尽管下面的网络不可靠,但这种逻辑通信信道就相当于一条全双工的可靠信道。
采用UDP时,逻辑通信信道不可靠。
端口(协议端口号)
把端口想象成通信的终点,我们只要把传送的报文交到目的主机的一个合适的目的端口,剩下的工作交给TCP完成。
端口用一个16位端口号标志
端口号只具有本地意义,只是为了标志本计算机应用层中的各进程,因特网中不同计算机的相同端口号是没有联系的。
UDP
只是在IP的数据报服务之上增加了很少功能,及端口和差错检测。
无连接。发送数据前不需要建立连接
使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制,很适合多媒体通信的要求。
是面向报文的。
支持一对一,一对多,多对一和多对多的交互通信。
首部开销小,只有8个字节。
TCP概述
TCP是面向连接的运输层协议。
每一条TCP连接只能由两个端点,每一条TCP连接只能是点对点的。
TCP提供可靠交付的服务。
TCP提供全双工通信。
面向字节流。
TCP建立一条虚连接而不是真正的物理连接。
TCP根据对方给出的窗口值和当前网络拥塞程度来决定一个报文段应该包含多少个字节。
TCP可把太长的数据块划分短一些再传送,也可以等待积累有足够多的字节后再构成报文段发送出去。
TCP对进程一次把多长的报文发送到TCP的缓存中是不关心的。
TCP的连接是最基本的抽象。每一条TCP连接有两个端点,TCP连接的端点是套接字(socket)。
socket = IP地址 + 端口号
同一个IP地址有不同的TCP连接,同一个端口号也可出现在不同的TCP连接中。
TCP连接 = socket1 + socket2