湖科大计网:传输层

一、传输层概述

一、基本概念

8c393bcf8e1d4326ab44eb8bdb3a9859.png

4897f4024c534363a1b10164fb538011.png

传输层是端到端的协议。

因特网的两种不同的传输层协议:

TCP:面向连接

UDP:无连接

我们在学习的过程中,只需要关注传输层之间的通信,不需要关注传输层协议数据是经过路由器转发至目的网络,如果经过数据链路层和物理层在目的网络中传递的。只需要关注两主机之间产生的关系即可。

b3360077d8fb4ad69f9774f2af25db6f.png

833ba86740354f41af6d90ece307f8f9.png

二、传输控制协议TCP

一、TCP和UDP的对比

TCP(transmission control protocol):传输控制协议

UDP(user datagram protocol):用户数据报协议

一、数据传输方式

TCP是面向连接的可靠传输

UDP是无连接的不可靠传输

1a34eb0caaec4b76af0bc5ac923b26c0.png

二、单播、多播、广播的支持

878f6b2a94e640b9a064ea0972e0f862.png

三、对应用报文的处理

UDP是面向应用报文的,既不合并也不拆分,从应用层来的报文直接封装,发送。

TCP是面向字节流的,并且发送方和接收方不一定使用同样大小的数据块,只需确保字节流是一样的即可,TCP是全双工通信的。

82a54bac8cfa46e68c0c38512bcd567e.png

四、为上层提供的服务

UDP由于提供的是无连接不可靠传输服务,适用于实时应用。

993046a084b0412ea27bae7be65eca43.png

五、数据报首部

UDP数据报;TCP段文报

8759d86aec944f35a69fbae245b8d3f0.png

二、TCP的流量控制

e34eefe8b5e14572bd8c8692ee742411.png

TCP以报文段为单位传输,两主机建立连接,A有发送窗口,B有接收窗口。

累积确认,超时重传。

注意,在接收到确认帧之后,就会按规则移动发送窗口,调整发送窗口大小。

265907440eab40e4ab870531f64701f9.png

c02dfc3577394ed2bac95fe300643c54.png

三、TCP的拥塞控制

        实际上的发送窗口大小=min{拥塞窗口大小,接收方的窗口大小}。

        实际上就是刚开始拥塞窗口大小为1,然后按照慢启动算法和拥塞避免算法计算拥塞窗口大小,如果出现“拥塞”:

        两种情况:

①超时:则将慢启动阈值减半,拥塞窗口从1开始

②收到三个重复确认:将慢启动阈值减半,拥塞窗口=阈值 ;

注意:慢启动算法按指数增加,即1->2->4->8->16->32....

拥塞避免算法按线性增加,即ssthresh->ssthresh+1->ssthresh+2->ssthresh+3....

5f9f9ca658764802ad073aca2e528f9c.png

a3d1fec1f2df4a51afac65b726c82871.png

8e8a68f30f274ada84b52d1088220a29.png

四、TCP超时重传时间的选择

9a372ca518ef4de69384b72ca2c544df.png

直接按停等协议考虑了==

注意是每发送一个报文段都会重新计算一个超时重传时间,具体表现为,收到一个确认报文则计算(此时同时发送一个TCP报文段),超时重传的时候也会发送一个报文段,这个时候也会重新计算。

每一步都需要记住的值:RTTs(平滑往返时间smooth),RTTD,RTO

只有第一步进行特殊处理,之后的每一步都按照公式计算。

并且除了重传的ROT使用原来的ROT计算,其余的ROT都是用本次RTTS和RTTD计算的

409a0876906e4c849a74f48a9af1037d.png

f376c7408627486d9674d3b5500a0f56.png

重传时,原来的RTTs和RTTD不变,ROT变为原来的两倍。

五、TCP的可靠传输

7653599d51ce4d0e805477cf8823de75.png

TCP将上层的字节流,封装在TCP报文段中,TCP报文段增加了一个TCP首部,我们考虑的是实际传输的数据载荷部分。

注意TCP的滑动窗口协议与选择重传协议的区别:

TCP滑动窗口,是累积确认的,而且会进行流量控制,确认时自己的窗口大小给发送方;确认的窗口号是接下来想要接收的,而SR是最后一个接受到的。

其他的很像,比如乱序接收,按序发送,超时重传。

de336333f4744f3c9a4c67ad2bc47fd0.png

六、TCP的运输连接管理

8219631915dc400fb34d8310ceaa7d34.png

一、TCP的连接建立

c20bee950217438a96da1b81f32ae887.png

