目录
一、网络发展
二、理解分层
2.1OSI七层模型
OSI(Open System Interconnection,开放系统互连)七层⽹络模型称为开放式系统互联参考模型,是⼀个逻辑上的定义和规范;把⽹络从逻辑上分为了7层. 每⼀层都有相关、相对应的物理设备,⽐如路由器,交换机;OSI 七层模型是⼀种框架性的设计⽅法,其最主要的功能使就是帮助不同类型的主机实现数据传输;它的最⼤优点是将服务、接⼝和协议这三个概念明确地区分开来,概念清楚,理论也⽐较完整.通过七个层次化的结构模型使不同的系统不同的⽹络之间实现可靠的通讯;
2.2TCP/IP分层模型
OSI七层模型其实在⽹络⻆度,OSI定的协议7层模型其实⾮常完善,但是在实际操作的过程中,会话层、表⽰层是不可能接⼊到操作系统中的,所以在⼯程实践中,最终落地的是5层协议。
我们按照TCP/IP四层模型理解(去掉物理层)物理层我们考虑的⽐较少,我们只考虑软件相关的内容. 因此很多时候我们直接称为 TCP/IP四层模型
TCP/IP是⼀组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.TCP/IP通讯协议采⽤了5层的层级结构,每⼀层都呼叫它的下⼀层所提供的⽹络来完成⾃⼰的需求
2.3分层的好处
以通话为例,我们用户间确定语言,底层确定通话数据传输的方式,用户与底层分开,各层的改变并不会互相影响,实现功能间的解耦合,使维护成本降低
三、认识协议
3.1初步认识
在2.3例子中,用户定义语言,底层定义传输方式这种约定我们就可以看成是协议。
3.2了解指定组织
3.3具体协议理解
以TCP/IP协议为例认识协议
3.3.1是什么
TCP/IP协议的本质是⼀种解决⽅案TCP/IP协议能分层,前提是因为问题们本⾝能分层
3.3.2为什么
本质:通信主机距离变远了
⾸先,即便是单机,你的计算机内部,其实都是存在协议的,⽐如:其他设备和内存通信,会有内存协议。其他设备和磁盘通信,会有磁盘相关的协议,⽐如:SATA,IDE,SCSI等。只不过我们感知不到罢了。⽽且这些协议都在本地主机各⾃的硬件中,通信的成本、问题⽐较少。其次,⽹络通信最⼤的特点就是主机之间变远了。任何通信特征的变化,⼀定会带来新的问题,有问题就得解决问题,所以需要新的协议咯。
3.3.3与OS的关系
3.4总结
所谓协议,就是通信双⽅都认识的结构化的数据类型
四、网络传输流程
4.1局域网网络传输
局域网通信类似我们在一个教室里上课,老师向具体同学提问,同学给老师回答,所有的同学都可以收到消息,但只有指定的两人才会真正去解决。
局域网通信我们要有唯一标识去区别不同主机来保证通信。
认识MAC地址--标识主机唯一性:
4.1.1通信过程
以太⽹中,任何时刻,只允许⼀台机器向⽹络中发送数据如果有多台同时发送,会发⽣数据⼲扰,我们称之为数据碰撞所有发送数据的主机要进⾏碰撞检测和碰撞避免 没有交换机的情况下,⼀个以太⽹就是⼀个碰撞域局域⽹通信的过程中,主机对收到的报⽂确认是否是发给⾃⼰的,是通过⽬标mac地址判定这⾥可以试着从系统⻆度来理解局域⽹通信原理初步明⽩了局域⽹通信原理,再来看同⼀个⽹段内的两台主机进⾏发送消息的过程
在该通信流程下我们加入协议,形成完整的通信流程
4.1.2概念解析
其中的封装和解包是我们数据在向下交付和向上交付的重要识别,帮助我们通信的准确性和安全性。其中我们通信传输的数据称为报文(报⽂ = 报头 + 有效载荷),其中报头有每层的特性和大小等属性,帮助我们进行数据传递。
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在⽹络层叫做数据报(datagram),在链路层叫做帧(frame).应⽤层数据通过协议栈发到⽹络上时,每层协议都要加上⼀个数据⾸部(header),称为封装(Encapsulation).⾸部信息中包含了⼀些类似于⾸部有多⻓, 载荷(payload)有多⻓, 上层协议是什么等信息.数据封装成帧后发到传输介质上,到达⽬的主机后每层协议再剥掉相应的⾸部, 根据⾸部中的 "上层协议字段" 将数据交给对应的上层协议处理.
抽象:
4.2跨网络传输
4.2.1通信过程
4.1中我们了解了局域网通信我们需要标识不同主机的唯一性,那么当通信距离变长,我们用什么标识唯一性?
跨网络通信我们利用IP地址标识唯一性:
理解:跨网络通信我们可能要经过许多局域网下(路由器)的多台主机,我们以IP作为传输的大方向,MAC地址作为中途过程中相邻两台主机的传输方向
跨⽹段的主机的数据传输. 数据从⼀台计算机到另⼀台计算机传输过程中要经过⼀个或多个路由器.

具体理解图:
4.2.2IP与Mac对比
IP地址在整个路由过程中,⼀直不变(⽬前,我们只能这样说明,后⾯在修正)Mac地址⼀直在变⽬的IP是⼀种⻓远⽬标,Mac是下⼀阶段⽬标,⽬的IP是路径选择的重要依据,mac地址是局域⽹转发的重要依据IP⽹络层存在的意义:提供⽹络虚拟层,让世界的所有⽹络都是 IP ⽹络,屏蔽最底层⽹络的差异
