【字节前端基础课】01计算机网络概述 | 青训营笔记

270 阅读20分钟

01前言&课程介绍

建立对计算机网络的整体认知,对计算机网络中的各种概念(网络分层、网络协议、网络应用等)有初步的理解。

进而可以在后续的实际工作中能高效解决网络问题。

·通过一个示例建立对计算机网络的整体认识建立对网络协议分层的认知

·分析HTTP1、2、3的关系

·介绍CDN运行的基本原理

·了解网络安全的最基本原则

分析方法

自底向上

·从简单开始,逐渐变复杂

·将模块逐步拼凑成一个系统

自顶向下

·从复杂开始。逐渐变简单

·从复杂的系统问题入手,拆分为模块问题

02蟹堡王帝国

image-20230412220301429

·比奇堡居民居住分散

·城市中的小区密度较高

·小区中每家都直连蟹堡王成本太高

image-20230412220336520

image-20230412220409716

小结

·比奇堡外卖

·蟹堡王顾客:客户端

·北京和上海分店

·蟹堡王分店:服务端

·全国分店和通信网络

·小区转发点和蟹堡王城市转发分店:路由器

·转发表格:网络协议

image-20230412220434232

image-20230412220458135

03计算机网络基础

网络组成部分

·主机:客户端和服务端

路由器

网络协议

网络结构:网络的网络

·比奇堡和小区网络:本地网络 。北京和上海分店+比奇堡:三个本地网络节点的网络 ·全国通信网络:本地网络的网络 区域网络、城域网和广域网

电路交换&分组交换

image-20230412220749852

蟹王早期王的有段时间是通电话来接的,你的那时候解你的问题不会上线,蟹王只有张明坤可以接电话,因此当有人打电话第三时扯条项不会上线,其他人无法审改线,双方是有明显缺点。顾客必须先和张云哥进连接才可以下订单,顾客和张云哥之间的连接记住。也需要用的资源,带款受伤一个也钱的血一个五个下单便一个,总活下来,当排队的钱还可以减少排队时长,但血当前台不多时,大部分时候钱空调式的导致既浪费。同一条线路,如会接触的前台是量程是有上限的,前是过动,会导致从往向下降,结果预算简单化成长针之后上品结果几个要解。长针可以看作是一种分值交换,分子交换和内容交换,同点在于不会建议交连接也会预留资源。贷款结入到新的分幅后,会加入支付,对员按顺序支出,当对立码的时候会丢弃情报分组几盘丢包。在这个激活中,采务都是较这个。

网络分层

·快递员不关心包裹内容 ·卡车司机不关心车厢里拉的是什么 ·高速公路不关心开的什么车

会分解单的小豹纹,抢了豹纹会通过分组或网络送送给你,送给你之后再用主机上软件把分组,就会完全豹纹。如果你是一个快递员,你会关心每天快递中是什了宝,OK,但是你关心这报白算,如果你是个卡车司机,在运送后运后会大意知道运送市什的,但你会拆开包裹去自行检查包裹内容吗?不OK,但是你担心这包裹是哪来做哪事,但现实多久?如果你是高速公路建设者,你关心建成后在高速公路上堵的是什么车吗?不会,但是你关心该建设从哪个哪的高速,究竟要求哪些城市限速多少呢?在这个例子中,每个角色都有自己应该关心的事情,有自己不需要关心的事情。


