241125学习日志——[CSDIY] [ByteDance] 后端训练营 [15]

CSDIY:这是一个非科班学生的努力之路,从今天开始这个系列会长期更新,(最好做到日更),我会慢慢把自己目前对CS的努力逐一上传,帮助那些和我一样有着梦想的玩家取得胜利!!!
第一弹:Cpp零基础学习【30 DAYS 从0到1】
第二弹:Cpp刷题文档【LeetCode】
第三弹:Go开发入门【字节后端青训营】
第四弹:Cpp简单项目开发【黑马Rookie】
第五弹:数据结构绪论【数据结构与算法】
第六弹:Go工程实践【字节后端青训营】
第七弹:高质量编程和性能调优【字节后端青训营】
第八弹:Linux 基础知识【书生大模型训练营】
第九弹:Python 基础知识【书生大模型训练营】
第十弹:Git 基础知识【书生大模型训练营】
第十一弹:玩转HF/魔搭/魔乐社区【书生大模型训练营】
第十二弹:书生大模型全链路开源体系【书生大模型训练营】
第十三弹:玩转书生「多模态对话」与「AI搜索」产品【书生大模型训练营】
第十四弹:浦语提示词工程实践【书生大模型训练营】
第十五弹:HTTP 框架修炼之道【字节后端青训营】
第十六弹:打开抖音会发生什么【字节后端青训营】

课前依赖:

  • Linux 操作系统
  • Wireshark 软件 (抓包软件)
  • Socket 网络编程开发环境

打开抖音互联网会发生什么?

  • 带你探索计算机网络
  1. 协议基础、为什么会产生这些协议

  2. 协议分析、互联网应用泛解

  3. 建立更新为:熟悉(精通/了解) TCP/IP 、计算机网络

1. 刷抖音网络是怎么交互的?- 网络接入

  • 网络接入
  • 网络传输

1.1 网络接入 - 互联网

“最后一公里” “last mile” - 最容易发生丢包等情况

1.2 网络接入 - 路由

掩码、子网、逻辑交换机、直连同网段…

SDN:网络虚拟化

往同网段如何发包/交互?

网关:

网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同层–应用层。

  • 路由并不一定是对称的
  • 路由是工作可以工作在传输层、IP层…
  • 路由不是修改IP地址,而是修改MAC地址,找到发包口

1.3 网络接入-ARP 协议

怎么找到下一跳的MAC:ARP 协议

  • 逻辑同网段才能发送 ARP
  • ARP 请求广播,ARP 应答单播
  • 跨网段:只会找到下一跳的 MAC 地址
  • 免费 ARP 地址:提高效率、提前判断 IP 错误
  • ARP 代理

1.4 网络接入 - IP 协议

双层协议

  • 唯一标识,互联网通用。抖音客户端一个。抖音服务端一个
  • Mac 地址不能代替 IP 地址吗
  • IPv4不够用,怎么解决

1.5 网络接入 - NAT

  • 家里路由器是怎样上网的?
  • 多个内网客户端访问同一个目标地址+端口,源端口恰好一样,冲突了?

1. 刷抖音网络是怎么交互的?- 网络传输

1.6 网络传输 - 数据包

课后作业:做一次抓包。

  • 数据包发送
  • 数据包接收

1.7 网络传输 - 先请求 DNS

解析请求…

1.8 网络传输 - DNS 的传输协议 UDP

UDP 本身相对简单,但用好较难

**总结:**想好发什么包,就分配一个UDP的头,把 payload 里面塞数据发出去就好

1.9 网络传输 - TCP 三次握手

什么是 TCP 连接?