A首先发送的是一个序号为seq=x(消耗一个序号),B发送一个ack=x+1的确认,并且对于B来说这个确认报文段的序号是任意的,A随即回礼ack=y+1,seq=x+1(之前消耗了一个)。

二、TCP的连接释放

e054d644d061469881e6de5b1740f0f8.png

七、TCP首部格式

b33de45c6fcd475f9b50e8679e705a27.png

3e1df1b834084fee838226c4d5cff2bb.png

我们会发现一个TCP报文段中包含了本次要传给接收方的数据,以及数据的序号,同时包含了对接收方发来的数据的一个确认!(全双工嘛)

数据偏移字段指的是首部的大小,以四字节为单位取值。

序号字段是指本次TCP报文段数据载荷部分的首字节流的序号。

窗口 是指 控制发送方的窗口大小!

039e5788847544abac57f78671670f29.png

70edbbcb66984c9fad635198dfb1cf13.png

f80e0adea8ae49c18f405b70214f4e00.png

6b55895632e44be191ca8f5f93621f8f.png

3ce639e4640c4e6d90df610fd955083b.png

5ecc589b5c9d44949f40dd66a5d59113.png

3fa746e5ffab49fa9909fe6659949ca0.png

507214c1ea5842dcb3b198178038a7b2.png

d83a8e9da37d44609c8a36390ec853a7.png

5ddf0b8a251444919f396ca4acd34546.png

674af0ac45b749fe9aa8553002260620.png

b388037b98b0448f9b576c6d5d6a39bf.png

a0cb1f543a1f48618245604086003615.png

d81483af53de4c50b70bcfd836847820.png

URG和PSH都是接受到了就将报文段直接向上交付。

同步SYN是三报文握手时需要用到的,

终止FIN是四报文挥手时需要用到的,发送方想断开连接,接收方用FIN表示自己已经发送完毕,继续进一步释放连接。

三、总结

26f1f99d55004be5aa62c5cef66dfe40.png

9f38dcb6ce7e4de0afdc012a0d266d10.png

a49ef2a3705348faa444a26fc5a75cf1.png

40ea1015952b473ca314f14f6fb23e9c.png

8e8a68f30f274ada84b52d1088220a29.png

f4cefc212f87425f9ed602659a4f0482.png

3b3e2c8955ef48c4a85b2cc5858cb0a2.png

ccffd7a60bcf4006a3417cc9b361a1fb.png

6686d5835ab64cc5b170feeeb0f6cfd6.png

 

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

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

相关文章

一篇文章让你彻底了解Java算法「十大经典排序算法」

✍️作者简介:码农小北(专注于Android、Web、TCP/IP等技术方向) 🐳博客主页: 开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN 🔔如果文章对您有一定的帮助请👉关注✨、点赞&…

Redis篇---第十二篇

系列文章目录 文章目录 系列文章目录前言一、Memcache与Redis的区别都有哪些?二、单线程的redis为什么这么快三、redis的数据类型,以及每种数据类型的使用场景前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇…

你真的了解 Cookie 和 Session 吗?

文章目录 Cookie 和 Session总结 Cookie 和 Session cookie HTTP cookie(web cookie、browser cookie)是服务器发送给用户 web 浏览器的一小段数据。浏览器可能会存储 cookie,并在以后的请求中将其发送回同一台服务器。通常,HTTP …

【OpenGauss源码学习 —— 列存储(ColumnTableSample)】

执行算子(ColumnTableSample) 概述ColumnTableSample 类ColumnTableSample::ColumnTableSample 构造函数ColumnTableSample::~ColumnTableSample 析构函数ExecCStoreScan 函数ColumnTableSample::scanVecSample 函数ColumnTableSample::getMaxOffset 函数…

pikachu靶场-暴力破解攻略

pikachu暴力破解 基于表单的暴力破解 抓包发送到intruder 添加两个变量 下图攻击模式需要选择cluster bomb 用户名处添加几个常见的用户名 密码处则添加密码字典 如图可见有一条密码已经爆出 登录成功 验证码绕过(on server) 输入验证码后提交 抓包 然后发送到repeater先…

vue中data属性为什么是一个函数?

​🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue-data属性 目录 为什么data属性是一个函数而不是一个对象? 一、实例和组件定义dat…

解锁数据库运维秘籍:掌握AntDB-T动态共享内存,提升进程间通信效率