如果你是一个快递员,你会关心每天快递中是什了宝,OK,但是你关心这报白算,如果你是个卡车司机,在运送后运后会大意知道运送市什的,但你会拆开包裹去自行检查包裹内容吗?不OK,但是你担心这包裹是哪来做哪事,但现实多久?如果你是高速公路建设者,你关心建成后在高速公路上堵的是什么车吗?不会,但是你关心该建设从哪个哪的高速,究竟要求哪些城市限速多少呢?在这个例子中,每个角色都有自己应该关心的事情,有自己不需要关心的事情。这种情况在这往中也将存在。下接网络分层主力大包分别是物理层、应用层、网络层、运输层和应用层。在这节课用我们将会设计物理层分应用层,重点分入上业三层。网络层、硬水层和硬层有着各自的职责,每一层都对自身层集中建筑些封装,这些封装对于上层来说几乎是黑粉,对于上一层教准来说,无需关心下一层中可能出现任何问题。那里做现实有福。规划网络层可以看到是高速公路,高速公路不在乎它还跑的是什么车,运输层可以看到是卡车,卡车不在乎车里运送的什么东西,不需要操心,没路可以走。用成可以看是会计公式这个。这关系包裹中内容不需要操心,卡车直接把包裹送到基地。

协议

协议的存在依赖与连接

image-20230412220939085

标头和载荷

image-20230412221055831

HTTP协议实例

image-20230412221118337

这是一个完整的链层的帧,左边是挖下的小结果,右边是这个链层帧的原始设计,右边的左半部分是以实用性制形式正式结果右部分。是以匹显示的数据,第块是表示的是这个的接地址和目标地址都是G,不需要五层的数据在右侧对应的是最左边的41200000,已实间制的是24,代表这个任务层称选的是IP6,第三行是IP层,标题已经表明了这是IPV6,并且选个IPIP都是冒表示地址。IP协议的头部右边的五到第44个字节,这40个字节。包括一些版本IP地址、目标IP地址信息。第四行是TT协议程。这个就行。头部总共有20个字件,包含两账号、目标号、序号、头部长度、价格信息等。价格长度信第五行是P协议层,这一层同样分为头部、价格两部分,不过这个是是概请求,所以定三合和之前的企业是同步中定义了这请求信息比第一行表明了请求路径,后表明请求病理等等。在这个事情可以看出,对于TP来说,真正价是最后是底,所以这里如果是部分之前所有数据都是各层数据。做一个式子表示环节是。二文等于六层头加IP协议头加TP协议头加I。在HT下,这部分对于HTP2来说很重要,大家留意一下。在HTP协议中需要留意的一个重点是HTp1.1及前端的头部和载荷是分为两个泡回车划分。协议和协P协议为例来描述区别。

TCP协议格式

image-20230412221237510

小结

image-20230412221324460

04Web中的网络

Http协议

image-20230412221421960

Http连接模型

image-20230412221448719

