• 火车日记
    2019-06-07
    1 二层转发:设备工作在链路层,帧在经过交换机设备时,检查帧的头部信息,拿到目标mac地址,进行本地转发和广播
    2 三层路由:设备工作在ip层,报文经过有路由功能的设备时,设备分析报文中的头部信息,拿到ip地址,根据网段范围,进行本地转发或选择下一个网关
    3 dns,网络请求的第一步是域名解析,所以工作在应用层
    4 cdn,应用层

    作者回复: ✔️

    
     49
  • 壹笙☞漂泊
    2019-06-10
    课后题
    1、二层转发:二层应该指数据链路层,工作在二层的设备,通过查找到目标MAC地址,进行数据转发
       三层路由:三层应该指网络层,工作在三层的设备,通过解析数据包头信息,找到目标IP地址,转发数据
    2、DNS处于应用层
    3、CDN处于应用层

    总结:
    1、TCP/IP协议是一个“有层次的协议栈”
    TCP/IP
    2、TCP/IP协议总共有四层,顺序从下往上 链接层->网际层->传输层->应用层
    3、链接层 link layer ,负责在底层网络上发送原始数据包,使用MAC地址来标记网络上的设备,所以也叫MAC层
    4、网际层 internet layer,IP协议所在层,在链接层的基础上,用IP地址取代MAC地址,把许多局域/广域网连接成虚拟的巨大网络,在这个网络里找设备时只要把IP地址再翻译成MAC地址就可以
    5、传输层 transport layer,TCP、UDP协议所在层,这个层次协议的职责是保证数据在IP地址标记的两点之间可靠地传输。
    6、TCP和UDP区别:
        TCP 有状态 需要先建立连接才能发送数据 保证数据不丢失不重复 数据是连续的字节流,有先后顺序
        UDP 无状态 不需要先建立连接也可以发送数据 不保证数据一定会发送到对方 数据是分散的小数据包,顺序发、乱序收
    7、应用层 application layer,Telnet、SSH、FTP、SMTP、HTTP
    8、MAC层的传输单位是帧(frame),IP层的传输单位是包(packet),TCP层的传输单位是段(segment),HTTP的传输单位是消息或报文(message)。统称为数据包
    9、OSI网络分层模型
        1.第一层:物理层,网络的物理形式,例如电缆、光纤、网卡、集线器等等;
        2.第二层:数据链路层,它基本相当于TCP/IP的链接层;
        3.第三层:网络层,相当于TCP/IP里的网际层;
        4.第四层:传输层,相当于TCP/IP里的传输层;
        5.第五层:会话层,维护网络中的连接状态,即保持会话和同步;
        6.第六层:表示层,把数据转换为合适、可理解的语法和语义;
        7.第七层:应用层,面向具体的应用传输数据。
    10、TCP/IP四层模型和OSI七层网络模型的映射关系
        1.第一层:物理层,TCP/IP里无对应;
        2.第二层:数据链路层,对应TCP/IP的链接层;
        3.第三层:网络层,对应TCP/IP的网际层;
        4.第四层:传输层,对应TCP/IP的传输层;
        5.第五、六、七层:统一对应到TCP/IP的应用层。
    11、*四层负载均衡:工作在传输层上,基于TCP/IP协议的特性,例如Ip地址,端口号等实现对后端服务器的负载均衡
    12、*七层负载均衡:工作在应用层上,看到的是HTTP协议,解析HTTP报文里的URI、主机名、资源类型等数据,再用适当的策略转发给后端服务器
    展开

    作者回复: 总结的非常全面,amazing!

    
     24
  • 无野
    2019-06-07
    1. 二层转发,工作在二层的设备(i.e交换机)只认识MAC地址,所以建立MAC地址和端口的映射关系,来决定往哪个端口转发。

    2.三层路由,工作在三层的设备(i.e路由器)利用ip地址和port,根据路由表选择最佳路径来转发包。

    3.dns属于应用层

    4.cdn应该工作在应用层
    展开

    作者回复: 说的很对

    
     9
  • wheat7
    2019-06-09
    疑问:按照tcp/ip详解 tcp/ip模型为五层,老师所说为4层
    另外,最后一个常见的层层打包说法,我认为是一个误导,因为每一层MTU都不同,这种说法忽略了每一层对上一层数据的分片,造成了”http”报文加TCP头再加IP头就变成了网络层数据的误导,其实IPV4 MTU为64k,而HTTP和TCP层并没有限制,一帧以太网帧MTU为1500b,同理
    此外,每一层数据都可以统称为包,这个说法也存在误导,包含义表示有边界,而如Tcp是面向流的,没有边界

    作者回复: 关于tcp/ip的层次,有说4层,也有说5层的,我说的是最普遍的一种说法,可以参见wiki。

    第二个,这只是在应用层的视角做的一个比喻,正文里也说了,省略了很多细节,如果要深究的话可能篇幅不够。

    第三个,tcp/ip里都是要切分成数据包来发的,比如tcp的segment,“包”只是为了说起来方便。

    看得出来对tcp/ip很精通,有叙述不严谨的地方还请多谅解指正,大家共同进步。

    
     5
  • 业余爱好者
    2019-06-07
    基础太差,第一题不太懂。

    第二题应该是应用层吧。dns域名解析是需要请求dns服务器的,而服务器本质是一个软件(应用),不是操作系统处理,由"两个凡是"定理推出,dns为应用层协议。

    第三题不太清楚,个人猜想也是应用层。cdn与dns一样,并非是通信过程必须的一种机制,而只是一个满足特定场景下某种需求的一个"应用",所以应该也是应用层。
    展开

    作者回复: 对的,可以参考其他同学的回答。

    
     5
  • 小美
    2019-06-09
    首先感谢老师,之前不太理解七层与四层的对应关系,因此很难去记忆,看了之后恍然大悟。但有点疑惑的是,
    最后说的两个凡是中的第一个是说「四层或四层以下」指的是传输层及以下是由操作系统负责的吗?而「七层」指的是应用层到会话层是应用程序负责的吗?

    课后作业:
    1. 第一次听说这两个概念,查了下资料。请老师帮忙过目、检查,首先这里的二层和三层指的都是 OSI 中的对应的层级;二层转发就意味着是在数据链路层(Data Link Layer)做的转发,基于 MAC 地址,通常指的是交换机;三层路由意味着是在网络层(Network Layer)做的转发,通常指的是路由器(当然也有路由功能的交换机);当数据传输到网络层,路由器会检查目的 IP 是否与自己处于同一网段,是则进行二层转发即请求目的主机的 MAC 地址,否则进行三层转发即进入路由的递归查找。
    2. DNS 属于应用层,其本身并不负责传输、网际的实际操作,只是将域名解析为 IP,方便下一层的使用;
    3. CDN 也应当属于应用层,类似于 DNS 他们都是针对传输后的数据内容的操作,而非实际去处理传输等操作。
    展开

    作者回复: 你理解的很对。

    当然,“两个凡是”也不是绝对的,比如dpdk就把tcp协议栈都拿到了操作系统外实现,但大多数情况下传输层以下都由操作系统负责。

    
     3
  • 不矫情不做作那是我
    2019-06-10
    老师,我看有的书上面说TCP/IP 模型早期是四层,现在划分成五层了

    作者回复: 我觉得大家不用纠结这些细节,自己理解了就好。

    有兴趣可以参考RFC1180。

    
     2
  • bywuu
    2019-06-07
    二层转发:设备工作在链接层,获取了数据报的头部信息之后,根据目标的MAC地址,进行本地转发和广播
    三层路由:设备工作在IP层,通过分析数据报的头部信息,得到IP地址,根据网段范围,进行本地转发或选择下一个网关
    dns和cdn都在应用层

    作者回复: ✔️

    
     2
  • HeGuang
    2019-06-07
    老师慢慢写,太难的话看不懂了

    作者回复: 多谢支持。

    
     2
  • 啦啦啦
    2019-07-02
    看到现在,这节课收获最大,知道了四层七层的区别

    作者回复: 继续努力,后面还有很多知识点。

    
     1
  • xing.org1^
    2019-06-12
    传输层这里,tcp和udp也可以用不同公司快递员送货来理解吧,tcp就像一些负责人的公司的快递员,送货时会提前打电话联系问你在不在家,可以保证把你的货物送到手上。udp则像另一种情况,直接拿着东西到你家门口,也不管你家有没有人,如果有就刚好送到你手上,没有在家就给你扔门口走了,他不保证会把快递送到你手上。

    作者回复: 这个比喻不错。

    
     1
  • 二楞子
    2019-06-11
    老师我想问下dns是解析ip地址的吗?ip在二层 为什么dns是在应用层呢?

    作者回复: dns使用udp,在传输层之上,所以是应用层。

    
     1
  • Carson
    2019-06-10
    1. 二层转发:指的是OSI中数据链路层设备(交换机)通过MAC地址来决定转发到哪个端口;三层路由:指的是OSI中网络层设备(路由器)通过Ip地址来决定路由到哪个网络
    2. 应用层
    3. 应用层

    作者回复: √

    
     1
  • Geek_987169
    2019-06-09
    老师,请教个问题,最后的"两个凡是"来区分是四层还是七层,是什么意思,比如现在我写代码实现了了一个简单的浏览器,我就应该是在应用层啊,实在是有些想不明白。还是一台主机同时存在四层和七层?

    作者回复: tcp/ip是个“协议栈”,当然是在每台机器上从底层到顶层都有的,不能拆开单独存在。

    “两个凡是”是用来帮助你理解协议栈工作的,应用层必须依赖下层才能工作,你可以再看一下课程里面的例子,再体会一下协议栈的工作过程。

    
     1
  • -W.LI-
    2019-06-07
    二层转发:对应TCP/IP的链接层,MAC层,转发二字请教小老师了。
    三层路由:对应TCP/IP的网际层,IP协议处于这一层。路由器就是根据IP地址路由的。原理不知。
    DNS和CDN都处于应用层
    理由1:我理解的是传输层只知道IP和端口,和URI相关的都是应用层了,DNS解析URI上的域名,CDN通过URI缓存数据(URI上有随机参数会导致回源)
    理由2:老师最后讲的所有和操作系统相关的都是4层及以下。这两个都是程序不符合。

    作者回复: 其他同学已经回答的很好了,可以参考。

    
     1
  • QQ怪
    2019-06-07
    这一节课,给我网络小白上了一节非常棒的课,简单易懂,竟然全懂了。老师真棒👍

    作者回复: thanks。

    
     1
  • Geek_d4dee7
    2019-06-07
    二层数据链路层犹如货车在高速公路上从出发地开往目的地 重点在公路这种基础设施
    三层网际层Ip协议负责定位起始站 中转站 终点站
    DNS 跟http 应该在同一层都是应用层
    CDN 是个代理除了链接层感觉上面三层都有
    直观的理解 说错了求批评指正

    作者回复: cdn是“内容分发网络”,要看到内容就必须在应用层。

    
     1
  • 火车日记
    2019-06-07
    发快递的案例很形象,加深了理解!

    作者回复: 也可以试着再找一些这样的例子。

    
     1
  • Ronnyz
    2020-01-21
    1.二层是根据MAC地址转发,工作在数据链路层;三层路由是根据ip地址寻址,工作在ip层。
    2.DNS域名解析协议位于应用层。
    3.CDN内容分发工作在应用层

    作者回复: good。

    
    
  • 旅途
    2019-12-25
    老师 有个概念我还是没有清晰 就是 4层负载均衡 这个对应osi模型来说的吧 而和4层的tcp/ip模型没有关系 因为tcp/ip不可能对应osi的4层 而是对应的整个7层吧

    作者回复: 当我们说“4层”“7层”的时候,默认就指的是OSI模型,而第4层就对应的是TCP层,所以4层负载均衡就是指利用TCP协议进行负载均衡。

    所以在说网络协议栈的时候要在头脑里做一个“翻译转换”,把理论模型映射到现实的模型。

    还有一点,tcp/ip协议栈完全对应osi模型的7层,而tcp协议对应的是osi的第4层。tcp和tcp/ip协议栈是不同的。

    
    
我们在线,来聊聊吧