跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 4 层代理、7 层代理的“层”到底指的是什么?
未分類
18 1 月 2021

4 层代理、7 层代理的“层”到底指的是什么?

4 层代理、7 层代理的“层”到底指的是什么?

資深大佬 : zhoudaiyu 8

对网络一直处于懵逼状态,我们说的 Nginx 的 4 层代理通常是 TCP 代理,7 层是 HTTP 层代理,4 层代理就是不管这个数据包是否承载 HTTP 协议数据,只解析到 IP 和端口,然后做转发。而 7 层代理要解析到 HTTP 层,比如 URL 、请求头、请求体等,然后做的还是转发,相当于可以判断如何转发的信息比 4 层的更丰富了。那么假如不需要解析 HTTP 层信息,那是不是可以所有转发都只走 4 层?还有就是一直不太清楚 LVS 到底是 4 层转发还是 3 层?假如我上面说的没问题的话,那 LVS 就是个 4 层代理吧?上次问了这个问题有几个兄弟说是个 3 层代理。

大佬有話說 (22)

  • 資深大佬 : shawshi

    tcp 协议

  • 資深大佬 : bianzhifu

    OSI Model

  • 資深大佬 : chaleaoch

    四层, 带端口都是四层. 没听说过 不带端口的转发.

  • 資深大佬 : doublleft

    OSI

  • 資深大佬 : NSAgold

    OSI 七层模型

  • 資深大佬 : cassyfar

    层的层

  • 資深大佬 : deorth

    哪来的三层代理,三层转发叫路由。
    LVS 有个 DR ( Direct Routing )模式,如字面意思一样,这就是个路由转发

  • 資深大佬 : anubu

    “层”是 OSI 模型中的网络分层,4 层是传输层,7 层是应用层。
    4 层代理更通用些,一些没有域名的场景也可以使用,7 层代理则一般只针对域名进行代理分发。就多个 Web 服务来说,大部分场景,不管用不用 4 层代理,7 层代理都会使用。
    LVS 是一个 4 层代理,有些混淆的原因可能是在 概念>实现>实操 环节没梳理清楚。LVS 的配置工具是 ipvsadm,大部分情况下不会直接使用,而是配合 keepalived 来一起使用的。keepalived 是一个 IP 高可用方案,用来控制 3 层(网络层)数据。这可能是理解混淆的地方。

  • 主 資深大佬 : zhoudaiyu

    @deorth
    @anubu 二位,LVS 到底是哪层的啊

  • 資深大佬 : towser

    层指的是什么?
    指 OSI 参考模型中对网络的分层。

    那么假如不需要解析 HTTP 层信息,那是不是可以所有转发都只走 4 层?
    可以。

    LVS 到底是 4 层转发还是 3 层?
    作为均衡负载器,LVS 有多种模式,可以调度七层、四层、三层流量。如果问 LVS 自身实现,它工作在三层和四层之间。我倾向于认为其工作在三层。

    那 LVS 就是个 4 层代理吧?
    差不多可以这么说,LVS 大部分时候都是作为四层均衡负载器使用。

    上次问了这个问题有几个兄弟说是个 3 层代理
    我想这主要是口头表达上的差异。在 DR 模式下,LVS 需要操作 IP 和 Mac,所以可以说 LVS 是三层代理(准确一点说,是三层「转发」)。

  • 主 資深大佬 : zhoudaiyu

    @towser 大佬,你解答的是目前最详细的,十分感谢!再问个小白的问题 (目前没找到靠谱答案)比如一个 HTTP POST 请求,通常把 payload 放在请求体中,那么是否可以用 TCP 层承载数据呢?

  • 資深大佬 : mansurx

    @zhoudaiyu #11 一般意义上的 HTTP 协议是工作在 TCP 的 80 、443 端口的。它的数据包(包括 http 头部和 payload 部分)本来就是 TCP 负载的一种,自然也就是在 TCP 包的 data 部分。

  • 主 資深大佬 : zhoudaiyu

    @mansurx 谢谢,我好大致明白您的意思了,就是 TCP 上层的协议的全部数据都在 TCP 的 data 里

  • 資深大佬 : NSAgold

    @zhoudaiyu 可以看一下《计算机网络基础》 这门课的教科书在这方面讲的还是比较详细的。
    HTTP 等应用层协议是在底层(运输层等)的基础之上的。
    具体可以参考 OSI 7 层模型 tcp/ip 四层模型 和 五层模型的知识。

  • 資深大佬 : Tyuans

    我是看了看计算机网络的书,然后听了听 b 站的课,基本的都差不多了。

  • 資深大佬 : zw1027

    图解 TCP/IP,图解 HTTP 解君愁

  • 資深大佬 : masker

    建议买一本 图解 TCP/IP 自己啃。

  • 資深大佬 : towser

    @zhoudaiyu

    那么是否可以用 TCP 层承载数据呢
    实际上 HTTP1 和 2 就是用 TCP 承载数据的。HTTP 的所有数据都封装在 TCP 的载荷部分。
    HTTP3 不再使用 TCP 而转向 UDP ( QUIC )。

  • 資深大佬 : learningman

    首先是数据,然后加上 http 头 7 层,加上 TCP 头 4 层,加上 IO 头三层

  • 資深大佬 : ETiV

    https://linuxhint.com/osi_network_layer_analsysis_wireshark/
    https://medium.com/the-cabin-coder/viewing-osi-layers-on-wireshark-a51b77cfbd72

    光靠文字还是太抽象了,你可以去搜一下 Wireshark OSI layers
    配合抓包工具一起理解(当然你也可以自己抓各种其他协议的包去看)

  • 主 資深大佬 : zhoudaiyu

    @zw1027 #16
    @masker #17 感谢,我买了 TCP/IP 详解,但是太难了啃不下去

  • 資深大佬 : julyclyde

    你还是继续读吧
    你这问题根本就是 NULL

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具