主要内容:进程之间的通信与端口、UDP协议、TCP协议、可靠传输原理(停止等待协议、ARQ协议)、TCP报文首部、TCP三大题:滑动窗口、流量控制、拥塞控制机制
5.1 运输层协议概述
运输层向它上面的应用层提供通信服务,真正通信的实体为主机中的进程,端点非主机而是进程。端到端的通信为应用进程之间的通信。
运输层提供应用进程间的逻辑通信,网络层提供主机间的逻辑通信。
运输层的两种协议:无连接的用户数据报协议UDP、面向连接的传输控制协议TCP;
通信时传送的数据单位叫做运输协议数据单元TPDU;
采用UDP和TCP的各种应用及应用层协议:
单个计算机的进程用进程标识符标志。互联网使用的计算机操作系统种类很多,使用不同标识符,该方法不能用于标志运行在应用层的应用进程。通过在运输层使用端口协议号(简称端口),用于识别进程。
协议层间的抽象协议端口是软件端口,为应用层各种协议进程与运输实体进行层间交互的一种地址,硬件端口是不同硬件设备进行交互的接口。16位端口号用来标志一个端口。
服务器使用的端口号分为熟知端口号、登记端口号(登记后才能用)。
客户端口号为短暂端口号。
名词解释:
运输层的复用和分用:复用为不同进程使用同一运输层协议传送数据,分用为接收方基于端口把数据正确交付目的进程。
5.2 用户数据报协议UDP
UDP在IP数据报上增加了很少一点功能,复用、分用、差错检测等。
主要特点:1无连接(减少了开销和发送数据前的时延);2尽最大努力交付;3面向报文(对应用层交下来的报文,不合并也不拆分,保留这些报文的边界);4UDP没有拥塞控制;5支持一对一,一对多,多对一,多对多交互通信;6UDP首部开销小只有8个字节,TCP20个字节。
UDP首部格式:
UDP基于端口的分用:
通过伪首部计算检验和,IP数据报只检验首部,UDP检验首部和数据部分。
5.3 传输控制协议TCP
TCP主要特点:1.面向连接的运输层协议;2.每条TCP连接只有两个端点,只能点对点通信;3.提供可靠交付;4.提供全双工通信(通过缓存实现)。5.面向字节流,流指的是流入到进程或进程流出的字节序列。把数据看作一连串的无结构的字节流,而非数据块。
TCP根据对方给出的窗口值和当前网络拥塞程度决定报文段应包含多少个字节。如果缓存的数据太长,划分短一些再传送。如果只有一个字节,积累足够多后再构成报文段发送出去。
TCP连接的端点叫做套接字(socket)或插口;端口号拼接到IP地址构成套接字。
每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。
应用程序访问连网协议的应用编程接口API,也称为socket,socket api。面向网络的api,restful api是基于http的api。
5.4 可靠传输工作原理
理想传输条件特点:1.传输信道不产生差错;2不管发送方以多快速度发数据,接收方总来得及处理。
“停止等待”:每发送完一个分组就停止发送,等阿迪对方确认。收到确认后再发送下一个分组。
有差错情况会在发送完一个分组后设定一个超时计时器,重传前面发送过的分组,为超时重传。
超时重传三点注意事项:1暂时保留已发送的分组副本;2分组和确认分组都必须进行编号;3.重传时间比数据在分组传输的平均往返时间更长一些。
确认丢失和确认迟到:
通过确认和重传机制,就可以在不可靠的传输网络上实现可靠通信。自动重传请求ARQ.
信道利用率:
采用流水线传输可获得很高的信道利用率。
连续ARQ协议:发送窗口(发送窗口内的5个分组都可以连续发出去,无需确认),接收方累计确认,对按序到达的最后一个分组发送确认。
5.5 TCP报文段首部格式
TCP面向字节流,传送的数据单元为报文段,该报文段分为首部和数据两部分。