通信

TCP、UDP和HTTP关系

∥☆過路亽.° 提交于 2020-03-21 03:49:20
3 月,跳不动了?>>> 先来一个讲TCP、UDP和HTTP关系的 http:是用于www浏览的一个协议。 tcp:是机器之间建立连接用的到的一个协议。 1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。 因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。 2、HTTP协议是建立在请求/响应模型上的。首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法、URI、协 议版本以及相关的MIME样式的消息。服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息。 HTTP/1.0为每一次HTTP的请求/响应建立一条新的TCP链接,因此一个包含HTML内容和图片的页面将需要建立多次的短期的TCP链接。一次TCP链接的建立将需要3次握手。 另外,为了获得适当的传输速度,则需要TCP花费额外的回路链接时间(RTT)。每一次链接的建立需要这种经常性的开销,而其并不带有实际有用的数据,只 是保证链接的可靠性,因此HTTP/1.1提出了可持续链接的实现方法。HTTP/1

计算机操作系统基础知识-2

旧街凉风 提交于 2020-03-21 01:22:16
Shell Shell是操作系统与用户交互的界面。表现为通过控制台执行用户命令。本身不执行命令,仅仅是组织和管理命令。 脚本:类似程序的方式执行一系列的逻辑顺序的命令序列完成复杂的功能和人机交互。保存在文件中,是shell命令的集合。 系统调用 定义:操作系统内核为应用程序提供的服务/函数 特点: 一般涉及核心操作和硬件资源 运行于核态 函数具有唯一ID 产生中断,且为自愿中断 进程管理 定义:是程序在某个数据集合上的一次运行活动。程序的一次运行即为一个进程。 特性: 动态性 并发性 异步性 独立性 分类: 按使用资源权限 系统进程:系统内核相关进程 用户进程:运行于用户态的进程 按对CPU依赖性 偏CPU进程:计算型 偏I/O进程: 进程状态 就绪态:获得了除CPU之外所有资源,通常有多个进程处于就绪态,有一个就绪队列。 运行态:获得CPU,正在运行 等待态: 进程控制块 进程由程序、数据、进程控制块组成。 进程控制块是描述和管理进程的一种数据结构,包括以下内容: 进程描述信息 控制和调度信息 资源信息 现场信息 进程互斥和同步 同步:进程通过协作共同完成同一任务而造成的直接制约关系,如生产者-消费者模式 互斥:进程间竞争系统资源而造成的间接制约关系,同一时间内只有一个进程可以访问系统资源。 临界资源和临界区 临界资源:同一时间只能有一个进程访问的资源 临界区

socket实现TCP简单循环通信(Python)

坚强是说给别人听的谎言 提交于 2020-03-21 01:05:15
一、socket通信过程 TCP服务器端创建套接字 --> 绑定IP地址和端口 --> 监听客户端连接请求 --> 接收客户端连接(建立客户端连接) --> 阻塞直到有客户端连接 --> 处理请求(通信循环) --> 关闭连接 --> 关闭套接字 TCP客户端创建套接字 --> 连接服务端IP以及端口 --> 处理请求(通信循环) --> 关闭套接字 二、套接字函数 1.服务端套接字函数 s.bind(address) 将套接字绑定到地址,在AF_INET下,以元组(host,port)的形式表示地址。 s.listen(backlog) 开始监听TCP传入连接。backlog指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值至少为1,大部分应用程序设为5就可以了。 s.accept() 接受TCP连接并返回(conn,address),其中conn是新的套接字对象,可以用来接收和发送数据。address是连接客户端的地址。 2.客户端套接字函数 s.connect(address) 连接到address处的套接字。一般address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。 3.公共套接字函数 s.recv(bufsize[,flag]) 接受TCP套接字的数据。数据以字符串形式返回,bufsize指定要接收的最大数据量

JSON方式封装通信接口

隐身守侯 提交于 2020-03-21 00:41:47
1.封装通信接口数据的方法 2. 案例:生成json 注意:json_encode() 只能接收utf-8数据 测试: <?php $arr = array( 'id'=>1, 'name'=>'zhangsan' ); echo json_encode($arr); 返回:{"id":1,"name":"zhangsan"} 继续: <?php $arr = array( 'id'=>1, 'name'=>'zhangsan' ); $data = "输出json数据"; $newdata = iconv('UTF-8','GBK',$data); echo json_encode($newdata); //返回空 3. 4.如何封装json数据方法:demo: <?php class Response{ /** * [json description] * @param 按照json数控输出通信数据 * @param integer $code 状态吗 * @param string $message 提示信息 * @param array $data 数据 * @return string * */ public static function json($code,$message='',$data=array()){ if(!is_numeric($code)){

Java HTTP通信--Get与POST请求

