关于Serving的一些相关知识shuli
来源:互联网 发布:软件售后服务流程图 编辑:程序博客网 时间:2024/05/18 03:10
一、RPC
1.使用的TCP链接;
2.需要寻址、编码(二进制序列化)
用Python实现一个获取可用监听端口的示例:
def findFreePort(): """ 函数返回值是当前可用来监听的一个随机端口。 """ import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('localhost', 0)) # 用getsockname来获取我们实际绑定的端口号 addr, port = s.getsockname() # 释放端口 s.close() return port
计算机网络的常识:不同的进程不能使用同一端口。
后来想到了之前用过的神器scapy, 于是,十几行代码解决了我的这个问题。
核心代码如下:
#如果我们接收到一个SYN包,则我们构造一个SYN ACK包返回去。if x['TCP'].flags == 0x02: ipp = IP(dst=x['IP'].src,src=x['IP'].dst) tcpp = TCP(sport=x['TCP'].dport,dport=x['TCP'].sport) tcpp.flags = 0x012 # syn ack flag tcpp.ack = x['TCP'].seq + 1 send(ipp/tcpp)#如果我们接收到一个FIN ACK包,我们则返回一个ACK包。否则他会重传。elif x['TCP'].flags == 0x011: #if we recv a FIN ACK, we need to back a ACK ipp = IP(dst=x['IP'].src,src=x['IP'].dst) tcpp = TCP(sport=x['TCP'].dport,dport=x['TCP'].sport) tcpp.seq = x['TCP'].ack tcpp.ack = x['TCP'].seq + 1 res_packet = ipp/tcpp send(res_packet)elif x['TCP'].flags == 0x018: if x.haslayer("Raw") == 1: print "%s:%d ------%s:%d"%( x['IP'].src, x['IP'].sport, x['IP'].dst, x['IP'].dport) hexdump(x.load)
当然这时候这个代码还没法运行,因为相应端口的请求的包,如果该端口没有开启,系统会提前发送RST包,结束该会话。
所以最后,我们用iptable, 将出去的RST包过滤掉。就可以了实现全端口监听了。
是不是很cool:)
(1)HTTP是应用层协议,而TCP是传输层协议
(2)RPC框架有:gRPC(基于HTPP2.0和Netty框架,序列化方法是protobuf)、Dubbo(阿里的,现在阿里用hsf)
(3)HTTP需要三次握手,RPC不需要
二、clipper
http://clipper.ai/tutorials/basic_concepts/
1.主要包含query、manage和container
2.
三、hippo
1.定位是:简单易用的在线服务调度系统
2.其他调度系统:mesos、yarn、fuxi;
3.
四、Carbon
五、drogo
drogo的作用是应用与Hippo间的桥梁。
六、Jupiter NoteBook
阅读全文
0 0
- 关于Serving的一些相关知识shuli
- 关于Clusters的一些相关知识
- web中使用到的一些关于坐标相关知识
- 位图的一些相关知识
- nio的一些相关知识。
- 内存相关的一些知识
- static的一些相关知识
- thrift 的一些相关知识
- JVM的一些相关知识
- AJAX的一些相关知识
- Qt的一些相关知识
- ios相关的一些知识
- DNS相关的一些知识
- 关于GTK的相关知识
- 关于流的相关知识
- 关于IHttpModule的相关知识
- 关于SEO的相关知识
- 关于字节的相关知识
- H264(NAL简介与I帧判断)
- 签名格式
- Python学习笔记--基础篇4
- 数据结构上机实践第14周项目1
- C#通过读取appconfig文件连接数据库
- 关于Serving的一些相关知识shuli
- 什么叫身心灵?
- 从Ubuntu 14.04 LTS版升级到Ubuntu 16.04 LTS
- C++标志粘贴##怎么使用
- android中输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
- 第九周项目三 利用二叉树遍历解决思想问题
- 第十三周项目—算法验证(2)
- 明德扬FPGA-培训班公开课-第05期-《边缘检测工程讲解》
- 状态机生成工具——SMC