本片文章主要讲述网络的基本概念。
将多个节点通过特定的介质联系起来的一种关系。
以计算设备作为节点,通信线路作为介质的网络。
网络的概念
- 什么是网络:将多个节点通过特定的介质联系起来的一种关系
例如:铁路网、交通网、人际关系网
- 计算机网络:以计算设备作为节点,通信线路作为介质的网络
- 英特网:把许多网络连到一起的网络
- 网络起源于美苏冷战,最初是美国国防部高级研究计划局的一个项目,后来转为民用
网络功能
- 数据与信息的传输
- 实现资源共享
- 打破时空限制,优化资源配置
网络分类
网络性能衡量指标
- 带宽:通信信道支持的最高数据频率(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协议的传输
传输特征
不保证传输的可靠性,数据传输不需要提前 建立连接
适用情况
网络情况较差,对传输可靠性要求不高。比如:网络视频,群聊,广播