为什么要分层
分层是软件工程的特点,通过分层,每个层的内部实现自己的特点(一些个性化的需求),通过层与层之间进行稳定的接口调用,这样就起到了解耦的作用,把其中一层换掉其中的实现,并不会对整个多层次的链路造成影响。 联网的模型基本上都是遵循于OSI七层模型。
OSI七层模型
七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。 它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。
- 应用层
网络服务与最终用户的一个接口。接收用户的数据,人机交互的接口,面向的应用程序。(就是我们经常接触到的,内容就是各种应用) 协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP - 表示层(在五层模型里面已经合并到了应用层)
表示数据的表示或者是数据的安全和压缩。(将逻辑语言转为机器语言,翻译,加密。 格式有,JPEG、ASCll、EBCDIC、加密格式等 - 会话层(在五层模型里面已经合并到了应用层)
建立、管理、终止会话。(针对传输的每一种数据建立一条虚连接) 对应主机进程,指本地主机与远程主机正在进行的会话 - 传输层
表示具体传输数据的过程,定义传输数据的协议和端口号,以及流控和差错校验。( 作用 1.区分流量 2.定义数据传输方式 ) 协议有:可靠传输TCP、不可靠传输UDP,数据包一旦离开网卡即进入网络传输层 - 网络层
进行逻辑地址寻址,实现不同网络之间的路径选择(寻找网络中的地址,主要是IP地址)。 协议有:ICMP IGMP IP(IPV4 IPV6) - 数据链路层
建立逻辑连接、进行硬件地址寻址、差错校验等功能。由底层网络定义协议。(比如MAC地址访问就是在这层实现的) 将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。 - 物理层
传输介质(有线、无线。现在很多公司交互的专线就属于物理层),表示具体的物理硬件,建立、维护、断开物理连接。由底层网络定义协议。
- 有线:同轴电缆、双绞线、光纤
- 同轴电缆
分为细缆和粗缆 细缆:传输速度10Mbps,传输距离185m 粗缆:传输速度10Mbps,传输距离500m - 双绞线(RJ-45):
分为屏蔽(STP)和非屏蔽(UTP)—8根铜丝分4组,两两相绞(减小干扰)—传输距离100米 568A线序:白绿、绿、白橙、蓝、白蓝、橙、白棕、棕 568B线序:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕 (是568A的3612线序) 平行线:又称为直通线,线序相同。不同层设备使用平行线。 交叉线:线序不同。同层设备使用交义线。 全反线:又称为console线,配置线,线序相反,用于用户控制网络设备。 - 光纤
分为单模和多模,通过光导纤维(玻璃)传输光信号 发送光信号需要由电信号转为光信号: 电信号—>光信号:发光二极管(多模) 或 注入式激光二极管(单模) 光信号—>电信号: 发电二极管 - 无线: 红外线、微波、蓝牙、无线电、wimax
- 无线电:标准IEEE 802.11
- 蓝牙:标准IEEE 802.15
- wimax:标准IEEE 802.16
- 全球移动通信系统(GSM)
- 路由器: 三层设备,识别IP地址。
具有隔离广播域的功能,一个接口就是一个广播域,不同的接口在不同的网段(广播域) - 交换机(网桥): 二层设备,使用MAC地址,所有的接口默认在同一个广播域,一个接口是一一个冲突域。
- 集线器(hub): 放大器 放大信号,属于1层设备,识别bit流,hub 上所有的接口都在同一个冲突域中。
TCP/IP 五层模型
TCP/IP 层级模型结构,应用层之间的协议通过逐级调用传输层(Transport layer)、网络层(Network Layer)和物理数据链路层(Physical Data Link)而可以实现应用层的应用程序通信互联。 应用层需要关心应用程序的逻辑细节,而不是数据在网络中的传输活动。应用层其下三层则处理真正的通信细节(TCP/IP 层级模型结构是五层的。将应用层,表示层,会话层合到一起作为应用层,并不是推翻了OSI七层网络模型)。在 Internet 整个发展过程中的所有思想和着重点都以一种称为 RFC(Request For Comments)的文档格式存在。针对每一种特定的 TCP/IP 应用,有相应的 RFC文档。 一些典型的 TCP/IP 应用有 FTP、Telnet、SMTP、SNTP、REXEC、TFTP、LPD、SNMP、NFS、INETD 等。RFC 使一些基本相同的 TCP/IP 应用程序实现了标准化,从而使得不同厂家开发的应用程序可以互相通信
网络模型的每一层都由自己的协议,如应用层,你连接redis会用redis的协议,你访问百度,会用到http的协议,其它层也是一样的。
|