Go语言中文网 为您找到相关结果 12

Think2Go戈登营首期review

2013-09-14 Think2Go戈登营首期review Go语言在CDN下载系统中的应用 Go在微博数据分析中的应用 golang与高强度在线服务 Go语言在CDN下载系统中的应用 今天去参加了Go语言上海的线下活动,这里做个简单的review。只是个人理解,可能有误,拍砖轻点。 首先是谢大闪亮登场,为我们分享他用Go语言在盛大的CDN系统中的应用,大家鼓掌。 我觉得讲的主要内容上可以分两大块来看,一部分是从中心结点到IDC的文件分发过程,另一部分是用户请求到达之后的调度设计。 主要应用场景像什么游戏客户端的分发之类的。先说中心结点服务器到IDC服务器的分发过程。 大家知道,国内的网络环境各种奇葩,最远的距离不是城市到城市的物理距离,而是我用电信,你用联通,或者他是教育网等等。IDC机...阅读全文

C++服务端面试准备(5)网络协议相关

声明:本文内容纯属博主自己查找和归纳的个人所需的知识点,仅作参考,如有错误,博主强烈希望您指出。如果您是某个知识点的原创博主,如有需要,可联系本人加上链接。本文内容会根据博主所需进行更新,希望大家多多关照。 由于博主不是计算机专业出身,个人能力有限,本文内容涉及到博主的知识盲区,在这领域不知道需要掌握多少,只是把自己看到的大概归纳一下,请见谅。也希望网友们可以指点指点,谢谢! 网络层次划分 TCP/IP 4层模型:应用层、传输层、网络层、网络接口层TCP/IP 5层模型:应用层、传输层、网络层、数据链路层、物理层OSI 7层模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 物理层:发送高低电压即电信号 数据链路层:电信号分组,以太网协议,单位为帧 网络层:对子网间的数据包进行...阅读全文

博文 2020-04-10 21:32:41 DX3906

请高手帮忙分析wireshark抓包出现的双向重传(一侧dup ack,双向都TCP Out-Of-Order)和发送包长度为 0 的问题,先谢谢

