计算机网络——应用层(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()函数将数据发送到连接的客户端。
相关推荐
车载诊断技术6 分钟前
电子电气架构 --- 什么是EPS?
网络·人工智能·安全·架构·汽车·需求分析
KevinRay_10 分钟前
Python超能力:高级技巧让你的代码飞起来
网络·人工智能·python·lambda表达式·列表推导式·python高级技巧
lfwendula040 分钟前
组相联映射 set-associative mapping
计算机网络
2301_819287121 小时前
ce第六次作业
linux·运维·服务器·网络
CIb0la1 小时前
GitLab 停止为中国区用户提供 GitLab.com 账号服务
运维·网络·程序人生
武汉联从信息1 小时前
如何使用linux日志管理工具来管理oracle osb服务器日志文件?
linux·运维·服务器
天天进步20151 小时前
STUN服务器实现NAT穿透
运维·服务器
月如琉璃1 小时前
1.gitlab 服务器搭建流程
服务器·gitlab
Black_mario2 小时前
链原生 Web3 AI 网络 Chainbase 推出 AVS 主网, 拓展 EigenLayer AVS 应用场景
网络·人工智能·web3
Kika写代码2 小时前
【微信小程序】页面跳转基础 | 我的咖啡店-综合实训
服务器·微信小程序·小程序