OSI七层模型与TCP/IP五层网络架构总结

OSI和TCP/IP 的理解对运维工程师来说非常有帮助。 这几天在 vps 平台上配置一些服务器端口的映射,惊然发现不知道 ssh 是基于什么的协议。于是拉出来复习了一遍。

模型简介

(1)OSI七层模型

OSI七层模型是一个理论模型,他是一个定义得非常好的协议规范。 其中高层(即7、6、5、4层)定义了应用程序的功能,下面3层(即3、2、1层)主要面向通过网络的端到端的数据流。

OSI 层 功能 常见协议 运维措施
应用层 文件传输,电子邮件,文件服务,虚拟终端 查看下文 Linux 应用命令测试
表示层 数据格式化,代码转换,数据加密 没有协议  
会话层 解除或建立与别的接点的联系 没有协议  
传输层 提供端对端的接口 TCP,UDP TCP UDP 协议分析
网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP IP检查 路由设置
数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU ARP 地址检测,物理连接检测
物理层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2  

应用层常见协议:

DHCP · DNS · FTP · Gopher · HTTP · IMAP4 · IRC · NNTP · XMPP · POP3 · SIP · SMTP · SNMP · SSH · TELNET · RPC · RTCP · RTSP · TLS · SDP · SOAP · GTP · STUN · NTP

(2)TCP/IP五层模型

  • 应用层
  • 传输层
  • 网络层
  • 数据链路层
  • 物理层

物理层:中继器、集线器、还有我们通常说的双绞线也工作在物理层 数据链路层:网桥(现已很少使用)、以太网交换机(二层交换机)、网卡(其实网卡是一半工作在物理层、一半工作在数据链路层) 网络层:路由器、三层交换机 传输层:四层交换机、也有工作在四层的路由器

OSI的基本概念

OSI是Open System Interconnect的缩写,意为开放式系统互联。 OSI七层参考模型的各个层次的划分遵循下列原则:

  • 1、同一层中的各网络节点都有相同的层次结构,具有同样的功能。
  • 2、同一节点内相邻层之间通过接口(可以是逻辑接口)进行通信。
  • 3、七层结构中的每一层使用下一层提供的服务,并且向其上层提供服务。
  • 4、不同节点的同等层按照协议实现对等层之间的通信。

第一层:物理层(PhysicalLayer), 规定通信设备的机械的、电气的、功能的和过程的特性,用以建立、维护和拆除物理链路连接。具体地讲,机械 特性规定了网络连接时所需接插件的规格尺寸、引脚数量和排列情况等;电气特性规定了在物理连接上传输bit流时线路上信号电平的大小、阻抗匹配、传输速率 距离限制等;功能特性是指对各个信号先分配确切的信号含义,即定义了DTE和DCE之间各个线路的功能;规程特性定义了利用信号线进行bit流传输的一组 操作规程,是指在物理连接的建立、维护、交换信息是,DTE和DCE双放在各电路上的动作系列。在这一层,数据的单位称为比特(bit)。属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。

第二层:数据链路层(DataLinkLayer): 在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列。数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。在这一层,数据的单位称为帧(frame)。数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。

第三层是网络层 在 计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址。如 果你在谈论一个IP地址,那么你是在处理第3层的问题,这是“数据包”问题,而不是第2层的“帧”。IP是第3层问题的一部分,此外还有一些路由协议和地 址解析协议(ARP)。有关路由的一切事情都在这第3层处理。地址解析和路由是3层的重要目的。网络层还可以实现拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包(packet)。网络层协议的代表包括:IP、IPX、RIP、OSPF等。

第 四层是处理信息的传输层 第4层的数据单元也称作数据包(packets)。但是,当你谈论TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为段 (segments)而UDP协议的数据单元称为“数据报(datagrams)”。这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的 数据包和其它在传输过程中可能发生的危险。第4层为上层提供端到端(最终用户到最终用户)的透明的、可靠的数据传输服务。所为透明的传输是指在通信过程中 传输层对上层屏蔽了通信传输系统的具体细节。传输层协议的代表包括:TCP、UDP、SPX等。