让我们用一个事例解释STP基本结构。在这个示例中,黑暗有两种颜色的消息,其中红色的是请求,蓝色的是响应。我们先来看请求,请求第一行也是为70行,包含了三个要素,get、希望和HTp1.1。这三个要素分别代表请求的方法、自然路径和HTP版本。跟在后面的是头部,每一行都把一个头部,头部是二格,左边为头部铃称,右边为头部的是头部名称,不区分大小写。头部后面的空行将头部合成分隔开来,由于是一中,是一个概性球,没有正纹,所以看不见。我们再来看响应,响应的第一行。为状态行包含了三个要素,HC一点一两百和OK。这三个要素分别到了HTTP版本,状态法和状态信息。其中状态信息是可以定义的,跟在后面是头部,和紧求中的头部类似,头部后面空行将头部和上分隔开来,这是一种响应,是包含皱纹的内容,是一个HT文章。如果你还记得上一张最后HTP报的结构,你可定会发现明显不同,那就是HTP报最容易理解和HP报文则非常晦涩难懂。他们在网络中传递形式的创警度不同之处在于HP报文是可以直接以S形式是英文展示法来。这种形式对人来说非常友好,不是对的,对计算在来说肯定比较友好。而且C的不同特性引发一些问题。而且CP协议使用典型的请求响应模型,也就是说当客户端发起第一个请求后,需要等待服务端先返回第一个请求完成响应,客户端才可以调请求。这种方式网络利用率显得不高。这种模型导致另一个问题是无法在一条理论上进行读入复用。在一个完整请求中间插入另一个请求内容,会导致HTP无法分辨这份内容是来自于哪请求的。请求头部和响应头部都有很多重复,比如cook体就经常会重发很多次。这些头部会重复发送,无法压缩,无形间增加爆纹的体积。这张图展示了HTP1和1.1的连接模型,一种模型,也就是在HTTP1.0时代。每个请求都需要创建新的信息,原件使用完之后就会销毁另一个TP请求,再创一个新的。这种方式显然过于浪费而效率低下。虽然可以通过指定class keep alive保持连接,但在S1.0时代,默行为是响应后效费连接。第二个模型,也就是在1.1中,keep alive成为word式,只要不显示,说明使用大连接模型,word会保持期连接一段时间,第一时间连接重用,也就是图中的第二个持久连接模型。这模型解决重复性机连接问题,但是另一个被称为对头流失的问题依旧影响着HTP的性。当一个请求非常大,我的服务器服务器需要很长时间进行处理时,第二个很小请求依旧需要等待前一个请求结束后才能发生。导致了很大资量浪费,这果导致了完成所有请求耗费时间远大于其应该耗费的时间。第三个模型是HTTP网线,默认情况下HTP协议是严格按顺序的,也就是之前提到的第一个请求发出后,需要等在第一个响应到达之后才能发起第二个请求。这种模型效率高,因此就有std保线允须后户端先发送多个请求,服务端暗示进行响应。这模型看起来似乎很好,但现实情况是几乎没有燃器和用的方案,原因在于这种模型对解决这种底色几乎没有帮助,另外还有可能会导致一些潜在的安全问题性提升引高。对于内何堵塞问题,S的1.1最常用的方案是同时进行多个基原件,将请求分散多个基点介绍这种方案。这种方案确实可以缓解。问题,但建立多条GP连接的成本是巨大的,尤其在使用SPS时,TS在每条GP连接上都需要重新写上,当请求数量超过GP连接数量时,仍然需要排队。TCP连接也是无条件增长,用户和服务器价格是固定的,PP件数量增加时,每条GP文件所费的带宽一个相应行时兆,完成一个完整的SP请求的时间也会拉长。因此在大部分情况下,浏览器可限制一个营TP文件数量长是有前面我们提到过这一条GP文件上。而且T我们是严格按顺序的,考虑一下如果服务器将两个响应交替发送会有什样的结果,这里有个例子,假设现在有两请求命GS和S,这样应该是显示些,如果按行交错发送啊,也可以按字节角发送测并重要客户端收到的内容将会是像这处理显示压。但这种。

HTTP1.1:无法多路复用

image-20230412221703477

Http 2:帧

image-20230412221742345

image-20230412221818852

image-20230412221856599

image-20230412221916318

前三个字节:载荷长度

第四个字节:类型

第五个字节:类型对应的Flags

第六到第九字节:

第1位:保留位

第2-32位:流ID

随后的8192字节:载荷

HTTP2:帧带来的额外好处

调整响应传输的优先级

头部压缩

Server Push

Http2的缺点

HTTP2:队头堵塞,但是在TCP上

·TCP包0:包含了(包含了style..css的第1行内容)的HTP2的帧

·TCP包1:包含了(包含了main.js的全部内容)的HTTP2的帧

·TCP包2:包含了(包含了stye.css的第2行内容)的HTTP2的帧

·TCP包3:包含了(包含了style.css的第3行内容)的HTP2的帧

TCP包1丢包了!

