【网络协议】笔记二 | 网络分层的真实含义

原文地址:网络分层的真实含义

知识点

  • 网络分层
  • 数据包处理程序
  • TCP握手的背后

网络为什么分层?

因为是个复杂的程序都要分层,这是程序设计的要求, 涉及到架构和设计模式的问题,分层是各个模块业务逻辑的职责划分。

处理网络数据包的程序是如何工作的?

客户端和服务器就像没有天桥的双子楼,要从A座的24层到达B座24层就得先下楼梯再上楼梯


发送请求封包

  1. 点击网页,发起HTTP请求,浏览器使用端口号发送。
  2. 添加TCP头,记录下源端口号。浏览器给出目的端口号,一般为80端口。
  3. 添加IP头,记录下源IP地址和目标IP地址。
  4. 添加MACtou,记录源MAC地址和目标MAC地址,目标MAC地址如果不知道,需要通过一定的协议处理过程(玄奘西行),找到MAC地址。
  5. 网口发出。

接受请求拆包

  1. 经过网口。
  2. 判断mac地址是否是自己,不是则不接收。
  3. 判断IP地址是否是自己的,不是则转发。
  4. 判断地址是TCP还是UDP进行不同的逻辑处理。假设这个地址是 TCP
    的,则会调用process_tcp(buffer)。这时候,Buffer
    里面没有三层的头,就需要查看四层的头,看这是一个发起,还是一个应答,又或者是一个正常的数据包,然后分别由不同的逻辑进行处理。如果是发起或者应答,接下来可能要发送一个回复包;如果是一个正常的数据包,就需要交给上层了。判断哪个应用处理,在四层的头里面有端口号,不同的应用监听不同的端口号。
  5. 浏览器解析HTML,显示页面。

TCP 在三次握手的时候,IP 层和 MAC 层在做什么呢?

TCP 发送每一个消息,都会带着 IP 层和 MAC 层了。
因为,TCP 每发送一个消息,IP 层和 MAC 层的所有机制都要运行一遍。
记住:只要是在网络上跑的包,都是完整的。可以有下层没上层,绝对不可能有上层没下层。
所以,对 TCP 协议来说,三次握手也好,重试也好,只要想发出去包,就要有 IP 层和 MAC 层,不然是发不出去的。
如同跨越没有天桥的双子楼,从A栋的4楼跑去B栋的4楼都需要经过下楼、上楼的步骤,把4楼以下的楼层跑一次。

知识复盘

网络为什么要分层?

太复杂

处理网络数据包的程序是如何工作的?

像个没有天桥的双子楼,到达服务器就要先封包下楼再拆包上楼

TCP在三次握手的时候,IP层和MAC层在做什么?

IP层和MAC层所有机制都要运行一遍,封包下楼、拆包上楼

小结

  • 网络程序分层处理,下楼封包、上楼拆包
  • MAC地址对上就上楼,IP地址不对就从楼中丢出去
  • 楼层(TCP)与对面楼层之间不能飞跃而过,该怎么走就怎么走
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值