第五章 运输层


①本层功能&对应协议(提供服务&对应设备)

运输层功能:解决端到端的传输。

对应协议:

用户数据报协议UDP

传输控制协议ICP

提供的服务:

可靠服务—面向连接

不可靠服务—面向无连接

对应设备:网关

②用户数据报协议UDP&传输控制协议ICP

UDP
UDP的主要特点是:

无连接的、尽最大努力交付的、面向报文的、没有拥塞控制(实时应用)、支持交互通信(一对一、一对多、多对一、多对多)、首部开销小(只有8字节,TCP协议有20字节首部)

UDP的首部格式

用户数据报UDP首部的字段是:

1) 源端口(Source Port):源端口号,在需要对方回信时选择使用,如果不需要,可以使用全0。

2) 目的端口(Destination Port):目的端口号,在终点交付报文时必须使用。

3) 长度(Length):UDP用户数据报的长度,最小值是8(仅有首部)。

4) 检验和(Checksum):用于检测UDP用户数据报在传输中是否有错。如果有错,报文会被丢弃,但不会修改原文。

ICP
ICP的主要特点

面向连接、可靠交付(按序到达)、面向字节流、有拥塞控制、点对点、全双工通信

面向字节流的概念

为了突出示意图的要点,我们只画出了一个方向的数据流。但请注意,在实际的网络中,一个TCP报文段包含上千个字节是很常见的,而图中的各部分都只画出了几个字节,这仅仅是为了更方便地说明“面向字节流”的概念。

另一点很重要的是:图5-7中的TCP连接是一条虚连接(也就是逻辑连接),而不是一条真正的物理连接。TCP报文段先要传送到IP层(网络层),加上IP首部后,再传送到数据链路层;再加上数据链路层的首部和尾部后,才离开主机发送到物理链路。

ICP的连接(虚连接)

TCP把连接作为最基本的抽象。TCP的许多特性都与TCP是面向连接的这个基本特性有关。因此我们对TCP连接需要有更清楚的了解。
每一条TCP连接有两个端点。那么,TCP连接的端点是什么呢?TCP连接的端点叫作套接字(socket)或插口。根据RFC 793的定义:端口号拼接到(concatenated with)IP地址即构成了套接字。因此,套接字的表示方法是在点分十进制的IP地址后面写上端口号,中间用冒号或逗号隔开。例如,若IP地址是192.3.4.5而端口号是80,那么得到的套接字就是(192.3.4.5:80)。总之,我们有


每一条TCP连接唯一地被通信两端的两个端点(即套接字对socket pair)所确定。即:
 


这里IP1和IP2分别是两个端点主机的IP地址,而port1和port2分别是两个端点主机中的端口号。因此,TCP连接就是两个套接字socket1和socket2之间的连接。
总之,TCP连接就是由协议软件所提供的一种抽象。虽然有时为了方便,我们也可以说,在一个应用进程和另一个应用进程之间建立了一条TCP连接,但一定要记住:TCP连接的端点是个很抽象的套接字,即(IP地址:端口号)。也还应记住:同一个IP地址可以有多个不同的TCP连接,而同一个端口号也可以出现在多个不同的TCP连接中。


③UDP与TCP不同点,各自优缺点以及适应场合和范围

比较项目 UDP TCP
运输协议数据单元TPDU UDP报文或用户数据报 TCP报文段
连接方式 无连接的 面向连接
交付方式 尽最大努力交付 可靠交付(按序到达)
数据处理方式 面向报文 面向字节流
拥塞控制 没有拥塞控制(实时应用) 有拥塞控制
通信模式 支持交互通信(一对一、一对多、多对一、多对多) 点对点、全双工通信
首部开销 首部开销小(只有 8 字节) 首部有 20 字节首部
端点表示 无特定端点概念类似套接字的表述 端点是套接字(IP 地址:端口号),由通信两端的两个端点(套接字对)确定每条 TCP 连接
协议 优点 缺点 适应场合和范围
UDP 1. 无连接,不需要建立连接的过程,通信开销小,速度快。
2. 首部开销小,数据传输效率相对较高。
3. 支持多种交互通信模式,灵活性高。
4. 没有拥塞控制,适用于实时性要求高的应用,能及时发送数据而不受网络拥塞情况影响。
1. 不可靠交付,数据可能丢失、乱序、重复,无法保证数据的准确传输。
2. 缺乏有效的错误检测和纠正机制,一旦传输过程中出现错误,只能丢弃报文。
1. 实时视频、音频流传输,如在线直播、视频通话等,对实时性要求高,少量数据丢失不影响整体效果。
2. 简单的网络查询和响应应用,如 DNS(域名系统)查询,不需要复杂的可靠传输机制。
3. 多播、广播应用,支持一对多、多对多的通信模式方便信息快速传播。
TCP 1. 可靠交付,通过一系列机制保证数据按序到达,数据丢失、重复等情况能有效处理。
2. 面向连接,在传输前建立连接,能确保通信双方的可达性和准备情况。
3. 有完善的拥塞控制机制,能根据网络拥塞情况合理调整数据传输速率,避免网络瘫痪。
1. 建立连接和维护连接需要额外的开销,包括时间和资源上的开销。
2. 首部相对 UDP 更复杂,开销更大,数据传输效率在某些情况下可能不如 UDP。
3. 面向字节流的特性可能导致接收端需要对数据进行更多的处理来还原原始报文内容。
1. 文件传输,如 FTP(文件传输协议)、HTTP(超文本传输协议)下载上传等,需要确保文件数据完整准确地传输。
2. 电子邮件传输,保证邮件内容完整无误地送达收件人。
3. 远程登录,如 SSH(安全外壳协议)、Telnet 等,需要稳定可靠的连接来实现远程操作。


④端的概念和作用(区分进程)

端口,是计算机操作系统与应用程序之间进行网络通信的一种接口机制。

端口的作用:对TCP/IP体系的应用进程进行统一的标志,使运行不同操作系统的计算机的应用进程能够互相通信。

⑤滑动窗口协议工作原理

滑动窗口协议是一种用于数据传输控制的重要协议。

基本概念

窗口:是一个允许发送方连续发送数据帧或字节的范围,其大小由窗口尺寸表示,大小会动态调整。

工作流程

初始化阶段:发送方根据接受方的确认报文段,构造自己的 发送窗口。

数据发送阶段:在没有收到接收方的确认的情况下,发送方可以连续把窗口内的数据都发送出去。凡是已经发送过的数据,在未收到确认之前都必须暂时保留,以便在超时重传时使用。

数据接收阶段:接收方按接收窗口界定范围接收数据帧,核对数据帧序号,确保在接收窗口内且按顺序接收,接收无误后将数据递交给主机。

确认阶段:接收方一般都是采用累积确认的方式,只对按序收到的数据中的最高序号给出确认,表示到这个分组为止的所有分组都已正确收到了。接收方移动自己的窗口并给发送方发送确认信息,发送方根据其调整发送窗口。

流量控制和差错控制功能

流量控制:通过调整发送窗口和接收窗口大小实现流量控制。

当接收方处理数据帧速度慢,接收窗口变小时,接收方会通过确认信息告知发送方,发送方根据接收窗口大小调整发送窗口,控制发送数据帧数量,避免接收方缓存溢出,有效控制数据传输流量。

 差错控制:若发送方发送的数据帧在传输中出现差错,接收方收到有差错的数据帧时,不会发送确认信息或发送特殊否认信息 。发送方在规定时间内未收到确认信息,会认为数据帧出现差错并重新发送,确保数据传输准确性。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