408王道计算机网络强化——传输层和应用层(上)

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 408王道计算机网络强化——传输层和应用层

1.传输层和应用层概述

b391411c481a4b4a9057b065656fa136.pngfadb994cfc98411aa3d3e50b3af55d82.png

2.传输层 67194c4d014049dc8efd4b8545660a39.pngd2cd786fd15145c8b25efe593d326236.png58d6912fc1dd4aa182b634097aea2be1.png

2.1.UDP的首部格式81d1da2488404f0ab86d2d33311078ab.png

UDP首部固定是8B,因此不需要有首部长度的字段

2.2.TCP的首部格式25b05e6bf6ed465dad6e5ed534afe652.png

ACK:确认连接后ACK = 1

SYN:第一次握手和第二次握手为1

FIN:

检验和:检验首部和数据部分(整个报文段)

2.3.TCP的连接建立31adb4c5b0cc49aba997e0ef24fa00fe.png

1.头握手两次不携带数据,且SYN = 1,第三次可以携带也可以不携带数据,且不再携带SYN

2.ACK = 1表示针对上一个对方发送数据的确认,从第二次握手开始都置为1,第一次并没有收到数据,因此不需要确认,之后的每一次都会收到对方的数据,因此置为1

3.两边的seq无关,是乙方数据的序号,ack和对方的seq有关

4.ack是针对对方发送数据序号的确认,x + 1表示期待收到对方发送序号x + 1的数据

5.第二次握手服务器分配缓存和变量,第三次握手客户端分配缓存和变量

2.4.TCP的连接释放13d58169b7594c2bbd1c6fd5f77010db.png

1.第一次握手:不会携带数据,专门用于通知对方要断开连接,即FIN = 1;ACK = 1,仍处于连接建立阶段;客户端侧关闭连接

2.第二次握手:表示对第一次握手的确认ACK = 1;不管带不带数据,都会消耗一个序号,因此,ack也要相应 + 1

3.第三次握手:发送剩余数据;第二次握手可能携带数据,因此seq可能会比第二次握手增加很多;ACK = 1;ack同第二次握手,因为第二次握手和第三次握手间客户并没有发送数据;FIN = 1,主动断开连接,服务器侧断开连接

4.第四次握手:ACK = 1表示收到第三次握手;seq为第一次握手 + 1;ack表示期待收到服务器的下一个数据号(虽然收不到了);不会立即关闭连接

5.FIN只有在第一次握手和第三次握手出现,且为1

6.ACK连接建立后都需要置为1,即除连接建立的第一次握手外,所有数据都要置为1

2.5.慢开始和拥塞部分、快重传和快恢复

d9be8013e489475fa5c68d4b9259851d.png

1.发送窗口 = min{拥塞窗口,接收窗口}:可能出现接收窗口在不断减小(接收窗口由一组数据缓存区组成,可能接收数据后放入该缓存区中并不往上交付,则就会一直占用该缓存区,进而接收窗口越来越小),而拥塞窗口不变或者变大

2.拥塞窗口初始值为1表示的是1个报文段

3.TCP 采用累积确认:接收方按序接受,如果没能按序收到某一帧,则一直返回该帧的ack

4.发送方在收到接收方返回的确认后,拥塞窗口+1:拥塞窗口取决于收到确认段的个数

①1RTT:cwnd = 1(初始时为1);发1个;确认1个

②2RTT:cwnd = 1 + 1 = 2(收到1RTT的确认时 + 1);发2个(在1个RTT内几乎同时发送);确认2个(在1个RTT内几乎同时收到)

③3RTT:cwnd = 2 + 2 = 4(收到两个确认,即+ 1 + 1);发4个;确认4个

④4RTT:cwnd = 4 + 4 = 8;发8个;确认8个

⑤5RTT:cnwd = 8 + 8 = 16;发16个;确认16个

⑥6RTT:cnwd = 16 + 1 = 17(到达门限值,指数增加改为线性增加,5RTT发完后改变,即5RTT结束后,6RTT开始前);发17个,确认17个

