【从零开始学习计算机科学与技术】计算机网络(六)传输层

server/2025/3/23 8:14:37/

【从零开始学习计算机科学与技术】计算机网络(六)传输层

传输层

用户无法控制网络中的内容。
因此,最终用户仅在最终主机上建立另一层,以提供比基础网络服务更可靠的传输服务。 使用这个新的网络连接,它可以向对等方发送查询,询问哪些数据到达了哪些数据没有到达,然后从中断的地方开始取回。

传输层提供了进程到进程的通信方式,而且传输层允许多个并发应用程序使用传输服务。为应用程序编写者提供通用接口,而不管其底层网络层如何。
本质上,应用程序编写者可以使用传输层原语一次编写代码,然后在不同的网络(但具有相同的传输层)上使用它。

传输层,服务访问点标识上层服务(应用程序)。在数据链路层,数据链路级协议通过MAC地址识别网络中的哪两台计算机正在通信。在网络层,网络级协议通过IP地址互联网中的哪两台计算机正在通信。因此,在传输层,传输级协议需要通过一个地址识别正在通信的上层协议。这个地址被称为端口(port)。
端口号有16 位,端口范围:0-65535。一般的,端口号效于1023用于公共应用(保留,全局分配,用于标准服务器)。IANA分配端口号1024-49151,用于用户端口,注册端口。端口号大于49152的作为动态端口,私人端口。

IP标头包含IP地址,而UDP / TCP标头包含端口号。每个套接字是包含一个IP地址和一个16位的端口( port )端口是通信进程的全球唯一标识,即套接字地址唯一定义一个进程。

端口地址的表示主要有:

三元组:协议、本地地址、本地端口号。

五元组:协议、本地地址、本地端口号、远端地址、远端端口号。

目前,端到端交付可以通过以下两种方式之一完成:

  1. 面向连接的传输。面向连接的传输分为三个阶段:建立连接,数据传输,连接终止。

  2. 面向无连接的传输。

传输层功能

分片和重组。传输层在每个段上添加一个序列号。该数字表示重新组装的顺序。每个段都带有一个字段,指示该字段是传输的最后段还是中间段。

聚合和分离。当属于单个会话的数据单元的大小太小,以至于多个单元可以组合成一个数据报时。每个单元的序列号允许在目的地正确分隔。

错误控制机制。基于错误检测和重传。使用软件中实现的算法(例如校验和)执行错误检测。

损失控制。序列号允许接收方的传输层协议识别任何丢失的段并请求重新发送。

流量控制。传输层的流量控制机制与链路层相似,但是传输层的流控制是端到端执行的,而不是跨单个链路执行的。传输层通过滑动窗口实现流量控制,其使数据传输更加有效,并控制数据流。关于在传输层滑动窗口的一些不同:发送方不必发送整个窗口的数据。确认时可以根据确认的数据段的序列号扩展窗口的大小。接收方可以增加或减小窗口的大小。接收方可以随时发送确认。

传输层复用机制

向上复用。传输层可以沿着同一路径发送绑定到同一目的地的多个传输。当基础网络具有高吞吐量时,此功能很有用。
向下多路复用。当基础网络的容量较低或较慢时(例如X.25的三位序列代码),此功能非常有用。

UDP_43">UDP

UDP 是一个无连接的(connectionless)的传输层协议,其提供端点标识,端到端的数据传输,不提供差错控制、流量控制和可靠传输。但简洁高效。
UDP数据报总长度的最小长度为8个字节,而数据部分的长度可以为0到65507字节,UDP数据报包括三个部分。伪首部。用于错误检查的必要IP信息。UDP头。数据。UDP使用校验和来进行错误检验,与IP协议的校验和不同(IP校验和只需要校验IP首部),UDP的校验和需要验证整个完整的数据报以及伪首部。

TCP_48">TCP传输控制协议

