计算机网络【4】传输层

概述

传输层是只有主机才有的层次

传输层的功能:

  1. 传输层提供进程和进程之间的逻辑通信(网络层提供主机与主机之间的逻辑通信)
  2. 复用和分用
  3. 传输层对收到的报文进行差错检测

传输层有两个协议:

  • 面向连接的传输层控制协议TCP(靠谱):传送数据之前必须建立连接,数据传送结束以后释放连接。不提供广播或者多播服务。由于TCP要提供可可靠的面向连接的传输服务,因此不可避免地增加了许多开销:确认、流量控制、计时器及连接管理等

特点:可靠、面向连接、时延大、适用于大文件

  • 无连接的用户数据报协议UDP(不靠谱):传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。

特点:不可靠、无连接、时延小、适用于小文件

传输层的寻址与端口:

  • 复用:应用层所有的应用程序都可以通过传输层再传输到网络层
  • 分用:传输层从网络层收到数据后交付指明的应用程序

端口:是传输层的SAP,标识主机的应用进程。 逻辑端口/软件端口

端口号只有本地意义,再因特网中不同计算机的相同端口是没有联系的。

端口号的长度为16bit,能表示65536个不同的端口号

在这里插入图片描述在这里插入图片描述
套接字:在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程。
Socket = (主机IP地址, 端口号)

UDP协议

UDP只在IP数据报服务上增加了很少功能,即复用分用和差错检测功能。

特点:

  • UDP是无连接的,开销和发送数据之前的时延较小
  • UDP使用最大努力交付,即不保证可靠交付。可靠交付由应用层保证
  • UDP是面向报文的,适合一次性传输少量数据的网络应用

面向报文:对应用层报文不会改变,应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整报文。

  • UDP没有拥塞控制,适合很多实时应用
  • UDP首部开销小8字节,TCP20字节

源端口号可有可无,如果不需要接收回复信息就不需要源端口号
在这里插入图片描述

UDP检验

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

TCP协议

特点:

  • 面向连接,建立虚连接。
  • 每条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
  • TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重
  • TCP提供全双工通信:发送缓存、接收缓存
    发送缓存:准备发送的数据、已发送但尚未收到确认的数据
    接受缓存:按序到达但尚未被接受应用程序读取的数据、不按序到达的数据
  • TCP面向字节流:TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流
    在这里插入图片描述

TCP报文段的首部格式

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

TCP连接管理(TCP三次握手)

TCP连接传输的三个阶段:连接建立——>数据传送——>连接释放
TCP连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫做服务器。

只有在连接请求和连接请求接受的时候同步位SYN=1,其他时候都为0
在这里插入图片描述在这里插入图片描述
设置SYN cookie防止SYN洪范攻击

TCP的连接释放(TCP四次握手)

参与一条TCP连接的两个进程中的任何一个都能够终止该连接,连接结束后,主机中的资源将被释放。

在这里插入图片描述

TCP可靠传输

可靠:保证接收方进程从缓冲区读出的字节流与发送方发出的字节流是完全一样的

实现可靠传输的机制:

  • 校验:增加伪首部
  • 序号:传输以字节为单位,为字节编号。序号字段(一个报文段第一个字节的序号)
  • 确认:累计确认,返回确认号字段。(捎带确认)
  • 重传:超时重传,发送方如果发送了一段时间(重传时间)后没有收到来自接收方的确认字段,就会重新发送

对于重传时间:TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间)

RTT:从发送开始直到收到确认为止的时间

冗余ACK(冗余确认):每当比期望序号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号。

在这里插入图片描述

TCP流量控制

TCP利用滑动窗口机制实现流量控制

在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接受窗口rwnd(接收方设置确认报文段的窗口字段来将rwnd通知给发送方),发送方的发送窗口取接收窗口rwnd和拥塞窗口cwnd的最小值
在这里插入图片描述

TCP拥塞控制

