主要内容:
a. 了解网络发展背景
,
对局域网
/
广域网的概念有基本认识
;
b. 了解网络协议的意义
,
重点理解
TCP/IP
五层结构模型
;
c. 学习网络传输的基本流程
,
理解封装和分用
;
一. 网络发展背景:
a. 独立模式:每个计算机单独通信
![](https://img-blog.csdnimg.cn/direct/4260a0586ea241aa8941a4ba461104a5.png)
b. 网络互联: 多台计算机连接在一起, 完成数据共享
![](https://img-blog.csdnimg.cn/direct/4191eca70da94e86aea31a00b4f08904.png)
c. 局域网
LAN:
计算机数量更多了
,
通过交换机和路由器连接在一起
![](https://img-blog.csdnimg.cn/direct/60775f1c7aab4899a1728d45ea3ff4fc.png)
d. 广域网
WAN:
将远隔千里的计算机都连在一起
![](https://img-blog.csdnimg.cn/direct/30b6d23a004d4f2f86e9b49f6266da93.png)
注意:
所谓
"
局域网
"
和
"
广域网
"
只是一个相对的概念
.
比如
,
我们有
"
天朝特色
"
的广域网
,
也可以看做一个比较大的局域
网。
二. 协议初识
本质:就是一种约定。
![](https://img-blog.csdnimg.cn/direct/17e8052e87da487cbab3c6ee39ac87e3.png)
注:
计算机之间的传输媒介是光信号和电信号,
通过
"
频率
"
和
"
强弱
"
来表示
0
和
1
这样的信息,
要想传递各种不同的信
息
,
就需要约定好双方的数据格式。
问:只要俩台相互通信的计算机之间,提前沟通好协议就行了嘛?
答:不是的,存在多种因素,例如,方言例子。
计算机之间不能进行网络通信的原因如下:
a. 计算机生产厂商有很多
;
b. 计算机操作系统
,
也有很多
;
c. 计算机网络硬件设备
,
还是有很多
;
问:如何让这些不同厂商之间生产的计算机能够相互顺畅的通信
?
答:就需要有人站出来
,
约定一个共同的标准
, 大家都来遵守,
这就是
网络协议。
三. 网络协议初识
打电话例子:
![](https://img-blog.csdnimg.cn/direct/98996d5dd38748069a8f96302b660a55.png)
注意:在这个例子中
,
我们的协议只有两层
;
但是实际的网络通信会更加复杂
,
需要分更多的层次
.
分层最大的好处在于:a. 化繁为简 b. 减少耦合,便于维护。
注意:
1. 操作系统要进行协议管理---先描述,再组织。
2. 协议本质就是软件,软件是可以被"分层"的。
3. 协议再设计的时候,就是被层状划分的(网络协议也是层状的)。
四. OSI
七层模型
a. OSI
(
Open System Interconnection
,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
b. 把网络从逻辑上分为了
7
层
.
每一层都有相关、相对应的物理设备,比如路由器,交换机
;
c. OSI
七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输
;
d. 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整
.
通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
细节如下:
![](https://img-blog.csdnimg.cn/direct/4aae9273097541e3891b4c26968cd20c.png)
![](https://img-blog.csdnimg.cn/direct/54bed7d9d3884d2bba90c1326a19fb86.png)
但是, 它既复杂又不实用; 所以我们按照TCP/IP五层(四层)模型来讲解.
![](https://img-blog.csdnimg.cn/direct/db36c2a539f247329bb61298a9bb4cb3.png)
TCP/IP
是一组协议的代名词,它还包括许多协议,组成了
TCP/IP
协议簇
.
TCP/IP
通讯协议采用了
5
层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求
物理层
:
负责光
/
电信号的传递方式
.
比如现在以太网通用的网线
(
双绞 线
)
、早期以太网采用的的同轴电缆(现在主要用于有线电视
)
、光纤
,
现在的
wifi
无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等.
集线器
(Hub)
工作在物理层。
数据链路层
:
负责设备之间的数据帧的传送和识别
.
例如网卡设备的驱动、帧同步
(
就是说从网线上检测到什么信号算作新帧的开始)
、冲突检测
(
如果检测到冲突就自动重发
)
、数据差错校验等工作
.
有以太网、令牌环网,
无线
LAN
等标准
.
交换机
(Switch)
工作在数据链路层。
网络层
:
负责地址管理和路由选择
.
例如在
IP
协议中
,
通过
IP
地址来标识一台主机
,
并通过路由表的方式规划出两台主机之间的数据传输的线路(
路由
).
路由器
(Router)
工作在网路层。
传输层
:
负责两台主机之间的数据传输
.
如传输控制协议
(TCP),
能够确保数据可靠的从源主机发送到目标主机。
应用层
:
负责应用程序间沟通,如简单电子邮件传输(
SMTP
)、文件传输协议(
FTP
)、网络远程访问协议(Telnet
)等
.
我们的网络编程主要就是针对应用层。
![](https://img-blog.csdnimg.cn/direct/40750c80d87c4e1481d484c27bff69d8.png)
物理层我们考虑的比较少
.
因此很多时候也可以称为
TCP/IP
四层模型。
一般而言:
对于一台主机
,
它的操作系统内核实现了从传输层到物理层的内容
;
对于一台路由器
,
它实现了从网络层到物理层
;
对于一台交换机
,
它实现了从数据链路层到物理层
;
对于集线器
,
它只实现了物理层
;
注意:但是并不绝对,
很多交换机也实现了网络层的转发
;
很多路由器也实现了部分传输层的内容
(
比如端口转发
);
五. 网络传输基本流程
a. 同一个网段内的两台主机进行文件传输
![](https://img-blog.csdnimg.cn/direct/1e6e1089bf874304b7359f4c93a9da96.png)
注意:局域网中俩台主机是可以直接通信的(例子,老师课堂上挑同学回答问题),每层都有自己协议制定方案。
b. 跨网段的主机的文件传输,
数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。
![](https://img-blog.csdnimg.cn/direct/f85719525c9b4f3ab766bc2563ef88e4.png)
六. 数据包封装和分用(解包)
1. 不同的协议层对数据包有不同的称谓
,
在传输层叫做段
(segment),
在网络层叫做数据报
(datagram),
在链路层叫做帧(frame)。
2. 应用层数据通过协议栈发到网络上时
,
每层协议都要加上一个数据首部
(报头),
称为封装
(Encapsulation)。
3. 首部信息中包含了一些类似于首部有多长
,
载荷
(payload)
有多长
,
上层协议是什么等信息。
4. 数据封装成帧后发到传输介质上
,
到达目的主机后每层协议再剥掉相应的首部
,
根据首部中的
"
上层协议字段"
将数据交给对应的上层协议处理。
数据封装过程:
![](https://img-blog.csdnimg.cn/direct/22594fc8fe3c4ef694674369620b9b25.png)
数据分用过程:
![](https://img-blog.csdnimg.cn/direct/7eac9afd7cad4ea5b19de358f3708b5d.png)
网络中的地址管理
认识
IP
地址
IP
协议有两个版本
, IPv4
和
IPv6.
我们整个的课程
,
凡是提到
IP
协议
,
没有特殊说明的
,
默认都是指
IPv4
a. IP
地址是在
IP
协议中
,
用来标识网络中不同主机的地址
;
b. 对于
IPv4
来说
, IP
地址是一个
4
字节
, 32
位的整数
;
c. 我们通常也使用
"
点分十进制
"
的字符串表示
IP
地址
,
例如
192.168.0.1 ;
用点分割的每一个数字表示一个字节,
范围是
0 - 255;
认识
MAC
地址
a. MAC
地址用来识别数据链路层中相连的节点
;
b. 长度为
48
位
,
及
6
个字节
.
一般用
16
进制数字加上冒号的形式来表示
(
例如
: 08:00:27:03:fb:19)
c. 在网卡出厂时就确定了
,
不能修改
. mac
地址通常是唯一的
(
虚拟机中的
mac
地址不是真实的
mac
地址
,
可能会冲突;
也有些网卡支持用户配置
mac
地址
).
理解IP地址和mac地址:
![](https://img-blog.csdnimg.cn/direct/8d019a85c9df4f39a9be04b0195fe697.png)
公网ip:标识了主机的唯一性。