文章目录
- 网络发展
- 认识协议
- 网络协议初识
- OSI七层模型
- TCP/IP五层(或四层)模型
- 网络传输基本流程
- 数据包封装和分用
- 网络中的地址管理
网络发展
以前没有网络剧的工作模式是:独立模式:,计算机之间相互独立
所以多个计算机要协同开发比较难。
有了网络以后:网络互联:,多台计算机连接在一起,
这样多个人就可以协同开发了
局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起;
广域网WAN: 将远隔千里的计算机都连在一起
认识协议
“协议” 是一种约定.
例子
小华刚到学校准备给家里人报平安,以前还没有网络的时候只能打电话,又因为电话费很贵,所以小华就和他爸爸约定好:
电话零
响一声就说明它安全到学校了
响两声说明没有生活费了
响三声说明有其它紧急情况需要爸爸接听电话。
在月初的时候没钱了,小华打电话给爸爸当电话响两声就挂掉,爸爸一看小华响两声就挂掉于是就想起来之前的协议瞬间明白小华没钱了。小华爸爸立马给小华的银行卡汇钱。
上面这就是协议
计算机生产厂商有很多;
计算机操作系统, 也有很多;
计算机网络硬件设备, 还是有很多;
如何让这些不同厂商之间生产的计算机能够相互顺畅的通信?就需要有人站出来, 约定一个共同的标准, 大家都来遵守, 这就是网络协议
网络协议初识
协议的本质是软件,软件是可以“分层的”。
在这个例子中, 我们的协议只有两层; 但是实际的网络通信会更加复杂, 需要分更多的层次.
分层最大的好处在于 “封装”
为什么要划分成层状结构呢?
a.解决复杂场景下的问题
b.功能解耦,便于人们进行各自维护
OSI七层模型
OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
OSI 七层模型是一种框架性的设计方法,其最主要的功能
使就是帮助不同类型的主机实现数据传输;
它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
但是, 它既复杂又不实用; 所以我们之后之后学的就是TCP/IP五层模型
TCP/IP五层(或四层)模型
通信的复杂本质是和距离成正相关的!
复杂体现在哪里?
不就是我们协议栈要解决的问题吗?
复杂体现:
通信范畴:
1.丢包问题
2.定位问题
3.解决下一跳主机的问题(这是什么意思?)
例子:
从福建去新疆旅游,我们是直接立马就到新疆的吗?肯定不是
我们又许多路线可以走但一定不是一步就到新疆
路线:福建–>江西–>湖南–>重庆–>四川–>青海–>新疆
虽然我们可能不知道要经过哪些省份才能到大新疆,但是我们知道自己的目的地是新疆就可以,我们可以哦问问当地人我要去新疆该怎么走等等。
应用范畴:
如何处理数据问题—应用层解决
通信范畴:
1.丢包问题-----传输层解决
2.定位问题----网络层解决
3.解决下一跳主机的问题(这是什么意思?)—数据链路层解决
所以就有了TCP/IP五层(或四层)模型
先有OSI模型再由TCP/IP---->他们之间的区别就是蓝图跟实际的区别
网络传输基本流程
网络传输流程图
同一个局域内的两台主机进行文件传输.
逻辑上局域网中的两台主机可以直接通信,但是物理上两台主机都必须具有自顶向下交付数据和自底向上读取数据的能力。
每层都有自己的协议定制方案,每层协议都要有自己的协议报头,从上到下交付数据都适合要添加报头。
为什么要添加报头?
自顶向下交付数据的过程:
比如上层发了个你好,那么它的过程如下:
每一个图形,形象的标识每一层的报头
自底向上解包的过程:
解包:去掉报头&&解析数据
有了协议的存在那么就确定了只能同层通信,不会有数据链路层的数据跑到TCP层的情况。
那么两个不同局域网的主机如何通信?
可以通过路由器来通信
通信过程:
在使用TCP/IP协议的网络中,IP层机及其往上的协议,看到的报文都是一样的!
数据包封装和分用
**不同的协议层对数据包有不同的称谓,**在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)
首部信息中包含了一些类似于首部有多长,有效载荷(payload)有多长, 上层协议是什么等信息.
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理
数据封装的过程:
数据分用的过程:
网络中的地址管理
认识IP地址
IP协议有两个版本, IPv4和IPv6. 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默认都是指IPv4
- IP地址是在IP协议中, 用来标识网络中不同主机的地址;
- 对于IPv4来说, IP地址是一个4字节, 32位的整数;
- 我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0-255;
认识MAC地址
- MAC地址用来识别数据链路层中相连的节点;
- 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
- 在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突;也有些网卡支持用户配置mac地址)