5.1 运输层协议概述

news2024/11/28 9:28:21

思维导图:

 

前言:

第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. 复用与分用的概念:可能混淆这两个相反的过程,特别是在理解其在运输层中的应用时。

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

 

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

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

相关文章

自定义类型结构体(上)

目录 结构体类型的声明结构体的概念结构体的声明特殊的声明结构的自引用 结构体变量的创建和初始化结构成员访问操作符 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒 个人主页 🥸🥸&#x1…

linux下df -h 命令一直卡住的解决方法

在Linux中,偶尔遇到用 df -h 查看磁盘情况时,一直卡住无法显示结果。 解决方法: 1、首先使用strace追踪到底执行到哪里卡住 $ strace df -h 2、如果没有strace命令则进行安装 $ yum install strace -y 3、显示出卡住的地方,如…

[0xGame 2023 公开赛道] week4 crypto/pwn/rev

最后一周结束了,难度也很大,已经超出我这认为的新生程度了。 crypto Orac1e 先看题,题目先是给了加密过的flag然后提供不限次数的解密,不过仅提供解密后unpad的结果。 from Crypto.Util.number import * from Crypto.Cipher i…

WinCC7.5 将归档数据打印到MSHGrid(不是MSFlexGrid控件)

参考网址:https://www.cnblogs.com/fishingsriver/p/14397431.html 新建变量 MSHGrid控件 查询按钮 Sub OnClick(ByVal Item) Dim myCatalog,myDS,PCN…

【python】路径管理+路径拼接问题

路径管理 问题相对路径问题绝对路径问题 解决os库pathlib库最终解决 问题 环境:python3.7.16 win10 相对路径问题 因为python的执行特殊性,使用相对路径时,在不同路径下用python指令会有不同的索引效果(python的项目根目录根据执…

【嵌入式】HC32F07X CAN通讯配置和使用配置不同缓冲器以连续发送

一 背景说明 使用小华(华大)的MCU HC32F07X实现 CAN 通讯配置和使用 二 原理分析 【1】CAN原理说明(参考文章《CAN通信详解》): CAN是控制器局域网络(Controller Area Network, CAN)的简称,是一种能够实现…

公司上网行为监控能监控到什么

公司上网行为监控是一个备受关注的话题,它可以监控员工的网络行为,保护企业的机密和数据安全。但是,这种监控行为也会涉及到员工的隐私权和数据安全问题。 公司上网行为监控能监控到什么: 1、访问网站精确到员工信息、计算机名称…

uni-starter 使用常见问题

1. Invalid uni-id config file 没有找到uni-id文件导致 需要在uniCloud-aliyun/cloudfunctions/common/uni-config-center/uni-id/下新建 config.json 如果没有uni-id 就新建一个。 注意:config.json是一个标准json文件,不支持注释 uni-starter 按照…

git简单介绍,回车换行问题,倒计时+进度条小程序的实现+代码

目录 git--版本控制工具 介绍 使用 小程序 引入 回车换行问题 缓冲区问题 倒计时 分析 代码 进度条 分析 代码 git--版本控制工具 首先,我们需要下载git : yum install git 介绍 Git是一种分布式版本控制系统,用于跟踪文件和目录的变化并协调多个人之…

ACID模型

ACID 是数据库管理系统(DBMS)中用来确保事务处理正确性和可靠性的四个特性的首字母缩写。ACID 是指原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性&#xff08…

亚马逊美国站书包,书皮,便当盒,铅笔盒CPC认证

在人们生活中学习用品的种类十分丰富,并且随着社会经济以及现代电子科技的飞速发展,传统的学习用品已经不能满足人们对学习用品的需求,电子学习用品异军突起,受到了越来越多年轻人的青睐。我国庞大的学习用品消费群体每年用于购买…

字体文件名称成中的Bold, Light,Italic,Regular, Medium是什么意思?

解释 字体文件名: IntelOneMono-Bold.ttf其中IntelOneMono字体名称 Bold 字体的样式 .ttf字体后缀 样式英文 中文Bold粗体BoldItalic粗体斜体Italic斜体Light细体LightItalic斜细体Medium中等MediumItalic中等斜体Regular标准以下来自鸿蒙字体以下来自鸿蒙字体TC…

CSS标点符号换行问题

最近遇到一个奇怪的现象,元素中中文文本正常显示,但是加了一堆符号后中文文本居然换行了. div{width: 200px;border: 1px solid blue;word-break: break-all;} <div>文本</div>经过研究发现&#xff0c;因为标点符号不允许出现在行首和行尾&#xff0c;连带着符号…

【Linux】第八站:gcc和g++的使用

文章目录 一、解决sudo命令的问题二、Linux编译器-gcc/g1.gcc的使用2.g的使用 三、gcc编译链接过程1.预处理2.编译&#xff08;生成汇编&#xff09;3.汇编&#xff08;生成机器可识别代码&#xff09;4.链接&#xff08;生成可执行文件或库文件&#xff09;5.一些选项的意义 四…

Serverless与AI驱动,阿里云数据库核心能力全面升级!

11月1日&#xff0c;2023杭州云栖大会上&#xff0c;阿里云瑶池数据库宣布已全面实现Serverless化&#xff0c;并接入通义等大模型能力&#xff0c;大幅提升数据库一站式及智能化水平。同时&#xff0c;PolarDB Always On系列推出3大重磅升级&#xff0c;首个数据智能助手DMS C…

阿里云2核2G3M云服务器99元/年,新老同享,续费不涨价!

2023年阿里云双11活动正在火热进行中&#xff0c;推出了一款面向个人开发者、学生、小微企业的年度爆款套餐&#xff0c;2核2G3M云服务器99元/年&#xff0c;新老同享&#xff0c;续费不涨价&#xff01; 一、活动入口 活动地址&#xff1a;传送门>>> 二、活动详情 …

【标准化封装 钽电容封装】Tantalum Capacitors 各种壳

〇、引言 钽电容你见到的是什么封装&#xff1f;7343&#xff1f;那是D壳还是E壳&#xff1f; 有没有PCB焊接调试好&#xff0c;结构缺盖不住盖子了&#xff1f;&#xff1f;&#xff1f; 一、正文 上图片 这个叫黑钽 这个叫黄钽 这个叫啥我也不知道 二、封装 典型厂家壳…

stm32 定时器中断

目录 定时器分类 通用定时器框图 时钟源 内部时钟&#xff08;CK_INT&#xff09; 外部时钟模式 1&#xff08; TI1、 TI2&#xff09; 时钟信号输入引脚 滤波器 如果来自外部的时钟信号的频率过高或者混杂有高频干扰信号的话&#xff0c;我们就需要使用滤波器对信号重新…

入栏需看——管理类联考——英语——知识+记忆篇——导航页

文章目录 Section I Use of English——完型填空Section II Reading ComprehensionPart A——阅读理解 A 节&#xff08;Part A&#xff09;&#xff08;四篇&#xff09;Part B——阅读理解 B 节&#xff08;Part B&#xff09;&#xff08;只有一篇&#xff09;Part C——翻译…

Linux shell编程学习笔记19:until循环语句

Linux shell编程中的until语句&#xff0c;在功能上与其它编程语言一致&#xff0c;但在结构与其它编程语言又不太一样。在大多数编程语言中&#xff0c;until语句的循环条件表达式一般位于循环体语句的后面&#xff0c;但是在Linux shell编程中&#xff0c;until语句的循环条件…