计算机网络五 传输层

news2024/11/23 8:32:17

传输层

传输层体系结构

概念

传输层是指ISO/OSI模型中的第四层,在计算机网络中起着非常重要的作用。它负责数据在网络中的传输,管理数据传输的可靠性和流量控制,保证数据在网络中不会丢失或重复。

提供的服务

传输层提供的主要服务有两种,分别是面向连接服务和无连接服务。面向连接服务提供可靠的数据传输,需要在数据传输前建立连接和关闭连接,使用TCP协议实现;无连接服务则不需要建立连接,使用UDP协议实现,不保证数据传输的可靠性,但传输速度更快。

功能

主要功能包括:

分段和重组:为了满足网络传输的需要,传输层将应用层的数据划分为更小的数据段,并在接收端重组为完整的数据。这样能够避免大数据块在网络传输中产生的传输延迟,并且能够利用网络带宽更好地进行数据传输。

可靠传输:传输层使用TCP协议提供可靠的数据传输服务。TCP协议通过各种机制,如确认应答机制和重传机制,确保数据能够被无误无遗地传输到接收端,并且按照正确的顺序排列。

流量控制:为了避免网络拥塞和资源浪费,传输层使用流量控制机制,调整数据传输的速度,保证网络传输的平稳稳定,避免数据包的丢失。

连接管理:对于面向连接的传输协议,传输层需要建立连接、维护连接和关闭连接。传输层的连接管理机制允许运行在不同网络节点上的应用程序建立虚拟电路,传输数据时将数据交给传输层,由传输层为其进行连接建立和维护。

总的来说,传输层的功能是为了使网络上运行的应用程序能够进行可靠、高效、安全的数据传输,保障网络数据传输的质量。

传输层寻址与端口

在计算机网络中,数据从源主机传输到目的主机时需要经过多个网络层,其中传输层会为传输的数据添加源端口和目的端口,以便在目的主机上将数据正确地分发给相应的应用程序。传输层寻址和端口号的概念如下:

端口的作用:一个计算机可以同时运行多个应用程序,每个应用程序在传输数据时需要一个唯一的标识。传输层的端口号就是为每个应用程序分配的唯一标识,从而保证不同的应用程序之间可以进行并行数据传输,同时在数据到达目的主机后,可以根据端口号将数据正确地传输给相应的应用程序。

端口号:端口号是一个16位的整数,它的范围是065535。其中01023是系统保留端口号,一般都是为一些常用的网络服务分配的端口,如HTTP使用80端口、FTP使用21端口等;102449151是用户注册端口,用户可以根据自己的需要为不同的应用程序分配不同的端口号;4915265535是临时端口,主要用于TCP连接时临时暂时分配的端口号。

套接字:套接字是传输层和应用层之间的接口,它定义了应用程序和传输层之间通信的规则和参数。应用程序通过套接字来发送和接收数据,而套接字则根据端口号来确定数据传输的目的地。在Linux系统中,套接字通常由IP地址、端口号和协议三部分组成。

总之,传输层的寻址和端口号是为应用程序提供可靠、高效的数据传输服务的重要基础,同时也是网络通信应用程序开发的重要技术要点。

无连接服务和面向连接服务

在传输层中,传输数据的方式可以分为两种,即无连接服务和面向连接服务。它们的区别主要在于建立连接的方式和数据传输的可靠性。

无连接服务

无连接服务又被称为无状态服务,传输层使用UDP协议来提供此类服务。在UDP协议中,不会建立连接,数据包通过互联网传输时,也不保证数据的可靠性,不对数据传输做出任何管理。发送端发送UDP数据报之后,对其不会进行确认,也不会重发数据报,因此不保证数据包到达的可靠性。UDP协议的优点是在实现简单、网络负载小,适用于实时数据流传输。

面向连接服务

