随笔分类 - 网络通信
摘要:在 HTTP/2 的规范中定义了许多帧类型,每个帧类型由唯一的 8 位类型代码标识。每种帧类型在建立和管理整个连接或单个 stream 流中起到不同的作用。 特定的帧类型的传输可以改变连接的状态。如果端点无法维持连接状态的同步视图,则无法在连接内继续成功通信。因此,重要的是端点必须共享的理解状态,在
阅读全文
摘要:1、WebSocket、 Engine.IO、 Socket.IO 之间的关系 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只
阅读全文
摘要:1 为什么需要 WebSocket WebSocket 是为了满足基于 Web 的日益增长的实时通信需求而产生的。 在传统的 Web 中,要实现实时通信,通用的方式是采用 HTTP 协议不断发送请求,即轮询(Polling)。 但这种方式既浪费带宽(HTTP HEAD 是比较大的),又导致服务器 C
阅读全文
摘要:普通代理 第一种 Web 代理原理特别简单: 下面这张图片来自于《HTTP 权威指南》,直观地展示了上述行为: 假如我通过代理访问 A 网站,对于 A 来说,它会把代理当做客户端,完全察觉不到真正客户端的存在,这实现了隐藏客户端 IP 的目的。当然代理也可以修改 HTTP 请求头部,通过 X-For
阅读全文
摘要:1. 主要内容 本文的主要内容: 介绍DNS是干什么的; 介绍DNS是如何工作的; 介绍DNS请求与响应的消息格式; 编程实现一个简单的DNS服务器; 2. DNS是啥 关于DNS是啥,想必学过计算机网络的应该都知道,它是Domain Name System的简写,中文翻译过来就是域名系统,是用来将
阅读全文
摘要:诞生背景 HTTP/1:每次请求都建立一个TCP连接 HTTP/1.1:支持长连接,同一个IP对应一个TCP连接 HTTP/2:TCP多路复用,同一个TCP并发 多个HTTP请求 并发数量在浏览器实现上有限制,以Chrome为例为6,普遍为6~8(可能为滑动窗口大小限制,或者因为更多的并发数量若发生
阅读全文
摘要:现如今的 Web,HTTPS 早已经成为标配,公开的 HTTP 网站已经和 Flash 一样,慢慢在消亡了。 启用 HTTPS 的核心是一个叫做 证书 的东西。不知道大家是否有留意,前几年上 12306 的时候,浏览器都会提示「您的链接不是私密链接」,这其实就是因为 12306 的证书有问题。如果点
阅读全文
摘要:RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。 RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有: 应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spr
阅读全文
摘要:HTTP Hyper Text Transfer Protocol 使用TCP端口默认为:80 超文本传输协议,是互联网上使用最广泛的一种协议,所有WWW文件必须遵循的标准。HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。 HTTPS Hyper Tex
阅读全文
摘要:Transfer-Encoding,是一个 HTTP 头部字段,字面意思是「传输编码」。实际上,HTTP 协议中还有另外一个头部与编码有关:Content-Encoding(内容编码)。Content-Encoding 通常用于对实体内容进行压缩编码,目的是优化传输,例如用 gzip 压缩文本文件,
阅读全文
摘要:Service Mesh作为下一代微服务技术的代名词,初出茅庐却深得人心一鸣惊人,大有一统微服务时代的趋势。 那么到底什么是Service Mesh? 一言以蔽之:Service Mesh是微服务时代的TCP协议。 有了这样一个感性的初步认知,我们再来看到底什么是Service Mesh。 提到Se
阅读全文
摘要:引言 在一个完善的即时通讯应用中,websocket是极其关键的一环,它为web应用的客户端和服务端提供了一种全双工的通信机制,但由于它本身以及其底层依赖的TCP连接的不稳定性,开发者不得不为其设计一套完整的保活、验活、重连方案,才能在实际应用中保证应用的即时性和高可用性。就重连而言,其速度严重影响
阅读全文
摘要:DNS反向查询是什么 DNS反向查询大概的一个定义就是:从 IP 地址获取 PTR 记录。也就是说,通过使用一些网络工具可以将 IP 地址转换为主机名。 实际上,PRT 代表 POINTER,在 DNS 系统有唯一性,将 IP 地址与规范化的主机名联系起来。PTR 记录其实是 NDS 系统的一部分,
阅读全文
摘要:以前对DNS(Domain Name System)认识就大概的知道是一个提供域名解析服务,作为互联网的基础设施,任何一个IT人员都会或多或少都接触到DNS,随着我最近的接触不断提高,我发现DNS还是有很多细节技术需要认识和把握的,本文以一个中型互联网企业搭建域DNS服务器架构为基础,从安全的角度看
阅读全文
摘要:MAC 地址(Media access control address)是分配给网络接口控制器(Network interface controller, NIC)的唯一标识符,它会在网络段中充当网络地址使用,所有具有网卡的主机都有单独的 MAC 地址,该地址总共包含 48 位,占 6 字节的空间,
阅读全文
摘要:接下来以下图较简单的网络拓扑模型作为例子,探究探究其间发生了什么? 简单的网络模型 01 孤单小弟 —— HTTP 浏览器做的第一步工作是解析 URL 首先浏览器做的第一步工作就是要对 URL 进行解析,从而生发送给 Web 服务器的请求信息。 让我们看看一条长长的 URL 里的各个元素的代表什么,
阅读全文
摘要:一、TCP连接状态简介 TCP协议规定,对于已经建立的连接,网络双方要进行四次挥手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。 网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP
阅读全文
摘要:前言 前面我们已经聊了ajax,它的特点是浏览器必须先发起请求,服务器才能给出对应的响应,想一想能不能让服务器主动向浏览器推送数据呢?那么这篇文章我们来聊一聊服务器推送功能。 轮询 假设你现在需要去做一个球赛直播页面,一个主播在后台文字直播比赛,那么这就要求解说数据尽可能的实时到达浏览器,那么我们如
阅读全文
摘要:TCP 为了防止发送方无脑的发送数据,导致接收方缓冲区被填满,所以就有了滑动窗口的机制,它可利用接收方的接收窗口来控制发送方要发送的数据量,也就是流量控制。 接收窗口是由接收方指定的值,存储在 TCP 头部中,它可以告诉发送方自己的 TCP 缓冲空间区大小,这个缓冲区是给应用程序读取数据的空间: 如
阅读全文
摘要:最近老在项目的shell脚本中看到kinit这个东西,完整的命令是 kinit -k -t ./conf/kerberos.keytab sherlocky/admin@EXAMPLE.COM 查阅一番资料后了解到,之所以有这个命令,是由于该shell脚本接下来会访问Hadoop集群,从上面拉取文件
阅读全文