<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[crown的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_44205272</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_44205272]]></copyright><item><title><![CDATA[字节跳动后端二面]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/145590097</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/145590097</guid><author>qq_44205272</author><pubDate>Wed, 12 Feb 2025 13:20:00 +0800</pubDate><description><![CDATA[MySQL中的数据存储结构涉及表空间、段、区、页和行。数据库事务具有ACID特性，即原子性、一致性、隔离性和持久性。接口幂等性通过唯一标识符、乐观锁、分布式锁、状态机和Token机制实现，确保重复请求产生相同结果。分布式事务一致性可通过两阶段提交、补偿事务、基于消息的最终一致性、最大努力通知和Saga模式实现。群消息已读通过存储已读状态、消息发送接收同步、已读列表展示和批量更新实现，优化使用分页加载和缓存。限流通过固定窗口、滑动窗口、令牌桶和漏桶算法实现，保护系统稳定性、防止资源耗尽和恶意攻击。]]></description><category></category></item><item><title><![CDATA[字节跳动后端一面]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/145533310</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/145533310</guid><author>qq_44205272</author><pubDate>Sun, 09 Feb 2025 16:08:32 +0800</pubDate><description><![CDATA[• Streams：Redis 5.0引入的新特性，支持消息持久化、消费者组、消息确认、消息ID生成等高级功能，提供更强大的消息队列能力。• SQL优化：重构SQL语句，避免使用SELECT *，减少JOIN操作，使用LIMIT限制结果集大小，优化子查询和关联查询。应用场景：适用于轻量级、低延迟的消息场景，如实时通知、任务队列等，但需注意消息持久化和数据一致性，确保消息不丢失。• 架构优化：考虑数据一致性、实时性、性能等因素，优化数据同步策略，如增量同步、异步同步等，确保系统稳定高效运行。]]></description><category></category></item><item><title><![CDATA[计算机网络基础(十七)---传输层-TCP连接的四次挥手]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/113064208</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/113064208</guid><author>qq_44205272</author><pubDate>Sat, 23 Jan 2021 23:50:30 +0800</pubDate><description><![CDATA[文章目录TCP四次挥手过程第一次挥手第二次挥手第三次挥手第四次挥手等待计时器为什么需要等待计时器？为什么是2MSL？
文章内容概览

上一篇文章中分享了TCP的三次握手，本文是相反的过程，是对TCP连接的释放
TCP四次挥手过程
还是假设这里有一个发送方结算机和一个接收方计算机，纵向为时间轴。连接正常的时候，双方是可以一直进行数据传输的。假设数据传输完成了，此时就会进行TCP连接的释放。假设发送方主动的进行了连接的释放

第一次挥手
发送方发送第一次挥手的报文，报文内容：

FIN=1：该标记表示需要释放连]]></description><category></category></item><item><title><![CDATA[计算机网络基础(十六)---传输层-TCP的三次握手]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/113063657</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/113063657</guid><author>qq_44205272</author><pubDate>Sat, 23 Jan 2021 23:08:52 +0800</pubDate><description><![CDATA[文章目录TCP的三次握手TCP标记TCP三次握手过程第一次握手第二次握手第三次握手三次握手中关键的信息为什么发送方要发出第三个确认报文呢？为什么两次不行？三次握手是如何解决两次握手导致的问题？

文章内容概览
TCP的三次握手
TCP标记
TCP标记是TCP首部的其中一个字段。TCP标记占6个比特位，每位都有不同的含义

对于三次握手，主要关注下边三个标记

TCP三次握手过程
假设有一个发送方计算机和一个接收方计算机，纵向为时间轴

第一次握手
假设首先是发送方主动和接收方建立连接，所以，发送方会第一次发]]></description><category></category></item><item><title><![CDATA[计算机网络基础(十五)---传输层-TCP的拥塞控制]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/113058861</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/113058861</guid><author>qq_44205272</author><pubDate>Sat, 23 Jan 2021 22:31:13 +0800</pubDate><description><![CDATA[文章目录TCP的拥塞控制网络拥塞的根源TCP的拥塞控制和TCP的流量控制有什么区别？拥塞控制的两个算法慢启动算法拥塞避免算法
文章内容概览

TCP的拥塞控制
当网络中的数据报文过多的时候，就会造成网络的拥塞
网络拥塞的根源


一条数据链路经过非常多的设备
数据链路的各个部分都可能成为网络传输的瓶颈（网络中各种路由器的性能可能不一样、或者传输媒介性能有差别）
网络对一些硬件设备的性能要求，大于可用资源，因此就导致了拥塞

TCP的拥塞控制和TCP的流量控制有什么区别？

流量控制考虑点对点的通信量控制（主]]></description><category></category></item><item><title><![CDATA[计算机网络基础(十四)---传输层-TCP的流量控制]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/113008838</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/113008838</guid><author>qq_44205272</author><pubDate>Sat, 23 Jan 2021 15:51:12 +0800</pubDate><description><![CDATA[文章目录TCP协议的流量控制
文章内容概览

TCP协议的流量控制
流量控制是TCP协议特有的功能，对于UDP或者其它的一些协议，是没有流量控制
流量控制，简单的来说就是，接收方希望发送方将数据发送的慢一些。一般来说，我们是希望越快越好，但是，还是需要考虑一些实际的情况。比如接收方不能那么快的去接收很大的流量，所以希望发送方的流量慢一些。这就是流量控制

流量控制指让发送方发送速率不要太快
流量控制是使用滑动窗口来实现的

在TCP首部中有窗口这个字段，它占16个比特位，用来指明允许对方发送的数据量。在可靠]]></description><category></category></item><item><title><![CDATA[计算机网络基础(十三)---传输层-TCP的可靠传输]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/112987596</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/112987596</guid><author>qq_44205272</author><pubDate>Fri, 22 Jan 2021 23:46:19 +0800</pubDate><description><![CDATA[文章目录TCP协议的可靠传输选择重传
文章内容概览

TCP协议的可靠传输

TCP的可靠传输是基于连续ARQ协议的
ARQ协议中有两个重要的概念：滑动窗口和累计确认。这两个概念在TCP的可靠传输中同样适用
TCP的滑动窗口以字节为单位

假设有一段的字节流需要传输，滑动窗口的大小为7，这里是为了方便理解，所以窗口设的很小，实际情况下的窗口是很大的。窗口中的7个字节表示都是可以传输的，窗口左边的是已经确认的字节序号，窗口右边的是不允许发送的字节序号。图中的23表示的就是对方期待接收到的下一个字节，其实也就是]]></description><category></category></item><item><title><![CDATA[计算机网络基础(十二)---传输层-可靠传输的基本原理]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/112986982</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/112986982</guid><author>qq_44205272</author><pubDate>Fri, 22 Jan 2021 16:03:29 +0800</pubDate><description><![CDATA[文章目录停止等待协议情景1：发送方将数据发送出去之后，发生了丢失情景2：确认消息在传输过程中发生丢失情景3：确认消息很久才到达发送方连续ARQ协议
文章内容概览

停止等待协议
假设现在将计算机分为发送方和接收方，之前的文章中有说到TCP是全双工通道的协议，也就是同一时刻计算机可以当做发送方，也可以当做接收方。下边是发送方计算机和接收方计算机的时间轴，停止等待协议的工作原理如下：

发送方生成TCP数据（消息1），然后将其发送出去，经过一段时间之后，到达接收方
接收方在接收到之后，再发送一个确认的消息，表示]]></description><category></category></item><item><title><![CDATA[计算机网络基础(十一)---传输层-TCP协议详解]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/112973523</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/112973523</guid><author>qq_44205272</author><pubDate>Fri, 22 Jan 2021 15:44:45 +0800</pubDate><description><![CDATA[文章目录TCP协议简介TCP协议的特点1.TCP是面向连接的协议2.TCP的一个连接有两端（点对点通信）3.TCP提供可靠的传输服务4.TCP协议提供全双工的通信5.TCP是面向字节流的协议
文章内容概览

TCP协议简介

TCP（Transmission Control Protocol：传输控制协议）
TCP协议是计算机网络中非常复杂的一个协议

TCP数据报所处的位置

TCP协议的特点
1.TCP是面向连接的协议
在上一篇UDP协议详解中有对面向连接进行了介绍，也就是在通信之前会先建立连接
2..]]></description><category></category></item><item><title><![CDATA[计算机网络基础(十)---传输层-UDP协议详解]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/112973384</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/112973384</guid><author>qq_44205272</author><pubDate>Thu, 21 Jan 2021 22:11:37 +0800</pubDate><description><![CDATA[文章目录UDP协议简介UDP的特点1.UDP是一个「无连接」的协议2.UDP「不能保证可靠」的交付数据3.UDP是「面向报文传输」的4.UDP没有拥塞控制5.UDP的首部开销非常小
文章内容概览

UDP协议简介

UDP（User Datagram Protocol：用户数据报协议）
UDP相对于TCP来说，是一个非常简单的协议

「数据报」：指的就是应用层所传输过来的一个完整的数据，「UDP不会对这个完整的数据进行处理，不会进行拆分，也不会进行合并了再传输」
「从数据报的定义可以看出，UDP协议的数据长]]></description><category></category></item><item><title><![CDATA[计算机网络基础(九)---网络层-路由概述]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/112971192</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/112971192</guid><author>qq_44205272</author><pubDate>Thu, 21 Jan 2021 20:21:48 +0800</pubDate><description><![CDATA[文章目录
文章内容概览

在之前的文章中有了解到跨设备传输时，需要借助路由表来知道数据报下一跳的IP

在路由表中有两列重要的信息，分别是：目的IP地址和下一跳IP地址，这两个IP形成映射的关系。在前边了解数据报转发时，都是直接使用的路由表，这样就会存在几个疑问


「路由表中的下一跳地址是怎么来的？」
「下一跳地址是唯一的吗？」
「下一跳的地址是最佳的吗？」
「路由器这么多，他们之间是怎么协调工作的？」

这些问题就是网络层路由需要解决的问题，其实也就是需要一个好的「算法」去解决这些问题。所以，了解网络层]]></description><category></category></item><item><title><![CDATA[计算机网络基础(八)---网络层-ICMP协议]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/112966790</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/112966790</guid><author>qq_44205272</author><pubDate>Thu, 21 Jan 2021 17:19:37 +0800</pubDate><description><![CDATA[文章目录ICMP协议详解ICMP报文首部ICMP协议报文的两个种类差错报告报文询问报文ICMP协议的应用Ping应用Traceroute应用
文章内容概览

ICMP协议详解

网际控制报文协议（Internet Control Message Protocol）
该协议主要是用于辅助IP协议进行数据传输的
ICMP协议可以报告错误信息或者异常情况

ICMP的报文数据是通过封装在IP数据报中进行数据传输的。ICMP的报文分为两个部分：ICMP报文首部和ICMP报文数据

ICMP报文首部


「类型」：主]]></description><category></category></item><item><title><![CDATA[计算机网络基础(七)---网络层-网络地址转换NAT技术]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/112960710</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/112960710</guid><author>qq_44205272</author><pubDate>Thu, 21 Jan 2021 16:40:34 +0800</pubDate><description><![CDATA[文章目录内网地址和外网地址内网地址
文章内容概览

因为IP地址不够用了，所以才使用到了网络地址转换NAT技术

IPv4最多有40+亿个IP地址（如果合理使用，一般是不会不够用的）
早期IP地址的不合理规划导致IP号浪费

在之前的文章中介绍到，网络的边缘部分有家庭网络，有终端设备、路由器、网关、地区ISP
在实际情况下，其实很多的家庭只有「一个」外网的IP地址。那么，很多的内网设备是如何进行通信的？
因为我们知道网络层在进行通信的时候，需要有一个唯一的IP地址，这个时候，一个家庭如果只有一个IP地址，是]]></description><category></category></item><item><title><![CDATA[计算机网络基础(六)---网络层-IP地址的子网划分]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/112853981</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/112853981</guid><author>qq_44205272</author><pubDate>Tue, 19 Jan 2021 23:32:10 +0800</pubDate><description><![CDATA[文章目录分类的IP地址特殊的主机号特殊的网络号回环地址划分子网子网号是如何进行工作的子网掩码子网掩码是如何进行快速的子网判断的无分类编址CIDR斜线记法
文章内容概览
前边的文章中介绍到

IP地址长度为「32」位，常分成4个8位
IP地址常用「点分十进制」来表示（0-255.0-255.0-255.0-255）
32位的IP地址一共可以表示42亿个IP，如果没有一个合理的分配IP的方式，整个分配是非常麻烦的。因此需要对IP地址进行一个合理的规划和分配

分类的IP地址
将一个IP地址分为两个部分，分别是「]]></description><category></category></item><item><title><![CDATA[计算机网络基础(五)---网络层-ARP协议与RARP协议]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/112853486</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/112853486</guid><author>qq_44205272</author><pubDate>Tue, 19 Jan 2021 22:18:14 +0800</pubDate><description><![CDATA[文章目录ARP协议ARP协议的报文信息RARP协议
文章内容概览

还是看在上一篇文章中提到的这张图，计算机A将数据跨设备传输给C。A发出目的地为C的IP数据报，查询路由表发现下一跳为E，A将IP数据报交给数据链路层，「并告知目的MAC地址是E」。那么A是如何知道E的MAC地址的？这个是本文要介绍的

ARP协议
「ARP」（Address Resolution Protocol）地址解析协议
「作用」：把网络层32位的IP转换成数据链路层48位的MAC地址，在这个过程中有一个很重要的表，/「ARP缓存表」]]></description><category></category></item><item><title><![CDATA[计算机网络基础(四)---网络层-IP协议的转发流程]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/112797528</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/112797528</guid><author>qq_44205272</author><pubDate>Mon, 18 Jan 2021 23:44:50 +0800</pubDate><description><![CDATA[文章目录路由表简介IP协议的转发流程
文章内容概览
在上一篇文章中提到，计算机A在给计算机B发送数据的时候，数据的路径，可能是通过中型网络、大型网络、中型网络、小型网络，然后到达计算机B

现在把这条路径抽取出来

并且将其压平，可以看到计算机A通过中间的3个网络和路由器，将数据报文传输给了B

关于数据的转发过程，有一个概念叫：逐跳（hop-by-hop）。意思就是计算机A发送的报文是一跳一跳的来到计算机B的，网络1==》路由器1==》网络2==》路由器2==》网络3==》计算机B
路由表简介
在前边介绍]]></description><category></category></item><item><title><![CDATA[计算机网络基础(三)---网络层-IP协议详解]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/112788002</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/112788002</guid><author>qq_44205272</author><pubDate>Mon, 18 Jan 2021 17:38:17 +0800</pubDate><description><![CDATA[文章目录虚拟互联网络IP协议简介MAC地址和IP地址不同之处IP地址IP协议
文章内容概览

虚拟互联网络
从上一篇文章最后提到的一个问题来引出虚拟互联网络
对这个网络拓扑，上篇文章中提出了一个非常重要的问题：计算机A如何跨设备传输数据到计算机C？
在这个大型网络拓扑中，计算机A如何将数据传输给计算机B，这个的性质和上边那个简单的网络拓扑的性质是一样的。这个网络其实有很多的路径可以把计算机A的数据传输给计算机B，比如：
计算机A的数据先经过中型网络、大型网络、中型网络、小型网络，然后到达计算机B。除了上图的]]></description><category></category></item><item><title><![CDATA[计算机网络(二)---物理层与数据链路层]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/112426058</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/112426058</guid><author>qq_44205272</author><pubDate>Sun, 17 Jan 2021 22:39:03 +0800</pubDate><description><![CDATA[文章目录物理层概述物理层的作用传输介质信道的基本概念分用-复用技术数据链路层概述

物理层概述
物理层的作用
如果是OSI七层模型的话，物理层是处于最底层的位置。对于TCP/IP四层模型，它是属于最底层的网络接口层。物理层的作用是

连接不同的物理设备（比如路由器到计算机通过网线进行连接）
传输比特流（比特流就是0、1这样的高低电平，或者说是数字信号）

传输介质
连接不同物理设备的介质，包括有线介质和无线介质，其中有线介质包括
双绞线、同轴电缆、光纤、比特流
信道的基本概念

信道是往一个方向传递信息的媒]]></description><category></category></item><item><title><![CDATA[计算机网络(一)---计算机网络概览篇]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/112425275</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/112425275</guid><author>qq_44205272</author><pubDate>Sun, 10 Jan 2021 11:47:18 +0800</pubDate><description><![CDATA[文章目录了解计算机网络及其分类什么是计算机网络计算机网络的分类计算机网络的层次结构现代互联网的网络拓扑边缘部分核心部分


了解计算机网络及其分类
什么是计算机网络
计算机网络主要由一些通用的、可编程的硬件互联而成，通过这些硬件，可以传送不同类型的数据，并且可以支持广泛和日益增长的应用

计算机网络不仅仅是软件的概念，它还包含硬件设备(网卡、网线、路由器)
计算机网络不仅仅是信息通信，还可以支持广泛的应用

计算机网络的分类
1、按照网络作用的范围，可以将计算机网络分为

广域网(WAN)
城域网(MAN)]]></description><category></category></item><item><title><![CDATA[配置文件的读取]]></title><link>https://blog.youkuaiyun.com/qq_44205272/article/details/112113486</link><guid>https://blog.youkuaiyun.com/qq_44205272/article/details/112113486</guid><author>qq_44205272</author><pubDate>Sat, 02 Jan 2021 19:33:09 +0800</pubDate><description><![CDATA[读取json文件
{
  "go-micro":{
    "db": {
      "ip": "10.0.0.1",
      "port": 3306
    },
    "redis": {
      "ip": "10.0.0.1",
      "port": 6379
    }
  }
}

package main

import (
	"fmt"
	"github.com/micro/go-micro/v2/config"
	"log"
)

type DB struct {
	]]></description><category></category></item></channel></rss>