随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同?作来完成业务,于是有了网络互连。
网络互连:将多台计算机连接在?起,完成数据共享。
数据共享本质是网络数据传输,即计算机之间通过?络来传输数据,也称为网络通信。
根据?络互连的规模不同,可以划分为局域网和?域网。
局域网(Local Area Network,简称LAN)是指在一个小范围内,例如学校、企业或家庭中的计算机和其他网络设备通过高速传输媒介连接起来的计算机网络。局域?内的主机之间能?便的进??络通信,?称为内?;局域网和局域网之间在没有连接的情况下,是?法通信的。
局域网的组成方式:
?名词解释:
广域网(Wide Area Network,简称WAN)通过路由器,将多个局域网连接起来,在物理上组成很?范围的网络,就形成了?域网。?域?内部的局域网都属于其?网。
网络互连的?的是进??络通信,也即是网络数据传输,更具体?点,是?络主机中的不同进程间,基于网络传输数据。
那么,在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?这就需要使?IP地址来标识。
IP地址: IP地址是互联网中用于标识主机(计算机或其他网络设备)的唯一数字标识符。它由32位或128位二进制数组成,用点分十进制表示(IPv4)或用冒号分隔的十六进制表示(IPv6)。IP地址的作用是在网络中准确定位并寻找目标主机。
端口号: 端口号是一种用于标识特定应用程序或服务的数字标识符。它是一个16位的整数,范围从0到65535,被分为三个范围:知名端口(0-1023),注册端口(1024-49151)和动态/私有端口(49152-65535)。通过端口号,计算机可以将接收到的数据包交给正确的应用程序或进程。
有了IP地址和端?号,可以定位到?络中唯?的?个进程,但还存在?个问题,?络通信是基于?进制0/1数据来传输,如何告诉对?发送的数据是什么样的呢?网络通信传输的数据类型可能有多种:图?,视频,?本等。同?个类型的数据,格式可能也不同,如发送?个?本字符串“好!”:如何标识发送的数据是?本类型,及?本的编码格式呢?基于?络数据传输,需要使?协议来规定双?的数据格式。
协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的?组约定、规则。如怎么样建?连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。协议(protocol)最终体现为在网络上传输的数据包的格式。
协议分层是指将计算机网络通信过程划分为若干个层次,每个层次负责不同的功能,各层之间通过协议进行交互和传输,最终完成数据的传输和接收。协议分层的主要作用包括以下几点:
简化网络设计和管理:通过将网络通信过程划分为多个层次,可以将网络复杂度降低为多个简单的组件,便于网络的设计、实现和管理。
促进协议的标准化:每个层次负责不同的功能,不同层次的协议可以独立地设计和优化,有助于促进协议的标准化和统一。
提高网络的可靠性和性能:通过分层设计,可以使网络设备不同层次之间的交互更加清晰和明确,有助于提高网络的可靠性和性能。
支持灵活的网络架构:协议分层可以支持不同类型的网络架构,例如星型网络、环形网络、网状网络等,使网络更加灵活和可扩展。
?OSI(Open Systems Interconnection)七层模型是国际标准化组织(ISO)制定的通信协议参考模型,用于描述计算机网络中不同层次之间的功能和交互关系。该模型将计算机网络通信过程划分为七个层次,每个层次负责不同的功能。以下是对每个层次的详细介绍:
OSI七层模型提供了一个通用的框架,可以帮助理解和设计计算机网络中不同层次的功能和交互关系。每个层次都有自己独特的责任和功能,通过协议在不同层次之间进行交互和传输,最终完成数据的传输和应用。?
OSI七层模型既复杂?不实?,所以OSI七层模型没有落地、实现。实际组建?络时,只是以OSI七层模型设计中的部分分层,即TCP/IP五层模型来实现。
?
TCP/IP是?组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采?了5层的层级结构,每?层都呼叫它的下?层所提供的?络来完成??的需求。
?络设备所在分层:
注意我们这?说的是传统意义上的交换机和路由器,也称为?层交换机(?作在TCP/IP五层模型的下两层)、三层路由器(?作在TCP/IP五层模型的下三层)。
随着现在?络设备技术的不断发展,也出现了很多3层或4层交换机,4层路由器。我们以下说的?络设备都是传统意义上的交换机和路由器。
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报
(datagram),在链路层叫做帧(frame)。应?层数据通过协议栈发到网络上时,每层协议都要加上?个数据?部(header),称为封装(Encapsulation)。?部信息中包含了?些类似于首部有多?,载荷(payload)有多?,上层协议是什么等信息。数据封装成帧后发到传输介质上,到达?的主机后每层协议再剥掉相应的?部,根据?部中的"上层协议字段"将数据交给对应的上层协议处理。
接下来简单模拟一下数据的封装分用的过程:
假设场景:A 通过 QQ 给 B 发送了一个hello
1. 应用层:
QQ接收到A输入的hello,就会把这个字符串按照构QQ内部的应用层协议造成一个应用层的数据包,这个数据包的格式就是这个协议约定好了的。(应用层的协议往往是程序员自己定义的)
现在我们假设这个格式为:发送方QQ号;接收方QQ号;发送时间;发送内容。
于是就可以构造出数据包:1234;5678;2024/01/20 15:20;hello
接下来应用程序就会调用操作系统提供的API把这个数据交给传输层。
2. 传输层:
传输层会把接收到的数据包,看作一个整体再构造成一个传输层的数据包。传输层涉及到的主要协议有 TCP和UDP(后续会详细说明),这里假定使用UDP来通信,这里就会构成一个UDP的数据包。
UDP报头提供了源端口号,目的端口号,长度,校验等重要信息。
构建好数据包之后,就会调用下一层协议即网络层提供的API把这个数据包交给网络层了。
3. 网络层
网络层的核心协议是IP协议
同样的,这里以IP协议,再把接收到的数据包整体作为一个载荷,拼接上IP协议的报头,构造成 IP数据包。
IP报头中包含了源IP地址和目的IP地址,用于唯一标识数据的发送方和接收方
然后IP协议调用数据链路层的API把数据交给数据链路层。
4. 数据链路层
数据链路层涉及到的核心协议是 以太网
这里会把接收到的数据包看作整体拼接上一个帧头和帧尾,构成一个以太网数据帧。
最后把这个数据帧交给物理层
5. 物理层
把以太网数据帧的二进制信号转换为 光信号/电信号/电磁波 发送出去
不考虑中间过程,假设B的网卡已经接收到了数据,这个数据需要处理后才能呈现出来,这个处理的过程就叫分用。
1. B的物理层接收到了光信号/电信号/电磁波,就会把这些数据转为数字信号,(二进制)得到一个以太网数据帧,进一步把这个数据帧交给数据链路层处理
2. 数据链路层按照以太网数据包的格式解析出其中的载荷,再交给上层协议,即网络层
3. 网络层同样按照IP协议的格式进行解析,取出载荷再交给上层协议
4.传输层同样按照UDP协议解析出载荷交给应用层
5.应用层就按照内部的协议解析出了数据,在B的聊天窗口中弹出消息和时间
分用的过程就是封装的逆向过程
?