当前位置: 首页 > news >正文

5.1 运输层协议概述

思维导图:

 

前言:

第5章 运输层笔记

1. 概览
  • 主要内容:介绍运输层协议的特点、进程间通信、端口、UDP和TCP协议、可靠传输、TCP报文段的首部格式、TCP的关键概念(如滑动窗口、流量控制、拥塞控制和连接管理)。
  • 重要性:运输层是网络体系结构中的核心层次。
2. 运输层的基础概念
  • 逻辑通信:运输层为通信的应用进程提供逻辑通信。
  • 端口与套接字:运输层使用端口和套接字来标识和管理不同的通信会话。
3. 无连接的UDP
  • 定义:简单的传输协议,不建立连接。
  • 特点:高效但可能不可靠。
4. 面向连接的TCP
  • 定义:复杂的传输协议,需要建立连接。
  • 特点:可靠但可能相对较慢。
5. 可靠传输的工作原理
  • 目标:在不可靠的网络上实现可靠传输。
  • 方法
    • 停止等待协议
    • ARQ协议
6. TCP的关键特性
  • 滑动窗口:用于数据流量的有效控制。
  • 流量控制:确保数据在合适的速率下流动。
  • 拥塞控制:防止网络拥塞。
  • 连接管理:管理TCP连接的建立、维护和终止。

 

 

笔记:5.1.1 进程之间的通信


1. 运输层的定位
  • 位于面向通信部分的最高层。
  • 是用户功能中的最低层。
  • 只在主机的协议栈中存在,网络核心部分(如路由器)只使用下三层功能。
2. 逻辑通信
  • 网络层的通信端点:主机。
  • 运输层的通信端点:进程。
  • 逻辑通信定义:数据看似是在两端直接传输,但实际上它经过了多个层次,这种“看似”的通信称为逻辑通信。
3. 运输层的主要功能
  • 复用 (multiplexing):不同的应用进程都可以使用同一个运输层协议发送数据。
  • 分用 (demultiplexing):接收端的运输层可以正确地将数据传递给目的应用进程。
  • 提供应用进程间的逻辑通信。
4. 网络层 vs 运输层
  • 网络层:提供主机之间的逻辑通信。
  • 运输层:为应用进程间提供端到端的逻辑通信。
  • 运输层有许多网络层无法替代的功能。
  • 运输层对上层屏蔽了网络核心的细节。
5. 差错检测
  • 运输层进行报文的差错检测。
  • 而网络层中的IP数据报仅检查首部,不检查数据部分。
6. 两种主要运输协议
  • 面向连接的TCP:虽然下层网络可能是不可靠的,但TCP为上层提供了一个看似可靠的逻辑通信信道。
  • 无连接的UDP:即使使用UDP,逻辑通信信道仍然是不可靠的。

 

 

5.1.2 运输层的两个主要协议笔记

主题: 运输层的两大核心协议:UDP和TCP。

  1. TCP/IP运输层的两大协议

    • 用户数据报协议 UDP (User Datagram Protocol)
    • 传输控制协议 TCP (Transmission Control Protocol)
  2. 位置于协议栈:

    • 应用层
    • UDP / TCP
    • IP
    • 各种网络接口
  3. 传输数据单位:

    • 在TCP/IP中,使用的数据单位:
      • TCP -> 报文段 (Segment)
      • UDP -> 用户数据报
  4. UDP特点:

    • 无连接:发送数据前不需建立连接。
    • 无确认:接收方收到数据后不给出确认。
    • 不可靠交付:可能丢包,但某些场景下效率高。
  5. TCP特点:

    • 面向连接:数据传送前需先建立连接,传送结束后释放连接。
    • 无广播、多播
    • 可靠交付:包含确认、流量控制、计时器和连接管理等功能。
    • 由于其复杂性,会占用较多的处理资源。
  6. 应用与协议使用情况:

    应用应用层协议运输层协议
    名字转换DNSUDP
    文件传送TFTPUDP
    路由选择RIPUDP
    IP地址配置DHCPUDP
    网络管理SNMPUDP
    远程文件服务器NFSUDP
    IP电话专用协议UDP
    多媒体通信专用协议UDP
    多播IGMPUDP
    电子邮件SMTPTCP
    远程终端接入TELNETTCP
    万维网HTTPTCP
    文件传送FTPTCP

结论: 运输层的UDP和TCP各有其用处,不同的应用和场景会选择不同的协议。UDP简单、快速但不可靠;而TCP则提供可靠的连接服务,但可能带来更多的开销。

 

5.1.3 运输层的端口

1. 复用和分用

  • 日常比喻:所有部门通过收发室发送公文(复用),收发室根据地址将公文发送给正确的部门(分用)。
  • 在计算机中:应用层所有进程通过运输层发送数据到IP层(复用),从IP层接收数据后再根据标识分发给正确的应用进程(分用)。

