计算机网络-网际控制报文协议
计算机网络-网际控制报文协议主要是为了有效的转发IP数据报已经提高IP数据报交付成功 ICMP差错报文的种类 终点不可达 源点抑制 时间超时 参数问题 重定向 ICMP的应用1.分组网间探测(PING)使用ping来测试主机或者路由器的连通性 2.跟踪路由traceroute和tracert:探测IP数据报从源主机到目的主机需要经过哪些路由器 UNIX版中,具体使用traceroute,其在运输层使用UDP协议,在网际层使用ICMP。报文类型只有差错报告报文 Windows版中,具体使用tracert,其在应用层直接使用网际层ICMP,使用了回答请求和回答报文和差错报告报文
数据结构-栈
数据结构-栈栈(stack)是一种遵循先入后出逻辑的线性数据结构 基于链表的栈123456789101112131415161718192021222324252627282930313233343536373839404142434445464748package stacktype arrayStack struct { data []int}/* 初始化栈 */func newArrayStack() *arrayStack { return &arrayStack{ // 设置栈的长度为 0,容量为 16 data: make([]int, 0, 16), }}/* 栈的长度 */func (s *arrayStack) size() int { return len(s.data)}/* 栈是否为空 */func (s *arrayStack) isEmpty() bool { return s.size() == 0}/* 入栈 */func (s *arr...
计算机网络-路由选择协议
计算机网络-路由选择协议路由选择协议主要分为俩类: 静态路由选择:采用人工配置的方式给路由器添加网络路由、默认路由和特定路由等路由条目 动态路由选择:路由器通过路由协议子哦对那个获取路由信息 路由信息协议(RIP)RIP(路由信息协议):RIP使用跳数(Hop Count)作为度量来衡量到底目的网络的距离 RIP将路由器到直连网络的距离定义为1 RIP将路由器到非直连网络的的距离定义所经给的路由器+1 RIP允许一条路由器最多包含15个路由器,距离=16,RIP不可达 RIP会优先选择距离小的链路 RIP在网络拥有多条相等距离的情况下,会进行负载均衡 三个重要特点: RIP仅和相邻路由器交换信息 RIP交换的是路由器的路由表 RIP通过周期性交换,更新路由表 开放最短路径优先协议(OSPF)开放最短路径优先(OSPF)是一种在自治系统内部使用的链路状态路由协议。OSPF是互联网工程任务组(IETF)为互联网开发的,用于替代RIP(路由信息协议)。它的工作原理基于Dijkstra算法,也被称为最短路径优先(SPF)算法 边界网关协议(BGP)属于外部...
数据结构- 数组与链表
数据结构- 数组与链表数组数组(array)是一种线性数据结构,元素的位置称之为索引,在内存中存储的是连续索引的位置 常用操作初始化数组123456/* 初始化数组 */var arr [5]int// 在 Go 中,指定长度时([5]int)为数组,不指定长度时([]int)为切片// 由于 Go 的数组被设计为在编译期确定长度,因此只能使用常量来指定长度// 为了方便实现扩容 extend() 方法,以下将切片(Slice)看作数组(Array)nums := []int{1, 3, 2, 5, 4} 访问元素数组元素基于连续地址 得出:元素内存地址=数组内存地址(首元素地址)+元素长度×元素索引(内存地址偏移量) 插入元素中间插入一个元素时,该元素的所有元素往后移动一位 123456789/* 在数组的索引 index 处插入元素 num */func insert(nums []int, num int, index int) { // 把索引 index 以及之后的所有元素向后移动一位 for i := len(nu...
计算机网络-IPV4
计算机网络-IPV4分类编址的IPV4主要方法: 通过划分32Bit的IPV4地址,分为网络号和主机号 网络号:标记主机(或路由器的)的接口所连接到的网络 主机号: 标记主机(或路由器) 主要有五类地址: A类地址:网络号8bit,主机号24bit,网络号的第一位固定为0 B类地址:网络号16bit,主机号16bit,网络号前俩位为10 C类地址:网络号24bt,主机号8bit,网络号前三位110 D类地址,多播地址,前面四位1110 E类地址:保留地址,前面四位1111 特点: A、B、C类地址才分配给主机(路由器) 主机号全0是网络地址,不能分配给主机(路由器) 主机号全1是广播地址,不能分配给主机(路由器) A类地址 最小网络号:1.0.0.0 最大网络号:126.0.0.1 全0保留地址,所以00000001(1.0.0.0)是最小网络号 01111111(127.0.0.1),是本地回环地址,不能指派 本地最小回环测试地址:127.0.0.1 本地最大回环测试地址:127.255.255.254 01111110(126.0.0.0),...
Go的Context包
Go的Context包背景context 包是标准库中一个非常重要的组件,用于在不同 Goroutine 之间传递取消信号、超时警告和其他请求范围的值。它主要用于控制并发任务的生命周期,尤其是在复杂的网络服务和多层调用栈中。context 包的使用能够帮助开发人员写出更加清晰、健壮和易于维护的并发代码。下面介绍 context 包的基本用法和设计理念。 为什么需要使用context在并发程序中使用 Context 主要有两个目的:一是用来取消操作,二是用来传递请求范围的数据。 取消操作:当一个 Context 被取消时,所有基于该 Context 的操作都应该被取消。这是通过检查 ctx.Done() 返回的通道是否被关闭来实现的。如果该通道被关闭,表示 Context 已经被取消,相应的操作也应该停止。 传递数据:通过 context.WithValue 函数,可以将请求范围的值与 Context 相关联。这可以用来传递如请求ID、认证令牌等信息。 常见用法创建contextcontext 包通过 Context 接口提供功能。能直接创建一个 Context 实例,而是需要...
VM拓展Centos磁盘
VM拓展Centos磁盘背景VM虚拟机在使用一段时间后,磁盘不够,需要拓展root 操作步骤 虚拟机关机 选择拓展磁盘大小 lsblk查看当前的分盘情况 (1)fdisk /dev/sda进入磁盘配置; p (print) 输出当前磁盘分区情况; d(delete) 删除sda3磁盘(空间大小为:4810752-41943039) 。(2)n(new) 新建磁盘; p(primary) 进行新建主分区磁盘;(一块硬盘顶多只能分四块主分区) 3新建磁盘空间名3新建磁盘(空间大小为:4810752-56623103);(3) w (write)保存,保存写入新的配置,磁盘分配配置 reboot重启刷新 拓展磁盘 12345678## 拓展磁盘(Centos)pvcreate /dev/sda3 # 创建pvvgextend centos /dev/sda3 # 扩容vglvextend -l +100%FREE /dev/centos/root # 扩容lvxfs_growfs /dev/centos/roo...
Go-控制协程数量
Go-控制协程数量背景GMP的无限创建Goroutine基于共享用户态资源,过多的协程会导致CPU利用率浮动上涨、内存占用上涨、主进程崩溃 如何控制Goroutine数量基于buffer的channel原理:通过buffer的缓冲区的大小和阻塞等待来控制最大的数量 1234567891011121314151617181920212223242526package mainimport ( "fmt" "runtime" "time")func doGoroutine(i int, ch chan bool) { fmt.Println("go func", i, "goroutine count", runtime.NumGoroutine()) // 结束了一个任务 <-ch}func main() { task_cnt := 10 // 容量控制了 Goroutine 的数量 ch := make(chan bool, 3) // for的...
分布式-CAP理论
分布式-CAP理论背景在大规模拓展服务下存在三个特性: C(Consistency):一致性 A(Availability):可用性 D(Partition Tolerance):分区容错性 一致性一致性: All nodes see the same data at the same time 所有节点数据,在同一时刻,读数据都是最新的 流程: 对主存储写数据 进行上锁,要求对从存储进行同步 同步成功,释放锁,返回成功 可用性可用性:Reads and writes always succeed 服务永远可用,用户感知不到异常 流程: 用户向master请求 master从从存储请求 分区容错性分区容错性:The system continues to operate despite arbitrary message loss or failure of part of the system 在分布式系统中,尽管部分节点出现任何消息丢失或者故障,系统还应继续运⾏ 流程: 尽使⽤异步取代同步操作,例如使⽤异步⽅式将数据从主数据库同步到从数据...
分布式-Base理论
分布式-Base理论介绍CAP无法同时满足,为了同时实现CAP系统,所以出现了BASE BA(Basically Available):基本 可用 S(Soft State):软状态 E(Eventually Consistent):最终一致性 ACID和BASE是对冲理论: ACID追求强一制性 BASE牺牲强一致性,追求高可用性 Basically Available 通过妥协响应时间和功能损失 场景: 断电,增大响应时间 高并发下,电商提示抢购失败 Soft State软状态本质就是系统中的数据有中间状态,多节点的副本数据等待同步数据延迟 Eventually Consistent软状态数据不可以一直持续,必须在一段时间内完成同步,达到最终一致性




