OS - 委托协议栈发送消息
前言这个系列的博客是针对阅读《网络是怎样连接的》([日] 户根勤, 译 [中] 周自恒, ISBN: 9787115441249)一书的记录与思路整理。有些概念是做纯路由交换的网络工程师很少接触但又很重要的部分,因此整理到这里以做分享。
协议栈委托全貌应用程序做网络通讯需要委托操作系统协议栈来搭建数据通道并发送数据,这一过程需要按一定顺序调用socket 库中一系列的组件。
收发数据的两台计算机之间连接了一条数据通道,数据沿着这条通道流动,最终到达目的地。我们可以把数据通道想象成一条管道,将数据从一端送入管道,数据就会到达管道的另一端然后被取出。数据可以从任何一端被送入管道,数据的流动是双向的。
对于一个TCP 应用来说,可以总结成以下4个通讯过程:
创建套接字
将管道连接到服务器端的套接字上
收发数据
断开管道并删除套接字
前面这 4 个操作都是由操作系统中的协议栈来执行的,浏览器等应用程序并不会自己去做连接管道、放入数据这些工作,而是委托协议栈来代劳。此外,这些委托的操作都是通过调用 Socket 库中的程序组件来执行的,但这些数据通信用的程序组件其实仅仅充当了一个桥梁 ...
使用SSH转发连接远程localhost 端口
前言目前博客使用的是Hexo 的框架进行部署的,所以在每次发布博客前,我都可以通过hexo server —-debug 来对新的页面进行检验,保证页面的整体格式、内容、图片都是得当的。使用hexo server会在服务器端的环回地址(localhost or 127.0.0.1)开启一个4000 端口的侦听进程,给管理员提供访问。
我们可以通过iptalbes 等防火墙技术来配置SNAT 达到远程访问服务器环回地址的作用,但这样做有几个不妥之处:1. 我们需要将一个debug 的进程暴露给公网,且该进程是没有提供用户身份认证服务的; 2. hexo server 提供的是HTTP 的页面访问,并没有使用HTTPS 对相关流量进行加密。
后来通过搜索文档,我找到了一个使用SSH 来将本地端口和远程服务器端口绑定的一种方法,在此分享给大家。
SSH 的配置搜索SSH 的man page,可以看到对-L的注释如下:
Specifies that connections to the given TCP port or Unix socket on the local (client) ...
三大表初探
前言这个系列的博客是针对阅读《手把手教你读财报》([中] 唐朝, ISBN: 9787513649551)一书的记录与思路整理。目前正在学习股市基本面的一些知识,通过这个系列的博客与大家分享投资理财,股市基本面的内容。我认为选股是靠基本面来支撑的,而买卖的时机则是技术分析的优势。希望能通过这样的整理,帮助自己深入地理解财报之中的奥妙,也能为对此类话题有兴趣的读者提供一些微不足道的帮助。
时间财报时间
披露时间
备注
经营年度
自然年(1月1日至12月31日)
一季报
一季度结束一个月内
不得早于年报
半年报
8月底之前
三季报
10月底
年报
年度结束4个月内
必须经会计师事务所审计并出具审计意见
预报时间上海证券交易所在法定的季报、半年报和年报发布之前,某些情况下,上市公司还需要按照交易所要求,提前发布业绩预告或业绩快报。
情形
时间
亏损
1/31
扭亏为盈
1/31
实现盈利
1/31
深圳证券交易所
情形
补充
时间
亏损
季报、半年报及年报前
扭亏为盈
季报、半年报 ...
DNS
前言这个系列的博客是针对阅读《网络是怎样连接的》([日] 户根勤, 译 [中] 周自恒, ISBN: 9787115441249)一书的记录与思路整理。有些概念是做纯路由交换的网络工程师很少接触但又很重要的部分,因此整理到这里以做分享。
域名和IP 地址并用的理由TCP/IP 网络必须使用IP 地址来确定通信对象。那为什么作为用户时,很少会碰到直接使用IP 地址的时候,例如访问网页使用的是域名?
域名方便记忆。实际上使用IP 地址来替代网址也是可以工作的。(实际上当今的服务器软件如果启用了虚拟主机功能,直接使用IP 地址也无法访问)
运行效率。IP 地址长度为32 bits,即4 bytes。域名大小不定从十几到255字符都是有可能的。如果通过域名来决定如何处理数据包,不仅增加了网络中路由器的负担(域名长度是不固定的。处理长度不固定的数据比处理定长的数据要复杂得多,负担也更重),还减缓了数据传递的速度(因为传递的数据量更大了)
域名可以使系统具备容灾、负载均衡特性,例如一个域名可以对应多个后台IP,那么我们通过操作DNS 系统就可以将流量负载到不同的后台设备(书上没有,自 ...
HTTP 基础
前言这个系列的博客是针对阅读《网络是怎样连接的》([日] 户根勤, 译 [中] 周自恒, ISBN: 9787115441249)一书的记录与思路整理。有些概念是做纯路由交换的网络工程师很少接触但又很重要的部分,因此整理到这里以做分享。
HTTP 基本思路
HTTP 协议定义了客户端和服务器之间交互的消息内容和步骤。
客户端向服务器发送请求消息
请求消息主要包含“对什么”和“怎么进行操作”
“对什么”指的是URI,可以是一个网页数据的文件或者是一个CGI程序;也可以直接使用”http:”开头的URL 作为URI
“怎么操作”指的是HTTP 方法,表示客户端希望web 服务器完成怎样的操作。例如,读取URI 表示的数据、将客户端输入的数据发送给URI 表示的程序等等
请求信息还可以包含表示附加信息的头字段
服务器解析请求,通过URI 和方法来判断“对什么”进行“怎样的操作”,并根据要求来完成自己的工作,然后将结果保存在响应消息中返回给客户端。
响应消息的开头是一个状态码,用来表示操作的执行结果是成功还是发生了错误
状态码之后就是字段和网页数据
客户端收到后返回消息后,浏览器从消息 ...
使用Docker 搭建Ghost
作者: Jerry連結: https://butterfly.js.org/posts/dc584b87/#Page-Front-matter來源: Butterfly著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
前言最近在阿里云上买了一台轻量服务器,初衷是用来做爬虫的,但是试了几天拿到的数据效果不太理想,资源闲置也是浪费干脆搭一个自己的Blog 来做记录和分享。
这篇文档就这么诞生了,主要是记录一下折腾Ghost 博客系统的过程。
安装Docker本文使用的环境是CentOS 8.2(个人习惯使用RHEL 的系统,和Ghost 官方推荐的Ubuntu 在安装程序和创建用户的部分有一点点不一样而已。)
推荐使用一个用户账号进行下列操作,但是涉及到很多权限的修改。如果对Linux 不熟悉可以直接使用root 账号完成下列操作。
安装依赖sudo yum install -y yum-utils
配置阿里云的镜像仓库yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker- ...