本片文章主要讲述网络的基本概念。
将多个节点通过特定的介质联系起来的一种关系。
以计算设备作为节点,通信线路作为介质的网络。
网络的概念
- 什么是网络:将多个节点通过特定的介质联系起来的一种关系
  例如:铁路网、交通网、人际关系网 
- 计算机网络:以计算设备作为节点,通信线路作为介质的网络
 
- 英特网:把许多网络连到一起的网络
 
- 网络起源于美苏冷战,最初是美国国防部高级研究计划局的一个项目,后来转为民用
 
网络功能
- 数据与信息的传输
 
- 实现资源共享
 
- 打破时空限制,优化资源配置
 
网络分类
网络性能衡量指标
- 带宽:通信信道支持的最高数据频率(Mb/s, kb/s, Gb/s)
 
- 传输速率:每秒传输多少个bit数据
 
- 吞吐量:单位时间内通过某个网络的数据量
 
- 时延:
- 传输时延:发送数据时候,到完成发送
 
- 传播时延:电磁波、电信号传输需花费的时间
 
- 处理时延:网络数据交换节点存储、转发所必需的处理时间
 
- 排队时延:网络节点队列分组、排队所经历的时间
 
 
常用概念
1 2 3 4
   | 客户端:请求服务的一方 服务器:提供服务的一方 通信:数据传输过程 协议:数据组织、编码、传输、校验、解码的规则
   | 
 
网络通信要解决的几个问题
| 客户端 | 
服务器 | 
| 如何找到对方查阅地址(DNS) | 
如何让对方联系自己公布自己的网络地址 | 
| 如何联系对方主动敲门(发起网络连接) | 
如何让对方联系自己开门迎客(监听、接收连接) | 
| 如何正确传输数据通信协议 | 
如何正确传输数据通信协议 | 
| 如何让对方理解自己的意思应用协议 | 
如何让对方理解自己的意思应用协议 | 
| 如何结束对话关闭连接 | 
如何结束对话释放资源 | 
   					   
协议
1 2 3 4
   | 生活中的协议:汽车转向灯、交通信号灯 协议是一组规则,数据组织、发送、传输、解析的规则 协议由第三方机构事先指定,或通信双方约定 协议需要通信各方共同遵守,否则就无法完成正常通信
   | 
 
网络模型
OSI/ISO七层模型 –> 网络通信标准化流程
ISO(国际标准化组织)
OSI(开放系统互联模型)
OSI七层模型如下
1 2 3 4 5 6 7
   | 应用层 : 提供用户服务,具体功能有程序体现 表示层 : 数据的压缩优化和加密 会话层 : 建立应用连接,选择合适的传输服务 传输层 : 提供传输服务,进行流量控制 网络层 : 路由选择,网络互连 链路层 : 进行数据交换,控制具体消息收发,链路连接 物理层 : 提供物理硬件传输,网卡,接口设置,传输介质
   | 
 
OSI七层模型优势:
1 2 3
   | 建立了统一的网络工作流程  每个层次功能清晰,各司其职 降低了耦合度,方便了开发流程
   | 
 
分层原则:
1 2
   | 高内聚: 模块功能尽可能单一,不要相互掺杂 低耦合: 模块之间的关联影响尽可能少
   | 
 
四层模型 (TCP/IP模型)
将应用层,表示层,会话层统一为应用层,便于开发实践
五层模型
数据的传输流程
1 2 3
   | 发送端由应用层逐层根据协议添加首部信息,最终在物理层实现发送 发送的消息经过中间多个节点转发到达目标主机 目标主机根据协议逐层解析首部,最终到达应用层获取数据
   | 
 
消息发送的流程
1 2
   | 封装:每个层次接收上层传递的数据,加入本层的控制信息,传递给下一层 解封:每个层次接收下层传来的数据,读取并去掉控制信息,将数据送给上一层处理
   | 
 
数据包如何寻找路径
1 2 3
   | 网络节点分配一个IP地址(全世界独一无二的) 数据包中,包含了数据的源地址、目标地址 根据路由表中记录的路径信息,将数据投递给下一站,循环直至数据送达对方
   | 
 
网络地址表示方式
网络主机:  在网络中标识一台主机的标志
1 2 3 4 5
   | 本地使用 : 'localhost'  		 '127.0.0.1'
  网络使用 : '192.168.56.131' 		 '0.0.0.0'
   | 
 
ifconfig : 查看本地网络信息 (Unix, Linux)
ipconfig : 查看本地网络信息 (Windows) 
IP地址 : 在网络上查找一台主机的网络位置
1 2 3 4 5 6 7 8 9 10 11 12
   | IPv4 : 点分十进制 192.168.1.2   每部分取值:0--255
  IPv6 : 扩充地址的范围
  ping [ip] : 网络连接测试
  特殊IP    127.0.0.1  本机测试IP    0.0.0.0  本机自动获取能够使用的网卡IP    192.168.1.0  表达一个网段    192.168.1.1  表示网关地址    192.168.1.255  广播地址
   | 
 
域名 : 网络服务器的别名
端口号 port
1 2 3 4 5 6 7 8 9
   | 端口号是网络地址的一部分,用于区分主机上不同的网络应用
  在一个系统中应用监听的端口不重复
  取值范围:         1 -- 65535         1 -- 255  一些众所周知的公共程序端口         256 -- 1023  系统应用端口         1024 -- 65535  自用端口
   | 
 
网络字节序 : 网络上数据传输的排列方式
传输层
面向连接的传输服务
基于TCP协议的数据传输
传输特征 :
提供可靠的数据传输,可靠性指的是传输。过程中无丢失,无失序,无差错,无重复
实现手段
在通信前需要建立通信连接,通信结束需要断开连接。
连接过程 (三次握手)
1 2 3
   | 1. 客户端向服务端发起连接请求 2. 服务端收到客户端请求报文(消息序列号),回复报文    消息表示可以连接 3. 客户端收到服务端回复,再从发送报文最终建立连接
   | 
 
连接断开 (四次挥手)
1 2 3 4
   | 1. 主动方发送报文提出断开连接 2. 被动方接收到断开请求,立即返回消息表示开始准备    断开 3. 被动方处理消息完毕,完成断开准备,再次发送报文    表示可以断开 4. 主动方收到断开指令,发送报文最终确认断开
   | 
 
适用情况
对数据传输有准确性的要求,传输文件较大;
需要确保传输可靠性。比如 : 网页获取,文件下载,邮件收发
面向无连接的传输服务
基于UDP协议的传输
传输特征
不保证传输的可靠性,数据传输不需要提前           建立连接
适用情况
网络情况较差,对传输可靠性要求不高。比如:网络视频,群聊,广播