网络基础(概念/网络协议/OSI七层模型/TCP/IP四(五)层模型)

目录

计算机网络

根据网络覆盖范围的范围分类

无线网络

网络协议

协议分层

OSI七层模型

TCP/IP四(五)层模型

数据包封装和分用

网络中的地址管理

认识IP地址

认识MAC地址


计算机网络

在人们发明出了计算机之后, 并没有随之产生计算机网络的概念, 在这段时间内, 人们只是独立操作着一台台计算机, 并没有实现各个计算机之间的信息交互. 随着技术发展, 人们逐渐实现了计算机之间的通信, 数据处理, 传输与交换, 但也没有计算机网络的概念, 因为它们之间有些情况下并没有形成一个网络, 而是一个从一端到另一端的通信系统. 而计算机网络强调的是在网络范围内计算机资源共享, 是构建在计算机通信的基础之上. 所以, 计算机网络要具有互联和共享的功能, 这就涉及三个方面的问题.

1. 两台或以上的计算机相互连接起来才能构成网络, 达到资源共享的目的
2. 将两台或以上的计算机连接起来, 互相通信交换信息, 需要有一条通道. 这条通道的物理的, 由硬件实现, 这就是连接介质, 即可以是电缆, 光纤等 "有线" 介质, 也可以是各类电磁波, 如微波, 激光, 以及中国研究领先的量子通信等 "无线" 介质.
3.计算机之间要通信交换信息, 彼此就需要某些约定和规则, 这就是协议. (我们要学习的就是协议这一方面)

因此, 我们可以把计算机网络定义为: 把分布在不同地点的且具有独立功能的多个计算机, 通过通信设备和线路连接起来, 在功能完善的网络软件运行环境下, 以实现网络功能共享为目标的系统.

计算机网络的组成

1. 终端系统

     终端系统由计算机, 终端控制器和计算机上所能提供共享的软件资源和数据源 (如数据库和应用程序) 构成.

2. 通信子网

    通信子网是有用作信息交换的网络节点和通信线路组成的独立的数据通信系统, 它承担着全网的数据传输, 转接, 加工和变换等通信处理工作. 网络节点提供双重作用: 它可以作终端系统的接口, 同时也可作为对其他网络节点的存储转发节点. 作为网络接口节点, 接口功能是按指定用户的特定要求而编制的. 由于存储转发节点提供了交换功能, 故报文可在网络中传送到目的节点. 它同时由于网络的其余部分合作, 以避免拥塞并提高网络资源的有效利用.

                                 


根据网络覆盖范围的范围分类

根据网络覆盖的地理范围可以将计算机网络分为个人区域网, 局域网, 域域网, 广域网 和 因特网

1. 个人区域网(Perdonal Area Network(PAN))

在个人工作区把使用的电子设备, 如手机,打印机等, 采用过无线技术连接起来的网络, 作用范围10m左右.

2. 局域网 (Local Area Network(LAN)) 

覆盖范围是地理位置上的某个区域, 如某所学校或某个企业, 把学校或企业内部的多个局域网互联起来, 就构成了校园网或企业网. 目前局域网主要有以太网 (Ethernet) 和无线局域网 (Wireess Local Area Network (WLAN))等.

3. 域域网 (Metropolitan Area Network (MAN))

域域网一般来说实在一个城市, 但不在统一地理小区范围内的计算机互联. 连接距离可在10~100km, MAN与LAN相比距离更长, 连接的计算机数量更多. 在一个大型城市, 一个MAN网络通常连接着多个LAN网 .

4. 广域网 (Wide Area Network (WAN))

也称之为远程网, 范围比MAN更广, 一般是在不同的城市之间的LAN或者MAN网络互联, 地理范围乘客从几百公里到几千公里.因为距离较远, 信息衰减比较严重, 所以这种网络一般是要租用专线, 通过IMP(接口信息处理)协议个传输介质连接起来, 构成网状结构, 解决寻径问题. 

5. 因特网 (Internet)

从地理范围还是从网络闺蜜来讲, 因特网都是最大的一种网络, 这种网络最大的特点就是不定性, 整个网络的拓扑时刻随着网络的接入在不断地变化. 当一台计算机连接到因特网上时, 该计算机就成了因特网的一部分, 一旦断开与因特网的连接, 此计算机就不属于因特网了 .

无线网络

无线网络与有线网络最大的不同是传输介质不同. 无线通信时利用电磁波在空中传播实现信息的交换. 与有线网累死, 也可以按网络覆盖的范围大小, 将无线网划分为 : 无线个域网, 无线局域网, 无线域域网 和 无线广域网 .


网络协议

计算机之间的传输介质是光信号或电信号, 通过频率和强弱来标识0 和 2这样的信息, 想要传递各种不同的信息, 就需要约定好双方的数据格式 .

问 : 是不是只要通信的两台主机约定好协议就可以了?

答 : 不是的. 计算机生产厂家有很多, 操作系统有很多, 计算机的网络硬件也有很多. 如何让这些不同的计算机通信, 就需要有人站出来, 制定一个协议, 让大家都来遵守, 这就是网络协议

协议分层

网络通信协议的特点是层次性, 可靠性和有效性. 

采用层次化方法的优点是: 各层之间相互独立, 既不需要底层的结构, 只要知道是通过层间接口提供的服务; 灵活性好, 是指只要接口不变就不会因层的变化(甚至取消该层)而变化; 各层之间不影响; 有利于促进标准化.

                                    

如上图中信件通信的过程, 这和我们网络分层协议很是相似, 是一个层层封装, 再层层分用的过程

OSI七层模型