出现拥塞的条件:对资源需求的总和 > 可用资源

网络中有许多资源同时呈现供应不足 ——>网络性能变坏——>网络吞吐量随输入负荷增大而下降

拥塞控制:防止过多的数据注入到网络中。全局性。

拥塞控制和流量控制的区别:

  • 拥塞控制是全局控制,而流量是点对点控制
    在这里插入图片描述
  • 流量控制的原因是因为发送速率过快,导致接收缓存不够。拥塞控制的原因是网络流量过多导致堵塞。
拥塞控制四种算法
  • 慢开始
  • 拥塞避免
  • 快重传
  • 快恢复

假定:

  • 数据单方向传送,而另一个方向只传送确认

  • 接收方总是有足够大的缓存空间,因而发送窗口大小取决于拥塞程度
    发送窗口 = Min(接收窗口rwnd, 拥塞窗口cwnd)

  • 接收窗口:接收方根据接收方缓存设置的值,并告知给发送方,反映接收方容量

  • 拥塞窗口:发送方根据自己估算的网络拥塞程度而设置的窗口值,反应网络当前容量

慢开始和拥塞避免

ssthresh 慢开始门限
新的慢开始门限 = 发生拥塞的cwnd/2

在这里插入图片描述

快重传和快恢复

在这里插入图片描述

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

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

相关文章

计算机网络【0】概述

计算机网络概念和功能 概念 是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。 计算机网络是互连的、自治(无主从关系)的计算机集合。 功能 数据通信&am…

计算机网络【1】物理层

物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。 确定与传输媒体接口有关的特性 机械特性:定义物理连接的特性,如规格、接口形状、引线数目、引脚数目、排列电气特性:规定传输二进制位时的电…

计算机网路【2】数据链路层

结点:主机、路由器 链路:两个节点的物理通道 数据链路:逻辑通道,把实现 控制数据传输协议的硬件和软件加到链路上就构成数据链路 帧:链路层的协议数据单元,封装网络层数据报 数据链路层在物理层提供服务的…

计算机网络【5】应用层