动态共享内存是AntDB数据库通信的重要手段,本文主要阐述AntDB-T数据库动态共享内存的实现原理、实现方式与使用方法。 AntDB-T数据库是一款企业级通用分布式关系型数据库,其数据库内核是基于进程模型实现的,因此进程间通信(IPC&am…

Appium移动自动化测试—如何安装Appium

前言 Appium 自动化测试是很早之前就想学习和研究的技术了,可是一直抽不出一块完整的时间来做这件事儿。现在终于有了。 反观各种互联网的招聘移动测试成了主流,如果再不去学习移动自动化测试技术将会被淘汰。 web自动化测试的路线是这样的&#xff1…

基于单片机的公共场所马桶设计(论文+源码)

1.系统设计 本课题为公共场所的马桶设计,其整个系统架构如图2.1所示,其采用STC89C52单片机为核心控制器,结合HC-SR04人体检测模块,压力传感器,LCD1602液晶,蜂鸣器,L298驱动电路等构成整个系统&…

1445 雉兔同笼

Tint(input()) for i in range(T):s input().split()head int(s[0])foot int(s[1])rabbitfoot/2-headchicken2*head-foot/2if rabbit>0 and chicken>0 and rabbit.is_integer():print(int(chicken),int(rabbit))else:print(-1)

多协议数据库管理软件 Navicat Premium 16 mac中文版功能

Navicat Premium 16 mac是一款跨平台数据库管理工具,支持多种数据库类型,如MySQL、MariaDB、Oracle、SQLite、PostgreSQL等等。它提供了丰富的数据库管理功能和工具,可以帮助开发人员和数据库管理员快速地创建、管理和维护数据库。 Navicat P…

比赛倒计时4天,快来做做2023年小学生古诗文大会复赛在线模拟题

2023年第八届上海小学生古诗文大会复选(复赛)定于11月25日上午举办(即本周六),具体安排和操作手册、注意事项请看我之前发布的文章:2023年11月25日小学生古诗文大会复选(复赛)答题操…

中石油勘探院张弢:从业务到架构全面探讨中国石油的数字化转型之路

引言:OSDU论坛的诞生与壮大,对油气行业的数字化有极大的推动力,国内油气行业正在紧锣密鼓地开展数字化转型、智能化发展。当前油气上游业务数字化转型正在轰轰烈烈的开展,一些明星油田的数字化率无限接近100%,基于业务…

ITIL® 4 Foundation​,即将开课~想了解点击查看

ITIL 4 Foundation 即将开课~ 想报名的必须提前预约啦 👇👇👇 2 0 23 年 培训地点: 远程直播:线上平台学习 开课时间: 周末班:11月25日、26日; 什么是ITIL? 信息技…

磐舟CI-Web前端项目

整体介绍 磐舟作为一个devops产品,它具备基础的CI流水线功能。同时磐舟的流水线是完全基于云原生架构设计的,在使用时会有一些注意事项。这里首先我们要了解磐舟整体的流水线打包逻辑。 文档结构说明 一般来说,磐舟推荐单个业务的标准git库…

C#实现观察者模式

观察者模式是一种软件设计模式,当一个对象的状态发生变化时,其所有依赖者都会自动得到通知。 观察者模式也被称为“发布-订阅”模式,它定义了对象之间的一对多的依赖性,当一个对象状态改变时,所有依赖于它的对象都会得…

SpringSecurity+JWT权限认证

SpringSecurity默认的是采用Session来判断请求的用户是否登录的,但是不方便分布式的扩展 虽然SpringSecurity也支持采用SpringSession来管理分布式下的用户状态,不过现在分布式的还是无状态的Jwt比较主流 一、创建SpringBoot的项目 spring-boot-starte…

Elasticsearch 和 LangChain 合作开发可用于生产的 RAG 模板

作者:Aditya Tripathi 在过去的几个月里,我们一直与 LangChain 团队密切合作,他们在推出 LangServe 和 LangChain 模板方面取得了进展! LangChain Templates 是一组用于构建生产质量的生成式 AI 应用程序的参考架构。 你可以在此处…

运动装备经营小程序商城效果如何

运动装备可包含服装、帐篷、渔具、箱包鞋帽等,对喜欢外出的人来说,靠谱的装备是关键,往往更容易选择品牌和信得过的商家。 而对商家来说,如何打造品牌提升卖货经营效率和提升营收是重中之重;互联网时代需要商家拓展线…

串口工作流程硬核解析,没有比这更简单的了!

串口通信,就是我们常说的串口通讯,是一种短距离、点对点的数据传输方式。它基于串行通信协议,通过串口线连接设备进行数据交互。串口在很多硬件系统中广泛使用,是工控机、单片机、外设设备之间信息交换的重要接口。 那串口是怎么工作的呢?我们举个形象的例子。假设A和B是两台…