面向连接服务又被称为有状态服务,传输层使用TCP协议来提供此类服务。在TCP协议中,为了保证数据的可靠性,需要先建立一条虚拟电路来进行数据的传输,并且在数据传输过程中,采用数据确认和重传机制来保证数据的准确性。TCP协议还会对数据传输进行流量控制和拥塞控制,以确保数据在网络中的传输效率和结果。TCP协议的缺点是传输效率较低,因为建立连接和数据确认都需要花费时间,不利于实时数据流传输。

总之,无连接服务和面向连接服务各有优缺点,在实际应用中根据具体的数据传输需求来选择合适的服务方式。

UDP

概念

UDP(User Datagram Protocol,用户数据报协议)是一种无连接协议,它不会像TCP协议那样在传输数据之前建立连接,也不会对传输的数据进行可靠性和流量控制。UDP协议所传输的数据包叫做数据报,它只提供数据封装和传输的基本功能。

使用

UDP协议广泛应用于数据量小、实时性要求高的应用场景,比如音视频传输、在线游戏等。UDP协议的优点是传输效率高,网络性能好,能够快速地传输数据,缺点是不提供数据传输的可靠性,并且不保证数据传输的顺序。

数据报

UDP协议传输的数据包称为数据报。它有两个部分:头和数据。头部主要包括源端口、目的端口、长度和校验和等信息,用于标识数据报的目的地和来源,以及确保数据传输的完整性和正确性。数据部分则是实际的传输数据。

 0      7 8     15 16    23 24    31  
+--------+--------+--------+--------+
|     源端口号     |   目的端口号    |
+--------+--------+--------+--------+
|              UDP长度              |
+--------+--------+--------+--------+
|              UDP校验和            |
+--------+--------+--------+--------+
|                                   |
       数据(可选,长度不固定)   
|                                   |
+--------+--------+--------+--------+

其中各字段的含义如下:

源端口号:指发送端端口号,占用2个字节;

目的端口号:指接收端端口号,占用2个字节;

UDP长度:UDP数据报(包括UDP首部和数据部分)的长度,占用2个字节;

UDP校验和:由发送端计算并填写的校验和,占用2个字节;

数据:UDP数据报中传输的数据,长度不固定。

UDP协议的首部长度固定是8个字节。除了数据部分外,其他各字段都固定内部格式。UDP协议的首部结构非常简单,只提供了最基本的传输信息。由于UDP协议不需提供可靠性、流量控制等高级的传输机制,因此UDP协议的首部长度相比TCP协议要小得多。

UDP校验

UDP协议使用一种简单的校验和来检测数据报在传输过程中的完整性和正确性。校验和是在发送数据报之前计算的,根据数据报的头部和数据部分计算出一个校验和值,接收端在接收数据报之后再重新计算一次校验和值,进行校验

总结

UDP协议是一种简单、高效、实时的传输协议,在一些特定的应用场景中有着较为重要的应用。但是在传输保证可靠性方面,需要借助其他机制来进行控制和保障。

TCP

概念

TCP是一种基于连接的协议,它在传输数据之前会先建立连接,然后通过确认应答、重传机制等方式保证数据传输的可靠性。TCP协议传输的数据包称为TCP段,它具有可靠性和有序性。

TCP段

TCP协议传输的数据被包装为一个个的TCP段。每个TCP段包括头部和数据两部分,头部是20个字节或40个字节,包含了源端口、目的端口、序号、确认号、窗口大小等信息,用于确认应答和拥塞控制。

TCP连接管理

TCP协议通过连接管理机制建立连接、维护连接和关闭连接。TCP连接是一种可靠的虚拟电路,可以在网络中可靠地传输数据,同时使用三次握手等机制确保数据传输的完整性和正确性。

TCP可靠传输

TCP协议通过确认应答和重传机制保证数据的可靠性。在数据发送时,接收端会返回确认应答,告诉发送端已经接收到数据,如果发送端没有收到确认应答,就会认为数据丢失,启动重传机制。

TCP流量控制与拥塞控制

