目录
一、组网方式
1、网络互联:
2、局域网(LAN):
3、广域网(WAN):
二、网络通信基础
1、IP地址
2、端口号:
3、协议:
3.1、什么是协议
3.2、协议分层
3.3、协议分层的作用
3.4、协议分层模型(一)—— OSI七层模型
3.5、协议分层模型(二)——TCP/IP五层(或四层)模型
4、 封装和分用
以发送一条微信消息来举例:
使用集线器将少量主机连在一起
使用交换机和路由器将主机连接,可以自由组合三种方式
组网方式:
(1)、交换机
(2)、路由器
网线直连:
集成线组建:
(3)、交换机+路由器
广域网和局域网知识相对的概念
举例:一个学校之间的网络就可以成为局域网,而一个国家,多个国家之间可以称为广域网,覆盖的区域不同
概念:
格式:
IP分为A-E五大类,部分范围是局域网IP,部分是广域网IP,可以根据规范,知道某个IP是局域网IP还是公网IP
注意: 局域网内(局域网IP):网段唯一,同一个网段,主机号唯一
公网(公网IP):公网IP是唯一的
设备上有那么多运行的程序,仅仅确定了IP(也就是你的设备在哪里)是不足以通信的,可以理解为找到了你住哪一栋楼,但是不知道你具体住在那一层或者那一间房子,所以引出了端口号,相当于你房间的门牌号,一台主机上都有唯一的一个端口号对应与一个应用程序,如果你把IP地址比作收件地址,那么端口号就是收件号码。端口号本质上就是一个2字节的整数,范围是0-65535,一般服务器的端口号需要自己指定,如果随机分配的话,你的客户端要怎么访问你的服务器呢?毕竟客户端才是主动的一方,知道服务器在哪里才能与它“约会”嘛!
想要进行有效的通信,前提需要明确两者间的协议,毕竟你和动物交流是做不到的嘛!协议本质上就是对数据发送的格式做出要求,然后你和接收方约定好按照你的要求去解析这个数据。
通常由三要素组成:1. 语法:即数据与控制信息的结构或格式;类似打电话时,双方要使用同样的语言:普通话2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;语义主要用来说明通信双方应当怎么做。用于协调与差错处理的控制信息。类似打电话时,说话的内容。一方道:你瞅啥?另一方就得有对应的响应:瞅你咋的!3. 时序,即事件实现顺序的详细说明。时序定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是异步传输。
网络通信本质传输的是电信号与光信号,通过光信号的频率来决定电平到底是0还是1。
网络通信的过程是一个非常复杂的过程,一个协议往往是不足以支撑起庞大的网络通信的,所以更好的办法就是把一个复杂的协议给拆分成多个小的协议,每个协议负责一小部分的工作,将这些协议进行分层,毕竟三个臭皮匠赛过一个诸葛亮。
这样有几个好处,一是该层协议不必关心其他层协议的细节,更好地做到了封装,二是能够把对应层的协议转换成其他层的协议,这样就能更好地解耦合。
这样打电话的人不必知道电话的工作原理(封装),打电话的人可以使用有线电话,也可以使用无线电话(解耦合)。
OSI七层模型,从硬件到软件分别为物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
各层协议的工作如下(来源图解TCP/IP):
应用层 为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输、电子邮件、远程登录(虚拟终端)等协议。
表示层 将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能 够处理的格式。因此它主要负责数据格式的转换。 具体来说,就是将设备固有的数据格式转换为网络标准传输格式。不同设备对同一比特流解释的结果可能会不同。因此,使它们保持一致是这一层的主要作用。
会话层 负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理。
传输层 起着可靠传输的作用。只在通信双方节点上进行处理,而无需在路由器上处理。
网络层 将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成的某一个地址。因此这一层主要负责寻址和路由选择。
数据链路层 负责物理层面上互连的、节点之间的通信传输。例如与1个以太网相连的2个节点之间 的通信。 将0、1序列划分为具有意义的数据帧传送给对端(数据帧的生成与接收)。
物理层 负责0、1比特流(0、1序列)与电压的高低、光的闪灭之间的互换。
在实际实现的时候,并不会使用OSI七层协议,因为太麻烦了,而开发中用的最多的就是TCP/IP五层协议,或者说是四层协议,因为物理层是硬件,我们一般情况下是不必去关心。
各层的作用:
物理层:针对硬件设备间的协议,保证所有的主机和网络设备之间都是相互匹配的。
数据链路层:完成两个相邻设备间的通信。
网络层:负责网络中任意两点之间的通信,为这两点的通信规划出一条“最佳”路径。
传输层:负责端与端之间的通信,只关注结果(数据有没有收到),不关心过程。
应用层:和应用程序密切相关,关注所传输的数据是用来干什么的。
对于主机实现了物理层到应用层五层,对于路由器实现了物理层到网络层三层。对于交换机实现了物理层到数据链路层两层。上面的路由器和交换机只是针对传统意义上的路由器与交换机,现在的路由器与交换机的界限越来越模糊了(就是现在的路由器有交换机的功能,交换机有路由器的功能)。
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment) ,在网络层叫做数据报 (datagram),在链路层叫做帧 (frame) 。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header) ,称为封装 (Encapsulation)。首部信息中包含了一些类似于首部有多长,载荷(payload) 有多长,上层协议是什么等信息。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中 的 " 上层协议字段 " 将数据交给对应的上层协议处理
在应用层,会将用户需要发送的数据进行封装构造成一个应用层协议报文。
这个应用层的协议是程序员来设计的,不同应用程序的应用层协议是不同的,假设有用户A在微信上发送了一句消息Hello
给用户B,发送时间为2022-10-19 10:08:52
,我们来模拟该数据发送的过程。
假设应用层的报文如下:
应用层会调用操作系统锁提供的API,将应用层数据交给传输层。
传输层常用的协议有UDP与TCP,以TCP为例,传输层会基于应用层的数据来构造一个传输层的报文。该报文由协议报头加上数据载荷构成。
接下来传输层会将传输层的数据转交给网络层。
网络层常用的协议有IP协议,会将TCP数据报继续封装成IP数据报,也是在原来数据的基础上加上一个IP协议报头,新的网络层IP数据报是由IP协议报头加上数据载荷组成。
然后,网络层会将封装的数据交给数据链路层,数据链路层会在IP协议数据报的基础上,加上帧头与帧尾,封装构造成数据链路层数据帧(以太网数据帧)。
最后,数据链路层的数据交给物理层,物理层会将以太网数据帧(本质就是二进制数据),物理层会将二进制数据转换成高低电平通过网线或者无线的形式发送出去。
上面从应用层到物理层数据的转变过程称为封装,当接收方收到数据时会将已经封装好的数据进行拆分,这个过程叫做分用。
当用户B的主机接收到用户A发送的数据后,就会从物理层开始,逐级向应用层进行对应层协议的解析,这个过程就是分用,它是封装的逆过程。
下期见啦!!!