只要我够快,时间就追不上我
运输层协议概述
运输层为应用进程之间提供端到端的逻辑通信
进程之间的通信
- 两台主机进行通信就是两台主机中的应用进程互相通信
- 网络层和运输层有明显的区别:网络层是为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。
- 运输层向高层用户屏蔽了下面网络核心的细节,它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道
- 运输层下面的网络是不可靠的(只提供尽最大努力服务),这条逻辑通信信道相当于一条全双工的可靠信道。
- 运输层作用:
- 在一台主机中经常有多个应用进程同时分别和另一台主机中的多个应用进程通信
- 这表明运输层有一个很重要的功能——复用 (multiplexing)和分用 (demultiplexing)
- 根据应用程序的不同需求,运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP
- 两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)
- 端口是为了解决OS种类过多,无法锁定进程而诞生的
用户数据报协议UDP
UDP概述
- 非常简单,首部开销小只有复用/分用和差错检错功能
- 高效但不可靠交付(如视频传输)
- 单播,广播,多播
- 没有拥塞控制
- 面向报文而不是面向连接
UDP首部格式
- 长度最小值是2+2+2+2=8(只有首部而无伪首部)
- 计算检验和的时候,要在UDP用户数据报之前增加12个字节的伪首部(仅仅是为了计算检验和)
- UDP的检验和是把首部和数据部分一起都检验
传输控制协议TCP概述
TCP最主要的特点
- TCP是面向连接的运输层协议
- 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的(一对一)
- 提供可靠交付的服务
- 提供全双工通信
- 面向字节流
- “流”指的是流入到进程或从进程流出的字节序列
- “面向字节流”:虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流
- 注意