我们是主张自力更生的。我们希望有外援,但是我们不能依赖它,我们依靠自己的努力,依靠全体军民的创造力。
《必须学会做经济工作》(一九四五年一月十日),《毛泽东选集》第三卷第一零一五页
运输层
运输层协议概述
- 运输层向上层应用提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中最底层。
- 当网络的边缘部分中的两个主机使用网络的核心部分功能进行通信时,只有位于网络边缘的主机的协议栈才有运输层
简言之在网络核心的路由器是没有网络层以上的分层的

运输层负责两台主机间进程的通信,而网络层只是负责数据能在两个主机之间进行传递
运输层的作用
- 在一个主机中经常会有多个应用进程同时分别和另一台主机中的多个应用进程进行通信。
- 这表明运输层有一个很重要的功能——复用和分用

- 运输层协议分两大类:TCP和UDP
- 屏蔽作用:运输层向高层屏蔽了底层网络核心的细节使得进程看见的好像只有两个运输层实体在通信。
两种不同的运输协议
- 运输层采取面向连接诶的TCP协议时,尽管下层不可靠,但是TCP的逻辑通信相当于一条可靠的全双工通信信道。
- 当运输层使用UDP进行通信时这种逻辑信道同样是不可靠的。

运输层的端口
为解决很难知道进程的端口号的问题,网络中采取在运输层使用协议端口号,常称为端口。

软件端口和硬件端口
- 软件端口:在协议栈层间的抽象协议端口
- 硬件端口:在路由器或者交换机上的端口
- 软件端口是应用层的各种协议进程、运输实体进行层间交互的一种地址
两大类端口号:
- 服务器使用的端口号
- 熟知端口:一般在0~1023
- 登记端口号:1023~49151,为没有熟知端口号的应用程序适用。使用这个范围的端口号必须在IANA登记
- 客户端使用的端口号
- 又称短暂端口号,留给客户进程选择暂时使用
- 客户进程动态适用进程端口,通信结束后这个端口号可以供其他客户端程序使用

用户数据报协议UDP
UDP概述
- UDP指在IP数据报服务上增加很少一点功能:
- 复用和分用
- 差错检测功能
- UDP不具备可靠交付
UDP主要特点
- 无链接减少开销和发送数据前的时延
- 尽最大努力交付,不需要复杂的数据链路表
- UDP面向报文,即不合并,也不拆分保留报文边界
- UDP没有用塞控制机制,很适合某些实时应用的需求。
- 支持一对一、一对多、多对多、多对一的交互通信
- UDP首部长度只有8个字节
面向报文
- 每次交付一个完整的报文。应用进程应该选择和是大小的报文、报文太常或太短都会降低IP层的效率

在计算检验和时,临时把伪首部和UDP用户数据报连接在一起,伪首部仅仅为了计算检验和

UDP首部格式

UDP基于端口的复用
