【问题标题】:tcp/ip application layer confusion in receiving data packetstcp/ip应用层接收数据包混淆
【发布时间】:2016-03-01 18:25:56
【问题描述】:

在传统模型中,当应用层 想要获取消息数据,需要经过两个缓冲区和 普通的 TCP/IP 协议栈。在里面,软件中断是 负责接收来自第一个接收者的消息 队列,然后将它们复制到MSGBuff;在最终应用层 通过系统调用将消息数据读取到用户应用空间。

请看图示。我是网络编程的新手 :( 据我所知,TCP/IP 协议栈也有一个应用层。那么引用(第 1 行)中提到的应用层和 TCP/IP 协议中的应用层有什么区别堆栈?

【问题讨论】:

    标签: networking tcp-ip


    【解决方案1】:

    根据我从您的问题中推断出的内容: 传输层缓冲区不同于应用层缓冲区。传输层 [非 UDP] 缓冲区用于重传丢失的数据包,或用于拥塞控制机制。如果一个数据包通过 TCP 交给 IP 层,除非收到正确的 ACK,否则不会从缓冲区中删除;但是Application layer buffer假设Transport layer负责可靠的传输数据,当App把数据交给TCP时,数据就可以从application buffer中取出来了。所以我们需要不同的缓冲区。

    【讨论】:

      【解决方案2】:

      在计算机网络的世界中,当涉及到应用程序时,有两种截然不同的概念。

      首先是您正在编写的应用程序(作为网络程序员)。这可能是网络浏览器(或其他)

      然后是应用层。这可以是 http、ftp、ssl。

      例如,当您使用 Google Chrome 时,您的应用程序是 Chrome,并且正在使用的应用程序层是 http

      另一个例子,假设你想写一个程序,我们称之为:awesomeAPP。在这个程序中,您想使用 ssl 连接到客户端。在这个场景中,awesomeAPP 是应用程序,在应用程序层中您使用的是 ssl

      我只能想象,作者在第一行的意思是应用程序,而不是应用程序层

      【讨论】:

      • “有两个非常不同的概念”。通常,应用程序层是在应用程序中实现的。而且“SSL”不是应用层协议。
      • 是的,没错。但我要说的是根据 OSI 模型应该是什么
      猜你喜欢
      • 1970-01-01
      • 2011-09-13
      • 2012-08-09
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 2012-09-27
      • 1970-01-01
      • 2013-06-20
      相关资源
      最近更新 更多