网络基础篇:网络模型

目录

一、初识网络

二、网络的分层

OSI七层模型

TCP/IP四层模型

网络与系统的关系

网络传输基本流程

 数据包封装和分用

三、IP地址与MAC地址

认识IP地址

认识MAC地址

IP与MAC的关系


一、初识网络

        同一台设备上的进程间通信有很多种方式 :

  1. 管道(Pipe):用于父子进程之间的通信。
  2. 命名管道(Named Pipe):也称为FIFO(First In First Out),可以在不相关的进程之间通信。
  3. 消息队列(Message Queue):允许进程之间通过发送和接收消息来通信。
  4. 信号(Signal):用于通知接收进程某个事件的发生。
  5. 共享内存(Shared Memory):多个进程可以访问同一块内存区域,从而进行通信。
  6. 信号量(Semaphore):用于同步不同进程之间的访问共享资源。

 当我们考虑进程间通信时,我们实际上是在考虑如何在不同的实体(进程)之间交换信息。然而,当这些实体跨越不同的设备或系统时,我们就需要引入更高级别的通信机制,即网络

网络是一种允许设备(如计算机、服务器、移动设备等)通过某种形式的连接(如电线、光纤、无线电波等)进行通信的系统。网络的主要目的是使这些设备能够共享资源、传输数据、协调操作等。

而跨网络通信同时也会引出一系列的问题:

1、如何保证将数据交给下一跳主机。

2、如何进行路径选择,怎样知晓下一跳去哪。

3、如何使用收到的数据。

4、如果发生了丢包和错误应该怎么处理。

.......

要解决上述问题,那么就需要制定一系列的协议来规范,而不同协议的划分其实也就是实现若干个软件层,网络结构分层是计算机网络设计中的一个重要概念,它将复杂的网络通信过程划分为若干个独立的、相对简单的层次,每个层次都有其特定的功能和协议。这样做的目的是为了简化网络设计和实现,提高网络的可维护性和可扩展性。

二、网络的分层

        在软件上,大部分的解决方案都是层状的,完成了解耦合,便于维护。

OSI七层模型

OSIOpen System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
  1. 物理层:传输比特流,提供物理连接。

  2. 数据链路层:在物理层上建立逻辑连接,进行帧同步、差错控制等。

  3. 网络层:负责路由和转发数据包,实现不同网络之间的通信。

  4. 传输层:提供端到端的可靠传输服务,如TCP或不可靠的数据报服务,如UDP。

  5. 会话层:建立、管理和终止会话。

  6. 表示层:确保数据在不同系统间的兼容性,如数据格式转换、加密解密等。

  7. 应用层:提供网络服务给应用程序,如HTTP、FTP、SMTP等。

OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输,但是根据实用性来看,只用四层模型也可以解决问题,所以我们接下来来看 TCP/IP四层模型

TCP/IP四层模型

TCP/IP四层模型是计算机网络中广泛使用的一种分层模型,它简化了网络通信的过程,并使得不同系统之间的互操作性更加容易。

  • 应用层:HTTP、FTP、SMTP、DNS
  • 传输层:TCP\UDP
  • 网络层:IP、IGMP、ICMP
  • 数据链路层:ARP
数据链路层 : 负责设备之间的数据帧的传送和识别 . 例如网卡设备的驱动、帧同步 ( 就是说从网线上检测到什么信号算作新帧的开始) 、冲突检测 ( 如果检测到冲突就自动重发 ) 、数据差错校验等工作 . 有以太网、令牌环网, 无线 LAN 等标准 . 交换机 (Switch) 工作在数据链路层 .
网络层 : 负责地址管理和路由选择 . 例如在 IP 协议中 , 通过 IP 地址来标识一台主机 , 并通过路由表的方式规划出两台主机之间的数据传输的线路( 路由 ). 路由器 (Router) 工作在网路层 .
传输层 : 负责两台主机之间的数据传输 . 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
应用层 : 负责应用程序间沟通,如简单电子邮件传输( SMTP )、文件传输协议( FTP )、网络远程访问协议(Telnet )等 . 我们的网络编程主要就是针对应用层

网络与系统的关系

应用层也就是用户层,对应shell外壳,软件。

传输层和网络层对应系统调用接口,操作系统,在操作系统内核中。

数据链路层对应驱动程序。

物理层比如网卡,底层硬件。

网络结构与系统间的对应关系体现在它们如何通过层次化的方式协同工作,以实现信息的有效传输和处理。每一层都有其特定的功能和协议,这些功能和协议共同支持了网络结构的整体功能。同时,系统的层次结构也反映了网络结构的不同层次,使得网络与系统之间的交互更加清晰和高效。

网络传输基本流程

由于每一层使用的是一样的协议,所以每一层所看到的数据内容其实是一样的,也就相当于每一层的间接通信。

 数据包封装和分用

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

每个协议都必须解决两个问题:

1、将报头和有效载荷分离。

2、如何将自己的有效载荷交付给上层的协议。 

如下图所示:

三、IP地址与MAC地址

认识IP地址

IP地址(Internet Protocol Address)是指互联网协议地址,用于唯一标识网络中的终端。每个连接到互联网的计算机或设备都会被分配一个或多个IP地址。

IP 协议有两个版本 , IPv4 IPv6,IPv4是最常用的,IPv6还未完全推广。
IP地址是在IP协议中, 用来标识网络中不同主机的地址;
对于IPv4来说, IP地址是一个4字节, 32位的整数;
我们通常也使用 "点分十进制" 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;

认识MAC地址

MAC地址(Media Access Control Address)也称为局域网地址或物理地址,用于唯一标识网络设备(如网卡)的物理位置。

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

IP地址和MAC地址在网络通信中各自承担着不同的角色,它们共同确保了数据在网络中的准确、高效传输。

IP与MAC的关系

IP地址和MAC地址分别在网络层和数据链路层工作,它们共同协作以确保数据包在网络中的正确路由和最终交付。

IP地址负责跨网络的寻址,而MAC地址则用于同一网络内的直接通信。ARP协议充当了这两者之间的桥梁,实现了从IP到MAC的地址转换。

IP就是当前主机到目标的起点与终点,而MAC地址就是在路程中下一跳的地址。

通俗一点来说,IP相当于你从一个地方到另一个地方的导航,而MAC则是你在途中所需要乘坐的交通工具。

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值