文章目录
传输层的功能
从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
网络层:ip协议的作用范围,提供主机之间的逻辑通信
TCP和UDP协议的作用范围(提供进程之间的逻辑通信),同时还对接受到的包报文经行差错检测,运输层提供面向连接和无连接的服务。
UDP和TCP协议
用户数据报协议UDP
-
UDP传送的协议数据单元是UDP报文或用户数据包
-
UDP在传送数据之前不需要先建立连接。对方的运输层在收到UDP报文后,不需要给出任何确认。显然UDP不提供可靠的交付,但是某些情况下UDP是一种有效的工作方式。
-
UDP是无连接的,即发送数据之前不需要建立连接。
-
UDP使用尽最大努力交付,不保证可靠交付,同时也不是用拥塞控制
-
UDP是面向报文的。UDP没有拥塞控制,很适合多媒体通信的要求
-
UDP支持一对一,一对多,多对一和多对多的交互通信
-
UDP的首部开销小,只有8个字节。
-
UDP无状态连接,TCP需要在端系统中维护连接状态,连接状态包括接收和发送缓冲,拥塞控制参数以及序号和确认号的参数,在UDP中没有这些参数,也没有发送缓存和接受缓存。因此,某些专门用于某种特定应用的服务器当应用程序运行在UDP上,一般能支持更多的活跃用户。
-
这里需要注意一点,并不是所有使用UDP协议的应用层都是不可靠的,应用程序可以自己实现可靠的数据传输,并通过确认和重传机制。所以使用UDP协议最大的特点就是速度快
-
UDP不可靠的原因它虽然提供差错检测的功能,但是对差错没有恢复能力更加不会有重传机制。
传输控制协议TCP
- TCP传输的数据单元是TCP报文段。
- TCP是面向连接的运输层协议。
- 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的,TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口,TCP连接的端点叫做套接字(端口号拼接到IP地址构成了套接字)。
- TCP提供可靠交互的服务,有丢失重传机制,下面会简述,TCP提供全双工通信,面向字节流。
- TCP提供面向连接的服务。由于TCP要提供可靠的,面向连接的运输服务,如丢失重传,流量控制,拥塞重传,因此会不可避免的增加很多开销,这不仅会让数据单元的首部增加很多,还要占用很多处理机资源。
- TCP的端口,端口用一个16位端口号进行标志。端口号只具有本地意义。即端口号只是为了标志计算机中应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。
- TCP只能进行点对点连接,也就是所谓的多播,即一个主机对多个接收方发送消息的情况是不存在的,TCP连接只能连接两个一对主机。
TCP可靠通信的实现
可靠传输的工作原理---- 停止等待协议
在发送完一个分组后,必须暂时保留已经发送的分组的副本,分组和确认分组都必须经行编号,超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些。
使用上述的确认和重传机制,就可以在不可靠的传输网络上实现可靠传输了。这种可靠传输协议被称为自动重传请求ARQ(Automatic Repeat reQuest)。
ARQ表明重传是自动经行的,接收方不需要请求放发送方重传某个出错的分组。
这种停止的等待优点是简单,但是确定是信道利用率太低。所以出现了连续ARQ协议。
接收方一般采用累计确认的方式。
优点是:容易实现,即使确认丢失也不必重传
缺点是:不能向发送方反应出接收方已经正确收到所有分组的信息。