计算机网络(五):运输层
参考引用
- 计算机网络微课堂-湖科大教书匠
- 计算机网络(第7版)-谢希仁
1. 运输层概述
-
之前所介绍的计算机网络体系结构中的物理层、数据链路层以及网络层它们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信,但实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程
-
如何为运行在不同主机上的应用进程 (AP) 提供直接的通信服务是运输层的任务,运输层协议又称为端到端协议

-
运输层向高层用户屏蔽了下面网络核心的细节 (如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道
-
根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP
2. 运输层端口号,复用与分用概念
2.1 运输层端口号
- 运行在计算机上的进程使用进程标识符 PID 来标志,因特网上的计算机并不是使用统一的操作系统,不同的操作系统 (windows,Linux,Mac OS) 又使用不同格式的进程标识符。为了使运行不同操作系统的计算机的应用进程之间能够进行网络通信,就必须使用统一的方法对 TCP/IP 体系的应用进程进行标识
- TCP/IP 体系的运输层使用端口号来区分应用层的不同应用进程
- 端口号使用 16 比特表示,取值范围 0~65535
- 熟知端口号:0~1023,IANA 把这些端口号指派给了 TCP/IP 体系中最重要的一些应用协议,例如:FTP 使用 21/20,HTTP 使用 80,DNS 使用 53
- 登记端口号:1024~49151,为没有熟知端口号的应用程序使用。使用这类端口号必须在 IANA 按照规定的手续登记,以防止重复。例如:Microsoft RDP 微软远程桌面使用的端口是 3389
- 短暂端口号:49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用
- 端口号只具有本地意义,即端口号只是为了标识本计算机应用层中的各进程,在因特网中不同计算机中的相同端口号是没有联系的
- 端口号使用 16 比特表示,取值范围 0~65535
2.2 发送方的复用和接收方的分用

- TCP/IP 体系的应用层常用协议所使用的运输层熟知端口号

3. UDP 和 TCP 对比
-
UDP和 TCP 是 TCP/IP 体系结构运输层中的两个重要协议
- 用户数据报协议 UDP(User Datagram Protocol)
- 传输控制协议 TCP(Transmission Control Protocol)

-
UDP 和 TCP 对比
-
对比一

-
对比二

-
对比三

-
对比四

-
对比五

-
4. TCP 控制
4.1 TCP 流量控制
-
一般来说,总是希望数据传输得更快一些
- 但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失
-
所谓流量控制 (flow control) 就是让发送方的发送速率不要太快,要让接收方来得及接收
- 利用滑动窗口机制可以很方便地在 TCP 连接上实现对发送方的流量控制
-
示例


4.2 TCP 拥塞控制
-
在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做拥塞 (congestion)
- 在计算机网络中的链路容量 (即带宽)、交换结点中的缓存和处理机等,都是网络的资源
-
若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降

-
四种拥塞控制算法
- 慢开始 (slow-start)
- 拥塞避免 (congestion avoidance)
- 快重传 (fast retransmit)
- 快恢复 (fast recovery)
5. TCP 运输连接管理
5.1 TCP 连接建立
- TCP 是面向连接的协议,它基于运输连接来传送 TCP 报文段
- TCP 运输连接的建立和释放是每一次面向连接的通信中必不可少的过程
- TCP 运输连接有以下三个阶段
- 建立 TCP 连接
- 数据传送
- 释放 TCP 连接

TCP 的运输连接管理就是使运输连接的建立和释放都能正常地进行
-
TCP 的连接建立要解决以下三个问题
- 使 TCP 双方能够确知对方的存在
- 使 TCP 双方能够协商一些参数 (如最大窗口值、是否使用窗口扩大选项和时间截选项以及服务质量等)
- 使 TCP 双方能够对运输实体资源 (如缓存大小、连接表中的项目等) 进行分配
-
TCP 使用 “三报文握手” 建立连接

5.2 TCP 连接释放
- TCP 通过 “四报文挥手” 来释放连接

相关文章:
计算机网络(五):运输层
参考引用 计算机网络微课堂-湖科大教书匠计算机网络(第7版)-谢希仁 1. 运输层概述 之前所介绍的计算机网络体系结构中的物理层、数据链路层以及网络层它们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信ÿ…...
适合在校学生的云服务器有哪些?
随着云计算技术的发展,越来越多的学生开始使用云服务器来进行学习和实践。对于学生来说,选择一款便宜的云服务器不仅可以帮助他们降低成本,还可以提高学习和实践的效率。本文将介绍几款适合学生使用的便宜云服务器。 1、腾讯云学生服务器【点…...
计算机竞赛 深度学习驾驶行为状态检测系统(疲劳 抽烟 喝水 玩手机) - opencv python
文章目录 1 前言1 课题背景2 相关技术2.1 Dlib人脸识别库2.2 疲劳检测算法2.3 YOLOV5算法 3 效果展示3.1 眨眼3.2 打哈欠3.3 使用手机检测3.4 抽烟检测3.5 喝水检测 4 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的驾…...
想要精通算法和SQL的成长之路 - 验证二叉搜索树和不同的二叉搜索树
想要精通算法和SQL的成长之路 - 验证二叉搜索树和不同的二叉搜索树 前言一. 验证二叉搜索树二. 不同的二叉搜索树三. 不同的二叉搜索树II 前言 想要精通算法和SQL的成长之路 - 系列导航 二叉搜索树的定义: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包…...
SpringCloudAlibaba 相关组件的学习一
目录 前言 系统架构演变 1、单体架构 2、垂直架构 3、分布式架构 4、SOA架构 5、微服务架构 一、微服务架构的介绍 1、微服务架构的常见问题 2 微服务架构的常见概念 2.1 服务治理 2.2 服务调用 2.3 服务网关 2.4 服务容错 2.5 链路追踪 3、微服务架构的常用解决…...
【C语言 模拟实现strncpy函数、strncat函数、strncmp函数、strstr函数】
C语言程序设计笔记---026 C语言之模拟实现strncpy函数、strncat函数、strncmp函数、strstr函数1、介绍strncpy函数1.1、模拟实现strncpy函数 2、介绍strncat函数2.1、模拟实现strncat函数 3、介绍strncmp函数3.1、模拟实现strncmp函数 4、介绍strstr函数4.1、模拟实现strstr函数…...
Mongodb7启动报错排除解决方案
一: 报错信息: [rootwww log]# journalctl -xe -- Unit mongodb.service has begun starting up. /usr/local/mongodb/mongdb7/bin/mongod --help for more information 10月 03 13:47:39 www.yhchange.com systemd[1]: mongodb.service: control process exited, …...
王杰国庆作业day5
...
QT、C++实现地图导航系统(mapSystem)
文章目录 地图导航系统项目应用背景技术栈选择数据处理算法实现界面实现源码展示成果展示源码下载 (免费) 地图导航系统 项目应用背景 电子地图导航系统的主要目的是为用户提供精确、实时的导航和位置信息,以帮助他们在城市或地区内轻松找到…...
STM32 定时器介绍--通用、高级定时器
目录 高级定时器 1.功能框图 1-时钟源 2-时基单元 3-输入捕获 4-输出比较 2.输入捕获的应用 3.输出比较的应用 4.初始化结构体 1-时基初始化结构体 2-输出比较结构体 3-PWM信号 周期和占空比的计算--以通用定时器为例 4-输入捕获结构体 5-断路和死区初始化结构体…...
淘宝天猫渠道会员购是什么意思?如何开通天猫淘宝渠道会员购有什么用?
淘宝天猫渠道会员购是什么意思? 淘宝天猫渠道会员购与淘宝天猫粉丝福利购意思基本相同,都可以领取淘宝天猫大额内部隐藏优惠券、通过草柴APP开通绑定渠道会员还可以获得购物返利。 草柴APP如何绑定开通淘宝天猫渠道会员? 1、手机下载安装「…...
(Note)机器学习面试题
机器学习 1.两位同事从上海出发前往深圳出差,他们在不同时间出发,搭乘的交通工具也不同,能准确描述两者“上海到深圳”距离差别的是: A.欧式距离 B.余弦距离 C.曼哈顿距离 D.切比雪夫距离 S:D 1. 欧几里得距离 计算公式&#x…...
思科:iOS和iOSXe软件存在漏洞
思科警告说,有人试图利用iOS软件和iOSXe软件中的一个安全缺陷,这些缺陷可能会让一个经过认证的远程攻击者在受影响的系统上实现远程代码执行。 中严重程度的脆弱性被追踪为 CVE-2023-20109 ,并以6.6分得分。它会影响启用Gdoi或G-Ikev2协议的软件的所有版本。 国际知名白帽黑客…...
CCF CSP认证 历年题目自练Day19
题目一 试题编号: 201812-1 试题名称: 小明上学 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 题目背景 小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校。为了能尽可能充…...
Java 开发环境配置
在本章节中我们将为大家介绍如何搭建Java开发环境。 目录 window系统安装java 下载JDK 配置环境变量 JAVA_HOME 设置 PATH设置 CLASSPATH 设置 测试JDK是否安装成功 Linux,UNIX,Solaris,FreeBSD环境变量设置 流行 Java 开发工具 使…...
[2023.09.26]: JsValue的转换体验与as关键字的浅析
昨天解决了焦点问题,今天就开始搬砖了。本以为可以一帆风顺,但是还是遇到了几个问题,不过还好,都被一一解决,这里我分享一下JsValue的转换体验以及关键字as的使用浅析。 场景描述 我是在什么情况下遇到JsValue的转换…...
SpringBoot Validation入参校验国际化
在 Spring Boot 中,可以使用 Validation 和国际化来实现对入参的校验。 常用的校验 NotNull验证字段值不能为 nullNotEmpty验证字段值不能为 null 或空字符串NotBlank验证字符串字段值不能为空、null,并且必须至少包含一个非空白字符Size验证字符串、…...
树莓集团涉足直播产业园区运营,成都直播产业园区再添黑马
树莓集团涉足成都直播产业园运营领域,这一消息引起了业界的广泛关注。在这个无限可能的直播领域中,树莓集团将与上市公司德商产投紧密合作,立志为成都直播行业的发展注入新的活力。成都天府蜂巢直播产业园推行着一系列创新的政策措施…...
中小学教师ChatGPT的23种用法
原文:中小学教师ChatGPT的23种用法 近日,ChatGPT引发舆论风暴,火遍全球。作为一款生成式人工智能软件,ChatGPT可以就任何议题生成文本,完成包括回答问题,撰写文章、论文、诗歌在内的多种工作。各界盛赞其“…...
Ubuntu性能分析-ftrace 底层驱动
1、框架介绍 ftrace内核驱动可以分为几部分:ftrace framework,RingBuffer,debugfs,Tracepoint,各种Tracer。 ftrace框架是整个ftrace功能的纽带,包括对内和的修改,Tracer的注册,RingBuffer的控制等等。 RingBuffer是静态动态ftrace的载体。 debugfs则提供了用户空间…...
轨迹规划实战:用多项式插值+粒子群玩转机械臂运动优化
轨迹规划 路径规划 matlab 353多项式插值 基于改进粒子群算法 时间最优 针对六自由度 四自由度都可以,轨迹规划,多项式插值,更改轨迹点位置就可以搞机器人轨迹规划最头疼的就是既要轨迹丝滑又要时间最短。今天咱们用Matlab整点狠活—…...
从零开始:用QGIS和PostgreSQL构建交通路线空间数据库(含Python脚本自动化技巧)
从零开始:用QGIS和PostgreSQL构建交通路线空间数据库(含Python脚本自动化技巧) 在交通规划与智慧城市建设的浪潮中,空间数据的高效管理成为技术团队的核心挑战。传统文件存储方式难以应对大规模交通网络数据的实时查询与分析需求&…...
【PAT甲级真题】- Is It a Binary Search Tree (25)
题目来源 Is It a Binary Search Tree (25) 题目描述点击链接自行查看 注意点: 这里的二叉搜索树大于等于插到右边 思路简介 一道二叉树模板题(6202年了应该不会还有人不会写二叉树吧bushi ) 一开始想到前序遍历不可能确定一棵树还以为题目…...
WechatFerry实战指南:5步构建高效微信机器人自动化系统
WechatFerry实战指南:5步构建高效微信机器人自动化系统 【免费下载链接】wechatferry 基于 WechatFerry 的微信机器人底层框架 项目地址: https://gitcode.com/gh_mirrors/wec/wechatferry WechatFerry是一个基于Node.js生态的微信机器人底层框架,…...
Path of Building:流放之路玩家必备的终极Build规划神器
Path of Building:流放之路玩家必备的终极Build规划神器 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding 如果你正在玩《流放之路》并为复杂的Build规划感到头…...
ECharts Gallery弃用后,这4个替代网站让你轻松搞定数据可视化(附优缺点对比)
ECharts Gallery弃用后,这4个专业级替代方案深度评测 当ECharts官方Gallery宣布停止维护时,许多数据可视化开发者突然失去了一个重要的灵感来源和代码参考平台。作为国内最流行的可视化库之一,ECharts的生态系统中其实还隐藏着多个高质量的替…...
华为MatePad 11鸿蒙2.0平板变身编程本:保姆级AidLux+VSCode配置避坑指南
华为MatePad 11鸿蒙平板编程环境搭建实战:AidLux与VSCode高效配置指南 在移动办公与碎片化学习成为主流的今天,将华为MatePad 11这样的高性能平板转变为便携式编程工作站,正成为越来越多开发者的现实需求。鸿蒙系统2.0的分布式能力与AidLux的…...
MySQL视图实战:用SQL视图搞定学生奖学金评定与补考名单(附完整代码)
MySQL视图实战:用SQL视图搞定学生奖学金评定与补考名单(附完整代码) 教务管理系统中,数据处理效率直接影响决策质量。想象一下每学期末,教务处老师需要从数十万条记录中筛选奖学金候选人和补考名单——传统的手写SQL查…...
寻音捉影·侠客行多场景落地:覆盖会议/媒体/司法/金融/教育五大垂直领域
寻音捉影侠客行多场景落地:覆盖会议/媒体/司法/金融/教育五大垂直领域 1. 产品核心功能解析 寻音捉影侠客行是一款基于先进语音识别技术的音频关键词检索工具,它能够像江湖中的隐士高手一样,在浩瀚的音频海洋中精准定位特定关键词。这款工具…...
如何通过BewlyBewly实现B站界面的个性化焕新体验?
如何通过BewlyBewly实现B站界面的个性化焕新体验? 【免费下载链接】BewlyBewly Improve your Bilibili homepage by redesigning it, adding more features, and personalizing it to match your preferences. 项目地址: https://gitcode.com/gh_mirrors/be/Bewly…...
