目录~
5.1 运输层协议概述
5.1.1 进程之间的通信
从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都用到下三层功能。
1. 运输层的作用
TCP与UDP:根据应用程序的不同需求,运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP 。
2. 网络层和运输层有明显的区别
3. 屏蔽作用
5.1.2 运输层的两个主要协议
1. TCP 与 UDP
2. 运输层的作用
基于端口的复用和分用功能
5.1.3 运输层的端口
需要解决的问题:由于进程的创建和撤销都是动态的,发送方几乎无法识别其他机器上的进程。 有时我们会改换接收报文的进程,但并不需要通知所有发送方。 我们往往需要利用目的主机提供的功能来识别终点,而不需要知道实现这个功能的进程。
1. 端口号 (protocol port number)
2. TCP/IP 运输层端口
端口用一个 16 位端口号进行标志。 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。 在互联网中,不同计算机的相同端口号是没有联系的。
由此可见,两个计算机中的进程要互相通信,不仅必须知道对方的 IP 地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)。
两大类端口:
5.2 用户数据报协议 UDP
5.2.1 UDP 概述
UDP 只在 IP 的数据报服务之上增加了很少一点的功能: 复用和分用的功能、差错检测的功能
虽然 UDP 用户数据报只能提供不可靠的交付,但 UDP 在某些方面有其特殊的优点。
1. UDP的主要特点
2. 面向报文的 UDP
应用程序必须选择合适大小的报文。
若报文太长 UDP 把它交给 IP 层后,IP 层在传送时可能要进行分片,这会降低 IP 层的效率。
若报文太短 UDP 把它交给 IP 层后,会使 IP 数据报的首部相对长度太大,这也降低了 IP 层的效率
5.2.2 UDP 的首部格式
在计算检验和时,临时把“伪首部”和 UDP 用户数据报连接在一起,伪首部是为了计算检验和。
1. 计算 UDP 检验和的例子
2. UDP 基于端口的分用
5.3 传输控制协议 TCP 概述
5.3.1 TCP 最主要的特点
1. TCP 面向流的概念
注意:TCP 连接是一条虚连接而不是一条真正的物理连接。 TCP 对应用进程一次把多长的报文发送到TCP 的缓存中是不关心的。 TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节
UDP是面向什么的? UDP 发送的报文长度是应用进程给出的 TCP 可把太长的数据块划分短一些再传送。 TCP 也可等待积累有足够多的字节后再构成报文段发送出去。
5.3.2 TCP 的连接
1. TCP 连接,IP 地址,套接字
课程回顾:
网络层提供的是( 主机 )之间的通信,运输层提供的是( 进程)什么之间的通信?
运输层的端口的作用是什么?(标识应用进程)多少位?(16)
UDP是面向( 报文 )的,TCP是面向( 字节流 )的
5.4 可靠传输的工作原理
从物理层和数据链路层考虑哪种情况会导致信道出现数据的丢失?
从网络层考虑哪种情况会导致信道出现数据的丢失?
5.4.1 停止等待协议
1. 无差错情况
2. 出现差错
如何保证 B 正确收到了 M1 呢?
解决方法:超时重传 A 为每一个已发送的分组都设置了一个超时计时器。 A 只要在超时计时器到期之前收到了相应的确认,就撤销该超时计时器,继续发送下一个分组 M2 。
3. 确认丢失和确认迟到
4. 停止等待协议
5. 信道利用率
6. 例题
7. 流水线传输
5.4.2 连续 ARQ 协议
1. 累积确认
2. Go-back-N(回退 N)
3. 连续ARQ协议维持的帧序号变化情况
采用连续ARQ协议双向通信的每一端都必须设有两个窗口 :一个发送窗口和一个接收窗口。这四个窗口经常处于动态变化之中。
帧序号 :NS—发送序号 、NR—确认号(接收序号)期望收到的对方发出的分组的发送序号
滑动窗口协议是计算机网络中最著名的算法。它有三个不同的功能。