计算机网络——应用层(4)DHCP和套接字编程

一、动态主机配置协议DHCP

1、关于协议配置:

  • 在协议软件中,给协议参数赋值的动作就叫协议配置
  • 一个协议软件在使用前必须已被正确配置,具体的配置信息取决于协议栈
  • 连接到互联网的计算机的协议软件需要正确配置的参数包括①IP地址;②子网掩码;③默认路由器的IP地址;④域名服务器的IP地址

2、DHCP

提供了即插即用连网机制:允许一台计算机加入网络获取IP地址而不用手工配置。它给运行服务器软件、且位置固定的计算机指派一个永久地址,给运行客户端的计算机分配一个临时地址。

3、DHCP的客户服务器方式

  • 需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文,这时该主机就成为HDCP客户。
  • 本地网络上所有主机都能收到此广播报文,但只有DHCP才能回答
  • DHCP服务器先在其数据库中查找该计算机的配置信息,找到的返回,找不到则从服务器的IP地址池中取一个地址分配给该计算机。回答报文叫提供报文

4、DHCP工作方式

  • 使用呵护服务器方式,采用请求/应答方式工作
  • 基于UDP,DHCP服务器在67号端口,HDCP客户端在68号端口

5、中继代理

并不是每个网络上都需要DHCP服务器,会导致服务器数量过多,若没有DHCP服务器,则每个网络至少有一个DHCP中继代理,它配置了DHCP服务器的IP地址信息

DHCP中继代理收到主机广播发送的发现报文后就以单播方式向DHCP服务器准发此报文,等待其回答。收到提供报文后中继代理将其发给主机。

6、租用期

  • DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限的时间内使用这个分配到的IP地址,这段时间就是租用期。
  • 租用期的数值应由DHCP服务器自己决定
  • DHCP客户可在自己发送的报文中提出对租用期的要求

二、套接字编程

1、什么是Socket:

又称为套接字,应用程序通常通过套接字向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

在python中可以用socket()函数来创建套接字

2、套接字编程和UDP

UDP:在客户端和服务器之间没有连接

  • 没有握手
  • 发送端在每一个报文中明确指定目标的IP地址和端口号
  • 服务器必须从收到的分组中提取出发送端的IP地址和端口号

UDP套接字编程的概念是基于Socket套接字技术,通过创建UDP套接字来实现网络通信。UDP套接字编程的实现方法包括以下步骤:

  • 创建UDP套接字:使用socket库的socket()函数创建一个UDP套接字。
  • 绑定套接字:使用bind()函数将套接字绑定到指定的IP地址和端口号。
  • 接收数据:使用recvfrom()函数从套接字接收数据。
  • 发送数据:使用sendto()函数将数据发送到指定的目标地址。

3、套接字编程TCP

TCP套接字编程的概念是基于Socket套接字技术,通过创建TCP套接字来实现网络通信。TCP套接字编程的实现方法包括以下步骤:

  • 创建TCP套接字:使用socket库的socket()函数创建一个TCP套接字。
  • 绑定套接字:使用bind()函数将套接字绑定到指定的IP地址和端口号。
  • 监听连接:使用listen()函数开始监听连接请求。
  • 接受连接:使用accept()函数接受客户端的连接请求。
  • 接收数据:使用recv()函数从套接字接收数据。
  • 发送数据:使用send()函数将数据发送到连接的客户端。

上一篇:相关滤波跟踪算法-MOSSE、KCF


下一篇:oracle docker安装