那既然已经解决了读的问题,那为什么还有三呢?简单来说,ICD3的出现就是因为CD2还够快,虽然CP2解决了CD层面的这个堵塞,但在CD层面。仍然可能会现。另外,现在HTPS是绝对的主流,而HTPS在HP层之上增加一层TS,或者是S协HTP和TS2两者的分裂关系导致了HTS有个双倍的握手延石,也是ttp握手和TS握手能有各自的延石。我们先来看下ttp的对个组织,在HTP2中隐卧称的概念,一个称包含了正称属于哪个有信息以及属于处流载荷。可能使用P奥洲例子,我们现在假设有三个学生,有四位就是abcd。a包含了十点C第一行,B包含了点行全部内容。包含三点C4第二个内容D包含点C43个内容,到此两个文件内容都已经全了,这四个分别有TCP4个GP数据包存在,假设这因为网络波动,第二个数据包也是包含真币的数据包,丢是了。由于TC的机机制会丢关重传PCT定制把第三个和第四个包含了真CDC和D2个包交给PLPCT必须先告诉服务器序号为二包没有收到,服务器重新发一次切号为二的包切断系数,收到之后才会把序号234的数T数据包交给D,即使SD驱道序号二的T数据包只包含面积,这内容并不影响其他的文键在这个例子里。由于TP对上层数据计换必要信息,也就是数据包号不影响数据包三回四,导致了HP2成这个堵塞。这个问题很难在已有GDP协议上解决,现在网网络上设备已经非常好的支持GDP协议,换而言之,想对已有GDP协议进行修改是是不可能的。因此想通过让HTP告车GP数据包的一些信息来解决HTP的这问题是不可行的。在TT和TS层面,要其中一个HTPS连接需要进行三大TTT是王主席态的缩写,这三大T分别是G连接建立效益发TTS连接效发体系。S及以下需要两万一点三以上。

HTTP2:3RTT启动

。HTTP客户端:我要和大哥说话! TCP客户端默默对HTTP客户端说,我知道你很急,但你先别急。 TCP客户端:嗨!服务端,你在吗? TCP服务端:嗨!客户端,我在,你在吗? TLS客户端:Hello!能给我把钥匙吗? ·TLS服务端:Hello!给!你的钥匙! ·HTTP客户端:终于到我了,我要index.html!

image-20230412222451094

4ERG2次RG这样这个不再个可能的防口考虑方面,因此在真正进行IP报交互之前,已经过去三大G,如果客户端和服务端的IG是50毫秒,那么至少需要在150毫秒才可以交换it,这效面很低,特点是是TP和TS。物流延迟,签店不知道自己的运送,S豹文和之前还是GDP报评价无法复改造现有利息优化。既然已有协议无法解决商业关系,必须设计一个新的协议。

HTTP 3:QUIC

Quick UDP Internet Connection

·现存网络设备对TCP和UDP支持已经僵化

UDP不靠谱但是QUIC靠谱

·QUC可以为除HTTP协议以外的应用层协议提供支持

这协议就是QC,是DP,那就可色缩写QC,将TS作为自身一部分解决原先GDPTS需各手问题,又吸取ST概念,在QC中提供互相独立的流进。要解决2GDP动问题同。引入了新的趋势,可以实现首次连接2G后选R。顾名思义,QC是际udt不程开发一个新的运输层协议,原因在于现有的网络设备都为udt和GD协议提供良好支持。如果设计一个全新的协议,需要非常久时间才能应用,因此签完之后再基于DPDP基础上设计一个QIC协议。STP3基于QICIC是和TDPDP样本储存协议,它可以存在除了STP本身P以外的其他应数据,当然现在还没有其他应的应用。AP是一跨协议,如果包了P是不管的。而且微品没有公测控制,没有设计保证,业务层给多少设计,可以往上里发多少设计。到一到呈现,到一旦步位,这些特性不适合在网页中使用。KYC在DP基础上实现了和这体一样的优色控制、聚光重传的特性,确保KYC协议长数据的顺序稳定性还完全性。我来看下。

HTTP 3:QUIC-1 RTT

image-20230412222731697

