计网复习笔记【附思维导图】——【3】运输层
计网 运输层
运输层位于应用层和网络层之间。

3.1 概述和运输层服务
运输层
- 功能
- 运输层协议为运行在不同主机上的应用进程之间提供逻辑通信功能,属于端到端传输。
- 1.发送方:将应用层报文切分为为较小的块,再加上运输层首部形成报文段,然后交给网络层。
- 2.接收方:将报文段重组为应用层报文,然后上交给对应的应用程序。
- 位置:运输层位于端系统。
- 数据单元:报文段。
- 概述
- 应用层
- 因特网是一个TCP/IP网络,为应用层提供两种运输层协议,UDP(用户数据报协议)和TCP(传输控制协议)。
- 应用程序开发人员在创建套接字时必须指定选择运输层的UDP还是TCP。
- 运输层
- UDP与TCP基本任务是,将两个端系统间的IP交付服务扩展为运行在两个端系统上的进程之间的交付服务。
- UDP只提供差错检测和数据交付,不可靠。
- TCP提供可靠数据传输,保证正确、按序地交付数据;拥塞控制。
- 面向连接
- 可靠传输
- 流量控制
- 拥塞控制
- 网络层
- 因特网网络层IP协议,服务模型时尽力而为交付服务,IP协议被称为不可靠协议。
- IP协议不保证报文段交付,不保证按序交付,不保证数据完整性。
- 应用层
运输层与网络层
- 运输层
- 运输层为运行在不同主机上的进程之间提供了逻辑通信。
- 运输层协议只运行在端系统,将应用进程的报文推到网络边缘,不关心网络核心。
- 网络层
- 网络层提供了主机之间的逻辑通信。
- 网络层在网络核心中传递报文。
3.2 多路复用与多路分解
背景
- 进程有一个或多个套接字(socket),套接字相当于从网络向进程传递数据和从进程向网络传递数据的门户。
- 接收主机的运输层实际上通过中间套接字把数据交付给不同进程。
- 每个套接字有唯一的标识符。
概念
- 将网络层所提供的主机到主机交付服务扩展到为在主机上运行的应用程序所提供的进程到进程交付服务。
- 多路复用
- 上到下
- 从源主机的不同套接字收集数据块,并为每个数据块封装上首部信息生成报文段,然后将报文段传递到网络层。
- 多路分解
- 下到上
- 将运输层报文段数据交付到正确的套接字。
条件
- 1.每个套接字有唯一的标识符。
- 2.每个报文段有特殊字段指示该报文段所要交付的套接字。
- 运输层报文段首部字段<源端口16bits,目的端口16bits>
- 16bits可表示0-65535个端口号,0-1023范围为周知端口号。
无连接的多路复用和多路分解:UDP
- UDP socket 标识:<目的IP,目的端口号>
- 两个不同源IP的UDP报文,若目的IP与目的端口号相同,这两个报文段将通过相同的目的套接字定向到相同的目的进程。
面向连接的多路复用和多路分解:TCP
- TCP socket 标识:<源IP,源端口号,目的IP,目的端口号>
- 两个具有不同源IP地址或源端口号的到达的TCP报文段将被定向到两个不同的套接字,除非TCP携带了初始创建连接的请求。
- 一个进程可以对应多个socket通信。
3.3 无连接用户数据报协议UDP
UDP
-
无连接
- 在发送报文段之前,发送方和接收方的运输层实体之间没有进行握手。
- 对于每个报文段都需要单独处理。
-
不可靠
-
报文格式
-
UDP首部8字节
- 1.源端口号2字节
- 2.目的端口号2字节
- 3.长度2字节:指明了包括首部在内的UDP报文段长度。
- 4.校验和2字节:差错检测,确定比特在传输过程中是否发生了改变。
-
UDP报文段结构

-
-
UDP校验和16bits
- 校验和:差错检测,确定比特在传输过程中是否发生了改变。
- UDP校验和计算
- 发送方的UDP 对报文段中的所有16 比特字(包括首部)的和进行反码运算,求和时遇到的任何溢出都被回卷。
- 回卷:如果有溢出,比如溢出1,则把溢出的1加到求和结果。
- 接收方将受到的全部的3 个16 比特字(包括校验和)一起相加。如果分组中无差错,则显然在接收方这个和将是1111 1111 1111 1111;如果有1 个比特是0,则说明分组中出现了差错。
- 示例:计算校验和

- 发送方的UDP 对报文段中的所有16 比特字(包括首部)的和进行反码运算,求和时遇到的任何溢出都被回卷。
- UDP校验和机制只能进行差错检测,而不能进行差错恢复
-
UDP优势
- 1.应用层能更好地控制要发送的数据和发送时间:最快发送,容许少量丢失。
- 2.无需连接建立:无连接建立时延。
- 3.无连接状态:TCP需要维护连接状态,如接受和发送缓存、拥塞控制参数、序号和确认号的参数。
- 4.分组首部开销小:每个TCP报文段都有20字节的首部,而UDP报文段只需8字节首部开销。
-
UDP特征
- UDP只做了运输层最少的工作,除了多路复用/多路分解功能及少量的差错检测外,它几乎没有对IP 增加别的东西:丢包、乱序。
TCP与UDP的使用
- UDP使用场景
- 名字转换:应用层协议DNS使用运输层UDP协议
- 选路协议:UDP可用于RIP选路表的更新
- 网络管理:承载网络管理数据SNMP
- TCP使用场景
- HTTP协议
- 电子邮件
- 远程终端访问
- Web及文件传输
- 因特网应用及其采用的运输层协议
| 应用 | 应用层协议 | 下面的运输层协议 |
|---|---|---|
| 电子邮件 | SMTP | TCP |
| 远程终端控制 | Telnet | TCP |
| Web |

本文聚焦计算机网络运输层,介绍了运输层与网络层的区别,阐述了多路复用与多路分解概念。详细对比了UDP和TCP协议,包括UDP的无连接、不可靠特性及优势,TCP的可靠传输、流量控制等功能。还讲解了可靠数据传输机制、TCP连接管理和拥塞控制原理及算法。
最低0.47元/天 解锁文章

4658

被折叠的 条评论
为什么被折叠?



