【网络协议从入门到底层原理】【01】基本概念


持续学习&持续更新中…

学习态度:守破离


课前准备

互联网(Internet)

没有网络协议,就没有今天的互联网。

在这里插入图片描述

为什么要学习网络协议

在这里插入图片描述

学习中需要搭建的环境

在这里插入图片描述

客户端VS服务器

在这里插入图片描述

在这里插入图片描述

C/C++的跨平台原理

在这里插入图片描述

Java的跨平台原理

在这里插入图片描述

网络协议

什么是协议

协议是一种通用的标准,类似接口。

在这里插入图片描述

  • 协议是约束双方的一种标准、一种规范。

  • 有一个标准规范的协议很重要,可以减少双方的沟通成本、提高办事效率。直接按照协议流程走就行。

网络协议

  • 网络协议是用来规定网络双方两个节点如何进行通信的。

  • 网络协议规定客户端能发什么、服务器能返回什么。客户端和服务器之间会有一种约定好的数据格式

  • 有了网络协议,发送数据的一方和接收数据的一方才能够进行有效的沟通。双方都会以某种格式来解析数据。

  • A、B两台计算机之间之所以能够互相收发数据,就是因为有网络协议的规定。

    1. A、B两台计算机的数据传输应该经过哪些机器(交换机、路由器等)
    2. 数据传输应该经过哪些层
    3. 数据应该怎么包装
    4. 数据格式应该是什么样子
  • 没有网络协议,就没有今天的互联网。

网络互连模型

网络分层

在这里插入图片描述

网络互连模型

国际标准:OSI 7层
实际应用:TCP/IP 4层
学习研究:5层

在这里插入图片描述

  • OSI参考模型(Open System Interconnect Reference Model),具有7层结构,是国际标准组织ISO在1985年制定的。用来规定两个设备之间数据传输应遵循什么标准。

  • OSI参考模型只不过是一种理论上的标准。规定OSI参考模型的专家们有可能过于理论化,过于学术派,甚至这些专家们有可能在1985年制定网络OSI参考模型之前都没有过实战经验。

  • TCP/IP协议是已经在实际应用中得到认可的适合实战的网络模型,是适合传递数据、适合作标准的。比如现在的HTTP请求过程走的就是TCP/IP协议这四层。

  • 网络层(Network)网际层(Internet)是一样的,叫法不同而已。

  • 图中最右边的5层模型,是为了方便学习和研究而特意划分的。

请求和响应过程

  • 客户端和服务器之间收发数据不是直接进行的。需要遵循某种协议,走协议流程。

  • 不管是什么协议,比如:HTTP、FTP、MQTT、RTMP,其数据传输的底层原理都是类似的,如下图所示那样对数据进行包装、拆包进行传输。

请求过程

在这里插入图片描述

响应过程

在这里插入图片描述

计算机之间的通信基础

计算机之间的通信基础

在这里插入图片描述

在这里插入图片描述

两台计算机之间通信之前需要知道对方的IP地址和MAC地址

IP地址是必须要知道的,MAC地址在发送数据过程中会被自动解析。

也就是说:计算机在通信之前都先会使用ARP广播来获取对方的MAC地址(如果没有MAC地址缓存的话),之后再去使用其他协议来进行通信。

网卡和MAC地址

计算机是使用网卡来接收数据的,而网卡拥有属于自己的MAC地址,因此我们得知道MAC地址才行。

一个网卡对应一个MAC地址

但是为什么我们只需要知道IP地址即可通信呢?因为MAC地址会被自动解析。

也就是说,不知道对方的MAC地址而只知道对方的IP地址,一样发送不了数据给对方,但庆幸的是,计算机已经自动帮助我们做好了MAC地址解析的工作。

ARP作用

同一网段下,计算机之间要通信,必须先使用ARP来广播获取对方的MAC地址。

发送的数据包中都会有源IP地址、目标IP地址、源MAC地址、目标MAC地址

广播获取对方的MAC地址之后,本地计算机上会将对方的MAC地址缓存起来(静态缓存 or 动态缓存)。

ARP地址解析协议(广播协议)(Address Resolution Protocol),可以根据IP地址获取物理地址(MAC地址)

  • 广播是在同一个网段中传播的
  • 同一个网段的终端都能够接收到广播(使用了 FFFF.FFFF.FFFF 广播地址)
  • 广播会传播到所有能连通的设备上。
  • 发广播的目的是获取对方的MAC地址
  • 获取到对方的MAC地址才能进行真正的数据通信,发送数据到对方的网卡上。

半双工、全双工

在这里插入图片描述

在这里插入图片描述

计算机之间的连接方式

网线直连(两台计算机)

在这里插入图片描述

  • 同一个网段
  • 只适用于两台计算机之间

同轴电缆(多台计算机)

在这里插入图片描述

在这里插入图片描述

  • 同一个网段
  • 没有智商,所有能连通的设备都能接收到发送的数据,不安全
  • 中间断了,整个都瘫了,不可靠

集线器(多台计算机)

在这里插入图片描述

  • 同一个网段
  • 集线器解决了同轴电缆的一个问题:一台计算机出问题,不会影响其他计算机。不至于中间断了导致整个都崩溃瘫痪。
  • 集线器和同轴电缆一样没有智商:会将数据(信号)发送给每个可以连通的设备,别人都可以收到发送出去的数据,导致其不安全低效率

  • 计算机(终端)才有ARP缓存。可以使用arp -a来查看某台计算机缓存的MAC地址

  • HUB集线器就是一个傻逼 ,没有缓存功能。


网桥(多台计算机)

在这里插入图片描述

  • 同一个网段
  • 有智商:会自学习(有一个地址表来缓存MAC地址)
  • 有智商:使用地址表来隔绝冲突域
  • 缺点:接口太少

地址表的作用:

ARP过程:

在这里插入图片描述

在这里插入图片描述

ICMP过程:

在这里插入图片描述

如果网桥的地址表记录的很全的话,会大大提升发送数据的效率,并且起到隔绝冲突域的作用:

在这里插入图片描述

交换机(多台计算机)

在这里插入图片描述

  • 同一个网段
  • 多个接口
  • 有智商(会和网桥一样去自学习记录MAC地址)
  • 有智商(比集线器安全,可以精准发送数据)

  • 交换机是局域网的最终解决方案
  • 如果要跨网段,需要使用路由器

路由器(多台计算机)

在这里插入图片描述

计算机不在同一个网段的话,只能使用路由器来连接。

注意和一些细节

  • 集线器、网桥、交换机、路由器等数据发送过程都可以使用PacketTracer工具模拟进行查看。

参考

小码哥M了个J: 网络协议从入门到底层原理.


本文完,感谢您的关注支持!


猜你喜欢

转载自blog.csdn.net/weixin_44018671/article/details/121071121