目的:实现不同主机,进程间的通信

实现需要解决的问题:
- 主机和主机之间物理层面必须互联互通。
- 进程与进程在软件层面必须互联互通。
一、概念
(1)网络示意图

交换机:实现跨局域网(短距离数据传输)通信。
路由器:实现数据的路由(路径的选择),进行路径规划。→工作在网络层。
每个路由器中,均存在一个路由表,其主要是存储路由器所爱信号范围内其他路由器的相关信息。
- MAC地址:计算机的硬件地址(固定)。
- IP地址:计算机软件地址,用来标识计算机设备(标记不同主机)。
- 网络端口号:标记同意主机上的不同网络进程。
(2)网络协议------"网络通信标准"
1.OSI七层模型(open system interconnect)
------开放系统互连模型,"理论模型"
1)目的:解决不同设备间网络的通信标准。
2)分类:
要传输的数据信息,如下文件传输,电子邮件等。
数据加密,解密操作,压缩,解压缩。➡保证其安全性。
建立数据传输通道。 ➡建立一次会话。
传输的方式 ( UDP 、TCP)。➡决定数据的数据的传输方式。
实现数据路由,路径规划 。➡ 路由器 ip工作在此层。
封装成帧,点对点通信(局域网内通信),差错检测 。➡交换机 ARP在此工作。
- 物理层
定义物理设备标准、电气特性,比如网线,光纤等传输介质 。➡将数据链路层封装成帧转化成高低电平,即比特流(bit)然后通过传输介质进行传输。
2.TCP/TP模型------"应用模型"
(一)TCP模型------"五层'
- 应用层(应用层、表示层、会话层)
- 传输层
- 网络层
- 数据链路层
- 物理层
(二)IP模型------"四层"
- 应用层(应用层、表示层、会话层)
- 传输层
- 网络层
- 网络接口层(数据链路层、物理层)
(三)各层的网络协议
1)应用层
- HTTP:超文本传输协议
- HTTPS:超文本传输协议(SSL加密算法)
- FTP:文件传输协议➡TCP工作在传输层。
- TFTP:简单文件传输协议 ➡UDP
- MQTT:消息队列遥测传输(物联网协议)
- DNS:域名解析服务器(如:baidu.com)➡将域名转换为IP地址。
2)传输层
先进行路径规划,在进行传输,所以安全性、可靠性高。
- TCP:传输控制协议
- UDP:用户数据协议
直接进行传输,可能会造成数据的丢失,所以安全性不高。
3)网络层
- IP协议:IPV4、IPV6
4)数据链路层
ARP:地址解析协议(将IP地址转换为MAR地址)。
3.IP协议
(一)分类
- IPV4------32位(均表示IP地址)
- IPV6------128位(解决了IPV4地址不足的问题)
在windows上查IP地址:windows+R➡输入cmd➡输入命令ipconfig
在虚拟机上查IP地址: 输入命令ifconfig
(二)IPV4概念
1)表达形式:
192.168.0.140 (用户表现形式)点分十进制
11000000 10101000 00000000 01000001 (计算机存储形式)4 * 8 bit
2)组成
IP地址 = 网络位 + 主机位
判断IP地址的网路位和主机位时,需要搭配子网掩码查看:
子网掩码全为1的IP地址的网络段,子网掩码是0的部分对应IP地址的主机位
<192.168.0.121/24 ➡24:网络位的位数>
3)特殊的IP地址
- 网络位:该IP地址处于哪个网段(局域网)内。
- 主机位:这个网段(局域网)第几台主机。
- 网段号:IP地址网络位不变,主机位全为0,则为该IP地址的网段号
如:192.168.1.0 网段内(网段内的IP能直接通信)
- 广播号:IP地址网络位不变,主机位全为1,则为该IP地址的广播号
如:192.168.1.255(向广播号发送信息,所有局域网内IP都能收到此信息)
- 网关地址:IP地址网络位不变,主机位为
如:192.169.1.1
4.IP地址的划分
(1)A类地址:
范围:1.0.0.0 - 126.255.255.255
子网掩码:255.0.0.0 126*2^24
用于管理大规模网络
私有IP地址:10.0.0.0 - 10.255.255.255
127.0.0.0 回环地址
(2)B类地址:
范围:128.0.0.0 - 191.255.255.255
子网掩码:255.255.0.0 2^16
管理大中规模网络
私有IP地址:172.16.0.0 - 172.31.255.255
(3)C类地址:
范围:192.0.0.0 - 223.255.255.255
子网掩码:255.255.255.0 2^8
管理中小规模网络
私有IP地址:192.168.0.0 - 192.168.255.255
(4)D类地址:
224.0.0.0 - 239.255.255.255
组播和广播使用
(5)E类地址:
240.0.0.0 - 255.255.255.254
用来进行实验
公有IP:由电信公司直接分配,并需要付费的IP地址, 可以直接访问internet
私有IP:不能直接访问internet的ip地址
节省ip地址
5.端口号网络
------16位整形数据(unsigned short)
(1)功能
标记同一主机上的不同网络进程
(2)范围
0~65535
(3)分类
- 任何TCP/IP实现所提供的服务都用1-1023之间的端口号。
http : 80
FTP: 20/21
TFPT: 69
HTTPS: 443
- 端口号从1024-49151是被注册的端口号,被IANA指定为特殊服务使用。
MQTT:1883/8883
- 从49152-65535是动态或私有端口号。
(4)数据包封装和解封过程

6.网络配置
-
- ping ip地址/域名
查看当前主机和IP/域名所对应的这台主机网络是否联通
ping www.baidu.com
-
- ifconfig
在Linux查看当前主机的IP地址
ipconfig
在Windows上查看当前主机的IP地址
-
- 网络配置的步骤
1)虚拟机--》设置--》网络适配器---》桥接模式
2)编辑--》虚拟网络编辑器--》更改设置--》VMnet0---》桥接至--》当前PC正在上网的网卡上--》应用--》确定
3)修改网络配置文件
sudo vim /etc/network/interfaces
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet dhcp
4)重启网络服务
sudo /etc/init.d/networking restart
- 测试
ping www.baidu.com
7.网络协议------UDP
UDP:传输层
用户数据报协议(User Datagram Protocol)
1)网络编程模型
B/S模型:browser/server(浏览器/服务器)
-
客户端是通用的客户端(浏览器)
-
一般只做服务器开发
-
客户端要加载的数据均来自服务器
C/S模型:client/server(客户端/服务端)
-
客户端是一个专用的客户端
-
服务器和客户端都需开发
-
客户端可保存资源,本地加载,无需所有数据都请求服务器