随笔分类 -  网络通信

摘要:DNS是什么 dns全称Domain Name System,又称域名系统,是互联网的一项服务, 主要在dns服务器中保存着域名和ip地址的对应关系,为人们提供域名解析服务。 全球一共有13台根dns服务器,美国10台,欧洲2台,分布在英国和瑞典, 亚洲1台,在日本。 DNS架构 服务器的包含关系是 阅读全文
posted @ 2019-07-09 18:54 hesujian 阅读(746) 评论(0) 推荐(0)
摘要:epoll 程序阻塞的过程 假设我们目前运行了三个进程A B C ,如果他们都在处于运行态,那就会被加到一个运行队列中 进程A正在运行socket程序 在linux中有句话,万物皆文件,socket对象的读写其实也是创建了文件进行读写 所以阻塞过程为: 1、首先系统会创建一个文件描述符指向一个soc 阅读全文
posted @ 2019-06-11 21:53 hesujian 阅读(842) 评论(0) 推荐(0)
摘要:IO模型 模型就是解决某个问题的套路,IO模型主要是用来解决IO问题的 IO问题:输入输出的问题 例如我需要一个用户名来执行登录操作,问题是用户名需要输入,输入需要耗时,如果输入没有完成, 后续的逻辑代码就无法继续执行,这种默认的处理方式就是阻塞IO模型 网络IO中必经的两个阶段 1、wait_da 阅读全文
posted @ 2019-06-10 16:45 hesujian 阅读(183) 评论(0) 推荐(0)
摘要:线程的几个队列 都是从queue这个模块中导入 1、Queue队列(先进先出的队列) from queue import Queue q = Queue(maxsize=3) # 实例化产生队列对象 # maxsize 设置队列里能容纳的最大的数据个数 q.put("first") q.put("s 阅读全文
posted @ 2019-06-09 20:29 hesujian 阅读(345) 评论(0) 推荐(0)
摘要:GIL锁定义 GIL锁:Global Interpreter Lock 全局解释器 本质上是一把互斥锁 官方解释: 在CPython中,这个全局解释器锁,也称为GIL,是一个互斥锁,防止多个线程在同一时间执行Python字节码, 这个锁是非常重要的,因为CPython的内存管理是非线程安全的,也有很 阅读全文
posted @ 2019-06-05 23:26 hesujian 阅读(272) 评论(0) 推荐(0)
摘要:生产者消费者的问题及其解决办法 问题 在之前的生产者消费者模型中,生产者和消费者只有一个, 那么生产者往队列里put几次,消费者就get几次,但是存在一个问题, 生产者不一定只有一个,消费者也不一定只有一个,那么怎么确定生产者进程结束了, 从而让消费者进程跟着一起结束成为一个问题(不然消费者还是一直 阅读全文
posted @ 2019-06-04 21:01 hesujian 阅读(487) 评论(0) 推荐(0)
摘要:守护进程 1、守护进程的概念 进程指的是一个正在运行的程序,守护进程也是一个普通进程 意思就是一个进程可以守护另一个进程 2、结论 如果a 是 b 的守护进程,那么 b 就是被守护的进程, b要是(代码运行完毕)死 ,a也会跟着死 守护进程在主进程代码运行结束之后就死了 3、使用场景 父进程交给了子 阅读全文
posted @ 2019-06-03 17:23 hesujian 阅读(641) 评论(0) 推荐(0)
摘要:进程和程序的区别 程序 程序就是一堆计算机可以识别的文件,程序在没有被运行时就是躺在硬盘上的一堆二进制 运行程序时,要从硬盘读取数据到内存中,CPU再从内存中读取指令并执行 进程 一旦程序运行就会产生进程 一个程序可以多次执行,产生多个进程,但是进程之间时相互独立的 当我们右键运行一个py文件时,其 阅读全文
posted @ 2019-05-31 15:06 hesujian 阅读(365) 评论(0) 推荐(0)
摘要:UDP介绍 udp协议又称用户数据报协议 在OSI七层模型中,它于TCP共同存在于传输层 仅用于不要求可靠性,不要求分组顺序且数据较小的简单传输,力求速度 UDP结合socket用法 1、创建socket对象 2、收发消息(发消息时需要指定服务器的ip及端口) from socket import 阅读全文
posted @ 2019-05-30 23:10 hesujian 阅读(235) 评论(0) 推荐(0)
摘要:半连接数 1、定义: 三次握手没有完成的称之为半连接数 2、产生半连接的原因: 1)恶意客户端故意不返回第三次握手信息,服务器就处于time_wait状态 洪水攻击用的就是这种原理 2)服务器没有时间处理你的握手请求 3、最大半连接数 在socket语法中listen()函数的括号中指定的就是最大半 阅读全文
posted @ 2019-05-29 23:36 hesujian 阅读(314) 评论(0) 推荐(0)
摘要:socket介绍 1、什么是socket socket是应用层与传输层中间的一个软件抽象层,它是一组接口。它把TCP/IP这些复杂的协议统一封装起来 这样我们只要知道如何使用socket就好,就已经符合了传输层往下的一大串协议 2、为什么要使用socket 如果没有socket而我们写的代码又要让别 阅读全文
posted @ 2019-05-28 16:51 hesujian 阅读(6349) 评论(0) 推荐(1)
摘要:什么是互联网 网:由多个节点相互连接组成 eg:渔网、蜘蛛网 计算机互联网:由多台计算机通过某种介质相互连接而组成 互联网之所以存在就是为了能让信息共享 网络编程 网络编程:指的是编写基于网络的应用程序 学习网络编程的目的:开发出一款可以利用网络来传输数据的应用程序 最终目的是就是要编写一个基于C/ 阅读全文
posted @ 2019-05-27 17:28 hesujian 阅读(685) 评论(0) 推荐(0)