网络中的一些基本概念

组建网络的重要设备

集线器,交换机(组建局域网,不能跨局域网组建网络),路由器(wifi本质上是无线路由器,路由器的本质的把俩个局域网给连起来)

网络通信的一些基础概念

IP地址 标识了网络设备所在的位置

端口号 标识了一个具体的应用程序

协议

协议是网络通信的概念,约定好了数据是什么样的格式来进行传输,有了这个约定,才能让双方相互理解对方的含义,比如我们日常说话,"普通话","芜湖话","北京话"也属于协议.

网络通信是一个比较复杂的事情,需求场景复杂了,实现功能比较复杂,如果这个协议太复杂了,学习成本,使用成本维护成本很高,因此实际做法是:针对这个复杂的大协议,拆分成若干个,相对简单的小协议.

随着协议拆分成一些小协议,每个协议负责一部分功能,此时可能某些协议之间起到的作用和功能是类似的,针对这些小协议,再进行分类(分层),网络协议就是在 分层的背景下展开的

协议分层的好处
降低了学习成本和维护成本(封装)
灵活的针对某一层协议进行替换

协议分层的风格
OSI七层网络模型(实际上不用,与五层协议相比,应用层和传输层多了表示层和会话层)
TCP/IP五层(四层)网络模型

物理层:约定了网络通信中,基础硬件设备是什么样的,比如像通信使用的网线,网口等设备.网线网口都是相同规格的

传输层:只关心端到端之间的传输(起点到终点)

网络层:主要负责路径的规划,走什么样的路线传输效率最高.

数据链路层:主要负责俩个相邻的节点之间,具体怎么进行传输

应用层:应用层,描述了传输层的数据,用户要怎样来使用

网络数据传输的基本流程(站在协议分层的角度) 

以QQ为例,A给B发一个hello

应用层

发送方:用户在输入框输入hello这个字符串,qq这个应用程序就把这个字符串,给构成了一个数据报,假设qq的应用层协议格式为(应用层数据,每个应用程序都不一定一样,有统一的版本,也可以自己定义): 
发送方qq号;发送时间;接收方qq号;消息内容

"应用层数据报"本质上就是一个遵循了约定格式的字符串,程序要调用操作系统的 api,把这个应用层数据报交给传输层

传输层(进入系统内核了)

 在传输层中,就要把上述应用层数据,构成传输层 的数据报
传输层使用的协议,最知名的就是UDP和TCP,此处使用UDP,就需要构造出一个 UDP数据报(在 应用层数据报 基础上,加一个UDP报头)

网络层

网络层最知名的协议 IP协议 IP协议基于上述数据报,打包成一个IP数据报

一次通信中基础的五元组:源IP 源端口 目的IP 目的端口 协议类型

数据链路层

数据链路层最知名的协议是"以太网",基于上述数据报打包成一个"以太网数据帧"

物理层

把上述二进制的数据(一串0101)转换成 电信号/光信号,此时就真正把数据发送出去了

上述过程,从应用层到物理层,层层加码,从上到下,这个过程就称为"封装"(不是面向对象的封装)

接收方的工作

物理层

网卡接收到的是 光信号 和 电信号.在物理层,把这个光电信号转换成成 二进制的数据,转换的数据就是一个以太网数据帧

数据链路层

把这个数据交给数据链路层解析

网络层

传输层

 应用层

上述,从下到上,层层解析,这个过程称为"分用".

整个的网络协议中,协议分成很多层,上层协议要调用用下层协议(上层协议把数据交给下层继续封装),下层协议给上层协议提供支持(下层协议解析好数据,交给上层).
这里的几层协议之间是有明确的层级关系,只有相邻的俩层之间才能进行交互(不能跨层交互) .

猜你喜欢

转载自blog.csdn.net/qq_62712350/article/details/130068923
今日推荐