TCP流量控制与拥塞控制:TCP协议可以对数据流进行流量控制和拥塞控制,用于限制发送方发送数据的速率,保证网络传输的平稳稳定。

TCP与UDP

TCP协议与UDP协议相比,TCP协议提供了可靠性更好、有序性更好、错误恢复性更好的数据传输服务,但是TCP协议的传输效率要低于UDP协议,并且TCP协议需要频繁地进行确认应答、重传、拥塞控制等操作,导致传输延迟较高,不适用于对传输时延和数据包数目要求很高的应用场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/579887.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《数据库应用系统实践》------ 包裹信息管理系统

系列文章 《数据库应用系统实践》------ 包裹信息管理系统 文章目录 系列文章一、需求分析1、系统背景2、 系统功能结构(需包含功能结构框图和模块说明)3.系统功能简介 二、概念模型设计1.基本要素(符号介绍说明&…

9. Linux下实现简单的UDP请求

本文简单介绍了UDP传输层协议,并在Linux下实现简单的socket通讯 一、UDP UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议,它不保证数据包的可靠性和顺序。UDP在IP协议的基础上增加了简单的差错…

阿里云服务器配置CPU内存、带宽和系统盘选择方法

阿里云服务器配置怎么选择?CPU内存、公网带宽和系统盘怎么选择?个人用户选择轻量应用服务器或ECS通用算力型u1云服务器,企业用户选择ECS计算型c7、通用型g7云服务器,阿里云服务器网分享阿里云服务器配置选择方法: 目录…

大数据周会-本周学习内容总结015

开会时间:2023.05.28 15:30 线下会议 目录 01【fhzny项目】 02【Spark】 03【调研-数仓构建】 3.1【数仓构建,流程图、架构图、使用场景】 场景选择 组件设计 构建流程 04【专利】 05【导师点评】 01【fhzny项目】 GitLabMyBatis-PlusSpringbo…

Java001——基本的Dos命令

打开CMD的方式 1、win10:开始->系统->命令提示符 win11:开始->windows工具->命令提示符 2、Win键R输入cmd 打开控制台 3、进入文件夹,按住shift键鼠标右键点击,在此…

路径规划算法:基于萤火虫优化的路径规划算法- 附代码

路径规划算法:基于萤火虫优化的路径规划算法- 附代码 文章目录 路径规划算法:基于萤火虫优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法…

[第一章 web入门]SQL注入-1

拿到题目是一篇日记,是GET型请求方式,我们可以直接在url栏中注入数据 判断注入类型,页面有回显所以不是整型注入 id 1 and 1 2 id 1 页面无回显,判断为字符型注入,闭合符应该就是单引号 id 1 order by 4-- 无回显&…

C#,码海拾贝(26)——求解“一般带状线性方程组”之C#源代码,《C#数值计算算法编程》源代码升级改进版

using System; namespace Zhou.CSharp.Algorithm { /// <summary> /// 求解线性方程组的类 LEquations /// 原作 周长发 /// 改编 深度混淆 /// </summary> public static partial class LEquations { /// <summary> /…

Reorder buffer and Reservation station

Reoder buffer(ROB) 为了解决异常问题 instruction 的decode阶段被写入缓冲区的条目&#xff0c;指令完成的话&#xff0c;向缓冲区写入结果&#xff0c;最早decode的指令&#xff08;程序顺序&#xff09;如果没有被标记异常的话&#xff0c;写入reg file register rename …

基于STM32的IIC驱动协议实现

目录 1.简介 2.特点 3.协议细节 1.简介 IIC(Inter&#xff0d;Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行线&#xff0c;用于连接微控制器及其外围设备。它是由数据线 SDA 和时钟 SCL 构成的串行总线&#xff0c;可发送和接收数据。在 CPU 与被控 IC 之…

第一部分-基础篇-第一章:PSTN与VOIP(下篇)

文章目录 序言上一篇文章&#xff1a;1.6 电路交换与分组交换1.6.1 电路交换1.6.2 分组交换 1.7 VoIP1.8 IMS1.8.1 什么是IMS1.8.2 IMS的特点1.8.3 IMS核心网元&#xff08;1 &#xff09; CSCF&#xff08;2 &#xff09; MGCF&#xff08;3 &#xff09; IM-MGW&#xff08;5…

【数据结构】--单链表力扣面试题⑤链表分割

目录 一、有相对顺序的链表分割 二、无相对顺序的链表分割 一、有相对顺序的链表分割 题述&#xff1a;现有一链表的头指针ListNode* phead,给一定值x,编写一段代码将所有<x的结点排在其余结点之前&#xff0c;且不能改变原来的数据顺序&#xff0c;返回重新排序后的链表的…

Three.js加载FBX模型并解析骨骼动画

通过Threejs先加载一个.FBX格式的三维模型文件&#xff0c;然后解析该文件中的骨骼动画信息。 FBX 加载器FBXLoader.js <!-- 引入fbx模型加载库FBXLoader --> <script src"http://www.yanhuangxueyuan.com/versions/threejsR92/examples/js/loaders/FBXLoader.…

Linux源码包的安装与升级

文章目录 Linux源码包的安装与升级什么是源代码、编译器与可执行文件什么是函数库什么是make与configure什么是Tarball的软件如何安装与升级软件 Linux源码包的安装与升级 如果你想在自己的Linux服务器上运行网站&#xff0c;就需要安装一个Web服务器软件&#xff0c;否则无法…

测试工程师 | 测试基础知识点速查

文章目录 1. 测试介绍2. 测试的分类2.1 按照测试阶段划分&#xff08;4种&#xff09;2.2 按照代码可见度划分&#xff08;3种&#xff09;2.3 是否运行代码&#xff08;2种&#xff09;2.4 是否按照自动化&#xff08;2种&#xff09;2.5 其它测试&#xff08;4种&#xff09;…

深入篇【C++】CC++内存管理:new/delete底层原理剖析+思维导图总结

深入篇【C】C&C内存管理&#xff1a;new/delete底层原理剖析思维导图总结 Ⅰ.C/C内存分布Ⅱ.C的内存管理Ⅲ.C的内存管理①.new/delete操作内置类型总结&#xff1a; ②.new/delete操作自定义类型总结: ③.operator new与operator delete总结&#xff1a; ④.new/delete底层…

【C++String类使用】万字详解保姆级教学,手把手教你使用string类。

string类的使用 什么是string类&#xff1f;string构造string();string (const char* s);string (const string& str);string (const string& str, size_t pos, size_t len npos);string (const char* s, size_t n);string (size_t n, char c);template < class In…

《The Element of Style》阅读笔记 —— 章节 III A Few Matters of Form

前言&#xff1a;本篇为书籍《The Element of Style》第三章的阅读笔记。 本书电子版链接&#xff1a;http://www.jlakes.org/ch/web/The-elements-of-style.pdf 章节 I Elementary Rules of Usage 阅读笔记&#xff1a;链接章节 II Elementary Principles of Composition 阅读…

JavaScript进阶之路(一)初学者的开始

一&#xff1a;写在前面的问题和话 一个javascript初学者的进阶之路&#xff01; 背景&#xff1a;3年后端&#xff08;ASP.NET&#xff09;工作经验&#xff0c;javascript水平一般般&#xff0c;前端水平一般般。学习资料&#xff1a;犀牛书。 如有误导&#xff0c;或者错…

Git日常使用技巧 - 笔记

Git日常使用技巧 - 笔记 Git是目前世界上最先进的分布式版本控制系统 学习资料 廖雪峰 学习视频 https://www.bilibili.com/video/BV1pX4y1S7Dq/?spm_id_from333.337.search-card.all.click&vd_source2ac127043ccd79c92d5b966fd4a54cd7 Git 命令在线练习工具 https://l…