爷,独闯天下 提交于 2020-03-20 22:00:04
一、JDK自带的http通信机制--java.net.URL package com.wjy; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; public class TestURL { public static void main(String[] args) { new GetRun().start();//get请求 new PostRun().start();//post请求 } } class GetRun extends Thread{ public void run() { try { //doctype=xml/json/jsonp

福州电信如何申请公网固定ip?

隐身守侯 提交于 2020-03-20 16:47:27
福州的公司如何购买公网固定IP? 答:一般想到的是直接到当地的运营商解决此问题,拉一条专线给你两个固定IP地址,当然价格下来是贵的不要不要的了,如果你只是想要一个固定IP,不妨去找找云服务商去解决这个问题,比如接下来笔者公司用到的零遁云服务商,简单介绍一下~ 零遁公网IP硬件版 他可以给你一个固定公网IP以及开放这个ip的所有端口,全世界都可以直接访问到这个ip,访问的电脑或者手机不需要安装客户端软件~BGP线路 传输非常稳定~利用远程访问金蝶erp、远程访问OA系统等对延迟稳定要求特别高的~ 零遁公网IP硬件版开箱 全运营商支持,电信,联通,移动,香港。全国已经覆盖主要核心城市10多个,已经可以根据用户所在城市 提供最近的IP地址! 动态公网IP作为家庭个人用户来说用处还是很大,当然如果商业用户在特殊项目的需求上,就必须要用到固定IP了,目前大部分公司都采用了运营商的专线作为基础购买来源(毕竟钱包很鼓)当然也有一些棘手的业务,连运营商都不愿意搞的(牵扯到基础成本)就安排给了像零遁公网IP盒子这类的云服务商,配合上我手上这台零遁的公网ip盒子,还能实现在没有登录Windows,意外断电之后重新来电还能顺利连接,甚至可以专门为远程控制准备一条专线,稳定性大幅提升,而且端口的使用非常自由,在有备案的情况下还可以用来搭建博客、企业门户。以及国外组网访问等等! 互联全球各地!

守护进程,进程互斥锁,通信,生产者消费者模型

孤者浪人 提交于 2020-03-20 08:33:09
守护进程 1.守护进程 守护进程其实就是一个子进程 守护=》伴随 守护进程会伴随主进程的代码运行完毕后而死掉 2.为何守护进程 关键字就两个: 进程: 当父进程需要将一个任务并发出去执行,需要将该任务放到一个子进程里 守护: 当该子进程内的代码在父进程代码运行完毕后就没有存在的意义了,就应该将该子进程设置为守护进程,会在父进程代码结束后死掉 3.使用 p.daemon = True 互斥锁 # 互斥所:可以将要执行任务的部分代码(只涉及到修改共享数据的代码)变成串行 # join:是要执行任务的所有代码整体串行 from multiprocessing import Process, Lock import json import os import time import random def check(): time.sleep(1) # 模拟网络延迟 with open('db.txt', 'rt', encoding='utf-8') as f: dic = json.load(f) print('%s 查看到剩余票数[%s]' % (os.getpid(), dic['count'])) def get(): with open('db.txt', 'rt', encoding='utf-8') as f: dic = json.load(f) time.sleep(2

04-kubernetes网络通信

左心房为你撑大大i 提交于 2020-03-20 06:37:39
目录 kubernetes网络通信 需要解决的问题 flannel Calico/Cannel kubernetes网络通信 需要解决的问题 同一个pod内部的不同容器间通信, local Pod间的通信 pod与Service的通信: PodIP<--->ClusterIP Service 与集群外部通信 CNI: 常见的解决方案 flannel calico canel kube-router 解决方案: 虚拟网桥:brige方案 多路复用:MacVLAN(二层方案) 硬件交换:SR-IOV flannel 查看集群的flannel 配置文件 将配置文件放到/etc/cni/net.d目录下, kubelet 会加载该文件。 cat /etc/cni/net.d/10-flannel.conflist flannel不支持网络策略 不同namespace 的pod 可以相互通信 支持多种方式后端 Vxlan 工作原理 vxlan Directrouting # 同网段使用host-gw 不同网段使用vxlan host-gw: Host Gateway 工作原理 UDP: 效率很低 flannel 的配置参数: network 使用CIRD格式的网络地址: 10.244.0.0/16 -> master: 10.244.0.0/24 ​ node1: 10.244.1.0/24

Linux 多线程通信

岁酱吖の 提交于 2020-03-20 04:45:10
摘自资料(linux 与Windows不同) 线程间无需特别的手段进行通信,由于线程间能够共享数据结构,也就是一个全局变量能够被两个线程同一时候使用。只是要注意的是线程间须要做好同步,一般用mutex。能够參考一些比較新的UNIX/Linux编程的书,都会提到Posix线程编程,比方《UNIX环境高级编程(第二版)》、《UNIX系统编程》等等。 linux的消息属于IPC,也就是进程间通信,线程用不上。 linux用pthread_kill对线程发信号。 另:windows下不是用post..(你是说PostMessage吗?)进行线程通信的吧? windows用PostThreadMessage进行线程间通信,但实际上极少用这样的方法。还是利用同步多一些 LINUX下的同步和Windows原理都是一样的。只是Linux下的singal中断也非常好用。 用好信号量,共享资源就能够了。 使用多线程的理由之中的一个是和进程相比,它是一种非常"节俭"的多任务操作方式。我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。而执行于一个进程中的多个线程,它们彼此之间使用同样的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,并且

光口Bypass交换机

百般思念 提交于 2020-03-20 00:47:41
当前,各企业、机构面临着诸多网络问题,部署串联工具检查和控制网络流量有助于阻止网络-威-协-入-侵,但这些串联工具同时也增加了网络运行的复杂性,并导致了无数个潜在故障点,严重危害网络的正常运行,扰乱业务连续性。 针对这一问题,BYPASS光保护设备能为串接设备提供自动判断绕行解决方案。当串接设备事件即将引发单点故障时, BYPASS通过与串接设备的实时交互优先察觉,并触发保护机制,切换传输通道。将传输路由切换至上下通路,绕开故障节点,保障通信顺畅。 连接原理: 来源: 51CTO 作者: 有马分流 链接: https://blog.51cto.com/13873521/2480062