前言:对于计算机网络部分,我们主要学习的是TCP/IP协议栈。而TCP/IP协议栈并无法将各种的协议进行一个合理的区分,因此,在大学本科教育中我们通常讲解的是IOS七层网络模型。
协议:简单的理解就是通信双方相互交流的一种约定,也就是说只有通信双方满足这样的约定才能够相互通信。然而,我们也说过,各种协议必须要被软件实现,才能够被我们所使用。
那么,对于我们的http协议而言,实现http协议的客户端程序有curl,浏览器等工具,服务端有Apache、Nginx等这样的静态服务器软件
(二)
什么是Mac地址、什么是网桥、什么是交换机
前言:MAC地址,用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节(48位),使用ifconfig命令可以查看: ether 08:00:27:c1:cd:2b
。其中,前三个字节是由IEEE的注册管理机构RA负责给不同厂家分配的代码(高位24位),也称为“编制上唯一的标识符”(Organizationally Unique Identifier),后三个字节(低位24位)由各厂家自行指派给生产的适配器接口,称为扩展标识符(唯一性)。
网桥:网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。使得同一个网段内的通信不会冲突,而不同网段内的通信可以顺利进行。
交换机:多功能交换机,在局域网内,交换机和网桥的功能几乎一样。
路由器:路由器(Router)又称网关设备(Gateway)是用于连接多个逻辑上分开的网络。当数据从一个网段传输到另一个网段时,可通过路由器的路由功能来完成。
(1)交换机通过Mac地址表使得网段内的所有的主机可以相互通信
(2)路由器通过路由表使得不同网段之间的主机可以相互通信
- 什么是IP
IP = 网络号+主机号
一个字节(byte)是
8位(bit),IP由
32位组成,一共是
4个字节
例如:IP:
172.16
.19
.245 netmask
255.255
.255
.0 broadcast
172.16
.19
.255
网络号:
172.16
.19
.0
主机号:
172.16
.19
.245
那么IP一共有:
0.0
.0
.0 ----
255.255
.255
.255
256 x
256 x
256 x
256 =
4294967296
- IP划分
A 类地址
第一段为网络号,后三段为主机号
0000000
-01111111
1
-127
其中:
127用为本地lo还回地址
那么A类地址的网络地址有:
127
那么A类地址的主机地址有:
2^
24 - 网络地址 - 广播地址 =
2^
24 -
2
netmask:
255.0
.0
.0(用户标示网络地址)
broadcast
255.255
.255
.255
私有地址:
10.0
.0
.0网段为私有地址网络
B 类地址
前两段为网路号,后两段为主机号
1000000.00000000
-10111111.11111111
128
-191
那么B类地址的网络地址有:
2^
14(前两个位不变,只是后
14位变化)
那么B类地址的主机地址有:
2^
16 - 网络地址 - 广播地址 =
2^
16 -
2
netmask:
255.255
.0
.0(用户标示网络地址)
私有地址:
172.0
.0
.0
-172.31
.0
.0 网段为私有地址网络
C 类地址
前三段为网路号,后一段为主机号
11000000.00000000
.00000000
-11011111.11111111
.11111111
192
-223
那么C类地址的网络地址有:
2^
21(前三位不变,只是后
21位变化)
那么C类地址的主机地址有:
2^
8 - 网络地址 - 广播地址 =
2^
8 -
2
netmask:
255.255
.255
.0(用户标示网络地址)
私有地址:
192.168
.0
.0~
192.168
.255
.0 网段为私有地址网络
D 类地址:
组播地址
E 类地址:
大学等科研机构作为科学研究使用
(三)
简单的聊聊什么是路由表
前言:对于路由表而言,可以认为的写,也可以是路由器自动记录识别
- 路由器是如何通过路由表实现不同网段之间的通信
目标地址由
"下一跳(网关)" 来实现
(四)
单台主机之间的通信如何实现
前言:单台主机站在内核空间
和用户空间
将主机间的通信画图给大家描绘一下,并且解释TCP/IP协议栈的解包和封包的过程
给大家画图介绍,ARP地址如何解析
- 主机间通信
Mac地址:本地通信
实现本地局域网,不跨路由器的网络通信
IP地址:标示主机通信,实现源主机和目标主机之间的通信
主机内核端口:标示进程通信,实现一个主机上的哪个进程进行通信
基于TCP/IP协议栈解析封包与解包
物理层:封装帧报文首部
以太网帧:MTU(
1500字节)
互联网层:封装
IP报文首部
传输层:封装TCP报文首部
应用层:各种应用协议的报文首部
(五)
网络配置工具详解
(这里很重要)
前言:ifcfg类命令,ip类命令, nm类命令
一:ifcfg类命令 (需要安装 net-tools 包)
适用于红帽5、6、7
ifconfig :查看或设置
IP地址
route :查看或设置路由表
netstat :通常查看主机的服务,端口,和服务的状态
ifup、ifdown:启用网卡或关闭网卡
- (1)ifconfig命令
对比6、7的网络信息
enp0s3: flags=
4163<UP(已经启用),BROADCAST(支持广播),RUNNING,MULTICAST(支持多播)> mtu
1500
inet
192.168
.23
.11 netmask
255.255
.255
.0 broadcast
192.168
.23
.255
inet6
fe80::
a00:
27
ff:
fec1:cd2b prefixlen
64 scopeid
0x20<link>
ether
08:
00:
27:
c1:
cd:
2b txqueuelen
1000(传输队列长度) (Ethernet)
RX(接受的数据包) packets
28355 bytes
10835366 (
10.3 MiB)
RX errors(错误包数量)
0 dropped(丢包数量)
0 overruns
0 frame
0
TX(传出的数据包) packets
15286 bytes
2489410 (
2.3 MiB)
TX errors(错误包数量)
0 dropped(丢包数量)
0 overruns
0 carrier
0 collisions
0