(1)理想情况下,每收到一个确认,下一个RTT的cwnd + 1

(2)在cnwd = 24时,发送方发送了24个,但是只收到了接收方返回的20个(可以是其他任意小于24的个数),即判定发生拥塞,更改cwnd为1

5.接收窗口和TCP建立结合:

①1RTT:第一次握手和第二次握手②2RTT:第三次握手并且携带数据,从此时开始计算b96557fab2e942e28506a55436bc65ab.png68e36992b4b2422789f69eab15c722b7.pnge42d39127b8849249e3a59cfedd9b659.png

①发生超时:表明使用的是慢开始和拥塞避免

②以1KB的最大段长发送TCP段:MSS = 1KB

③拥塞窗口 = 16KB发生超时,随即拥塞窗口变为1,改变是即时的,不需要等待一个RTT;门限值变为超时拥塞窗口的一半,即8;

④1(未到达门限值,指数增大)→2→4→8(到达门限值,线性增大)→9→C

5610dfcfbcc84f0d91da00a7670ed5a5.png

该题没有强调接收缓存,故视为接收方每次收到数据后直接向上交付


b2ff671b18a54d0b9e765b448535c095.png

①发送窗口 = min{拥塞窗口,接收窗口},故拥塞窗口增长到10之前,发送窗口随拥塞窗口的改变而改变;拥塞窗口增长到10+时,发送窗口受到接收窗口的限制一直为10

②若设接收窗口大小足够,则10个RTT后,发送窗口大小为12


19847d0a49da481a85a123d899b62361.png

①4个RTT内,总共发送的数据为1 + 2 + 4 + 8 = 15KB

②接受的数据全部存入缓存,不被取走:4RTT时,接受窗口大小为16 - 15 = 1KB

③发送窗口 = min{拥塞窗口,接收窗口} = 1

35f154f42dd14619a9b397edcbb4941e.png

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
域名解析 缓存 网络协议
TCP传输层详解(计算机网络复习)
本文详细解释了TCP/IP协议族的分层模型、各层的功能、TCP报文的格式以及TCP连接建立的三次握手和断开的四次挥手过程。
89 2
TCP传输层详解(计算机网络复习)
|
1月前
|
域名解析 网络协议 前端开发
【第四期】网络层、传输层、应用层
【第四期】网络层、传输层、应用层
25 3
|
1月前
|
XML JSON 网络协议
【网络】TCP/IP五层网络模型:应用层
【网络】TCP/IP五层网络模型:应用层
21 1
|
3月前
|
网络协议 网络安全
计算机网络-传输层
计算机网络-传输层
|
4月前
|
域名解析 存储 网络协议
一次读懂网络分层:应用层到物理层全解析
**网络五层模型简介:** 探索网络服务的分层结构,从应用层开始,包括HTTP(网页传输)、SMTP(邮件)、DNS(域名解析)和FTP(文件传输)协议。传输层涉及TCP(可靠数据传输)和UDP(高效但不可靠)。网络层由IP(路由数据包)、ICMP(错误报告)和路由器构成。数据链路层处理MAC地址和帧传输,物理层规定了电缆、连接器和信号标准。了解这些基础,有助于深入理解网络运作机制。
348 5
|
4月前
|
缓存 网络协议 网络性能优化
计算机网络—传输层-tcp、udp协议详解
计算机网络—传输层-tcp、udp协议详解
|
5月前
|
网络协议
计算机网络学习记录 应用层 Day6(1)
计算机网络学习记录 应用层 Day6(1)
34 0
|
5月前
|
存储 缓存 网络协议
计算机网络网--应用层
计算机网络网--应用层
44 0
|
4天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和方法来保护自己的信息安全。
15 2
|
5天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第38天】本文将探讨网络安全与信息安全的重要性,包括网络安全漏洞、加密技术和安全意识等方面。我们将通过代码示例和实际操作来展示如何保护网络和信息安全。无论你是个人用户还是企业,都需要了解这些知识以保护自己的网络安全和信息安全。

热门文章

最新文章