计算机网络——应用层之远程终端协议(TELNET)、简单网络管理协议、应用进程跨越网络的通信

一:远程终端协议(TELNET)

TELNET也使用C/S方式。在本地系统运行TELNET客户进程,而在远地主机运行TELNET服务器进程。和FTP的情况相似,服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接

TELNET使用网络虚拟终端NVT格式,这种格式是为了适应许多计算机和操作系统的差异。例如,对于文本中一行的结束,有的系统使用回车(CR),而有得系统使用换行(LF)。

TELNET的工作原理:

  • 客户软件把用户的击键和命令转换成NVT格式,并送交服务器;
  • 服务器软件把收到的数据和命令,从NVT格式转换成远地系统所需的格式;
  • 向用户返回数据时,服务器把远地系统的格式转换为NVT格式;
  • 本地客户再从NVT格式转换到本地系统所需的格式。

二:简单网络管理协议

2.1:网络管理的基本认识

网络管理的基本概念:网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能、服务质量等

网络管理的需求:

  • (1)网络规模快速膨胀,网络节点的大幅度增加、跨地域,这些造成网络需要集中维护。
  • (2)网络复杂性大幅度增加,网络设备种类多、应用种类多、网络协议种类多。
  • (3)网络运行的可靠性要求,通过配置冗余的网络硬件、软件、传输介质等。
  • (4)网络运行可用性的要求,降低网络出故障的时间,减少网络故障的修复时间。
  • (5)网络稳定性的要求,要求提供一个运行平稳、网络性能有保障的网络。
  • (6)降低网络运行维护成本,集中维护模式的采用。
  • (7)网络扩容、规划的需要。

网络管理的根本目标就是为了满足运营者和用户对网络的有效性、可靠性、开放性、综合性、安全性和经济性要求。

网络管理中的主要构件:
在这里插入图片描述

  • (1)网络管理站
    • 网络管理站由图形显示工作站和网络管理应用组成。
    • 图形显示工作站为网络管理应用软件的运行提供存储、计算、通信和显示服务。
    • 网络管理应用主要用来处理大量的数据、对事件进行响应、提供良好的人机接口界面。
  • (2)被管理设备
    • 被管理的设备可以是网络上的任何节点,例如,计算机、打印机、路由器、网络应用等;
    • 被管理的设备通常有一个管理代理在后台运行。
  • (3)管理代理
    • 管理代理向网络管理应用提供被管理设备的信息,同时也可以接收来自网络管理应用的控制信息。
  • (4)网络管理协议
    • 网络管理协议用于网络管理应用和网络管理之间交换信息,定义网络管理信息的结构、数据格式等。
  • (5)网络管理信息
    • 网络管理信息是网络管理应用和网络管理代理之间交换的信息,用于监视和控制被管理的设备。

网络管理的功能:

  • (1)性能管理:用于衡量和呈现网络特性的各个方面
    • 收集网络管理者感兴趣的那些变量的性能数据。
    • 分析这些数据,以判断是否处于正常(基线)水平并产生相应的报告。
    • 为每个重要的变量确定一个合适的性能阈值,超过该阈值就意味着出现了应该注意的网络故障。
  • (2)故障管理:用于检测、记录网络故障并通知给用户,尽可能自动修复网络故障以使网络能有效地运行。
    • 检测被管理对象的差错或接收差错事件报告。
    • 在紧急情况下启用备用资源用于服务。
    • 创建和维护差错日志库并对其进行分析
    • 对故障进行诊断测试、跟踪、识别和定位。
    • 对有故障资源进行更换、修复,或采取其他恢复措施使其重新投入使用。
  • (3)配置管理:用于监视网络和系统的配置信息,以便跟踪和管理不同的软硬件元素对网络操作的作用
    • 网络资源的配置及其活动状态的监视
    • 网络资源之间的关系的监视与控制
    • 加入新资源,删除旧资源,定义新的管理对象
    • 识别管理对象,给每个对象分配名字
    • 初始化对象,启动、关闭对象
    • 管理各个对象之间的关系
    • 改变管理对象的参数
  • (4)计费管理:用于对用户使用网络资源的情况进行记录,并根据预定的计算方法和收费标准来核算用户的通信费用。
    • 统计网络效益数据,以便确定不同时期和不同时段的费率。
    • 根据用户使用的特定业务和计费方式,确定和计算各个用户的费用。
    • 账务管理、分类和稽查功能。
  • (5)安全管理:用于控制对网络资源的访问,以保证网络不被有意或无意地侵害,并保证敏感信息不被那些未授权的用户访问
    • 标识重要的网络资源(包括系统、文件和其他实体)。
    • 确定重要的网络资源和用户集间的映射关系。
    • 监视对重要网络资源的访问。
    • 记录对重要网络资源的非法访问。

