网络原理——基础概念(端口号、分层、封装和复用)、各层协议(TCP/IP协议)(详细图解)

  • Post author:
  • Post category:其他



目录


一、基础概念


1、 IP地址


(1)点分十进制


2、端口号


3、协议


(1)协议的 组成部分


(2) 协议的 作用


4、五元组


5、协议分层


(1)分层的 好处


(2)OSI 七层模型


(3)TCP/IP 五层模型


6、封装和分用


(1)封装


(2)分用


一、基础概念

1、 IP地址

IP地址是指互联网协议地址(网际协议地址)。是

IP 协议

提供的一种同一的地址格式。描述了

网络上一个主机的位置(收货地址)

IP地址本质上是一个 32 位的整数,但是由于 32位的整数不方便人们来读和记忆,所以采用了 “点分十进制”。

(这部分只简单介绍,是为了更好的理解后面的内容,详细的 IP地址 的内容在 IP协议部分)

(1)点分十进制

将 32位的 IP地址(4个字节),按照每个字节,分成四个部分,这四个部分中间用 . 隔开。


例如: 123.139.170.255

因为一个字节8个比特位,因此每一部分的取值范围:0~255。

注意:

127.0.0.1

是一个特殊的IP地址,叫 环回IP,表示自己这个主机。

2、端口号

IP地址表名了哪个主机,但是主机上还有很多进程,因此要通过端口号来确定是哪个进程。

端口号描述了一个主机上的某个应用程序(收件人电话)。

端口号本质上是一个 2 个字节(16位)的无符号整数,范围是 0 ~ 65535 。

使用时,两个进程不能绑定同一个端口号,但是一个进程可以绑定多个端口号。(当服务器程序启动时,就需要绑定一个端口号,以便客户端程序来访问)


例如: 3306:mysql 默认的端口号

3、协议

协议是 网络协议 的简称,本质上就是 “约定”(发出来的数据是啥样的格式,接收方按照对应的格式来进行解析)。要想进行有效的通信,就需要明确通信协议。

协议 最后再网络通信中,表现为

网络上传输的数据报的格式

(1)协议的 组成部分

① 语法:数据和控制信息的 结构 或 格式 。(打电话:约定都说普通话)

② 语义:需要发出某种控制信息,完成某种动作 以及 做出某种响应。(双方怎么做,打电话我问:在吗,对方回答:在)

③ 时序:事件实现顺序的详细说明。(打电话先讲什么后讲什么)

(2) 协议的 作用

网络通信的时候,本质上传输的是 光信号 和 电信号,通过光信号 的 频率(高频率 和 低频率)电信号 的 电平(高电平 和 低电平)来表示 0 和 1 。

这些 0 和 1 组合起来到底是什么意思,协议就可以对这些进行规定了。

4、五元组

在 TCP/IP协议(很重要的协议)中,用五元组来表示一个网络通信。

  • 源IP :标识源主机。
  • 源端口号 :标识源主机中进行这次网络通信中 发送数据 的 进程。
  • 目的IP :标识目的主机。
  • 目的端口号 :标识目的主机中进行这次网络通信中 接收数据 的 进程。
  • 协议号 :标识发送数据进程 和 接收数据进程 双方约定的 数据格式 。

网络通信的过程,类似发快递的过程:

5、协议分层

对于网络协议(协议)来说,往往分成几个层次进行定义。

如果网络通信只通过一整个协议来进行规定,那么里面的细节就会很多,会很庞大复杂。因此更好的方法就是,把一个大的复杂的协议,拆分成多个小的更简单的协议,每个协议仅仅只负责它那部分的工作。(类似于将一个复杂程序代码,分成很多小的部分代码,让他们实现其各自的功能,最后再进行汇总)

(1)分层的 好处

① 每层协议不需要理解其他层的协议

打电话的人,不需要理解电话的工作原理,就可以完成打电话的操作。

制造电话的人,不需要考虑打电话的人说英语还是汉语。

② 可以把对应层的协议换成其他协议

打电话的人,可以使用有线电话,也可以使用无线电话。可以使用英语,也可以使用汉语

(2)OSI 七层模型

OSI 七层模型(Open System Interconnection 开放系统互连)是指 把网络从逻辑上分了 7 层。

OSI 七层模型 虽然实现了分层,但还是比较复杂,并且不实用。因此在实际组建网络时,使用的是 TCP/IP 五层 模型。

(3)TCP/IP 五层模型

TCP/IP 是一组协议的代名词,它包括了很多协议(有了TCP/IP协议栈)。它采用了 五层结构。

  • 应用层:负责说明传递的这个数据是干嘛的。
  • 传输层:负责 端 到 端 之间的通信,即 起点 -> 终点。

    (进程 -> 进程)
  • 网络层:负责 点 到 点 之间的通信,即路线规划。

    (全局)
  • 数据链路层:负责两个相邻的设备之间的通信。(相邻:同一根网线)

    (局部)
  • 物理层:负责网络通信的硬件设备。网线、网卡……针对硬件设备进行的约定。

类似:

  • 应用层:买的喷壶,这个喷壶是用来浇花?还是消毒?
  • 传输层:我负责下单,商家负责发货,我们都只关心货到了没有。
  • 网络层:快递公司选择路线:①广州 -> 西安 ; ②广州 -> 郑州 -> 西安。
  • 数据链路层:若网络层选择了 广州 -> 郑州 -> 西安,这里就只负责  广州 -> 郑州 这一小部分。
  • 物理层:运输用 飞机?火车?火车?

6、封装和分用

封装和分用是在网络传输中对数据的操作。因为分层的原因,所以每层只看得懂它负责的数据,而我们在实际传输时(在网线中),是整个数据进行传输的。因此要用到封装(快递打包)和分用(快递拆包)。

(1)封装

主要用在发送数据的过程中。

假设现在要 QQ发送数据 (使用 TCP/IP 五层模型):

上图中,在主机上发送数据,就是从应用层开始,逐层进行封装的过程。

(2)分用

主要用在接收数据的过程中。

以另一台主机接收 QQ 消息 为例:


注意:

在整个网络通信的过程中,还要经过交换机和路由器,经过时,也需要进行封装和分用。

唯一的区别是:

  • 交换机有两层:物理层、数据链路层
  • 路由器有三层:物理层、数据链路层、网络层




版权声明:本文为weixin_60358891原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。