OSI/RM协议是由ISO(国际标准化组织)制定的,它有三个基本的功能:提供给开发者一个必须的、通用的概念以便开发完善、可以用来解释连接不同系统的框架。 [1]
图1.OSI模型
OSI将计算机网络体系结构(architecture)划分为以下七层:
物理层: 在媒介上传输比特流;提供机械的和电气的规约
数据链路层:将分组数据封装为帧;在数据链路上实现数据的点到点、或点到多点方式的直接通信;差错检测
网络层: 定义逻辑地址;实现数据从源到目的地的转发
传输层: 建立、维护和取消一次端到端的数据传输过程。控制传输节奏的快慢,调整数据的排序等待
会话层: 在通信双方之间建立、管理和中止会话
表示层: 进行数据格式的转换,以确保一个系统生产的应用层数据能够被另外一个系统的应用层所识别和理解
应用层: 对应用程序提供接口
因为OSI协议栈比较复杂,且TCP/IP两大协议在业界被广泛使用,所以TCP/IP参考模型成为了互联网的主流参考模型
TCP/IP协议定义了一系列的标准协议
每一层的功能都是通过下面的协议实现的
基本分为有线和无线
物理层主要会使用二进制比特流进行传输
进制:即表述数据的方法
进制类型:二进制、10进制、16进制
10进制:即组成数据的基本单元,包含0-9(主要是让人看)
2进制:即组成数据的基本单元,包含0-1(主要是让设备看)
16进制:即组成数据的基本单元,包含0-9,a,b,c,d,e,f(通常用在抓包软件中,用于分析协议的数据包内容)
一个IP地址有32bit
IPV4地址通常采用点分十进制表示
IPV4地址范围:0.0.0.0~255.255.255.255
为了方便IP地址的管理及组网,IP地址分为5类
A/B/C类默认网络掩码
我们通常把一个网络号所定义的网络范围称为一个网段
网络地址:用来标识一个网络
广播地址:用来向该网络中所有主机发送数据的特殊地址
可用地址:可分配给网络中的节点或网络设备接口的地址
注意:
例:172.16.10.1/16这个B类地址的网络地址,广播地址以及可用地址数分别是
公网IP地址:IP地址是由IANA统一分配的,以保证任何一个IP地址在Internet上的唯一性。这里的IP地址是指公网IP地址
私网IP地址:实际上一些网络不需要连接到Internet,比如一个大学的封闭实验室的网络,只要同一网络中的网络设备的IP地址不冲突即可。在IP地址空间里,A、B、C三类地址中个各预留了一些地址专门用于上述情况,称为私网IP地址
A类:10.0.0.0~10.255.255.255
B类:172.16.0.0~172.31.255.255
C类:192.168.0.0~192.168.255.255
IP地址空间中,有些特殊的IP地址,这些IP地址有特殊的含义和作用
特殊IP地址 | 地址范围 | 作用 |
---|---|---|
有限广播地址 | 255.255.255.255 | 可作为目的地址,发往该网段所有主机(受限于网关) |
任意地址 | 0.0.0.0 | “任何网络”的网络地址 “这个网络上这个主机接口” 的IP地址 |
环回地址 | 127.0.0.0/8 | 测试设备自身的软件系统 |
本地链路地址 | 169.254.0.0/24 | 当主机自动获取地址失败后,可使用该网段中的某个地址进行临时通信 |
由全球IP地址分配机构,IANA管理的IPV4地址,于2011年完全用尽,随着最后一个IPV4公网地址分配完毕,加上接入公网的用户及设备越来越多,IPv4地址枯竭的问题日益严重,这时当前IPv6替代IPv4的最大源动力
(1)减少网络流量。子网定义了一个网络最大的广播空间(受限广播),可以减少网络流量
(2)提高网络性能。如果不划分子网,那么我们的网络将是一个巨大的、扁平的网络空间,这将导致网络性能下降。(寻址变慢了)
(3)便于网络管理。分层次的网络可以更加方便网络管理员对于网络的管理,就类似于学校要分年级,年级要分班。
原网段分析
可变长子网掩码:VLSM,向主机借位,形成子网
计算子网网络地址
练习:
任何基于TCP的应用,在发送数据之前,都需要由TCP进行“三次握手”建立连接
Seq:序列号
ACK:确认号
TCP的序列号于确认号
为什么PC1每次的ACK都不变,是因为PC2的载荷为0.在传输数据时,PC1发送数据,所以PC2的序列号每次都加上PC1的载荷。
序列号:每次自增1加上载荷,ACK也是这样
TCP通过滑动窗口机制来控制数据的传输速率
win:窗口大小(接收方的缓存大小)。发送方的发送能力,是由接收方的缓存能力来决定的
FTP
FTP是一个用于从一台主机传送文件到另一台主机的协议,用于文件的下载和上传,它采用C/S结构
Telnet
Telnet是数据网络中提供远程登录服务的标准协议。Telnet为用户提供了在本地计算机完成远程设备工作的能力
HTTP
HTTP是互联网上应用最广泛的一种网络协议,设计HTTP最初的目的是为了提供一种发布和接受HTML页面的方法
我们在浏览器输入网址,会产生一个请求数据,经过第四层,访问网页的数据会打上一个TCP的标签,然后到了网络层,就会打上一个IP的标签,在到二层的时候,就会打上一个二层的标签,为了保证数据的完整性,然后在尾部添加一个FCS(帧校验)然后通过物理层传输
通过各种中间设备把数据传输到目标设备上面
接受方设备,在物理层接受到高低电压,把这些高低电压还原为带封装的数据包,到二层时,解除二层的报头和FCS,传输到三层,然后分析的IP头部(源IP地址、目标IP地址、协议号等),传输到四层,解除四层的封装,传输给对应的应用程序。
以上过程,不论那个过程出现问题都会导致通信失败
不论是OSI参考模型还是TCP/IP参考模型,都采用了分层的设计理念。
各个层次之间分工,界限明确,有助于各个部件的开发,设计和故障排除
通过定义在模型的每一层实现什么功能,鼓励产业的标准化
通过提供接口的方式,是的各种类型的网络硬件和软件能够互相通信,提高兼容性
数据的产生与传递,需要各个模块之间相互协作,同时各个模块又需要各司其职