计算机网络5:运输层

news2024/11/25 7:01:04

概述

进程间基于网络的通信

计算机网络中实际进行通信的真正实体,是位于通信两端主机中的进程。
如何为运行在不同主机上的应用进程提供直接的逻辑通信服务,就是运输层的主要任务。运输层协议又称为端到端协议
运输层向应用层实体屏蔽了下面网络核心的细节(例如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道。
根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输层协议,即面向连接的TCP和无连接的UDP,这两种协议就是本章要讨论的主要内容。

TCP和UDP

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

端口号

注意:这里的“端口”并不是看得见、摸得着的物理端口,而是用来区分不同应用进程的标识符。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

UDP和TCP的对比

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

TCP

TCP的全部功能需要依靠其首部中的各字段来实现。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保留占6比特,全0,以后使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
标志位:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三报文握手

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四报文挥手

在这里插入图片描述
此时处于半关闭状态
在这里插入图片描述
在这里插入图片描述
否则:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

流量控制

TCP为应用程序提供了流量控制(Flow Control)机制,以解决因发送方发送数据太快而导致接收方来不及接收,造成接收方的接收缓存溢出的问题。

流量控制的基本方法:接收方根据自己的接收能力(接收缓存的可用空间大小)控制发送方的发送速率。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
TCP规定:即使接收窗口值为0,也必须接受零窗口探测报文段、确认报文段以及携带有紧急数据的报文段。
零窗口探测报文段也有重传计时器, 当重传计时器超时后,零窗口探测报文段会被重传。在这里插入图片描述

拥塞控制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

慢开始+拥塞避免

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
“慢开始”是指一开始向网络注入的报文段少,而并不是指拥塞窗口cwnd的值增长速度慢。
“拥塞避免”也并非指完全能够避免拥塞,而是指在拥塞避免阶段将cwnd值控制为按线性规律增长,使网络比较不容易出现拥塞。

快重传和快恢复算法

“快重传”是指使发送方尽快(尽早)进行重传,而不是等重传计时器超时再重传。
在这里插入图片描述
对于个别丢失的报文段,发送方不会出现超时重传,也就不会误认为出现了拥塞而错误地把拥塞窗口cwnd的值减为1。实践证明,使用快重传可以使整个网络的吞吐量提高约20%。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这些都是在变更拥塞门限ssthresh,拥塞窗口cwnd,但真正发的是发送窗口,它还要考虑接收窗口的大小。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可靠传输的实现

TCP的滑动窗口以字节为单位
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

超时重传时间的选择

在这里插入图片描述
往返时间RTT的测量是比较复杂的.
报文段每重传一次,就把RTO增大一些。典型的做法是将新RTO的值取为旧RTO的2倍。
报文段发生重传,就不采用RTT样本计算RTO,而是把RTO增大一些。典型的做法是将新RTO的值取为旧RTO的2倍。
在这里插入图片描述

选择确认

在之前介绍TCP的快重传和可靠传输时,TCP接收方只能对按序收到的数据中的最高序号给出确认。当发送方超时重传时,接收方之前已收到的未按序到达的数据也会被重传。
能否设法只传送缺少的数据而不重传已经正确到达、只是未按序到达的数据呢?
TCP可以使用选择确认(Selective ACK,SACK)[RFC 2018](建议标准)
在这里插入图片描述
SACK相关文档并没有指明发送方应当怎样响应SACK。因此大多数的TCP实现还是重传所有未被确认的数据块。

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

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

相关文章

【x264】整体框架汇总

【x264】整体框架汇总 1. x264整体框架图2. 思考 参考: x264源代码简单分析:概述 参数分析: 【x264】x264编码器参数配置 流程分析: 【x264】x264编码主流程简单分析 【x264】编码核心函数(x264_encoder_encode&…

vue大作业-端午节主题网站

vue大作业-端午节主题网站介绍 端午节,又称为龙舟节,是中国的传统节日之一,每年农历五月初五庆祝。这个节日不仅是纪念古代爱国诗人屈原的日子,也是家人团聚、共享美食的时刻。今天,我们非常高兴地分享一个以端午节为…

有效招聘营销策略的六个组成部分

任何想吸引更多人购买其产品的公司都必须投资于市场营销。然而,当涉及到让更多的人了解公司的工作时,许多有效的营销活动可能不是招聘团队的首要考虑因素。为了超越招聘委员会上的“发布祈祷”策略,有必要包括有效招聘营销策略的所有组成部分…

COUNTIF函数除计数,还可排序哦

COUNTIF函数除统计个数外,还可以排序哦! 近期工作中遇到一个场景“对不同类型的人员按办理量进行排序”,前期只是对同一种类型进行排序,经过查阅资料,可以用COUNTIF函数解决问题,今天就把COUNTIF函数的用法…

ROS学习记录:launch文件启动Hector_Mapping的建图功能

前言 SLAM软件包Hector_Mapping 在上一篇笔记中,通过Hector_Mapping软件包实现了SLAM功能,运行了四条指令,有些麻烦。本文通过launch文件的使用将指令整合起来,方便功能的实现。 一、打开终端,输入cd catkin_ws1/src…

基于java+springboot+vue实现的在线远程考试系统(文末源码+Lw)230

摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自…

如何处理跨库查询,以保证数据一致性

如何处理跨库查询,以保证数据一致性? 处理跨库查询以保证数据一致性是一个复杂的问题,通常涉及到分布式数据库系统和事务管理。以下是一些关键步骤和策略: 使用事务: 在多个库之间执行操作时,确保它们作为一个原子单元…

IT入门知识第一部分《IT基础知识》(1/10)

目录 IT入门知识第一部分《IT基础知识》(1/10) 1.引言 2.第一部分:IT基础知识 2.1 计算机硬件 CPU:计算机的心脏 内存:数据的临时居所 存储设备:数据的长期仓库 输入输出设备:与计算机的…

第六节 未登录与登录分支设立

经常我们在设计中,经常会遇到多条件分支打开相关界面,下面重点基于一个控件判断对未登录与已登录分支跳转案例进行说明。 一、设置元件 注意:动态面板默认设置 二、设置隐藏面板 三、关联条件情形 1、设置触发事件的元件 2、启用情形 3、添加情形,增加面板中“未登录”为…

计算机专业毕设-在线商城系统

1 项目介绍 在线商城系统,后端java语言,springboot,SSM框架。前端thymeleaf,前后端不分离。本项目已经隐去作者信息,所有代码文件均没有创建人和创建时间,可以放心使用。 系统用户分为两类,管理…

VScode开发ARM环境搭建

1. vscode安装 直接访问官网: Visual Studio Code - Code Editing. Redefined 2. 安装插件 2.1. 安装Embedded IDE 2.2. 安装Cortex-debug 3. 工程初始化 3.1. 导入现有工程(推荐) 3.2. 或可创建新的工程 3.2.1. 选择Cortex-M项目 指定项目名称&…

Java输入输出语句 和 保留字

目录 键盘输入语句 保留字 键盘输入语句 Input.java , 需要一个 扫描器(对象), 就是Scanner 步骤 : 导入该类的所在包, java.util.*创建该类对象(声明变量)调用里面的功能 案例要求:可以从控制台接收用户信息,【姓…

【精品方案】数字孪生赋能的智慧园区物联网云平台建设方案

引言:随着信息技术的快速发展,智慧园区建设已成为城市发展的重要趋势。数字孪生技术作为智能制造和智慧城市的核心技术之一,为智慧园区的建设提供了全新的解决方案。本方案旨在通过构建基于数字孪生的物联网云平台,实现智慧园区的…

Codeforces Round 953 (Div. 2 ABCDEF题) 视频讲解

A. Alice and Books Problem Statement Alice has n n n books. The 1 1 1-st book contains a 1 a_1 a1​ pages, the 2 2 2-nd book contains a 2 a_2 a2​ pages, … \ldots …, the n n n-th book contains a n a_n an​ pages. Alice does the following: She …

可以聊天的ai软件有实用的吗?分享3个智能的软件!

在数字化浪潮席卷而来的今天,人工智能(AI)技术已经深入我们生活的方方面面,其中AI聊天软件以其独特的交互方式和智能化的对话体验,吸引了众多用户的关注。本文将为您盘点当前市场上热门的AI聊天软件,带您领…

怎么监控公司的电脑屏幕使用记录?倾情推荐这六款电脑屏幕监控软件

监控公司电脑屏幕使用记录主要是为了提高工作效率、保障信息安全以及确保员工合规使用公司资源。以下是几个推荐的软件。看完您心中就会有自己的选择。 1.安企神软件 功能特点:安企神提供了实时屏幕监控、屏幕录制、文件操作记录、网页浏览监控等多种功能。它可以实…

安装docker与docker-compose

1. 项目目标 (1)安装docker (2)安装docker-compose (3)配置镜像源 2. 项目准备 centos7.9系统 3. 项目实施 3.1. 安装docker 安装基本命令: yum -y install wget yum -y install vim y…

共享充电新风潮来了,能效电气与高德地图强强联手

在新能源汽车市场中,无论是新势力车企还是BBA等传统车企,都在积极布局,内卷现象愈发明显。为何这些车企纷纷选择入局新能源市场?答案显而易见,新能源汽车具有环保、节能、低维护成本等诸多优势,相较于传统燃油车,它们更能满足现代消费者对绿色、可持续出行的需求。 这场内卷不…

.Net Core WebApi 程序在Swagger API说明文档中不显示注释的解决办法

本次所用版本为 .Net6.0 现象:在Swagger启动后,API接口等不显示注释描述,如下: 在代码中找到调用AddSwaggerGen的地方,如下: builder.Services.AddSwaggerGen(); 修改为: builder.Services.…

IDEA中SpringMVC的运行环境问题

文章目录 一、IEAD 清理缓存二、用阿里云和spring创建 SpringMVC 项目中 pom.xml 文件的区别 一、IEAD 清理缓存 springMVC 运行时存在一些之前运行过的缓存导致项目不能运行,可以试试清理缓存 二、用阿里云和spring创建 SpringMVC 项目中 pom.xml 文件的区别 以下…