网络 基础

目录

1、协议:

[2、OSI 七层 模型:](#2、OSI 七层 模型:)

[3、TCP/IP 五层 / 四层 协议](#3、TCP/IP 五层 / 四层 协议)

[3.1、为什么要有TCP / IP 协议?](#3.1、为什么要有TCP / IP 协议?)

3.1.1、主机之间变远产生的问题:

3.1.2、TCP/IP协议于操作系统的关系

4、局域网

4.1、Mac

[4.1.1 在Linux内使用指令 ifconfig 进行Mac地址的查看](#4.1.1 在Linux内使用指令 ifconfig 进行Mac地址的查看)

4.2、数据碰撞

4.3、封装与解包

[5、跨网络传输 与 IP](#5、跨网络传输 与 IP)

[5.1 、在Linux内使用指令 ifconfig 进行Mac地址的查看](#5.1 、在Linux内使用指令 ifconfig 进行Mac地址的查看)

[5.2 、路由器与跨网络传输](#5.2 、路由器与跨网络传输)

5.3、跨网络运输也需要从上到下的封装和解包

6、IP和Mac的区别


1、协议:

协议,一种约定,计算机之间的传输媒介是光信号和电信号,通过 "频率" 和 "强弱" 来表示 0 和 1 这样的信息,要想传递各种不同的信息, 就需要约定好双方的数据格式。

2、OSI 七层 模型:

  • OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型, 是一个逻辑上的定义和规范;
  • 把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
  • OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
  • 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七 个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
  • 但是, 它既复杂又不实用;
  • 其实在网络的角度,OSI定的协议七层模型是非常完善的,但是在实际操作的过程中,会话层、表示层、是不可能接入到操作系统的,且会话层、表示层的模型构造十分的复杂,具体表现不能用一层来进行实现,内部还需要进行多次的分层结构。
  • 所以最终在工程的实践中,最终落地的是五层协议。

3、TCP/IP 五层 / 四层 协议

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇. TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  • 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆 (现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决 定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层。
  • 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测 到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太 网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层。
  • 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规 划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层。
  • 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标 主机。
  • 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问 协议(Telnet)等. 我们的网络编程主要就是针对应用层。

物理层我们考虑的比较少. 因此很多时候也可以称为 TCP/IP四层模型。

一般而言:

  • 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
  • 对于一台路由器, 它实现了从网络层到物理层;
  • 对于一台交换机, 它实现了从数据链路层到物理层;
  • 对于集线器, 它只实现了物理层;

但是并不绝对. 很多交换机也实现了网络层的转发; 很多路由器也实现了部分传输层的内容(比如端口转发);

3.1、为什么要有TCP / IP 协议?

首先,即使是单机,计算机的内部也是存在各种各样的协议,比如:其他设备和内存通信时会有内存协议;其他设备和磁盘进行通信,会有磁盘协议。

其次,网络通信的最大特点也是最大的问题:主机之间的距离变远了,任何通信特征的变化一定会带来新的问题,有问题就必须要解决问题,所以就需要产生新的协议。

3.1.1、主机之间变远产生的问题:

1、如何将数据发送到路由器?

2、如何把数据发送到对应的主机上?(网络上主机太多了,如何进行定位要发送到的主机?

3、数据发送后,如果丢失了怎么办?

4、发送数据只是手段,不是目的,使用数据才是目的?接收到数据的主机将如何处理数据?如何使用数据?

以上都需要使用协议进行解决,所以TCP/IP协议的本质就是一种解决方案,而为什么需要有TCP/IP协议的原因就是主机之间的距离变远了。

3.1.2、TCP/IP协议于操作系统的关系

在TCP/IP 协议的五层分层模型中,传输层和网络层都是在操作系统内部进行实现的,所以网络层和传输层都必须要遵守TCP/IP协议栈的规矩,即便是两个不同的操作系统,它们内部的传输层和网络层都必须要遵守TCP/IP协议,因为这事关之后的网络通讯、操作系统互相通讯的问题。

4、局域网

局域网(Local Area Network,简称LAN)是一种在有限区域内(如一个学校、一栋大楼、一个企业或一个家庭内部)将各种计算机、外设、数据库等互相连接起来,实现资源共享和信息交换的计算机网络。局域网具有覆盖范围小、传输速率高、误码率低、易于配置和管理等特点。

简单来说,局域网就是使用了同一个网络线路的,就是局域网

4.1、Mac

局域网是能够进行直接通信的,而在通信的过程中,每一台主机都需要有一个唯一的标识符:Mac

1、MAC地址(Media Access Control Address)是一个用于唯一标识网络上每个设备的物理地址

2、MAC地址是48位长的二进制数,以及6个字节,一般用16进制数字加锁冒号的形式来表示,例如:08:00:27:03:fb:19

3、在局域网中,当设备需要与其他设备通信时,它们会使用MAC地址来识别对方。

4、MAC地址主要用于局域网内的链路层通信,用来识别数据链路层中相连的节点;。当数据包从一台设备发送到另一台设备时,它们首先在局域网内使用MAC地址进行传输。

5、MAC地址是唯一的值,在出厂之前就设置好了,且是集成于网卡的,在计算机开机时,会根据协议将网卡内部的mac地址读取到操作系统中。

4.1.1 在Linux内使用指令 ifconfig 进行Mac地址的查看

4.2、数据碰撞

以太网中,任何时刻,只允许一台机器向网络中发送数据

如果有多台同时发送,会发生数据干扰,我们称之为数据碰撞

所有发送数据的主机要进行碰撞检测和碰撞避免,例如:例如让发送数据的主机进行一段时间的休眠,同时休眠的时候,可以让其他的主机进行数据的发送。

没有交换机的情况下,一个以太网就是一个碰撞域

局域网通信的过程中,主机对收到的报文确认是否是发给自己的,是通过目标Mac地址判定

4.3、封装与解包

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

对于每一层增加的封装,我们可以称作报头,当每一层的报头进入下一层后,这些报头会和数据 合体变成一个有效的荷载,而新一层的封装变成了新的报头。

如上图所示,网络数据之间的传输正是从用户将数据输入应用层,随后由应用层开始进行一层一层的往下进行封装,直到数据链路层,通过局域网之间的Mac地址的联系将封装的数据进入另一个主机当中,由主机2的数据链路层开始,一层一层的往上将数据进行解包,直到另一个用户获取到,用户A输入的数据。

这个过程看似简单,但实际上还是有问题产生的:那就是每一层解包报头后,剩下的有效荷载,应该交给上层哪一种协议? (每一层都有许多的协议,如下图所示)

5、跨网络传输 与 IP

  • IP协议有两个版本, IPv4和IPv6. 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默认都是指IPv4
  • 对于IPv4来说, IP地址是一个4字节, 32位的整数;
  • 我们通常也使用 "点分十进制" 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个 字节, 范围是 0 - 255;

5.1 、在Linux内使用指令 ifconfig 进行Mac地址的查看

5.2 、路由器与跨网络传输

跨网段的主机 的数据传输,这些传输的数据从一台计算机到另一台计算机 传输的过程需要经过一个或多个路由器,如下图所示:

如果路由器要进行数据 的跨网络传输则至少需要集联两种网络,链接两个网络,所以路由器可以配上多张网卡,如下图所示,左边是以太网网卡,右边是令牌环网网卡。

5.3、跨网络运输也需要从上到下的封装和解包

如图所示,传递数据要 有 起始地址 和 最终的地址,这两个地址都在报文内部。

数据从上到下要进行封装,也就是添加报头,但是在网络层还需要进行一个操作,就是路由操作。

因为要进行跨网络操作传输操作,所以传输的数据 并不是传输给当前局域网内部的,所以它会把数据推送给路由器

路由的操作并不是判断数据该去哪里,而是判断数据最终进入的地方是否是当前局域网内部

但是数据也并不是直接由路由操作从网络层交给路由器,而是先向下进行交付继续封装,也就是添加报头。

且这个报头内部要添加路由器网卡地址,然后将整个报文进入当前局域网,让路由器进行接收

然后让路由器确认报文,让路由器的网络层进行解包。

同时路由器的网络层 也需要进行一个路由的功能,当查询到数据要进入的地址是另一个直连的网段,则会解包后的报文,再度进行封装,然后传递给另一个局域网,让那个局域网对报文进行解包。

6、IP和Mac的区别

1、唯一性:

  • IP地址:在全局范围内(除非使用私有地址)必须是唯一的,但可以被管理员更改或重新分配。
  • Mac地址:每个网络设备的Mac地址都是唯一的,且不可更改,由制造商在设备制造时分配。

2、可变性:

  • IP地址:具有可变性,可以根据需要进行更改或重新分配。
  • Mac地址:具有固定不变性,一旦分配就不能被用户更改。

3、层次与位置:

  • IP地址:位于网络层,用于标识逻辑网络上的设备和主机,支持跨网络通信。
  • Mac地址:位于数据链路层,主要用于标识局域网内的物理设备,不能跨越不同网络。

4、长度与表示:

  • IP地址:目前主流是32位长(IPv4),也有128位长(IPv6),通常用十进制点分表示法表示。
  • Mac地址:由48位二进制数组成,通常用16进制表示,并且通常以冒号分隔的六组两位16进制数表示。

5、表示形式:

  • IP地址:IP 表示的是传输的数据 最终抵达的地址
  • Mac地址:Mac 表示的是传输的数据 需要进入的下一个阶段时,该阶段所处在的地址
相关推荐
雪碧聊技术3 天前
Java网络编程1 - 介绍网络编程、网络编程三要素
网络·域名·协议·ip·网络通信·ipv4·ipv6
云计算DevOps-韩老师4 天前
【网络云计算】2024第48周-每日【2024/11/18】小测-实操题--二层交换机配置vlan
网络·云计算·数通·网络基础·网络基础考试·网络云运维·交换机基础
网络之路Blog11 天前
简简单单的UDP
网络·网络协议·udp·网络基础·网络之路一天·计算机网络基础·路由交换基础
氦客13 天前
MQTT协议解析 : 物联网领域的最佳选择
物联网·mqtt·协议·解析·发布订阅模式·iot·broker
星 野22 天前
IEC104协议与示例解析以及模拟工具的使用
信息与通信·信号处理·协议
ZachOn1y1 个月前
计算机网络:数据链路层 —— 扩展共享式以太网
网络·计算机网络·协议·以太网·数据链路层
qianbo_insist1 个月前
openrtp ps流和纯rtp流
c++·网络协议·tcp/ip·协议
洛寒瑜2 个月前
【读书笔记-《网络是怎样连接的》- 1】Chapter1-从Web浏览器开始
笔记·http·socket·网络基础
无极9212 个月前
常见协议及其默认使用的端口号
网络·安全·网络安全·协议·端口·通信·常识
王木木很酷_2 个月前
【计算机网络】网络层
网络·计算机网络·协议·ip·网络层·icmp·子网