BOOTP协议 / BOOTP Protocol 目录 基本理论 BOOTP 与 DHCP 通信流程 数据报文格式 报文加解码实现 1. 基本理论 / Basic Theory BOOTP(Bootstrap Protocol)是一种引导协议,基于RFC951协议,基于UDP协议,也称为自举协议,是DHCP协议的前身.BOOTP用于无盘工作站(类似网吧无盘结构)的局域网中,可以让无盘工作站从一个中心服务器上获得IP地址.通过BOOTP协议可以为局域网中的无盘工作站分配动态IP地址,这样就不需要管…
FTP协议 / FTP Protocol FTP全称为File Transfer Protocol(文件传输协议),常用于Internet上控制文件的双向传输,常用的操作有上传和下载.基于TCP/IP,基于RFC959通信协议. 0 FTP理论 / FTP Theory 详细的理论可以参考这里. 1 FTP结构 / FTP Structure FTP如同其他的很多通讯协议,FTP通讯协议也采用客户机 / 服务器(Client / Server)架构.用户可以通过各种不同的FTP客户端程序,借助F…
DHCP协议 / DHCP Protocol 目录 DHCP 基本理论 DHCP 通信流程 DHCP 完整报文 DHCP 的 Optional 字段 DHCP 的报文类型 1 DHCP 基本理论 DHCP (Dynamic Host Configuration Protocol, 动态主机配置协议) 是一种局域网的网络协议,使用UDP协议进行工作,主要有两个用途,在RFC 2131中有详细的描述, 1. 给内部网络或网络服务供应商自动分配IP地址; 2. 给用户或者内部网络管理员作为对所有计算机…
TFTP 的基本理论 目录 通信流程 数据报文格式 传输终结 异常处理 数据丢失和超时 TFTP(Trivial File Transfer Protocol,简单文件传输协议)是UDP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂.开销不大的文件传输服务.端口号为69,基于RFC1350协议. 1 通信流程 / Communication Flow TFTP协议主要基于UDP进行,传输过程主要如下: 客户端从服务器下载:                       客…
BOOTP实现 / BOOTP Implement 目录 BOOTP 的服务器建立过程 BOOTP 的客户端建立过程 Note: 理论部分请参考文末相关阅读链接 1 BOOTP 的服务器建立过程 服务器建立步骤主要有: (1)      设定服务器IP,传送ip(offer_ip),服务端口68,客户端口67; (2)      建立send_socket/UDP,广播模式允许复用,绑定到服务器ip,客户端端口; (3)      建立主循环,建立recv_socket进行监听广播地址和客户端口…
Modbus协议 / Modbus Protocol 目录 Modbus 协议简介 Modbus RTU协议 Modbus TCP协议与 Python 实现 Modbus 功能码 Modbus TCP/RTU对比 1 Modbus 协议简介 Modbus协议MODICON公司1979年开发的一种通信协议,是一种工业现场总线协议标准,1996年施耐德公司推出了基于以太网TCP/IP的Modbus协议—ModbusTCP. Modbus协议是一项应用层报文传输协议,包括ASCII / RTU / T…
使用 ftplib 建立 FTP 客户端 用于建立FTP Client,与 pyftplib 建立的 Server 进行通信. 快速导航 1. 模块信息 2. 建立 FTP 客户端 1. 模块信息 1.1 常量 / Constants FTP_PORT = 21 标准的FTP协议服务端端口 1.2 类 / Class 1.2.1 FTP()类 ftp = FTP() 无需参数传入直接生成FTP的客户端实例 1.2.1.1 connect()方法 函数调用: ftp.connect(address…
DHCP实现 / DHCP Implement 目录 DHCP 服务器建立过程 DHCP 报文加码实现过程 下面介绍建立一个简单的DHCP服务器,主要用于对基本的DHCP请求进行响应,目前只提供一个IP为客户端使用,实现最基本的通信示例.理论内容可参考 DHCP 理论部分. 1 DHCP 服务器建立过程 首先是基本服务器的建立,这个服务器实现了最基本的对DISCOVER和REQUEST报文的响应,在验证时会对魔术字进行验证,此处未对BOOTP进行处理,验证通过后会对Options字段进行验证,此…
使用 pyftplib 建立 FTP 服务器 pyftplib 主要用于建立 FTP Server,与 ftplib 建立的 Client 进行通信. 快速导航 1. 模块信息 2. 建立 FTP 服务器 1 模块信息 1.1 servers模块 用于建立服务器 1.1.1 FTPServer()类 类实例化:ftpServer = FTPServer(address, handler) 类的功能: 用于建立服务器 传入参数: address, handler address: tuple类型,…
本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道.FIFO.消息队列) 同步(互斥量.条件变量.读写锁.文件和写记录锁.信号量) 共享内存(匿名的和具名的) 远程过程调用(Solaris门和Sun RPC) 但这些都不是本文的主题!我们要讨论的是网络中进程之间如何通信?首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的.其实TCP/IP协议族已经帮我们解决了这个问题,网络层的"ip地址&quo…