嗯。嗯。那ITP3是如何接触QYC实现首次连接it后连接现在首次连接。在客户端第一次与服务端发起连接时候。Q,后端先发起一个接性的请求,请求服务器给一把钥匙加用钥。KYC服务在这个请求之后,会把这书和张玉药一起发给我的。QC客户端随后告知std工端可以发送ST报。后续的东西都使用交易药剂进行交易,除此之外,QC服务端还会通过告诉QQS客户端是有一个新的密钥下建议就可以直接用QC,相比之前的Q加TP,把有些特别熟悉的握手我们手组合下来的,因此可以实现二线。接下来我们再来看一下选。

HTTP 3:QUIC-0 RTT

image-20230412222832174

网页客户端再次发起HT的请求是QC后端为使用上QYC服务端给。直接把IP请求发送给加密,发送给服务端,这样服务端就可以直接响应客户端请求,这种方式就可以实现IP连接。HTT3和QC各式内容就不再展开了。

CDN

CDN:你无法突破物理极限的

image-20230412223042415

STP中,请求第一行为70行,响应第一行为状态行请求和响应,响应第二行开始到第一步行位置为同步第一步行之后。他不能围着我。CP1.0中请求监控默的行为是包闭连接,这个行为可以通过设置安全服步来修改,受模型效率太低,在1.0中改成不关闭连接。但是二中胸称都是用头部压缩深腹的功能大。大家这问。但STP2并不能解决GDP,这个不是问题。STP3使用基于P重新设计QC协议,避免GDP成为对等射,并将Q协内置进Q进入结延续,可以实现首次EST2次零化GT的连接。到HTP3时,能在HTP协议上进行的优化方案基本都已经实效,接下来我们来讨论一下HTP之外的影响外的性能的因素和解决方案,前面已经从HTP的角度分析了。HTP1到。三是如何提升IP性能的,但在SD之外,仍然有很多因素会影响外些性能。这些问题是HTP无法解决的T。嗯。亚汽设置进,但并不极限。

CDN:你的钱包够鼓吗?

image-20230412223221000

如果一在北京的后端。这和一个在美国的呼吸性通讯用物理距离就之间的企验是肯定要远远高于北京和上海的空验室。如果有一网站,它只有一个云服务器,我是一个点的任务。我们家都需要供非常多浏乐器哦,对于很多内容,尤其是视频内容,一页面通过同一个网络发送数据,非常浪费资源。同时同时还要给。网络服务器交很多钱,比如广东的用户在看抖音的时候,如果只有北京的服务器,那么这些服务器都要经过非常多网络络节点才可以到达。客户端,我如果在广州,在广州交一台服务器可以用视频的话,那就可以省电,多种流量,而且可以降低延迟。另一方面,当服务器能够承载网络量是有限的。对于一个大型网站来说,AI可能有上百个别人一页面通过同一个网络发送。嗯。

CDN:你,够强大吗?

image-20230412223309443

量,而且非常严实。另一方面,它的服务器能够承载网络量是有限的,对于一个大型网站来说,A1可能有上百多上百万的请求全部交给一台服务器,很好外崩溃和外进整个服务。而且如果这给一台服务器,那单点故障不会导致全部服务发生联系。给这你带来很大损失,因此会让用户们在世界各地的告诉问题。

CDN:还得是我

image-20230412223355178

C就是康家做法,网络缩体就必不可少。这些商都会在其服务范围内按照地理位置进行服务器。

这是一张虚构的热器舰服务图,年限表示两热器件通心链,假设一个CPU提供查询,在北京、上海、广州、成都、长沙、兰州和长春部署自己CP服务器,全国量户都可以在很低的入跳水内获取下的内容。只需在穿过右程序部署呼吸。

CDN:最多跳两次!

image-20230412223513703

CDN:DNS劫持

域名解析一般由网站自己处理 ·要加速的域名则重定向到CDN厂商的域名解析服务处理 ·CDN厂商根据来源确定最近的CDN服务器的IP ·用户直接访问最近的CDN服务器

CDN:近了!近了吗?

image-20230412223831859

05网络安全

final

标题:计算机网络概论 - 掘金

网址:juejin.cn/course/byte…