2. 如何标识应用进程

  • 计算机内部:进程标识符
  • 互联网上:由于存在不同的操作系统和进程标识格式,使用统一的端口号(port)来标识不同的应用进程。

3. 端口的重要性

  • 定义:在TCP/IP体系中,用于标志应用进程与运输层之间的接口。
  • 软硬件区别:这里讨论的是软件端口,与硬件设备的端口完全不同。
  • 端口号范围:0-65535,其中有几个特定的区域是为特定的用途预留的。

4. 两大类的端口

  1. 服务器端端口
    • 熟知端口号:0-1023
      • 例如:
        • FTP: 21
        • TELNET: 23
        • SMTP: 25
        • DNS: 53
        • TFTP: 69
        • HTTP: 80
        • SNMP: 161
        • HTTPS: 443
    • 登记端口号:1024-49151
  2. 客户端端口
    • 短暂端口号:49152-65535,用于短期、临时通信。

5. 端口的应用

  • 当服务器收到客户的报文时,它可以根据客户的端口号将数据返回给客户。
  • 服务器端的熟知端口是固定的,确保客户可以始终找到它,而客户端的短暂端口是动态分配的,用完即弃。

6. 小结

端口在运输层中起到了非常关键的作用,是确保数据能够正确传输到目标应用进程的关键。而为了满足各种应用和场景,端口又分为了不同的类型和范围,每种都有其特定的用途和意义。

总结:

重点:
  1. 运输层的功能:复用和分用,即将多个应用层进程的数据集中传输,并在接收端正确分发给相应的应用进程。
  2. 端口的概念与重要性:端口是运输层与应用层交互的地址或接口,用于明确标识应用进程。
  3. 端口的分类:包括服务器端的熟知端口和登记端口,以及客户端的短暂端口。
难点:
  1. 为何不能用进程标识符在互联网上标识进程:由于互联网上存在多种操作系统,而不同操作系统使用不同的进程标识格式。
  2. 软件端口与硬件端口的区别:两者服务的目标和层次不同,前者服务于应用与运输层之间的通信,后者服务于物理设备间的连接。
易错点:
  1. 混淆端口的概念:可能将软件端口与硬件端口混为一谈,或误解其用途。
  2. 端口号范围与应用:可能误解端口号的范围和其对应的应用,例如将客户端的短暂端口与服务器的熟知端口混淆。
  3. 复用与分用的概念:可能混淆这两个相反的过程,特别是在理解其在运输层中的应用时。

建议在学习运输层时,重点理解其为应用层提供的服务和功能,并牢记与其交互的各种协议和概念,特别是与端口相关的内容。同时,注意端口在实际通信中的应用,理解其在确定通信双方身份中的关键作用。

 

相关文章:

5.1 运输层协议概述

思维导图: 前言: 第5章 运输层笔记 1. 概览 主要内容:介绍运输层协议的特点、进程间通信、端口、UDP和TCP协议、可靠传输、TCP报文段的首部格式、TCP的关键概念(如滑动窗口、流量控制、拥塞控制和连接管理)。重要性…...

Jmeter保存csv数据文件出现乱码

在Jmeter的聚合报告中,点击“Save Table Data”,打开保存的CSV文件中文出现乱码。这是因为CSV文件的格式不是UTF-8导致。 解决办法如下: 方法:使用记事本打开csv文件(打开方式选择记事本),点击左上角菜单“文件-》另存…...

双闭环直流电机调速系统设计

要 在我们日常生活中,无刷直流电机随处可见,因为其相比其他电机而言结构相对简单,运行稳定且便于维修等优势,最重要的是直流电机在调速方面具有很好的优势。随着自动控制技术和微电子技术的不断革新,目前的技术水平为…...

[ poi-表格导出 ] java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader

解决报错: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader 报错描述: 表格导出本来使用正常,偶然就报了以上错误…...

基于FPGA的图像差分运算及目标提取实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2022/07/28 01:51:…...

闭环思维笔记

这本书的情况我已经看完了,道理方面还是不错的,但案例方面跟我前几年在抖音看到的畅销书的案例一样,答辩,所以要看的人一定要根据不同的情况和场景去实施。 闭环思维的核心就是有始、有终、有反馈,在开始和结束过程中前…...

JMeter如何开展性能测试

文章目录 性能测试指标理解透彻以及测算微聊性能测试性能测试流程准备流程 ​👑作者主页:Java冰激凌 性能测试指标理解透彻以及测算 虚拟用户数: 线程 用户并发数:指在某一时间,一定数量的虚拟用户同时对系统的某个功…...

使用logback按天生成日志并按等级进行分类