2.2:简单网络管理协议(SNMP)

  • 若要管理某个对象,就必然会给该对象添加一些软件或硬件,但这种“添加”必须对原有对象的影响尽量小些。
  • 简单网络管理协议SNMP中的管理程序和代理程序按C/S方式工作。
  • SNMP发布于1988年,IETF在1990年将SNMP定为因特网的正式标准,以后又有了新版本SNMP v2和SNMP v3,因此原来的SNMP又称为SNMP v1 。
  • SNMP最重要的指导思想就是要尽可能简单
  • SNMP的基本功能包括监视网络性能、检测分析网络差错和配置网络设备等。
  • 在网络正常工作时,SNMP可实现统计、配置和测试等功能;当网络出故障时,可实现各种差错检测和恢复功能。
  • 虽然SNMP是在TCP/IP基础上的网络管理协议,但也可扩展到其他类型的网络设备上。

SNMP的工作过程:

  • (1)管理软件和代理软件开始正常运行,网络管理员把要管理的子网或者网元加入到网络管理系统中,网络管理软件根据被管理的设备和链路,描绘出整个网络结构。
  • (2)管理软件定期轮询各网元设备。
  • (3)当无法轮询某个网元设备,就修改网络拓扑图,并发出报警
  • (4)管理软件也接收来自各网元发出的中断事件。
  • (5)管理软件可以根据网管人员的要求,向各网元设备发出查询、参数设备等命令。

在SNMP协议中,get指令用来获取对象信息,set指令用来设置对象属性,trap指令用来实现中断消息的传递。在SNMP协议工作时

  • 代理设备监听UDP端口161进行通信:如果采用轮询方式;
  • 管理工作端监听UDP端口162进行通信:如果采用中断方式。

SNMP v1一共定义了五种协议数据单元类型:
在这里插入图片描述

扫描二维码关注公众号,回复: 14354355 查看本文章

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

大多数操作系统使用系统调用(system call)的机制在应用程序和操作系统之间传递控制权。对程序员来说,每一个系统调用和一般程序设计中的函数调用非常相似,只是系统调用是将控制权传递给了操作系统。
在这里插入图片描述
当某个应用进程启动系统调用时,控制权就从应用进程传递给了系统调用接口。此接口再将控制权传递给计算机的操作系统,而操作系统将此调用转给某个内部过程,并执行所请求的操作。内部过程一旦执行完毕,控制权就又通过系统调用接口返回给应用进程。系统调用接口实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口,即应用编程接口(Application Programming Interface,API)。

目前只有几种可供应用程序使用的TCP/IP应用编程接口

  • Berkeley UNIX 操作系统中定义的一种API,它又称为插口接口(socket interface);
  • 微软公司在其操作系统中采用了插口接口API,形成了一个稍有不同的API,并称之为Windows Socket。

Socket和API之间的区别:

  • Socket是应用进程和网络之间的接口,因为Socket既包含运输层与应用层之间的端口号,又包含机器的IP地址。
  • API是应用程序和操作系统之间的接口。API从程序设计的角度定义了许多标准的系统调用函数。应用进程只要使用标准的系统调用函数就可得到操作系统的服务。

在Socket以上的进程是受应用程序控制的,而在Socket以下的TCP协议软件以及TCP使用的缓存和一些必要的变量等,则是受计算机操作系统的控制。应用程序使用TCP/IP协议进行通信时,必须通过Socket与操作系统交互并请求其服务。应用程序的开发者对Socket以上的应用进程具有完全的控制,但对Socket以下的运输层却只有少量的控制。

主要的系统调用有以下几个:

  • (1)socket()调用:用来创建一个socket,这个调用返回一个整数。
  • (2)bind()调用:指定socket所使用的IP地址和端口号,又称“本地插口地址”。
  • (3)recvfrom()调用:将socket的入队列中的下一个数据报提取出来。
  • (4)sendto()调用:将一个数据报从出队列中取出,并用UDP发送给远地机器的一个进程。远地机器的socket地址是从上面的recvfrom()调用得到的。
  • (5)close()调用:用来关闭一个socket。
  • (6)listen()调用:仅为TCP服务器使用的系统调用,其作用是使已经创建的Socket变成被动Socket,即监听Socket。监听Socket的用处不是和远地Socket建立连接,而只是等待远地客户发出的连接请求。Listen()调用通知操作系统:服务器已做好接受连接的准备。
  • (7)connect()调用:通常是客户进程使用的系统调用,其功能是向远地进程(通常是服务器)请求建立连接。
  • (8)accept()调用:是TCP服务器使用的系统调用,其作用是 从入队列中提取最前面的连接要求 。accept() 调用会创建一个新的 socket ,叫做接受socket;此后,客户将只和这个新创建的接受socket建立连接并通信,而不再和监听socket发生联系。
  • (9)fork()调用:创建一个和自己完全一样的从属进程(或子进程)。
  • (10)read()调用:读取从远地机器通过TCP连接传送到缓存中的数据
  • (11)write()调用:通过TCP连接将数据发送到远地机器的缓存中。

如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔的个人空间

猜你喜欢

转载自blog.csdn.net/tongkongyu/article/details/125153433
今日推荐