当前位置: 首页 > news >正文

考研复习Day 11 | 应用层(下)

一:动态主机配置协议DHCP

1.1 为什么需要DHCP?

问题:IP地址中包含网络号,但计算机第一次使用前不知道它会连到哪个网络,无法在出厂前设置好IP地址。

解决方案DHCP(Dynamic Host Configuration Protocol)

  • 当计算机IP地址发生变化(如进入新网络)时,使用DHCP配置IP地址

  • 实现即插即用联网,不需要人工配置


1.2 DHCP的工作原理

模式:客户-服务器(C/S)

工作流程

步骤报文类型方向说明
1发现报文(广播)客户→服务器主机启动时广播,寻找DHCP服务器
2提供报文服务器→客户服务器提供可分配的IP地址
3请求报文客户→服务器客户从多个服务器中选择一个
4确认报文服务器→客户服务器确认分配

租用期:DHCP分配的地址有租用期限制。接近租用期时,客户会请求更新。

重要端口

角色熟知端口
DHCP客户68
DHCP服务器67

DHCP中继代理:每个网络至少有一个(一般是路由器),做主机与DHCP服务器之间的中转。

日常应用:手机连接新WiFi时,通过DHCP获取新的IP地址。


二:简单网络管理协议SNMP

2.1 网络管理的基本概念

网络管理:对硬件、软件和人力的使用、综合和协调。

网络管理系统的组成

