应用程序如何知道要使用哪种OSI协议?

时间:2011-05-08 11:39:49

标签: networking tcp network-protocols osi

我想了解当我们在浏览器和OSI模型中输入“google.com”时会发生什么。什么所有协议在每个图层中都会出现,他们如何知道使用哪一个?

  1. 另外我想知道,在传输层中使用哪一个TCP / UDP是针对网络/应用决定的?这对于像google.com这样的普通网页必须使用TCP,但对于视频流UDP。这是如何传达给网络的?

  2. 浏览器是否也是其中的一部分,因为它有所帮助。它应该也属于应用层吗?

  3. Http属于OSI模型的应用层。现在对于这个特定的例子,Presentation和Session层下面会有什么?会话是在会话层维护还是HTTP代表他们这样做?

2 个答案:

答案 0 :(得分:2)

听起来你想要一个关于TCP / IP的教程。我可以建议a couple of good books

URLs in webpages有一个前缀,告诉应用程序如何处理该链接。例如,ftp://打开一个ftp会话,它使用tcp(ref RFC 959 - File Transfer Protocol)。作为一般规则,URL前缀对应于通过RFC指定的标准化协议。 RFC表示使用哪种传输协议。

修改

如果是youtube,他们的视频会有http://网址前缀,但在您提出请求后,会将其重定向到rtsp:// URL。 RTSP可以是streamed over UDP

要回答这样的问题,您可能会发现wireshark对调查这些事情非常有用...请记住,wireshark最适合有线连接。

答案 1 :(得分:0)

应用程序不使用OSI协议栈的任何层。他们使用来自 TCP / IP 堆栈的TCP或UDP,并且他们“知道哪个”因为它们被编程为使用其中一个或两个。 OSI模型已过时,当然不适用于TCP / IP。

编辑: OSI层模型是TCP / IP不适合的Procrustean床。你应该立即忘记OSI。它没有描述现实世界中的任何东西。