TCP-IP详解卷一第四章笔记

ARP 为IP地址到对应的硬件地址之间提供动态映射 RARP是那些没有驱动器的系统使用,一般是无盘工作站或x终端,需要系统管理员进行手工设置 ARP 是一个广播请求 目的主机的ARP层收到ARP报文之后,识别出这事发送端再问它的ip地址,于是发送一个ARP应答。这个ARP应答包含IP地址以及对应的硬件地址 ARP背后的基本概念 网络接口有一个硬件地址(一个48bit的值,标识不同的以太网或令牌环网络接口),在硬件层次上进行的数据帧交换必须有正确的接口地址,但是TCP/IP 有自己的地址:32bit的ip地址,主机的ip地址并不能让内核发送一帧数据给主机,内核(以太网驱动程序)必须知道...

阅读全文 〉

Golang每日一个知识点-20191121

题目1 1.通过指针变量 p 访问其成员变量 name,有哪几种方式? A.p.name B.(&p).name C.(*p).name D.p->name 答案是A,C 这里是一个非常基础的知识点:& 是取址运算符,* 是指针引用 下面代码是否可以编译通过 package main import "fmt" type MyInt1 int type MyInt2 = int func main() { var i int = 0 var i1 MyInt1 = i var i2 MyInt2 = i ...

阅读全文 〉

Golang每日一个知识点-20191119

关于切片操作 知识回顾 new(T) 和 make(T,args) 是 Go 语言内建函数,用来分配内存,但适用的类型不同 new(T) 会为 T 类型的新值分配已置零的内存空间,并返回地址(指针),即类型为 *T 的值。换句话说就是,返回一个指针,该指针指向新分配的、类型为 T 的零值。适用于值类型,如数组、结构体等。 make(T,args) 返回初始化之后的 T 类型的值,这个值并不是 T 类型的零值,也不是指针 *T,是经过初始化之后的 T 的引用。make() 只适用于 slice、map 和 channel. package main import "fmt&#...

阅读全文 〉

Golang每日一个知识点-20191101

基础复习 关于指针 一个指针的值是另一个变量的地址。 一个指针对应变量在内存中的存储位置 对于每个变量必然有对应的内存地址 var x int 声明一个x变量,&x 表示取x变量的内存地址,将产生一个指向该整数变量的指针,指针对应的数据类型是*int,指针被称为“指向int类型的指针” 如果指针名字为p, 那么p指针指向变量x 或者说p指针保存了变量的内存地址,同时*p 表达式对应p指向的变量的值,通常 *p 表示读取指针指向的变量的值 面试题 package main import "fmt" func main() { slice ...

阅读全文 〉

Golang每日一个知识点-20191031

文中中所有代码地址:https://github.com/pythonsite/golang_aim 参考文章地址:https://blog.golang.org/defer-panic-and-recover 基础复习 defer defer 语句经常被用于处理成对的操作,如打开,关闭,连接,端口连接,加锁,释放锁等 延迟语句有是哪个简单的规则: A deferred function’s arguments are evaluated when the defer statement is evaluated. 用于理解的例子: func a() { i := ...

阅读全文 〉

TCP-IP详解卷一第三章笔记

IP 提供不可靠,无连接的数据报传送服务 不可靠: 不能保证IP数据报能成功的到达目的地,如果发生某种错误时,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端 无连接:是指IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的 IP首部 目前的协议版本号是4,因此IP有时候也成为IPv4 首部长度指的是首部占32bit字的数目,包括任何选项 服务类型(TOS)字段包括一个3bit的优先权字段(现在已被忽略),4bit 的TOS字段和1bit未用但位置必须置为0, 4bit 的TOS分别代表:最小延迟,最大吞吐量,最高可靠性和最小费用 ...

阅读全文 〉

用Gin web框架写博客中问题总结(一)

博客中后台写博客是用的markdown,最终有个问题就是将写完的博客从数据库加载到页面上的时候,需要对markdown格式进行进行转换,这个时候关于TOC的展示怎么实现,自己碰到了一些问题,下面进行整理 效果图 最终我想要的效果是: 这里先说一下关于Golang后端支持markdown的包: github.com/microcosm-cc/bluemonday github.com/russross/blackfriday 我是通过上面两个包组合实现的, github.com/russross/blackfriday 是Go实现的对Markdown处理一个包,也是现在用的比较多...

阅读全文 〉

TCP-IP详解卷一第二章笔记

以太网和IEEE 802 封装 在TCP/IP 协议簇中,链路层主要有三个目的: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答 为RARP发送RARP请求和接收RARP应答 以太网采用一种称为CSMA/CD的媒体接入方法,其意思是带冲突检测的载波侦听多路接入。它的速率为10Mb/s 地址为48bit 802.3 针对整个CSMA/CD网络 802.4 针对令牌总线网络 802.5针对令牌环网络 802网络共有的逻辑链路控制(LLC) 两种帧格式的前两个字段都是目的地址和源地址 第三个字段: - 在802标准中,是长度字段,指的是它后续数据...

阅读全文 〉

golang库sqlx的快速使用

该文章的所有例子是通过mysql写的 连接数据库 package main import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/jmoiron/sqlx" ) var DB *sqlx.DB func main() { db, err := sqlx.Open("mysql","root:123456@tcp(192.168.188.106:3306)/test_db") if err != n...

阅读全文 〉

RabbitMQ基础知识(转载)

工作中经常和RabbitMQ打交道,但是一直停留在使用阶段,没有更多的去了解RabbitMQ的原理以及集群方面的知识,这个笔记主要用于逐步深入学习RabbitMQ 原文地址:https://www.cnblogs.com/dwlsxj/p/RabbitMQ.html 这个文档的后面golang代码是自己添加的 背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理...

阅读全文 〉