第五章-运输层
网络层是为主机之间提供逻辑通信,
运输层为应用进程之间提供端到端的逻辑通信
运输层的作用
运输层为应用进程之间提供端到端的逻辑通信
在一台主机中经常有多个应用进程同时分别和另一台主机中的多个应用进程通信。
这表明运输层有一个很重要的功能——复用 (multiplexing)和分用
运输层的端口
运行在计算机中的进程是用进程标识符来标志的
但运行在应用层的各种应用进程却不应当让计算机操作系统指派它的进程标识符。这是因为在互联网上使用的计算机的操作系统种类很多,而不同的操作系统又使用不同格式的进程标识符
必须用统一的方法对 TCP/IP 体系的应用进程进行标志
解决这个问题的方法就是在运输层使用协议端口号 (protocol port number),或通常简称为端口 (port)
软件端口与硬件端口
在协议栈层间的抽象的协议端口是*软件端口。
路由器或交换机上的端口是硬件端口***
TCP/IP 运输层端口
端口用一个 16 位端口号进行标志
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。
在互联网中,不同计算机的相同端口号是没有联系的
两大类端口
服务器端使用的端口号
熟知端口,数值一般为 01023。49151
登记端口号,数值为 1024
客户端使用的端口号
又称为短暂端口号,数值为 49152~65535,留给客户进程选择暂时使用
用户数据报协议 UDP (User Datagram Protocol)
面向连接的 TCP 协议
采用无连接的 UDP 协议
传送的数据单位协议是 *UDP 报文或用户数据报***
UDP实时性更好
UDP 的主要特点
(1) UDP 是无连接的
(2) UDP 使用尽最大努力交付
(3) UDP 是面向报文的(UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。)
(4) UDP 没有拥塞控制
(5) UDP 支持一对一、一对多、多对一和多对多
的交互通信。
(6) UDP 的首部开销小
UDP 的首部格式
用户数据报=首部+数据部分
首部8个字节:源端口,目的端口,长度,检验和
习题
目的端口小的是服务器,大的是客户机
传输控制协议 TCP (Transmission Control Protocol)概述
传送的数据单位协议是 TCP 报文段 (segment)
TCP 最主要的特点
TCP 是*面向连接的运输层协议。
每一条 TCP 连接只能有两个端点** (endpoint),每一条 TCP 连接只能是点对点的(一对一)。
TCP 提供可靠交付的服务。
TCP 提供全双工通信。
面向字节流:*
TCP 中的“流”(stream)指的是流入或流出进程的字节序列
“面向字节流”的含义是:虽然应用程序和 TCP 的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流
TCP 面向流的概念
不保证发送方和接收方数据块具有对应大小的关系,但字节流完全一样
TCP 不关心应用进程一次把多长的报文发送到 TCP 缓存。
TCP 对连续的字节流进行分段,形成 TCP 报文段
注 意
TCP 连接是一条虚连接
TCP 对应用进程一次把多长的报文发送到TCP 的缓存中是不关心的
TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)
TCP 可把太长的数据块划分短一些再传送
TCP 也可等待积累有足够多的字节后再构成报文段发送出去
TCP 的连接
TCP 连接的端点叫做套接字 (socket) 或插口
端口号拼接到 (contatenated with) IP 地址即构成了套接字
可靠传输的工作原理
理想的传输条件有以下两个特点:
(1) 传输信道不产生差错。
(2) 不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据
然而实际的网络都不具备以上两个理想条件
停止等待协议
“停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组
全双工通信的双方既是发送方也是接收方
无差错情况
出现差错
当以某一方为接收方时,可能出现:*收到,检查异常,丢弃;传输过程丢失。此时接收方不会做出相应,为了确保能够正确接收,使用超时重传***
确认丢失和确认迟到
确认丢失
确认迟到
接收方发送的确认,接收方在规定时间没有收到
处理方法是:A 会收到重复的确认。对重复的确认的处理很简单:收下后就丢弃。
B 仍然会收到重复的 M1,并且同样要丢弃重复的 M1,并重传确认分组
连续 ARQ 协议
连续 ARQ 协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置
TCP 报文段的首部格式
TCP 报文段首部的前 20 个字节是固定的,后面有 4n 字节是根据需要而增加的选项 (n 是整数)。*因此 TCP 首部的最小长度是 20 字节。***
序号字段——占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号
习题
运输连接有三个阶段:连接建立,数据传送,连接释放
TCP连接建立:三报文握手机制
TCP连接释放: 四报文握手机制
TCP 流量控制
利用滑动窗口实现流量控制
TCP 的传输效率
TCP 的拥塞控制
超时:初始门限减半,拥塞窗口变为1;3个ACK:拥塞窗口减半
轮次就是指发送一个数据出去,收到确认回来
有多少个拥塞窗口,就可以发送多少个报文段
指数增长时,超过门限,可以等于









