【linux网络编程】网络基础

在这里插入图片描述

一.网络基础

1.MAX地址

**网卡:**又称为网络适配器或网络接口卡NIC,但是现在更多的人愿意使用更为简单的名称“网卡”

通过网卡能够使用不同的计算机之间链接,从而完成数据通信等功能。(下图windows网卡样式)

image-20220928103220259

首先MAC地址是固化在网卡中的,每个MAC地址都是6个字节(48个bit)。

MAC地址分为两个部分:第一个部分是组织唯一标识符;第二个部分是网络接口标识符。

MAC地址是全球唯一的,由IEEE802标准会规定,标准会给厂家分配前三个字节,即MAC地址组织唯一标识符,后三个字节是厂家自家分配。

网络适配器 :作用 收发数据

mac地址 作用: 用来标识一块网卡 6个字节 物理地址(下图linux样式)

img

2. IP地址

image-20220928103701251

概述

计算机要实现网络通信,就必须要有一个用于快速定位的网络地址。IP地址就是计算机在网络中的唯一身份ID,与现实世界中快递的配送需要有具体的住宅地址是一个道理。( ip用来标识一台主机 )

ip地址以圆点分隔号的四个十进制数字表示,每个数字从0到255,如某一台主机的ip地址为:128.20.4.1

ipv4 :ip地址就是4字节 32位

ipv6 :128位 16字节

IP地址的组成

IP地址 = 网络地址 + 主机地址(又称:主机号和网络号组成)

想想,为什么会有行政区划的划定(国家、省市区、街道等),为了更加高效的进行管理、定位;

相同的,我们通常将网络也可以分为很多的子网络,每个子网络有自己的网络地址,每个子网络由很多的计算机组成(当然也可以包含另外一个子网络)。

我们要找到指定的IP地址,只要先找到指定的网络地址,然后再该网络内找到对应的主机地址即可。

IP地址是一个 4 * 8bit(1字节)由 0/1 组成的数字串(IP4协议)

img

以图片 的 IP地址 192.168.1.168, 子网掩码 255.255.255.0(下文有详解) 为例, 这个地址中包含了很多含义:

192.168.100.168(IP地址) = 192.168.1.0 (网络地址) + 0.0.0.168(主机地址

网络地址、主机地址是怎么计算出来的呢?我们需要先简单学习下子网掩码

3 .子网掩码(subnet mask)

参照:《百度百科-子网掩码

IP中的网络地址和主机地址各是多少位表示呢?如果不指定,就不知道哪些位是网络号、哪些是主机号,这就需要通过子网掩码来实现。

概述

子网掩码又叫网络掩码、地址掩码、子网络遮罩,是一个 4 * 8bit(1字节)由 0/1 组成的数字串。

它的作用是屏蔽(遮住)IP地址的一部分以划分成网络地址和主机地址两部分,并说明

子网掩码不能单独存在,它必须结合IP地址一起使用。

子网掩码的规则

长度 为 4 * 8bit(1字节),由 连续的1 以及 连续的0 两部分组成,

例如:11111111.11111111.11111111.00000000,对应十进制:255.255.255.0

假设,局域网中 计算机A 的IP地址为 192.168.1.1,子网掩码为 255.255.255.0, 如下图所示:

img

网络地址: IP 地址中被 连续的1 遮住的部分,即 11000000.10101000.00000001.00000000, 对应的网络地址:192.168.1.0

主机地址: IP 地址中被 连续的0 遮住的部分,即 00000000.00000000.00000000.00000001, 对应的网络地址:0.0.0.1

排除 该网络 两个特殊地址:

广播地址:192.168.1.255  (主机号全为11111111)

网络地址:192.168.1.0   (主机号全为00000000)

该子网最大的主机数:2的8次方 256 - 2

其他信息:

A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。

通过子网掩码计算网络地址

计算过程是这样的:

1. 将IP地址和子网掩码都换算成二进制;

2. 将两者进行 “与运算”,得到网络地址。

计算过程:上下对齐, 1位1位的算, 1与1=1 , 其余组合都为0

1 0 1 0

与运算  1 0 1 1


结果   1 0 1 0

假设 IP地址为 192.168.1.168,子网掩码为 255.255.255.0, 则网络地址换算步骤如下:

1)将IP地址和子网掩码分别换算成二进制

192.168.1.168 换算成二进制为 11000000.10101000.00000001.10101000
    255.255.255.0 换算成二进制为 11111111.11111111.11111111.00000000

2)将二者进行与运算

11000000.10101000.00000001.10101000

与运算  11111111·11111111·11111111·00000000


结果   11000000.10101000.00000001.00000000

3) 将运算结果换算成十进制: 192.168.1.0

立即实践

以用网线直接将两台计算机连起来为例:

img

下面是几种IP地址设置, 看看在不同设置下网络是通还是不通.

实验编号 1号机器 2号机器 网络连通
IP地址 子网掩码 网络地址 IP地址 子网掩码 网络地址
1 192.168.0.1 255.255.255.0 192.168.0.0 192.168.0.200 255.255.255.0 192.168.0.0 Y
2 192.168.0.1 255.255.255.0 192.168.0.0 192.168.1.200 255.255.255.0 192.168.1.0 N
3 192.168.0.1 255.255.255.192 192.168.0.0 192.168.0.200 225.225.225.192 192.168.0.192

说明:第1种情况能通是因为这两台计算机处在同一网络192.168.0.0, 所以能通,而2,3种情况下两台计算机处在不同的网络,所以不通.

网络地址的计算过程同上,不再赘述。

结论:

用网线直接连接 或 通过 HUB(集线器)、普通交换机链接的计算机必须处于同一网络(网络地址) 并且主机地址必须不一样 才能通信。

注意:同一网络不是指物理连接,而是指网络地址.

举个例子,两台计算机链接到相同路由器(简单理解为同一个链路),如果他们设置的网络地址不一致,则他们也是不能通信的。

扩展:IP网段表示法

举例说明:192.168.0.0/24

192.168.0.0: 网络地址

24: 表示子网掩码二进制表示法中,连续的 1 的 个数,这里为:11111111·11111111·11111111·00000000,即 255.255.255.0

linux命令行设置ip地址:

ifconfig ens33 192.168.220.132 netmask 255.255.255.0

ens33是网络名称 192。168.220.132 设置的IP newmask 子网掩码 255.255.255.0

4.端口(port)

1、端口的本质:无符号16位整型
2、端口的作用:在机器中能唯一标识一个应用程序(进程)。
引申:一个端口只能被一个进程所绑定,一个进程可以绑定多个端口

port:占两个字节,范围0-65535;0-1023都是知名端口,1024-65535为自定义

image-20220928193437101

由于ip地址可以确定唯一的一台主机,端口可以确定一个进程,所以一个ip地址+一个端口就可以唯一确定是哪一台主机上的哪个进程在发送信息。

5.OSI七层模型

image-20220928190212597

  1. 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。(双绞线接口类型, 光纤的传输速率等等)

  2. 数据链路层:定义了如何让格式化数据以帧为单位进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。如:串口通信中使用到的115200、8、N、1 ( mac 负责收发数据)

  3. 网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。(ip 给两台主机提供路径选择)

  4. 传输层:定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。( port 区分数据递送到哪一个应用程序)

  5. 会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。(建立连接)

  6. 表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。(解码 )

  7. 应用层:是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。

6.TCP/IP四层模型

TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。如下图所示:

image-20220928133244805

一般在应用开发过程中,讨论最多的是TCP/IP模型。

猜你喜欢

转载自blog.csdn.net/weixin_58024114/article/details/127119273