角色说明
管理者运行SNMP客户程序
被管设备主机、路由器、集线器等(运行代理程序
代理程序在管理程序的命令和控制下,在被管设备上采取本地行动
SNMP网络管理采用的协议

基本原理:要管理某个对象,必然要添加软件或硬件,但这种影响应尽量小。SNMP最重要的思想是尽量简单


2.2 SNMP的三个组成部分

组成部分全称功能
SNMP本身简单网络管理协议定义管理站和代理间交换的分组格式,包含变量名和状态值
SMI管理信息结构定义通用规则:如何命名、定义类型、编码
MIB管理信息库被管实体中创建命名对象

2.3 管理信息结构SMI

SMI的三个功能

  1. 被管对象怎样命名

  2. 被管对象的数据类型有哪些

  3. 网络上传送的管理数据如何编码

被管对象的命名:所有被管对象的名字都在一棵对象命名树上(类似URL的命名方式)。

数据类型

大类具体类型说明
简单类型Integer32等基本数据类型
结构化类型sequence类似结构体
sequence of类似数组

抽象语法记法:只描述数据的结构形式,不考虑具体编码格式和内存存放方式。

编码方法(BER)

使用基本编码规则(BER),将所有数据元素组织为T-L-V三字段序列:

字段含义
T(Type)定义数据类型
L(Length)定义V字段的长度
V(Value)定义数据的值

2.4 管理信息库MIB

MIB:被管对象的集合。被管对象必须维持供管理程序读写的控制和状态信息,这些对象构成虚拟的信息存储器。

:只有MIB中的对象才是SNMP可以管理的。


2.5 SNMP的协议数据单元和报文

SNMP的两种基本管理功能

操作报文类型用途
读操作Get检测被管对象的状况
写操作Set改变被管对象的状况

运输协议:SNMP使用无连接的UDP

SNMP实现管理功能的两种方式

方式说明
探询操作定期向被管设备发送探询信息,了解其状况
陷阱(Trap)被管对象代理检测到严重异常事件时,主动向管理者发送报告

三:应用进程跨越网络的通信

3.1 系统调用和应用编程接口

系统调用接口:应用进程控制权和操作系统控制权进行转换的接口,又称API(Application Programming Interface)

API的作用

  • TCP/IP协议软件驻留在操作系统

  • 套接字接口(Socket):供应用程序使用TCP/IP服务的API

  • 套接字是应用进程和运输层协议之间的接口

理解:套接字是一套API接口,应用进程通过它来使用位于操作系统内核的TCP/IP服务。


3.2 套接字描述符

创建套接字的过程

应用进程请求创建套接字

操作系统分配资源(存储器、CPU时间、网络带宽等)

操作系统返回套接字描述符(代表这些资源的总和)

应用进程的所有网络操作都使用这个描述符

通信完毕后,系统回收所有资源

套接字描述符:套接字接口中的第一个参数,代表分配给该套接字的所有系统资源。

套接字的数据结构

套接字数据构包含:
- 协议族(PF_INET = TCP/IP协议族)
- 服务类型(SOCK_STREAM = TCP服务)
- 本地IP地址、本地端口
- 远地IP地址、远地端口

3.3 几种常用的系统调用(以TCP服务为例)

并发方式工作模式:一个服务器同时处理多个连接。

各阶段系统调用

阶段系统调用说明
连接建立bind服务器端指明套接字的本地端口号和IP地址(客户端可选)
listen服务器将套接字设为被动模式(UDP不用)
accept服务器为远地客户分配从属服务器进程和新套接字
connect客户端向服务器发出连接请求(需指明远地IP和端口)
数据传送send传送数据(需指明:套接字描述符、数据地址、数据长度)
recv接收数据(需指明:套接字描述符、缓存地址、缓存空间长度)
连接释放close释放连接、撤销套接字

四:P2P应用

P2P体系结构特点:没有固定的服务器,绝大多数交互都使用对等方式

现状:P2P文件共享占据了互联网流量中最大的份额,比万维网所占比例大得多。


4.1 具有集中目录服务器的P2P工作方式(第一代)

工作流程

  1. 用户向集中目录服务器询问资源地址

  2. 从存储资源的计算机直接下载


4.2 具有全分布式结构的P2P文件共享程序(BT)

BT(BitTorrent)的关键技术

技术说明
“最稀有的优先”尽快把最稀有的文件块收集到
“洪流”参与某个文件分发的所有对等方构成的集合
“追踪器”每个洪流都有一个追踪器,对等方加入时需登记

激励机制:优先向以最高数据率传送文件块的相邻对等方传送所请求的文件块,使对等方彼此都能以较高的速率交换文件块。


4.3 P2P文件分发分析

结论:当对等方的数量很大时,采用P2P下载文件比传统的客户-服务器模型快很多


4.4 在P2P对等方中搜索对象

分布式散列表(DHT)

一种分布式数据库,仅包含两部分信息:

  • 关键字:资源名

  • :存放对象的节点的IP地址

问题:资源名保存在哪台主机中?

解决方案:基于DHT的算法(如Chord算法

Chord算法工作原理

步骤说明
1散列函数将资源名映射为均匀分布的数字(标识符),放到Chord环上
2保存资源名的主机也通过散列函数映射为标识符,放到Chord环上(结点)
3每个资源名保存到Chord环上离它最近的结点所对应的主机中

理解:结点数目远少于资源名数目。


五:思考

1. DHCP ≈ 酒店前台

入住(连接网络)时,前台(DHCP服务器)给你分配一个房间号(IP地址),退房(断开连接)时回收。续住(租用期更新)需要到前台确认。

2. SNMP ≈ 服务器监控系统

管理者定期“体检”(探询),被管设备出问题时主动“报警”(Trap)。就像你用top命令看服务器状态,配置告警规则。

3. 套接字 ≈ 文件描述符

Linux中“一切皆文件”,网络连接也被抽象成文件描述符。socket()返回的描述符和open()返回的文件描述符本质上是同一套机制。


六:今日小结

今天学习了应用层的补充知识和P2P应用:

主题核心内容
DHCP自动分配IP、租用期、中继代理、端口68/67
SNMP网络管理三部分(SNMP+SMI+MIB)、Get/Set、UDP
套接字API接口、描述符、系统调用(bind/listen/accept/connect/send/recv/close)
P2P无服务器(某种意义上)、BT算法、DHT、Chord环

注:以上内容参考计算机网络(第8版),谢希仁 编著。其中有一些个人理解,仅供参考。如有错误,希望各位大佬指正,感谢!


七:明日计划

网络安全(注:因自己报考的学校考试大纲有要求,若各位不做相关要求,可跳过)

http://www.cnnetsun.cn/news/1906291.html

相关文章:

  • STC8H新手避坑指南:GPIO模式选错导致的5个常见硬件问题
  • 3分钟快速上手:用pdfdir为你的PDF添加智能导航书签
  • 在Ubuntu中怎么修改自己的用户名
  • 西门子S7-1500PLC与V90 PN伺服8轴协同控制中的编码器实时监控与容错设计
  • STC AiCube-ISP图形化工具实战:基于DMA的互补SPWM波形自动生成与优化
  • 从CLI到云端:Kiro AI Agent在Windows/WSL下的自动化运维实战
  • 开源电子签名:如何用OpenSign在5分钟内完成专业文档签署
  • 比chmod更灵活!Ubuntu下setfacl的7个高阶用法(附真实案例)
  • 告别Windows系统管理烦恼:WinUtil一站式解决方案指南
  • 深度探索ChemBERTa:构建面向化学领域的智能Transformer模型
  • 5分钟快速上手B站视频下载神器:免费下载B站视频的终极指南
  • TestDisk数据恢复完整教程:从分区丢失到文件拯救的终极指南
  • 算法竞赛c++.新人每日一练.贪心算法(P1106删数问题 洛谷)
  • 终极黑苹果休眠问题解决方案:Hackintosh项目完整指南
  • 信创实践录——Vastbase G100数据库容器化部署全攻略
  • 极域电子教室终极破解指南:如何用JiYuTrainer实现自主学习与教学平衡
  • 从7V到28V宽压输入,手把手教你用MPS1584设计一个5V/3A的DCDC电源模块(附原理图详解)
  • RINEX观测值文件处理避坑指南:从文件头异常到数据块溢出的解决方案
  • 李慕婉-仙逆-造相Z-Turbo 从提示词到精美图片:深度解析提示词工程核心技巧
  • 免费获取百度文库文档的简单高效方案
  • 解决游戏资源逆向工程难题的QuickBMS深度解析
  • Memtest86+终极实战指南:从内存故障排查到系统稳定性优化
  • Windows平台APK安装终极指南:快速批量处理Android应用的完整方案
  • A-29P AI 降噪回音消除模块详解:高性能 DSP 语音处理方案全解析
  • UVM实战:为什么uvm_tlm_analysis_fifo不用phase机制也能跑?(附源码解析)
  • 从DETR到Co-DETR:一文读懂目标检测中的标签分配演进史
  • 【中断机制】硬中断与软中断:原理、区别及实战应用
  • 科哥版Z-Image-Turbo使用手册:WebUI界面功能详解与实操
  • LightGBM/XGBoost模型预处理:为什么你可以跳过归一化这一步?
  • 10秒复刻生产级环境:VMware Workstation克隆与快照终极工作流