在传统模型中,当应用层时 想要获取消息数据,需要经过两个缓冲区和 正常的TCP / IP协议栈。在里面,软件中断是 负责接收来自第一个接收的消息 队列,然后将它们复制到MSGBuff;在最后的应用层 通过系统调用将消息数据读取到用户应用程序空间。
请参阅图中的插图。我是网络编程的新手:(据我所知,TCP / IP协议栈也有一个应用层。那么引用(第1行)中提到的应用层与TCP / IP协议中的应用层有什么区别?堆栈?
答案 0 :(得分:0)
根据我从您的问题中推断出的内容: 传输层缓冲区与应用层缓冲区不同。传输层[非UDP]缓冲区用于重传丢失的数据包,或用于拥塞控制机制。如果数据包通过TCP传递到IP层,则不会从缓冲区中删除,除非收到正确的ACK;但是应用层缓冲区假设传输层负责可靠地传输数据,并且当数据通过App传递给TCP时,可以从应用缓冲区中删除数据。所以我们需要不同的缓冲区。
答案 1 :(得分:0)
在计算机网络领域,当涉及到应用程序时,有两种截然不同的概念。
首先是您正在编写的应用程序(作为网络程序员)。这可以是Web浏览器(或其他)
然后是应用层。这可能是http,ftp,ssl。
例如,当您使用谷歌浏览器时,您的应用程序是Chrome,正在使用的应用程序层是http
另一个例子,假设您要编写程序,我们可以调用它:awesomeAPP。在此程序中,您希望使用ssl连接到客户端。在这个senario中,awesomeAPP是应用程序,在应用程序层中你正在使用ssl
我只能想象,第1行中作者的意思是应用程序,而不是应用程序层