包含标签 Network 的文章

Iperf3 小结

定义 iPerf3 是用于主动测量 IP 网络上可达到的最大带宽的工具。 它支持与时序,缓冲区和协议(TCP,UDP,带有 IPv4 和 IPv6 的 SCTP)相关的各种参数的调整。 对于每个测试,它都会报告带宽,损耗和其他参数。 不向后兼容——可以说已经不是 iperf 功能 基本——Iperf2 也有 TCP 和 UDP 测试 (-u) 设置端口(-p) 设……

阅读全文

OpenvSwitch 初探

定义 一句话:openvswitch 就是软件(虚拟)交换机。 Open vSwitch 是一个高质量的、多层虚拟交换机, 使用开源 Apache2.0 许可协议,由 Nicira Networks 开发,主要实现代码为可移植的 C 代码。 目的是让大规模网络自动化可以通过编程扩展,同时仍然支持标准的管理接口和协议(例如 NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag)。 此外,它被设计……

阅读全文

单播 广播 组播

概念准备 只有 UDP 套接字允许广播或多播 无状态 无连接 使用 UDP 协议进行信息的传输之前不需要建议连接。换句话说就是客户端向服务器发送信息,客户端只需要给出服务器的 ip 地址和端口号,然后将信息封装到一个待发送的报文中并且发送出去。至于服务器端是否存在,或者能否收到该报文,客户端根本不用管。 单播用……

阅读全文

常见 IO 模型研究

核心信息 IO 发生时涉及的对象和步骤。对于一个 network IO (这里我们以 read 举例),它会涉及到两个系统对象,一个是调用这个 IO 的 process (or thread),另一个就是系统内核 (kernel)。当一个 read 操作发生时,它会经历两个阶段: 等待数据准备 (Waiting for the data to be ready) 将数据从内核拷贝到进程中 (Copying the data from the kernel to the process) 记住这两……

阅读全文

Docker 网络 总结

4 种模式 bridge:默认网络, Docker 启动后创建一个 docker0 网桥,默认创建的容器也是添加到这个网桥中; IP 地址段是 172.17.0.1/16 host:容器不会获得一个独立的 network namespace,而是与宿主机共用一个。 none:获取独立的 network namespace,但不为容器进行任何网络配置。 创建 docker run –network none 无 ip mac 等配置 仅 exec 方……

阅读全文

Rpc 标准库的几种实现方式

server server.go package main import ( "errors" "fmt" "net" "net/http" "net/rpc" ) type Args struct { A, B int } type Quotient struct { Quo, Rem int } type Arith int func (t *Arith) Multiply(args *Args, reply *int) error { *reply = args.A * args.B return nil } func (t *Arith) Divide(args *Args, quo *Quotient) error { if args.B == 0 { return errors.New("divide by zero") } quo.Quo = args.A / args.B quo.Rem = args.A % args.B return nil } func main() { arith := new(Arith) rpc.Register(arith) rpc.HandleHTTP() // http 实现 err := http.ListenAndServe(":1234", nil) // http rpc 监听 if err != nil { fmt.Println(err.Error()) } } // TCP 实现 //func main() { // arith := new(Arith) // rpc.Register(arith) // tcpAddr, err := net.ResolveTCPAddr("tcp", ":1234") // checkError(err) // listener, err := net.ListenTCP("tcp", tcpAddr) // checkError(err) // for……

阅读全文

TCP 总结

通信过程 ![通信过程](/image/network/tcp 通信过程。png) 服务端: socket:建立 socket bind:绑定服务端 ip listen:开始监听 accept:等待连接(阻塞) read/write:通信 close:关闭连接 三次握手——建立通信过程 参考:TCP 的三次握手与四次挥……

阅读全文

TCP UDP 总结

UDP 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议。 UDP 不提供可靠性,它只是把应用程序传给 IP 层的数据报发送出去,但是并不能保证它们能到达目的地。由于 UDP 在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。 UDP 特点 无连接:UDP 是面向无连接……

阅读全文