【网络基础系列二】BOOTP、DHCP协议
BOOTP
含义:BOOT Protocol,引导协议
作用:引导无盘计算机或者第一次启动的计算机获取以下网络配置信息:
- 主机的IP地址、子网掩码
- 路由器(网关)的IP地址
- DNS服务器IP地址
C/S协议:
- Client:UDP 68端口
- Server:UDP 67端口
静态配置协议:
含义:BOOTP Server上预设了BOOTP Client的物理地址与IP地址的绑定。
注意:“静态”的含义并非是指获取方式的静态性,而是指BOOTP Client的物理地址和IP地址的绑定关系是初始化的时候就人为地配置在BOOTP Server中,后期不再改变。
BOOTP操作
1、BOOTP使用UDP,BOOTP服务器启动后一直处于被动响应状态,等待接受客户请求;
2、客户端从68端口发送UDP请求,服务器一直处于监听状态,当监听到有请求传过来时将请求从67端口接收;
3、服务器响应请求:服务器仍然从67端口发送相应报文给客户,客户也从发送端口68处接收该回应报文。
红色边框内是BOOTP封装,外层灰色是UDP封装,SP为源地址,而DA为目的地址。
上图中,BOOTP封装的SP是端口号68,目的地址是端口号67;而UDP封装的源地址是全0,因为使用BOOTP协议的主要目的就是为了获取本机的IP地址等信息,关键在于客户并不知道本机地址,因而使用全0表示,目的地址使用全1,表明该客户也不清楚BOOTP服务器在哪里,因而选用广播方式进行转发,全1表示的是广播地址。
下图中,BOOTP封装的SP是端口号67,目的地址是端口号68,与请求报文对应的源地址和目的地址恰好相反;而UDP封装的源地址是就是该服务器所在的IP地址,目的地址可以使用目标客户的地址也可以使用全1进行广播,所谓条条大路通罗马,最终实现的效果是一样的。
DHCP
含义:Dynamic Host Configuration Protocol,动态主机配置协议,RFC 2131
作用:
- BOOTP的扩充和增强,与BOOTP向后兼容
- 在有限期间内提供临时的静态的或动态配置
- 静态数据库:人工配置好的物理地址和IP地址的绑定,存放在静态的数据库中
- IP地址池:其余可用的待分配的IP地址存放在IP地址池中
【网络基础系列二】BOOTP、DHCP协议的更多相关文章
- Android网络编程系列 一 TCP/IP协议族
在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...
- 【C++自我精讲】基础系列二 const
[C++自我精讲]基础系列二 const 0 前言 分三部分:const用法.const和#define比较.const作用. 1 const用法 const常量:const可以用来定义常量,不可改变 ...
- 网络基础和 TCP、IP 协议
1.网络基本概念 1.1 什么是网络:一些网络设备按照一定的通讯规则(网络协议)进行通讯的系统. 1.2 VPN(虚拟私有网络)加密,相当于专线,从分支机构到总部. 1.3 资源共享的功能和特点: 数 ...
- 异常处理与网络基础中的tcp,udp协议
# 异常处理: # 什么是异常?异常和错误的区别 # Error 语法错误 比较明显的错误 在编译代码阶段就能检测出来 # Iteration 异常 在执行代码的过程中引发的异常 # 异常发生之后的效 ...
- 网络基础之 tcp/ip五层协议 socket
1 网络通信协议(互联网协议) 1.1 互联网的本质就是一系列的网络协议 1.2 osi七层协议 1.3 tcp/ip五层模型讲解 1.3.1 物理层 1.3.2 数据链路层 1.3.3 网络层 1. ...
- keystone系列二:HTTP协议
一 为何要学习HTTP协议 http协议就是通信的双方共同遵守的标准,就好比要合伙办事的两家公司签署的合同. openstack中各组件是基于restful api通信的,restful api可以单 ...
- Java基础系列二:Java泛型
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.泛型概述 1.定 ...
- 【网络知识之二】HTTP协议
HTTP协议(Hypertext Transfer Protocol,超文本传输协议),一种无状态的.应用层的.以请求/应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的超文本信息系 ...
- 网络编程(二)--TCP协议、基于tcp协议的套接字socket
一.TCP协议(Transmission Control Protocol 传输控制协议) 1.可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会 ...
随机推荐
- AC日记——联合权值 洛谷 P1351
题目描述 无向连通图G 有n 个点,n - 1 条边.点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 .图上两点( u , v ) 的距离定义为u 点到v 点的最短距离. ...
- AC日记——[USACO11DEC]牧草种植Grass Planting 洛谷 P3038
题目描述 Farmer John has N barren pastures (2 <= N <= 100,000) connected by N-1 bidirectional road ...
- js-触屏滑动判断滑动方向(移动版)
var startx, starty; //获得角度 function getAngle(angx, angy) { return Math.atan2(angy, angx) * 180 / ...
- UVA - 10615 Rooks
建一下模,把行和列看成二分图的点,把车看成是二分图中的边,这样就变成了上一个博客的问题. 我们每次新加一条边,就把它加入一条 这条边两端点最小没有出现的颜色 交替出现的路径中去. #include& ...
- 补充==的使用和equals的区别
字节码的比较 Class 相等与否使用“==” 进行比较,形如 if (adapter == IContentOutlinePage.class) 进行比较,因为字节码在JVM中只有一份,地 ...
- Ubuntu 16.04下使用Wine安装Windows版的微信(不太完美)
说明: 真的不太完美,别试了:除了需要安装额外的输入法之后,无法上传图片和间接性的BUG出现等等问题. 建议安装网页版的微信:http://www.cnblogs.com/EasonJim/p/711 ...
- javascript --- 移除DOM节点
在IE中移除容器类节点,会引起内存泄露,最好是创建一个新的节点,比如div,然后将要删除的节点放入这个div中,再将div的innerHTML清空.其它的直接removeChild就可以了. var ...
- nginx学习(二)——基础概念之异步非阻塞
上面讲了很多关于nginx的进程模型,接下来,我们来看看nginx是如何处理事件的. 有人可能要问了,nginx采用多worker的方式来处理请求,每个worker里面只有一个主线程,那能够处理的并发 ...
- JavaScript 推断浏览器类型及32位64位
JS推断出版本号以及浏览器类型 <script type="text/javascript"> var Sys = {}; var ua = navigator.use ...
- [ACM] hdu 1217 Arbitrage (bellman_ford最短路,推断是否有正权回路或Floyed)
Arbitrage Problem Description Arbitrage is the use of discrepancies in currency exchange rates to tr ...