七层模型,亦称OSI(Open System Interconnection, 开放系统互联)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型

                               

  • 把网络从逻辑上分为七层, 每一层都有其性对应的物理设备, 比如路由器. 交换机等.
  • OSI七层模型是一种框架性的设计方法, 其最主要的功能是帮助不同类型的主机实现数据传输.
  • 最大优点是将服务, 接口和协议三个概念明确的区分开来.
  • 但问题是, 它即复杂又不实用, 所以我们按TCP/IP四(五)层模型来学习

TCP/IP四(五)层模型

TCP/IP是一组协议的代名词, 它还包括许多协议, 组成了TCP/IP协议簇(或协议栈)

TCP/IP通讯协议采用了五层的结构, 每一层都呼叫它的下一层来完成自己的需求.

物理层我们考虑较少, 因此很多时候我们也称TCP/IP四层模型

具体来看各层 :

应用层 : 负责应用程序间的数据沟通. 典型协议 : HTTP

QQ是一个应用程序, QQ之间的通信使用的协议就是QQ的协议. 应用程序是程序员编写的, 因此应用层的协议也是程序员自己定义的

传输层 : 负责应用程序之间的数据传输. 典型协议 : TCP 和 UDP

QQ发送的数据保证是发给QQ的, 而不会被微信给接收.  引入概念: 端口. 传输层的协议都会包含有端口信息

网络层 : 负责地址管理与路由选择. 典型协议 : IP. 典型设备 : 路由器

在IP协议中, 通过IP地址来标识唯一主机, 并通过路由表的方式来规划两台主机间数据传输路线.引入概念:IP地址. 网络层的协议都会包含地址信息

数据链路层 :负责相邻设备间的数据帧传输与识别. 典型协议: Ethernet(以太网协议). 典型设备 : 交换机 : 实现数据的交换转发

定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。引入概念 : MAC地址 : 网络硬件(如网卡)的唯一标识

物理层 : 负责物理光电信号的传输 . 典型协议 : 以太网协议. 典型设备 : 集线器等


数据包封装和分用

  • 不同的协议层对数据包有不同的称谓, 在传输层叫做段(segment), 在网络层叫数据包(datagram), 在链路层叫做帧(frame)
  • 应用层数据通过协议簇发到网络上时, 每层协议都要加上一个数据首部(header), 称之为封装.
  • 首部信息中包含一些类似于首部有多长, 载荷有多长, 上层协议是什么等信息
  • 数据封装成帧后发送到传输介质上, 到达目的主机后每层协议再解析掉相应的首部, 根据首部中描述的上层协议字段, 将数据交给对应的上层协议处理, 这个过程称之为分用.

以QQ聊天为例, 简单的看一下网络通信中数据传输流程


网络中的地址管理

认识IP地址

IP协议有两个版本, IPv4和IPv6. 

  • IP地址是在IP协议中, 用来标识网络中不同主机的IP.
  • 对于IPv4来说, IP地址是一个4字节, 32位的无符号整数.
  • 我们通常使用 "点分十进制" 的字符串标识IP地址, 例如192.168.0.1. 用点分割的每一个数字表示一个字节, 范围0~ 255

其实IPv4的地址是不够用的, 截止2020年03月18日, 全球人口总数为75亿多人, 我们每个人不止一台上网设备, 一些企业机构则更多, 所以, iPv4的地址是不够用的, 但人们还是有办法缓解的. 具体为 DHCP : 动态地址分配技术; NAT : 网络地址转换技术. 

但在2019年11月26日15时35分, 位于荷兰阿姆斯特丹的IP地址管理机构正式宣布, 全球43亿(具体是2^32)个 IPV4网址已经全部分配完毕. 但也不慌, 人们也早就在进行IPv6的建设了, 如今已经投入使用. 

IPv6 : 128位也就是16字节, 2^128个ipv6地址, 目前来看, 我们是永远也用不完的. 但IPv6不向前兼容IPv4.

网络通信中的每条数据都必须包含两条信息 : 源IP地址和目的IP地址 -- 即标识从哪来, 到哪去.


那么当一台主机接收到一条网络数据后, 操作系统该如何知道这条网络数据是哪个进程的呢?

我们说, 在操作系统中进程都有其唯一标识的进程的进程id, 那操作系统是不是可以用进程id来判断需要哪个进程接收数据呢?

这是不可以的, 因为进程id不是确定的, 就比如我们正在用QQ聊天, 当我们发送消息后, 我们在等待对方回消息. 这时我们关闭了QQ客户端, 再重启, 这样的话, QQ接收消息的进程id可能已经变了, 那么操作系统接受的消息数据, 就给不到QQ的进程. 所以我们不能用进程id来标识哪个进程接收数据, 这时就引入端口的概念. 

端口 : 在一台主机上唯一标识一个进程, 当操作系统接收到一条数据能够知道应该交给哪个进程处理.

          类型 : 无符号16位整数, 0~ 65536
          特性 : 一个端口只能被一个进程占用, 一个进程可以使用多个端口

就上面例子来说, 当网络中的数据根据IP找到目的主机后, 再根据端口号, 找到接收的进程, 就算进程退出后重启, 进程id发生变化, 但端口号还是未变, 所以操作系统还是能知道这个网络数据是要给哪个进程 .

所以网络通信中的每条数据中除了要有源IP和目的IP外, 还要有源端口和目的端口.


认识MAC地址

  • MAC地址用来识别数据链路层中相连的节点;
  • 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
  • 拿网卡来说, 一般在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).

相关博客 : 戳链接( ̄︶ ̄)↗ : Linux 网络编程套接字(socket) (网络字节序/UDP/TCP) 

发布了232 篇原创文章 · 获赞 720 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/qq_41071068/article/details/104907492