# 第三章 传输层
![630760a46851b36a77844e67e601f34a.png](https://i-blog.csdnimg.cn/blog_migrate/d08dc0429cda595b23fff6b3bdfeff5b.jpeg)
![transport](./img/transport.png)
一,传输层的基本服务
1. 传输层功能
传输层的核心人物是为<font color = 'red'>应用进程之间提供端到端</font>的逻辑通信服务。只有主机才有传输层;网络核心中的路由器点等只用到下三层的功能。
1. 传输层寻址
2. 对应用层报文进行分段和重组
3. 对报文进行差错检测
4. 实现进程间的端到端
5. 面向应用层实现复用与分解
6. 实现端到端的流量控制
7. 拥塞控制
2. 传输层寻址与端口
TCP/IP体系结构网络的解决方法就是在传输层使用协议端口号,通常简称为端口(port),在在全网范围内利用<font color='red'>“IP 地址+端口号”</font>唯一标识一个通信端点!
应用层和传输层抽象的需要端口是<font color='red'>软件端口</font>
传输层端口号为16位整数,可以编号65536个(2的16次方)
|0--1023|熟知端口号||
|:---:|:---:|:---:|
|1024-49151|登记端口号|
|49152-65534|客户端口号,或短暂端口号)|
端口号小于256的端口为常用端口
传输层端口号:
1、服务器端使用的端口号:熟知端口号和登记端口号
例如FTP服务器默认端口号21,HTTP服务器默认端口号是80等;
2、客户端使用的端口号:临时性,在客户进程运行是由操作系统随机选取唯一未被使用的端口号。
3. 无连接服务与面向连接服务
|无连接服务|面向连接服务|
|:---:|:---:|
|数据传输之前无需与对端进行任何信息交换,直接构造传输层报文段并向接受端发送|在数据传输之前,需要双方交换一些控制信息,建立逻辑连接,然后再传输数据,传输结束后还需要拆除连接|
|类似于信件通信|类似于电话通信|
二,传输层的复用与分解
1. 复用与分解
支持从多应用进程共用同一个传输层协议,并能够将接收到的数据准确交付给不同的应用进程,是传输层需要实现的一项基本功能,称为传输层的多路复用与多路分解,简称为复用与分解,也称为为复用与分用。
<font color='red'>多路复用:</font>在源主机,传输层协议从不同的套接字收集应用进程发送的数据块,并为每个数据块封装上首部信息(包括用于分解的信息)构成报文段,然后将报文段传递给网络层。
<font color='red'>多路分解:</font>在接收端,传输层协议读取报文段中的这些字段,标识出接收套接字,进而通过该套接字,将传输层的报文段中的数据交付给正确的套接字。
2. 无连接的多路复用与多路分解
Internet传输层提供无连接服务的传输层协议是UDP.
UDP将应用层的数据块封装成一个UDP报文段,其中包括应用数据,源端口号,目的端口号等。
UDP套接字二元组:<目的IP地址,目的端口号>
如果目的端口号一样
3. 面向连接的多路复用与多路分解
Internet传输层提供面向连接服务的是TCP。
TCP套接字是一个四元组:<源IP地址,源端口号,目的IP地址,目的端口号>
如果源IP地址不一样,但是目的IP地址和目的端口号都一样?
|UDP|TCP|
|:---:|:---:|
|基于目的IP地址和目的端口号二元组唯一标识一个UDP套接字|基于源IP地址、目的IP地址、源端口号、目的端口号四元组唯一标识一个TCP套接字|
三, 停-等需要与滑动窗口协议
1. 可靠数据传输基本原理
基于不可靠信道实现可靠数据传输采取的五种措施:
<font color='red'>差错检测:</font>利用差错编码实现数据包传输过程中的比特差错检测。
<font color='red'>确认:</font>接收方向发送方反馈接收状态。ACK(肯定确认);NAK(否定确认)
<font color='red'>重传:</font>发送方重新发送接收方没有正确接收的数据。
<font color='red'>序号:</font>确保数据按序提交。
<font color='red'>计时器:</font>解决数据丢失问题。
2. 停-等协议
停-等协议工作流程
3.滑动窗口协议
![f0966e67607781019599cd3f566e386a.png](https://i-blog.csdnimg.cn/blog_migrate/a7dade7731a089317b17501280473129.jpeg)
![win](./img/win.png)
1)GBN协议(Go-Back-N):发送窗口较大,但接受窗口仅为1。未按序到达的数据都需要重传
2)SR协议(Selective Repeat):接收窗口大于1,仅要求发送方重传被接收方确认的分组