第五层是会话层 这一层也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,而是统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。

第六层是表示层 这一层主要解决拥护信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。

第七层应用层 应用层为操作系统或网络应用程序提供访问网络服务的接口。应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。

OSI模型与TCP/IP模型的区别

OSI是Open System Interconnect的缩写,意为开放式系统互联。

OSI是一个参考标准,解释协议相互之间应该如何相互作用。TCP/IP模型是美国国防部发明的,是让互联网成为了目前这个样子的标准之一。 开放式系统互联模型中没有清楚地描绘TCP/IP模型,但是在解释TCP/IP模型时很容易想到开放式系统互联模型。两者的主要区别如下:

  • TCP/IP模型中的应用层处理开放式系统互联模型中的第五层、第六层和第七层的功能。
  • TCP/IP模型中的传输层并不能总是保证在传输层可靠地传输数据包,而开放式系统互联模型可以做到。TCP/IP模型还提供一项名为UDP(用户数据报协议)的选择。UDP不能保证可靠的数据包传输。

参考资料


一个服务器监控产品 - Cloud Insight

在知乎这个答案里看到一个宣传答案,答案蛮专业的,试用了下。感觉还可以,不过心里多少有点担心,毕竟不是开源的,东西都在别人手上。

《开源监控系统中 Zabbix 和 Nagios 哪个更好?》

官网是这个:https://cloud.oneapm.com

作为一个手上有一堆服务器的开发者来说,如何管理这些服务器确实比较头疼。我之前用过监控宝,然而感觉还是不能满足需求,免费用户只能监控2台服务器, 其他功能也弱,界面也蛮丑的。

于是也有想过用 zabbix,接下来有时间可以考虑一下。目前精力不济,还是得寻求现成的产品解决一下先。

接下来说说这个国产的监控产品 cloud insight。界面是这个样子:

产品似乎只支持3台服务器。在我添加第四台之时就把第一台顶没了。然而报警还是继续会发过来。

仪表盘应该算是他们的小优势。 简单易懂,可以选择单独的一台机器,也可以选择特定的端口监控,蛮方便的。

更复杂的功能就没有用了。进入控制台,发现这个团队还有其他的产品,看来野心蛮大的,^_^希望能做好:


Linux 生成 source-list 源的快速方式

今天在用阿里云的 Debian 8.6 的系统,一开始 apt-get 就提示源不存在,404了。 (摊手

然后发现了这个快速生成 source-list 的网站: https://debgen.simplylinux.ch/

感觉很像是以前的 jquery 简化版,通过选择一些 jquery 的组件,生成最小化的 jquery 文件。确实不错。

甚至还可以选择第三方组件。

我选择了最原始的选项,最后得出的代码如下:

#------------------------------------------------------------------------------#
#                   OFFICIAL DEBIAN REPOS                    
#------------------------------------------------------------------------------#

###### Debian Main Repos
deb http://deb.debian.org/debian/ oldstable main contrib non-free
deb-src http://deb.debian.org/debian/ oldstable main contrib non-free

deb http://deb.debian.org/debian/ oldstable-updates main contrib non-free
deb-src http://deb.debian.org/debian/ oldstable-updates main contrib non-free

deb http://deb.debian.org/debian-security oldstable/updates main
deb-src http://deb.debian.org/debian-security oldstable/updates main

deb http://ftp.debian.org/debian wheezy-backports main
deb-src http://ftp.debian.org/debian wheezy-backports main

ps:今天给博客侧边栏加了我的产品这个选项卡。原图在这里,^^。
ps:今天给博客侧边栏加了我的产品这个选项卡。原图在这里,^
^。


MySQL 修改用户密码

有两种方法可以修改密码:

mysqladmin 命令

mysqladmin -uroot -p[oldpass] password newpass

oldpass(老密码)可选,如果root默认密码为空,则不需要输入。

如果需要更改老密码,请注意老密码与-p之间不要有空格。

mysql 命令

mysql -uroot -p
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;