从运输层说起
这两个协议同属于运输层。运输层提供的是应用进程间的逻辑通信。
交互地址是(软件)端口
UDP(用户数据报协议)
不可靠通信
- UDP是无连接的。减少了开销和发送时延;
- UDP使用尽最大努力交付,不保证可靠的交付;
- UDP是面向报文的。不论应用层给多长的报文,保留这些报文的边界,照样发送,一次一个;
- UDP没有阻塞控制;
- UDP支持一对一,一对多,多对一,多对多的交互通信;
- UDP首部开销小。(8字节。TCP至少20字节)
TCP(传输控制协议)
提供面向连接服务,相当于全双工可靠信道
- TCP协议使用前必须建立TCP连接,传输结束必须释放已经建立的连接;
- 每个连接只能有两个端点,点对点连接;
- TCP提供可靠交付服务,无差错,不丢失,不重复,按序到达;
- 全双工通信,两端均接受和发送缓存;
- 面向字节流,TCP把应用交下来的数据仅看作一连串无结构的字节流,收发相同,接收方自己有能力还原。
- TCP的端点叫套接字。组成为 (IP地址 : 端口号) 。