TCP (Transmission Control Protocol) 是专门为了在不可靠的互联网络上提供可靠的端到端字节流而设计的。
TCP必须动态地适应不同的拓扑、带宽、延迟、分组大小和其它的参数,并且当有错误的时候,能够足够健壮。
TCP是面向连接的传输协议,并且没有“消息边界”,其将多个字节分组到称为段的数据包中。所有的 TCP 连接是全双工的(同时双向传输)和端到端的(每条连接只有两个端点)。
TCP 不支持组播和广播,其只有一个发送者和一个接收者。
TCP连接是字节流而不是消息流。
TCP的发送方和接收方通过缓冲区以进行同步,并且采用滑动窗口以及动态策略进行流量控制。
TCP存在差错控制和重传机制。
要想获得TCP服务,发送方和接收方必须创建一种称为套接字( sockets )的端点( end points)。
TCP连接中传输的所有数据存在编号,编号在每个方向上都是独立的,而且编号不必从0开始,它随机开始,随机数介于0到 2 3 2 − 1 2^32-1 2321之间。编号可用于流和错误控制。
TCP使用以下两个字段来跟踪段:序列号(seq)、确认号码(ACKÿ


http://www.ppmy.cn/server/176993.html

相关文章

2025年3月21日-??日-STM32学习一半后的实战-正篇(5)

是书何以作?曰:为以夷攻夷而作,为以夷款夷而作〔12〕,为师夷长技以制夷而作〔13〕。 《易》曰〔14〕:“爱恶相攻而吉凶生,远近相取而悔吝生,情伪相感而利害生。〔15〕”故同一御敌,而知其形与不知其形,利害相百焉〔16〕;同一款敌,而知其情与不知其情,利害相百焉。古之…

C/C++错误信息

目录 1. errno 和 perror() 示例: 2. strerror() 示例: 3. perror() 和 strerror() 区别 4. exit() 和 abort() 示例: 示例: 5. assert() 示例: 6. setjmp() 和 longjmp() 示例: 7. strerror_…

计算机网络——通信基础和传输介质

物理层任务:实现相邻节点之间比特(0或1)的传输 到了数据链路层之后,它会以帧为单位,把若干个比特交给物理层,物理层需要把这些比特信息转化成信号,在物理传输媒体上进行传输 通信基础基本概念 信…

机器学习之浅层神经网络

文章目录 一、浅层神经网络概述(一)定义(二)常见类型 二、浅层神经网络的前向传播三、浅层神经网络的反向传播四、编写浅层神经网络案例(Python NumPy 实现)代码解释 五、浅层神经网络与深度学习的区别&am…

数学建模:MATLAB卷积神经网络

一、简述 卷积神经网络是一种处理具有网格结构数据的深度学习模型,由输入层、卷积层、池化层、全连接层、输出层组成。 输出层:将图像转换为其对应的由像素值构成的二维矩阵,并存储二维矩阵 卷积层:提取图像的底层特征&#xf…

双非控制学硕女生,对渲染、音视频、医疗影像感兴趣,如何规划争取拿到中厂开发岗位?

今天给大家分享的是一位粉丝的提问,双非控制学硕女生,对渲染、音视频、医疗影像感兴趣,如何规划争取拿到中厂开发岗位? 接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。…

Linux(Ubuntu)系统安装Docker与Docker Compose完整指南

本文是为需要在Ubuntu系统部署容器服务的开发者准备的详细教程。我们将分两个主要部分讲解:Docker引擎的标准安装流程和Docker Compose的配置方法。所有操作均在终端执行,建议使用Ubuntu 18.04及以上版本。 一、Docker引擎安装全流程 (总耗时…

浅谈canal实例 在docker里面安装canal镜像 Canal监听MySQL数据库变更并同步更新Redis和Elasticsearch 示例

目录 1. 环境准备 1.1 MySQL配置 1.2 部署Canal Server 2. Spring Boot项目配置 2.1 添加依赖 2.2 配置参数 3. 实现Canal监听与同步 3.1 Canal客户端监听 3.2 同步到Redis 3.3 同步到Elasticsearch 4. 注意事项 在Spring Boot中通过Canal监听MySQL数据库变更并同步…