IP应用层是如何实现的?

时间:2018-02-12 22:52:24

标签: ip protocols

我正在努力简单地描述IP应用层实际上是什么“是”。我的一些术语可能“不太正确”,所以我很高兴我的术语也得到纠正。应用层是“事物”吗?或者它比那更具“概念性”? Application层是否仅在特定节点上是应用程序需要遵守的协议集合(如FTP,POP3,HTTP)才能与其他远程应用程序成功通信?

相反,如果我编写的程序不严格符合应用程序协议(比如说FTP),那么本地“应用程序层”中没有任何东西可以“停止”我使用无效通知远程端的尝试命令?然而,如果远程端确实符合应用程序协议,那么它将拒绝或忽略我的无效通信尝试?

或者再一次,我可以定义自己的协议(没必要,因为我猜所有场景已经被覆盖),只要我的协议“健壮且一致”,我就可以用它在两个远程应用程序之间进行通信工作?或者,Application层是一个与协议分开的“东西”吗?

2 个答案:

答案 0 :(得分:0)

应用程序层是应用程序内部的所有内容 - 也就是说,不在IP堆栈中(覆盖网络和传输层)。

如果您希望应用程序与FTP服务器通信,则需要能够使用FTP才能工作。如果您编写自己的客户端 - 服务器协议,则可以执行任何操作。

网络层可以让您的生活更轻松,并使应用程序相互兼容。你可以使用或不使用你认为合适的任何东西。

答案 1 :(得分:0)

“应用程序需要与远程系统上的其他应用程序通信。任何通信都可以被认为是两个合作伙伴之间的消息和数据交换。存在为应用程序定义的规则(协议):可用的命令,可在合作伙伴之间交换的顺序以及对交换的数据的任何限制。例如:与HTTP服务器的通信使用命令:GET,POST和PUT(以及其他),而与SMTP(邮件)服务器的通信使用:MAIL,RCPT和DATA,对于其他协议也是如此。根据通信的性质,存在不同的协议,例如,短信转移,文件传输或视频流。任何伙伴发送的不遵守这些协议规则的任何命令都是:未被远程应用程序传递,忽略或拒绝。没有任何东西禁止应用程序合作伙伴使用他们的“自己的”通信协议 - 例如Skype开发使用自己的协议。但是,有一些标准协议可以处理最可能的通信需求,因此可能不需要开发新协议。如果应用程序使用“私有”协议,则其通信将仅限于支持相同私有协议的远程应用程序。除了协议之外,在实际的现实世界系统中还有编程库(编程接口),它使最终用户应用程序能够请求和参与这种通信。最终用户应用程序负责与(本地编程)接口交互(发送和接收数据和参数),并且通信系统负责处理这些请求并传递数据。简单来说,一个数据传输在一个应用程序开始,另一个数据传输结束。但是,IP提供了用于设置连接的其他应用程序,例如DNS,但这些应用程序的操作在最终用户应用程序级别不可见。总之,最终用户应用程序可用和使用的协议集合和编程接口是系统上的应用程序层。“