美文网首页
5月5日:网络思考

5月5日:网络思考

作者: 站立着的心X | 来源:发表于2021-05-06 23:35 被阅读0次

一.简介:

  • OSI 7层参考模型 与 TCP/IP协议。
    7层参考模型只是参考,并没有实现,分层的目的是为了解耦。
    TCP/IP协议分为5层--应用层,传输(控制)层,网络层, 链路层+ 物理层。

  • 一个网络包的流程:

image.png
image.png
  1. 用户在浏览器上输入一个URL时,浏览器会解析URL生成一个HTTP请求报文【主要是去定义数据格式,用于规定了每段数据以什么形式表达才是能够被另外一台计算机理解。】;

  2. 进行域名查询胡哦去目的IP: 将域名发送给DNS服务器来获取目的IP,此时得到了目的IP与端口。

3 委托TCP/IP协议栈发送数据:应用程序(浏览器)通过调用 Socket 库,来委托协议栈工作。协议栈有:负责收发数据的 TCP(负责重传) 和 UDP 协议。控制网络包收发操作 IP 协议(负责发送)。
即:应用层定义数据格式,传输层控制传输方式, 网络层定义传给谁。

4.TCP通过三次握手交换两方各自的初始化seq序列号,确定双方都有收发能力来建立连接,并通过重传机制保证可靠性。同时:TCP需要考虑数据大小,对较大的数据进行分包发送,接收端分包组合。所以一个HTTP连接 需要多个TCP交互去实现(三握包 + 分包的多个数据交互包 + 四挥包)。

  1. IP发送:TCP 模块在执行连接、收发、断开等各阶段操作时,都需要委托 IP 模块将数据封装成网络包发送给通信对象。 在这一层需要确定原IP,即多个网卡时,需要根据路由表规则,来判断哪一个网卡作为源地址 IP来发送包。

6.两点之间的传输:通过发送arp广播获取目的IP的MAC地址,即吓一跳路由的mac地址。其中原MAC在网卡生产时写入到 ROM 里的,可以直接读取。这样就可以通过MAC地址实现点与点之间的传输。

  1. 网络包的出口--网卡:网卡通过网卡驱动程序从IP模块获取包后,添加报头与起始帧分界符,,在尾部添加校验序列。最后将包转换成电信号,通过网线发出去。 到目前为止,包刚离开PC。
image.png
image.png
  1. [二层外设--交换机] 交换机---将网络包原样转发到目的地。
image.png

(1)电信号到达外设交换机网线接口,交换机里的模块进行接收,接下来交换机里的模块将电信号转换为数字信号。
(2)通过包末尾的 FCS 校验错误,如果没问题则放到缓冲区。接下来需要查询一下这个包的接收方 MAC 地址是否已经在 MAC 地址表中有记录。
最后: 交换机根据 在交换机的MAC 地址表查找目的 MAC 地址对应的交换机接口,然后将报文转发送到交换机相应的接口。在这个过程中,MAC与IP都没有发生变化,只是原样转发报文。


image.png
  1. 通过出境大门路由器: 将报文发送到公网上,然后进行路由转发
    思考:为什么在IP层获取的MAC地址是吓一跳路由的MAC地址??为什么有了IP还需要MAC地址??

交换机与路由器都是通过查表来决定包转发的目标,但:交换机是基于以太网设计的,俗称二层网络设备,交换机的端口不具有 MAC 地址。路由器是基于 IP 设计的,俗称三层网络设备,路由器的各个端口都具有 MAC 地址和 IP 地址;

image.png
image.png

在这个过程中,会根据目的IP地址获取吓一跳的MAC地址,即目的MAC;当前路由器发送的端口的MAC作为原MAC,来替换数据包的原MAC 与 MAC进行发送。 而原IP 与目的IP只要不经过NAT地址转换,就不会改变。所以:IP地址用于确认最终的通信的两个主机,端口用于确认两台主机上的特定两个进程,而MAC用于在同一子网内的点对点(子网内两台主机)的通信,只要经过路由器,原MAC与目的MAC都会改变。【所以:原IP-MAC绑定只能用于子网,不能经过路由器】

  1. 最后: 数据包找到了目的地址,将包发送到对端的网卡上:
image.png

服务器会先扒开数据包的 MAC 头部,查看是否和服务器自己的 MAC 地址符合,符合就将包收起来。
接着继续扒开数据包的 IP 头,发现 IP 地址符合,根据 IP 头中协议项,知道自己上层是 TCP 协议。
于是,扒开 TCP 的头,里面有序列号,需要看一看这个序列包是不是我想要的,如果是就放入缓存中然后返回一个 ACK,如果不是就丢弃。TCP头部里面还有端口号, HTTP 的服务器正在监听这个端口号。于是,服务器自然就知道是 HTTP 进程想要这个包,于是就将包发给 HTTP 进程。

HTTP开始解析报文:

image.png

总:
数据包很庆幸遇到了各路神通广大的大佬,有可靠传输的 TCP、有远程定位功能的 IP、有指明下一站位置的 MAC 等。这些大佬都给数据包前面加上了头部,使得我能在交换机和路由器的转发下,抵达到了目的地

  • 同网段 与 不同网段的通信:
image.png

二. 来源于网络:什么是网络
https://www.cnblogs.com/flashsun/p/14266148.html

  • 集线器---》交换机----》路由器的过程:
image.png image.png image.png image.png image.png image.png image.png

相关文章

  • 个人知识网络——思考

    学习知识,输出是目的,输入是基础,而思考,是输出和输入的桥梁。 把自己的时间安排得很满,看起来是非常勤奋,实际也投...

  • 网络数据安全思考

    见过一些系统和应用在裸奔,也见过一些简单的应用设计了极其复杂的安全机制,不仅团队成员很难掌握,而且还影响到业务开发...

  • brpc网络实现思考

    这些时间断断续续在分析brpc的网络实现,因为之前说过这个事情。然后因为工作中使用到的框架实现,其底层网络实现是单...

  • 网络教学的思考

    一场突如其来的疫情让人措手不及,而开学临近,钉钉给我们这些教学工作者和学生送来了及时雨。让我们能够做到停课不停教,...

  • 社会网络(一):思维和节点

    郑路老师社会网络课简易思考和总结 1.用网络思维思考问题 很多事情从网络视角解释和个体视角解释是不同的,我们常常放...

  • 为什么要写作

    先摘抄网络上为什么要写作的观点,再写自己的思考。 网络上的观点归纳: 1、持续写作很可能是锻炼学习能力、锻炼思考能...

  • 【读后感】放轻松

    在《自驱力成长》一书中,作者提到了两个概念:默认模式网络和心智漫步。 默认模式网络的作用,是帮助我们思考自我,思考...

  • 网络经营系列——网络商业类型的思考

    分析线下传统商业形式,大体可以划分成三类: 综合店:具备大型化,品类众多,品种齐全特征,消费者光顾的原因是一站式购...

  • 对社交网络的思考

    最近在思考线上社交和线下社交的问题。在美国使用过流行的meetup网站,觉得这是一种很好的社交形式。虽然meetu...

  • 关于网络中立的思考

    一、网络中立争论的历史脉络 近年来,在西方社会尤其是美国,关于“网络中立”的讨论沸沸扬扬,已不局限于产业界,而成为...

网友评论

      本文标题:5月5日:网络思考

      本文链接:https://www.haomeiwen.com/subject/mhnarltx.html