如下是拷贝的抓包描述,每次 10.254.251.74 发给 10.254.251.103 都会发 2 次然后才会有从 103 回包,wireshark 提示[TCP Out-Of-Order](应该是因为 2 次的 seq 号一样导致) 还有一个问题就是隔几个包 10.254.251.103 会给 10.254.251.74 发送一次长度为 0 的包,然后才发送包含数据的报文。 10.254.251.103 是客户端,和 10.254.251.74 长连接发送业务数据,10.254.251.74 会存储收到的业务数据,10.254.251.74 收到业务数据后回“ 0004OK..”给 10.254.251.103 (如果回的时候 socket 写不成功,则会尝试重写 3 次,...阅读全文

Golang RabbitMQ 自动重连/重发生产者

背景 Golang里面采用AMQP来连接rabbitmq, 使用之后发现这个库比较底层,只提供协议的封装。这个库用到生产环境不合适,包装了一层以提供更加稳定的功能,代码地址 目标 断线重连: 这个需求不过分,生产环境各种网络问题,最起码的重连要支持,支持重连次数 消息重发: 这个要求不过分,Rabbitmq有消息确认机制 关键实现 PS:Golang的并发真的设计的很好,习惯之后用起来比多线程/锁的模式舒服一些。 定义三个通道来进行并发 type Producer struct { name string logger *log.Logger connection *amqp.Connection channel *amqp.Channel done chan bool // 如果主动clo...阅读全文

博文 2018-12-03 23:34:44 OhBonsai

MongoShake——基于MongoDB的跨数据中心的数据复制平台

摘要:MongoShake是基于MongoDB的通用型平台服务,作为数据连通的桥梁,打通各个闭环节点的通道。通过MongoShake的订阅消费,可以灵活对接以适应不同场景,例如日志订阅、数据中心同步、监控审计等。其中,集群数据同步作为核心应用场景,能够灵活实现灾备和多活的业务场景。背景在当前的数据库系统生态中,大部分系统都支持多个节点实例间的数据同步机制,如Mysql Master/Slave主从同步,Redis AOF主从同步等,MongoDB更是支持3节点及以上的副本集同步,上述机制很好的支撑了一个逻辑单元的数据冗余高可用。跨逻辑单元,甚至跨单元、跨数据中心的数据同步,在业务层有时候就显得很重要,它使得同城多机房的负载均衡,多机房的互备,甚至是异地多数据中心容灾和多活成为可能。由于目前M...阅读全文

博文 2018-06-26 17:34:53 猫耳呀

关于IoT网络的一些特征的探讨

摘要: 网络是IoT设备非常关键的部分,本文和大家一起探讨IoT网络的几个重要特征,及AliOS Things尝试提供的一些解决方案。 IoT网络的特征包括IP网络,UDP网络,多种通信手段及拓扑。而AliOS Things也尝试提供包括CoAP,SAL,uMesh等技术方案来应对这些挑战。 网络是IoT设备非常关键的部分,本文和大家一起探讨IoT网络的几个重要特征,及AliOS Things尝试提供的一些解决方案。 **IP网络** ![图片描述](http://img.blog.csdn.net/20171228154730132?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVucWlpbnNpZ2h0/font/5a6...阅读全文

基于UDP协议可靠传输协议QUIC协议和golang server代码和client代码

一. QUIC 的基本特点 基于UDP的多路传输(单连接下); 极低的等待时延(相比于TCP的三次握手); 快速迭代更新; 开源于Chromium项目中。 首先,QUIC为 传输层 协议,与TCP、UDP、SCTP同级。所以肯定会 在一定范围内 同现有的传输层协议构成竞争关系。 二. 为什么不用TCP TCP由于基于操作系统内核实现,发展速度极慢,现有的TCP Fast Open实现等等虽然早已存在于标准中但是实际应用情况及其落后,即便除非所有机器的操作系统都更新到最新,否则考虑到兼容性不太可能大范围采用新技术。 QUIC直接基于客户端实现,而非基于系统内核(这点有点像最新的.Net Core),可以进行快速迭代更新,不需要操作系统内核层面的更改。 (TCP的性能缺陷将在下文中说明)。 像S...阅读全文

博文 2019-02-25 15:21:20 Dende

TCP RTO计算方法以及go实现验证

TCP RTO计算方法和思考以及go实现验证 概述 最近在研究tcp的重传机制,tcp的重传大概有三种,超时重传(rto)、快速重传(fack)、早期重传(er)。今天讲讲rto,并用go实现其算法,探究一下。主要参考tcp/ip-guid 基本概念 RTO即超时重传时间 RTT数据包往返时间 平均偏差是指单项测定值与平均值的偏差(取绝对值)之和,除以测定次数。 RTO计算算法 RTO的计算依赖于RTT值,或者说一系列RTT值。rto=f(rtt) 在Linux中,最开始实现的是一个比较简单的经典算法RFC793,后来1988年提出了新的算法计算rto值,文档为RFC6298. 下面对比一下两种算法。 经典算法 rfc原文 An Example Retransmission Timeout ...阅读全文

博文 2018-01-16 13:42:59 sheepbao.github.io

面试题

字节跳动 一、算法题 一面: 1. lc 里最长上升子序列的变形题 2. 实现输入英文单词联想的功能 二面: 1.矩阵旋转,要求空间复杂度 O(1) 2.无序的数组的中位数。要求时间复杂度尽可能的小 二、计算机网络 tcp 怎么保证数据包有序 主机每次发送数据时,TCP 就给每个数据包分配一个序列号并且在一个特定的时间内等待接收主机对分配的这个序列号进行确认。 如果发送主机在一个特定时间内没有收到接收主机的确认,则发送主机会重传此数据包。 接收主机利用序列号对接收的数据进行确认,以便检测对方发送的数据是否有丢失或者乱序等。 接收主机一旦收到已经顺序化的数据,它就将这些数据按正确的顺序重组成数据流并传递到高层进行处理。 tcp 和 udp 的异同 TCP 是面向流的可靠数据传输连接 UDP 是...阅读全文

博文 2020-03-13 11:32:55 DoneIsBetter

kcp的优势

传输数据上增加包头 ``` conv:连接号。UDP是无连接的,conv用于表示来自于哪个客户端。对连接的一种替代 cmd:命令字。如,IKCP_CMD_ACK确认命令,IKCP_CMD_WASK接收窗口大小询问命令,IKCP_CMD_WINS接收窗口大小告知命令, frg:分片,用户数据可能会被分成多个KCP包,发送出去 wnd:接收窗口大小,发送方的发送窗口不能超过接收方给出的数值 ts:时间序列 sn:序列号 una:下一个可接收的序列号。其实就是确认号,收到sn=10的包,una为11 len:数据长度 data:用户数据 ``` 1.超时重传加速: TCP超时计算一次就是RTOx2,何况3次,而KCP启动快速模式后可设置超时时间(大家都说1.5比较好),提高了传输速度。 2.选择重...阅读全文

博文 2020-02-26 17:41:42 lwcbest

TCP协议特点和三次握手/四次挥手

一.TCP的特性 TCP提供一种面向连接的、可靠的字节流服务 在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP TCP使用校验和,确认和重传机制来保证可靠传输 TCP给数据分节进行排序,并使用累积确认保证数据的顺序不变和非重复 TCP使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小进行拥塞控制 注意:TCP 并不能保证数据一定会被对方接收到,因为这是不可能的。TCP 能够做到的是,如果有可能,就把数据递送到接收方,否则就(通过放弃重传并且中断连接这一手段)通知用户。因此准确说 TCP 也不是 100% 可靠的协议,它所能提供的是数据的可靠递送或故障的可靠通知。 二.三次握手与四次挥手 所谓三次握手(Three-way Handshake),是指建立一个 TCP 连接时...阅读全文