运输层解决的是进程之间的逻辑通信问题
两个主机进行通信归根结底是两个主机中的应用程序互相通信,又称为“端到端的通信”
端口
运行在计算机中的进程是用进程标识符来标志的。但不同的操作系统标识进程的方法不统一,因特网重新以统一的方法对TCP/IP体系中的应用进程进行标识。
这个标识符的名字叫“协议端口号”(protocol port number),简称“端口”(port)。
端口用一个16位端口号进行标志。
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在互联网中不同计算机的相同端口号不一定表示的是相同进程。
端口号0-1023为熟知端口,由服务器端使用,例如21、80端口。
端口号1024-49151为登记端口,由服务器端使用,例如1433、8080端口。
端口号49152-65535为客户端口,客户端任意使用。
协议
UDP
用户数据报协议UDP( User Datagram Protocol)—— 提供:无连接、不可靠交付服务
适合实时,如直播、不可靠交付服务
UDP非常简单,只在IP数据报服务上增加了端口交付和差错检测功能
UDP对于应用层交付的数据不进行任何的拆分
如果检验和检验出错误就丢弃
TCP
传输控制协议TCP——(Transmission Control Protocol) :提供:面向连接、可靠交付服务
适合传文件等
相对于UDP,TCP协议要复杂许多,TCP的连接可以提供全双工通信。
TCP以字节为单位进行交付(相对于UDP的面向报文)。
TCP还能够根据网络拥塞状况自主控制报文的长度
TCP的连接
TCP把连接作为最基本的抽象,每一条 TCP 连接有两个端点。这两个端点不是主机,不是主机的IP 地址,不是应用进程,也不是运输层的协议端口。
TCP连接的端点叫做套接字(socket)或插口。
端口号拼接到IP地址即构成了套接字。
一对IP地址+端口构成了一条TCP连接
可靠传输的原理
停止等待协议
对异常的处理:
#停止等待协议在实现时的几个细节
·重传功能如何实现——保留副本,在发送完一个分组后,必须暂时保留已发送的分组的副本
·大文件如何有序到达——分组编号,为了确认发送顺序,分组和确认都必须进行编号。
·如何确定超时时间——为了记录时间,应设置一个超时计时器,且超时计时器的重传时间应当比数据在分组传输的RTT更长一些
这种可靠传输协议常称为自动重传请求ARQ (Automatic Repeat reQuest)
信道利用率的计算:
·TD是发送分组时间
·RTT是往返时间
·TA是发送确认信息时间,时常忽略不记
停止等待协议的缺点:这种机制可能会导致信道利用率太低,因为需要确定上一个收到或丢失(超时没有收到回复)才能发送下一个
连续ARQ协议
使用流水线传输
#累计确认
·由于现在出错概率低,可以收到几个发一个确认,就是“累积确认 ”
·优点:降低开销,即使某些确认丢失也不必重传。
·缺点:不能向发送方反映出接收方已经正确收到的所有其他分组的信息,信道质量差时开销大。
可靠传输的实现
滑动窗口
根据接收方给出的窗口值 ,发送方构造出自己的发送窗口
窗口之后的数据一律不允许发送或接收
A收到确认,窗口滑动,B收到连续数据,窗口滑动
窗口用完或数据发送完毕,停止发送
超时重传
重传机制是TCP中最重要和最复杂(不确定性)的问题。
TCP的每个报文段拥有一个计时器。计时器超时仍未收到确认,就要重传这一报文段。重传时间一定大于一次往返时间,然而互联网环境很复杂
超时重传时间 RTO (RetransmissionTime-Out) :
修正的 Karn 算法 :新的 RTO = 2 * (旧的 RTO) ,考虑到报文重传一般是因为网络状况变差,应在RTO中体现出这一点,所以报文段重传时要把 RTO 增大
流量控制
TCP报文段的首部格式
·紧急 URG —— 当 URG = 1 时,表明紧急指针字段有效。它告诉对方此报文段中有紧急数据(如关键指令),应尽快处理(相当于高优先级的数据)。
·确认 ACK —— 当 ACK =1 时确认号字段有效,ACK 0 时确认号无效。
·推送 PSH (PuSH) —— 接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,常于推送命令。该字段目前很少使用。
·复位 RST (ReSeT) —— 当 RST = 1 时,表明 TCP 连接中出现严重差错(如程序崩溃),必须释放连接,然后再重新建立运输连接。
·同步 SYN —— 同步 SYN = 1 表示这是一个连接请求或连接接受报文。
·终止 FIN (FINis) —— 用来释放一个连接。FIN = 1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
拥塞控制
在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生拥塞(congestion)
算法
·慢开始:并不慢,其呈指数增长
·拥塞避免:呈一次函数增长
·快重传:快重传算法要求接收方每收到一个失序的报文段后就立即发出重复确认,收到三个重复确认就重传,发送方的发送窗口的上限值应当取为接收方窗口 rwnd 和拥塞窗口 cwnd 这两个变量中较小的一个
·快恢复:连续收到三个重复的确认后减半慢开始门限,转而执行加法增大算法进行快恢复
·如果降到0并开始慢开始,是因为通过超时检测到丢失的报文段
·路由器的随机早期检测 RED
三次握手
四次挥手
运输层习题(大题)
5-23
5-26
5-33
5-34
5-39
运输层习题(选择)
TCP提供面向(连接)的传输服务。
在TCP/IP参考模型中,传输层的主要作用是在互联网络的源主机与目的主机对实体之间建立用于会话的(端到端连接)
TCP/IP为实现高效率的数据传输,在传输层采用了UDP协议,其传输的可靠性则由(应用进程)提供
第6章 应用层