传输控制协议(TCP,TransmissionControl Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义 [1]。

TCP旨在适应支持多网络应用的分层协议层次结构,互连的计算机通信网络中成对的应用程序进程之间能够依靠TCP提供可靠的通信服务来传输字节流。TCP支持双向数据流,应用程序也可以仅单向发送数据。在主机之间,TCP使用端口号标识应用程序服务并且可以多路传输数据流。

TCP 三次握手、四次挥手

  • 第一次握手
    客户端将TCP报文标志位SYN置为1,随机产生一个序号值seq=J,保存在TCP首部的序列号(Sequence Number)字段里,指明客户端打算连接的服务器的端口,并将该数据包发送给服务器端,发送完毕后,客户端进入SYN_SENT状态,等待服务器端确认。

  • 第二次握手
    服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将TCP报文标志位SYN和ACK都置为1,ack=J+1,随机产生一个序号值seq=K,并将该数据包发送给客户端以确认连接请求,服务器端进入SYN_RCVD状态。

  • 第三次握手
    客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务器端,服务器端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端与服务器端之间可以开始传输数据了。

注意:我们上面写的ack和ACK,不是同一个概念:

  • 小写的ack代表的是头部的确认号Acknowledge number, 缩写ack,是对上一个包的序号进行确认的号,ack=seq+1。
  • 大写的ACK,则是我们上面说的TCP首部的标志位,用于标志的TCP包是否对上一个包进行了确认操作,如果确认了,则把ACK标志位设置成1。

sequence number

acknowledge number

1.10 网络传输 - HTTP/HTTP1.1

HTTP 其实依然是 TCP。

HTTP 1.1 有哪些优化?

  • 长连接
  • 部分传输
  • HOST
  • 缓存

1.11 网络传输 - HTTPS

SSL/TLS 握手

  • 对称加密、非对称加密
  • 确保没有劫持,也确保私钥不泄密

2. 网络架构如何给抖音提质 - 网络提速

  • 网络提速
  • 网络稳定

2.1 网络提速 - HTTP2.0

多图片并行下载

2.2 网络提速 - 多路复用/stream

  • 单个 TCP 连接传输
  • TCP 丢包

2.3 网络提速 - QUIC/HTTP3.0

  • TCP or UDP?
    • 必须是 UDP,推广方便
  • Kernal or Userspace
    • 基于内核的实现?不,基于用户态的实现
  • 0 RTT
  • 弱网优势
    • 解决阻塞问题

2.4 网络提速 - 数据中心分布

核心机房:存储安全信息
边缘机房:小运营商等机房

2.5 网络提速 - 同运营商访问

  • 移动访问联通的连接性会比较差

2.6 网络提速 - 静态资源(照片视频)路径优化(CDN)

核心机房 -> 汇聚机房 ->边缘机房

2.7 网络提速 - 动态 API (播放/评论接口)路径优化(DSA)

不同机房之间做延时探测等方法,找到最优路径

2. 网络架构如何给抖音提质 - 网络稳定

2.8 网络稳定 - 容灾概念

故障发生、故障感知、自动切换、服务恢复

2.9 网络稳定 - 故障排查

故障明确、故障止损、分段排查

2.10 网络稳定 - 故障明确

出现什么故障? ->沟通

  • 什么业务?什么接口故障?
  • 故障体现在哪里?
  • 访问其他目标是否正常?
  • 是否是修改导致的异常?

2.11 网络稳定 - 故障止损

先止损再排查:

  • 用户体验第一
  • 对公司收入的影响是按照分钟甚至秒来计算

如何止损?

  • 组件没有容灾,但是系统有没有?
  • 降级

2.12 网络稳定 - 分段排查

客户端排查

服务端排查

中间链路排查

2.13 网络稳定 - 网络故障排查常用命令

  • dig 查询DNS问题
  • ping/telnet/nmap 查询三层/四层连通性
  • Traceroute 排查中间链路
  • iptables
  • tcpdump

2.14 网络稳定 - 故障预防很重要

  • 监控报警
  • 故障演练/预案
  • 故障降级/止损

碎碎念:计算机网络相关课程我甚至没有接触过,和科班的差距在这一刻被放大,但我是有办法的,美本的很多学校有蛮多相关课程,得找个时间补上。

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

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

相关文章

几个bev模型部署常用的命令

#bevformer 相比bevfusion多了canbus(因为引入了时序注意力机制) ##迷你版数据集 python tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes --version v1.0-mini ##标准版 python tools/crea…

大数据新视界 -- Hive 数据分区:精细化管理的艺术与实践(上)(7/ 30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

web博客系统的自动化测试

目录 前言测试用例编写自动化脚本测试准备博客登录页相关测试用例登陆成功登录失败 博客首页相关测试用例登陆成功登录失败 博客详情页相关测试用例登录成功登录失败 博客编辑页相关测试用例登陆成功登录失败 编写测试文档测试类型内容 前言 本次测试是运用个人写的一个博客系…

Flink高可用配置(HA)

从Flink架构中我们可以看到,JobManager这个组件非常重要,是中心协调器,负责任务调度和资源管理。默认情况下,每个Flink集群只有一个JobManager实例。这会产生单点故障(SPOF):如果JobManager崩溃,则无法提交新程序,正在运行的程序也会失败。通过JobManager的高可用性,…

基于Springboot的流浪宠物管理系统

基于javaweb的流浪宠物管理系统 介绍 基于javaweb的流浪宠物管理系统的设计与实现,后端框架使用Springbootmybatis,前端框架使用Vuehrml,数据库使用mysql,使用B/S架构实现前台用户系统和后台管理员系统,和不同权限级别…

unity 绿幕抠图

1.硬件:Insta360 Link 2C摄像机 2.引用shader Shader "Demo/ChromaKey" { Properties { _MainTex("Texture", 2D) "white" {} _KeyColor("KeyColor", Color) (0,1,0,0) _TintColor(&q…

Linux中离线安装gcc

gcc在安装一些其他工具的经常用到,在此记录下如何安装gcc。 1.在线安装 yum -y install gcc 2.离线安装 2.1 获取安装包链接: https://pan.baidu.com/s/1oDvt64ByWs1w-evz5TXU7w?pwd9cfo mpfr-3.1.1-4.el7.x86_64.rpmlibmpc-1.0.1-3.el7.x86_64.rp…

继续完善wsl相关内容:基础指令

文章目录 前言一、我们需要安装wsl,这也是安装docker desktop的前提,因此我们在这篇文章里做了介绍:二、虽然我们在以安装docker desktop为目的时,不需要安装wsl的分发(distribution),但是装一个分发也是有诸多好处的:三、在使用wsl时,不建议把东西直接放到系统里,因…

GITEX GLOBAL聚焦AI创新,Soul App创始人张璐团队带来多模态社交新体验

2024年10月,全球瞩目的科技盛会GITEX GLOBAL在迪拜举行。作为全球三大IT展之一,GITEX GLOBAL一直是展示全球尖端科技的重要平台,今年吸引了全球超6700家科技企业及创新公司参展。 在此次展会中,Soul App创始人张璐团队携自主研发的多模态大模型首次在国际大型展会亮相,展示了其…

C++——map相关的oj题

前言:菜鸟写博客给自己看,我是菜鸟。 1:随机链表的复制 1.1题目要求: 1.2解题思路: 可以分两步来实现代码: ①先将示例1链表中的val值以及next的指向关系深拷贝到另一个新的链表当中 ②再处理新链表中&am…

go web单体项目 学习总结

为什么学习go 博主的主语言是Java,目前的工作也是做Java web开发,有了Java的经验后就想着再学一门语言,其实有两个原因,第一是基于兴趣,也想和Java对比下到底有什么不同,在学习go的时候让我更加了解了Java…

paimon的四种changelog模式(2)-none模式

# 请先了解input模式 环境创建 CREATE CATALOG fs_catalog WITH (typepaimon,warehousefile:/data/soft/paimon/catalog );USE CATALOG fs_catalog;drop table if exists t_changelog_none ;CREATE TABLE t_changelog_none (age BIGINT,money BIGINT,hh STRING,PRIMARY KEY (h…

新型大语言模型的预训练与后训练范式,阿里Qwen

前言:大型语言模型(LLMs)的发展历程可以说是非常长,从早期的GPT模型一路走到了今天这些复杂的、公开权重的大型语言模型。最初,LLM的训练过程只关注预训练,但后来逐步扩展到了包括预训练和后训练在内的完整…

NAT:连接私有与公共网络的关键技术(4/10)

一、NAT 的工作原理 NAT 技术的核心功能是将私有 IP 地址转换为公有 IP 地址,使得内部网络中的设备能够与外部互联网通信。其工作原理主要包括私有 IP 地址到公有 IP 地址的转换、端口号映射以及会话表维护这几个步骤。 私有 IP 地址到公有 IP 地址的转换&#xff1…

notepad++文件github下载

1、github下载网址:Releases notepad-plus-plus/notepad-plus-plus GitHub 2、找到操作系统支持的软件: 3、CSDN下载链接:https://download.csdn.net/download/u013083576/90046203

【AI绘画】Midjourney进阶:色调详解(下)

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AI绘画 | Midjourney 文章目录 💯前言💯Midjourney中的色彩控制为什么要控制色彩?为什么要在Midjourney中控制色彩? 💯色调纯色调灰色调暗色调 &#x1f4af…

【MySQL篇】持久化和非持久化统计信息的深度剖析(第一篇,总共六篇)

💫《博主介绍》:✨又是一天没白过,我是奈斯,DBA一名✨ 💫《擅长领域》:✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌️…

PH热榜 | 2024-11-27

DevNow 是一个精简的开源技术博客项目模版,支持 Vercel 一键部署,支持评论、搜索等功能,欢迎大家体验。 在线预览 1. Agentplace 标语:这是一个能创建互动式AI网站和应用的平台。 介绍:Agentplace是一个平台&#xf…

ffmpeg 增亮 docker 使用

使用最新的 docker pull jrottenberg/ffmpeg docker run -it --rm -v /path/to/input:/input -v /path/to/output:/output jrottenberg/ffmpeg <ffmpeg command>比如我想增亮 在 /home 目录下 有一个 video.mp4 docker run --rm -v /home:/home jrottenberg/ffmpeg:7…

单片机学习笔记 11. 外部中断

更多单片机学习笔记&#xff1a;单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘单片机学习笔记 8…