应用层对应用程序的通信提供服务 应用层协议定义: 应用层的功能: 文件传输、访问和管理电子邮件虚拟终端查询服务和远程作业登录 重要协议:FTP、SMTP、POP3、HTTP、DNS 网络应用模型 客户/服务器模型(Client/Server&#x…

操作系统【八】文件管理

文件:一组有意义的信息/数据集合 文件的属性: 文件名:由创建文件的用户决定文件名,主要是为了方便用户找到文件。同一个目录下不允许有重名文件标识符:一个系统内的个文件标识符唯一,对用户来说毫无可读性…

数据库原理及应用【六】数据库设计

数据依赖 函数依赖FD:一个属性或者一组属性的值可以决定另一个属性的值 多值依赖MVD:一个属性或者一组属性的值可以决定另一个属性的值的集合。FD是MVD的特例 符号表示:Name->->Course,课程多值依赖于姓名 连接依赖&#x…

数据库原理及应用【二】数据模型

层次模型 tree Record and fieldParent-Child relationship(PCR) 每个记录类型只有一个父节点 无法表达多对多信息 采用虚记录解决多对多 网状数据模型 系:主记录->属记录 主记录和属记录都可以有好多个 关系模型 表:table/relation 拥有更高的…

数据可视化【二】HTML+CSS+SVG+D3

HTML、CSS和SVG学习实现代码&#xff1a;https://vizhub.com/Edward-Elric233/89185eb96bc64a9d81777873a0ccd0b9 index.html <!DOCTYPE html> <html><head><title>Shapes with SVG and CSS</title><link rel"stylesheet" href&qu…

数据可视化【三】基本概念

Visualization is suitable when there is a need to augment human capabilities rather than replace people with computational decision-making methods. 当可以信赖的智能化的解决方案存在的时候&#xff0c;可视化是不必要的。 当不知道需要分析的问题是什么的时候&…

数据可视化【四】Bar Chart

Make a Bar Chart Representing a data table in JavaScriptCreating rectangles for each rowUsing linear and band scalesThe margin conventionAdding axes 以下学习内容参考博客&#xff1a;传送门 select()选择所有指定元素的第一个 selectAll()选择指定元素的全部 上…

数据库原理及应用【三】DBMS+SQL

DBMS Query LanguagesInterface and maintaining tools(GUI)APIsClass Library QL 不是图灵完备的&#xff0c;不是一种编程语言。 QL SQL是一种非过程化的查询语言。 DDL数据定义语言&#xff1a;表&#xff0c;视图QL 查询语言DML 数据操纵语言DCL 数据控制语言 Base t…

数据可视化【五】 Scatter Plot

Scatter Plot vizhub上实现的代码&#xff1a; https://vizhub.com/Edward-Elric233/53807a1b35d94329b3689081cd2ea945 https://vizhub.com/Edward-Elric233/b9647d50899a4a0e8e917f913cd0a53a https://vizhub.com/Edward-Elric233/8c6b50cd81a04f048f490f48e4fe6264 由前…

数据可视化【六】Line Chart Area Chart

Line Chart vizhub代码&#xff1a; https://vizhub.com/Edward-Elric233/094396fc7a164c828a4a8c2e13045308 实现效果&#xff1a; 这里先使用d3.line()设置每个点的x坐标和y坐标&#xff0c;然后再用这个东西设置path的d属性&#xff0c;就可以得到曲线。 const lineGen…

数据可视化【七】 更新模式

Enter 以下面这个简单的代码进行分析 const svg d3.select(svg); // svg.style(background-color, red); testconst height svg.attr(height); // equals paresFloat() const width svg.attr(width);const makeFruit type >( {type} ); //这种写法好像能够直接得到一个…

数据可视化【八】根据数据类型选择可视化方式

Marks:Rows PointsLinesAreas Channels:Columns PositionColorShape

数据可视化【九】单向数据流交互

我们使用一下上上篇博客的代码。 例如我们想要当鼠标点击水果的时候会出现黑色的框&#xff0c;再点击一下黑色的框就会消失。 首先&#xff0c;我们应该给组件添加点击事件&#xff1a; fruitBowl.js gruopAll.on(click, d > onClick(d.id));这个on函数第一个参数是事件…

数据库原理及应用【四】数据库管理系统

查询优化 数据库管理系统中非常重要的一部分。 代数优化 按照一定的规则将语句变化成关系代数以后进行优化 操作优化 对代数优化后的查询树使用比较好的方法进行查询。 主要是对连接运算进行优化 嵌套循环归并扫描索引优化哈希连接 恢复机制 备份&#xff08;完整备份差…

递归式复杂度求解

代换法 猜测复杂度验证是否满足递归式&#xff08;使用归纳法&#xff09;找到常数应该满足的条件针对基本情况&#xff0c;常数足够大时总是成立的 需要注意的是&#xff0c;我们猜测的复杂度有可能不满足递归式&#xff0c;这个时候就要通过减去一些低阶项来使得归纳成立。…

P、NP、NP完全问题、NP难问题

可以在多项式时间内求解的问题称为易解的&#xff0c;而不能在多项式时间内求解的问题称为难解的。 P类问题&#xff1a;多项式类型&#xff0c;是一类能够用&#xff08;确定性的&#xff09;算法在多项式的时间内求解的判定问题。 只有判定问题才属于P 不可判定问题&#…

数据可视化【十】绘制地图

Loading and parsing TOPOJSON 导入Topojson d3文件 地址&#xff1a;https://unpkg.com/topojson3.0.2/dist/topojson.min.js 想要找d3文件的话去unpkg.com好像大部分都能找到的样子 Rendering geographic features 寻找合适的地图数据&#xff1a;谷歌搜索world-atlas npm…