今天整理了一下OSI模型和基础的网络概念,就写下来以备查阅。
 
首先,我们先回顾一下什么是网络?简单的来说,用物理链路将各个孤立的工作站或主机相连在一起,就叫做网络。网络的目的是通信共享。网络把端系统连接起来,而因特网将许多的网络连接起来,所以我们又把因特网叫做“网络的网络”。
 
OSIOpen System Interconnection)开放式系统互连是由ISO提出的。在当时,随着网络的发展,各个厂商之间有各自的产品标准,不同厂商之间的设备往往不能通信。于是ISO出面,订出一个标准大家用,就产生了OSI参考模型。但是随着TCP/IP协议簇的发展TCP/IP模型成为了“事实上的标准”。OSI模型现在的用处,主要用于初学者理解网络模型。
 
OSI参考模型的特点:
1把网络的组成部件标准化,从而可以让许多供应商去进行研发和技术支持。
2使得不同类型的网络技术之间具有更好的兼容性和互操作性。
3可以防止某一层的变化影响到其他层,从而可以更快的研发。
4是目前告诉人们关于网络中如何发送数据和接收数据的最好工具。
 
OSI模型将网络分为7层,一一赘述:
 
Layer7:应用层
应用层提供了用户接口。
应用层有一些协议如httpsmtptelnet, ftp, rip等。这里之所以将rip放在应用层是因为rip应用了端口号的概念。其实这是从TCP/IP中的概念,硬套入OSI的。
http(超文本传输协议)
SMTP:(简单邮件传输协议)
例子:当host Ahost B发送e-mail时,A写好邮件,点击发送,邮件会发给Alocal mail server.然后A local mail server 会将邮件发给Blocal mail server。当B打开他的收件箱,看到邮件后,点击查看服务器会将邮件发给B。邮件在Alocal mail server Blocal mail server之间传输的时候,所使用的协议就是SMTP
说起邮件,就想起了hotmail的历史。95年的时候,还没有免费的电子邮件服务。Sabeer Jack Smith找到因特网风险投资人Fisher ,建议他开发一个基于web的电子邮件系统,可以为每一个人分配一个免费的电子邮件帐户。后来,他们组建了一家公司,叫做hotmail。在3个全职员工和12个兼职员工的共同努力下,在19967月,他们研发并提供了该服务。之后的一个月,他们就拥有了100k的用户。19972月,在启动该服务不到18个月的时候,hotmail就超过了12M的用户,并且以4亿美元的价钱被MS收购。Hotmail的成功常被归结为“先行者优势和它固有的“病毒行销策略。明白这一点对于一个人的成长很重要。
 
Layer6:表示层
表示层提供了两个主要的功能:一是格式转换,二是压缩和解压缩。很多书上写encryption comprehension,有些书上写的是数字化,其实都是格式转换。因为用户创建的数据必须能够在网络上传输,而网络上能传什么呢?01…… ^-^
说起来这个就想起以前的时候总不明白打电话是怎么回事,其实就是这个过程。人的声音频率在3.4khz左右,2倍左右的调制解调不会导致失真。为了保险起见,采用8khz来转换,即每秒取8K个点,然后用28=256来量化他们,即分成256个频率,这样就可以用01表示并传输了,这个过程也叫做PCM(脉冲编码调制)
那么为什么在表示层还要做压缩和解压缩的工作呢?举个简单的例子,一张1024×1024JPEG图片。每个像素需要24比特来编码(红蓝绿各8比特),就有3.52MB,在64Kb/s的链路上传输就要7分钟,所以,压缩势在必行~~~这样,大家应该也理解为什么MP3(MPEG1-Layer3)那么受欢迎了吧,大小适中也可以保证音效。
 
Layer5:会话层
会话层的功能主要是建立,管理,终止会话,区分进程。在一个主机上同时运行多种程序,如何保证A主机的一个程序能够和B主机对应的程序建立会话呢,我们就要引入套接字的概念。套接字是由IP地址和端口号共同组成的。如果说每一个进程是一个房子,那么每一个套接字就是一个房门,它唯一的标识了一个进程。举一个简单的例子,现在有BC两台主机同时访问sina的主页,我们用A来表示sinaserver。如果B上打开了两个网页,C上打开了一个,A如何区分他们并发送正确的内容呢?利用套接字,先利用IP地址区分不同的主机,再利用端口号区分同一主机上不同的进程。所以,端口号只有本地的概念。
传输层从不同的套接字中收集数据,为每个数据封装上头部信息,分段,交给网络层。这个过程叫做多路复用。对应的,传输层接收下层数据,辨别正确的套接字,送多对应的套接字,这个过程就叫做多路分解。
 
Layer4:传输层
传输层提供了端对端的连接
它的连接方式包括TCPUDP,分别是传输控制协议和用户数据报协议。它们分别提供面向连接的可靠的传输和无连接的不可靠的传输。在UDP中,没有确认重传,不保证完整,不保证按序,甚至不保证得到。UDP负责两件事:1发数据 ;2错误检验。
TCP中使用3次握手保证连接,同时同知对方滑动窗口大小。它使用滑动窗口提供流量控制机制。其实TCP还有拥塞窗口,只是很多人将它们混为一潭。它们的现象一样,都是丢包,但是原因不同,一个是缓存溢出,一是链路拥塞。拥塞窗口有四个机制保证,分别是加性增,乘性减,慢启动,超时重传。这里就不详细说明了,可以参考top down feature internet这本书,讲的很详细的。
那么UDP为什么还有存在的理由呢?就是因为它快,很多网络视频使用UDP传送,因为如果使用TCP的话可能会卡死在一个画面上的,这里又牵扯到用户对抖动和时延的敏感度问题。
 
Layer3:网络层
网络层主要提供了逻辑寻址,基于它的协议有ip ipx(网间分组交换)appletalk等。网络层的设备主要为路由器,作用是转发和选路。
 
Layer2:数据链路层
提供物理寻址,错误检验,帧的顺序传送等。重要的是数据链路层分为两个子层:LLC(逻辑链路控制)和MAC(媒体访问控制)。在早期,局域网标准很多,FDDItoken ring,以太网等等。后来,以太网脱颖而出,因为它高速而且便宜。LLC层的作用也就不见了。
 
Layer3:物理层
激活,维持,释放端系统之间的物理链路。控制电压,数据介质传输速率,最大传输距离等物理层设备有repeaterhub,作用是放大重生网络信号。
 
对等层通信:远端OSI的每一层都必须于目的端的对等通信。
 
OSI中,下层为上层服务,下层对于上层来说是透明的。
 
下三层写的很少,因为主要研究的就是此部分,所以不在这里赘述。