先看效果---->>>> 按照&#xff1a;error、info、warn进行分类&#xff1a; 每个文件里面按日期进行分类&#xff1a; 其中对应的Maven如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven…...

【Linux】Linux项目部署及更改访问端口号和jdk、tomcat、MySQL环境搭建的配置安装

目录 一、作用 二、配置 1、上传安装包 2、jdk 2.1、解压对应安装包 2.2、环境变量搭建 3、tomcat 3.1、解压对应安装包 3.2、启动 3.3、设置防火墙 3.4、设置开发端口 4、MySQL 三、后端部署 四、Linux部署项目 1、单体项目 五、修改端口访问 1、进入目录 2…...

Pytorch 注意力机制解析与代码实现

目录 什么是注意力机制1、SENet的实现2、CBAM的实现3、ECA的实现4、CA的实现 什么是注意力机制 注意力机制是深度学习常用的一个小技巧&#xff0c;它有多种多样的实现形式&#xff0c;尽管实现方式多样&#xff0c;但是每一种注意力机制的实现的核心都是类似的&#xff0c;就…...

Python上下文管理:with语句执行原理

什么是上下文管理器 上下文管理器&#xff08;Context Manager&#xff09;是 Python 中用于管理资源分配和释放的一种机制。它允许您在进入和退出代码块时执行特定的操作&#xff0c;例如打开和关闭文件、建立和关闭数据库连接、获取和释放锁等。上下文管理器常常与 with 语句…...

Mac-Java开发环境安装(JDK和Maven)

JDK安装 1、访问oracle官网&#xff0c;下载jdk 点击下载链接&#xff1a;https://www.oracle.com/java/technologies/downloads/#java11-mac 选择Mac版本&#xff0c;下载dmg 打勾点击下载&#xff0c;跳转登陆&#xff0c;没有就注册&#xff0c;输入账号密码即可下载成功…...

mac下的vscode配置编译环境

基础开发环境 创建Dockerfile文件&#xff0c;内容如下&#xff1a; FROM ubuntu:20.04RUN apt update & apt install make gcc cmake git ninja-build -y CMD [ "sleep", "infinity" ]创建docker-compose.yml文件&#xff0c;内容如下&#xff1a; …...

洗衣洗鞋柜洗衣洗鞋小程序

支持&#xff1a;一键投递、上门取衣、自主送店、多种支付方式 TEL: 17638103951(同V) -----------------用户下单-------------- -------------------------多种支付和投递方式------------------------- -----------------商家取鞋--------------...

vi vim 末尾编辑按GA 在最后一行下方新增一行编辑按Go

vim 快速跳到文件末尾 在最后一行下方新增一行 移到末尾,并且进入文本录入模式 GA (大写G大写A) 在一般模式(刚进入的模式,esc模式) GA 或 Shift ga 先 G 或 shiftg 到最后一行 然后 A 或 shifta 到本行末尾 并且进入文本录入模式 在最后一行下方新增一行 (光标换行,文字不…...

LeetCode热题100 240.搜索二维矩阵||

题目描述&#xff1a; 编写一个高效的算法来搜索 m*n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例1&#xff1a; 输入&#xff1a;matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,2…...

Anaconda安装及使用教程

前言&#xff1a;鉴于本人曾经学过计算机双学位&#xff0c;近日突然发现电脑上装了Anaconda&#xff0c;然而脑子里对为什么装这个&#xff0c;啥时候装的以及怎么用的都忘记了。因此&#xff0c;想学习了解下这个软件。 1 Anaconda简介 Anaconda&#xff0c;一个开源的Pyth…...

动态规划算法实现------转换(编辑、变换)问题

目录 一、字符串转换问题 1.1问题 1.2确定动态规则(DP、状态转移方程)、初始值 (1)插入操作实现状态转移 (2)删除操作实现状态转移 (3)替换操作实现状态转移 (4)初始值 1.3动态规划算法代码实现 (1)完整代码 (2)程序速度优化 二、矩阵变换问题 2.1问题 2.2矩阵乘法 (1)矩阵相乘…...

C#使用Oracle.ManagedDataAccess.dll

1、添加引用 在网上下载一个Oracle.ManagedDataAccess.dll&#xff0c;引用即可&#xff0c;视操作系统的位数&#xff0c;最重要的是减少了Oracle客户端的安装&#xff1b; 2、web.config字串 <appSettings> <add key"hrp" value"Data Source (…...

分享88个工作总结PPT,总有一款适合您

分享88个工作总结PPT&#xff0c;总有一款适合您 88个工作总结PPT下载链接&#xff1a;https://pan.baidu.com/s/1y08X9RMdIOCncbs28aMgDw?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 蓝色水彩风年终总结PPT模板 清新水彩简…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...