戏说TCP/IP模型与OSI模型

欲穷千里目,更上一层楼。所以有必要理解但不要求精通到编程实现的网络基本知识。
  1、OSI参考模型与 TCP/IP模型
  1.1、通信是根据协议进行的,而协议就是语法、语意的规则。
   比如,北方大部分听不懂我们上海话,北方人说:“你们讲的每一个汉字我都懂,但组合起来就不明白了。”这就是语法规则不同造成的。而语意就是彼此不懂对方语意的两个人,比如中国人和土著人,尽管两人的语法也许一样,如说‘我爱你’的语法是主、谓、宾,而土著人也是基于主、谓、宾结构‘@#%’,彼此不理解其语意。在基于IP地址通信的两台电脑之间,彼此约定使用TCP/IP(后面会提到)协议进行通信。比如,IP地址的位置应该在数据包的第几个字节出现,这约定了通信双方的语法规则,而IP地址的长度与组成,则约定了语意。
  1.2、OSI参考模型为开发者提供了一种参考方法,而TCP/IP参考模型则是实际的应用协议。
   2007年6月以前,不同型号的手机基本上都使用自己的充电器,与其他充电器互不兼容。当前,国家信息产业部发出通知,所有新入网手机,都必须统一充电器接口。这意味着不论换什么样的手机,都不用更换充电器了。
   很久以前存在各种通讯协议,如基于TCP/IP协议开发的QQ、基于IPX/SPX开发的CS/星际,配置没有安装TCP/IP的windows的共享访问。这些协议彼此互不兼容。这时,OSI参考模型出现了,其目的是统一今后出现的网络协议按其标准来设计。那这些现行的协议如TCP/IP就废弃么?这是不现实的,就如同你不可能一下甩掉现很讨厌的男朋友,因为屏弃是个过程。
  2、近看OSI参考模型
  OSI和国家信息产业部没有任何关系,OSI是国际标准标准化组织ISO(没打错)开发的标准。该体系结构标准定义 了不同网络系统之间互联的七层框架,也称为OSI 参考模型。基于此框架,各协议规范可进一步详细地规定每一层功能。我可以规定插座接口都是8孔,而插头都是8项吗?如果足够合理,并且你有足够的威信,我想世界生产插头与插座的厂商都会按您的标准行事。让我们近距离看一下OSI定义的7层参考模型都是怎么规定的吧:
  2.1、物理层。
  2.1.1、统一接口标准(如以太网100M应该使用T形头),不要因为买回一块带五角星形的网卡而连接不到网线上而烦恼。
  2.1.2、几比特代表1,几比特代表0。不要因为对方说:“我跺3下脚就开始丢苹果”,而自己却认为4下砸到自己的小脑袋。
  2.1.3、在这一层,黑客可以在一个月黑风高的夜晚,剪断在1楼配线架上你的电缆。或者拿着多普达手机在小区周围四出转悠,寻找没有设置密码的无线网络。
  2.2、数据link层
  OSI模型规定,这一层应该实现数据包的寻址与访问介质的管理。也就是说
  2.2.1、要给信套上一个信封,信封上写着发件人地址与收件人地址。注意,这个信封上的地址仅仅在班级里是唯一的,也就是说,有个男生要对我表达他的爱意,信封如此,目的地:2号桌(就是我),发件人:28号(就是他),这里的2与28号桌仅在本班级是唯一的,因为别的班级也会有。所以,这封信仅在本班级内部传递,而不会流入到外班。这个地址叫MAC地址(我有个朋友叫Mike,假洋鬼子)。还有,这封信是他是以传单的形式发送的,也就是说,班级里的每个同学都会收到这封信,但只有我会把这封信打开来看,而其他人则丢弃这封信,因为上面的地址不是他们。对了,如果房间里仅有两人,理论上不需要地址,因为他即使闭上眼睛丢纸条给我,也一定是我收到,这就是点到点传输协议了。
  2.2.2、所谓介质管理,对于共享的局域网来说就是如何保障数据包在不受干扰的情况下没有破损的到达接收端。一个房间里很多人都在讲话,听谁的是?对于以太网来说,定义一个规则:大家可以同时说话,但如果有两个或者以上的人说话时,说话双方都住嘴,在心里数小羊,有个家伙比其他人先开口说话了,那么其他人就要等他说完再说,如果又有多个人同时说话,那么重复上面的过程。
  2.2.3、这一层,黑客可以充当不道德的人,把不是给自己的信打开来看。当然你会问为什么那个傻瓜要以传单的形式印刷那么封发送呢,为什么不直接给我。因为如果在每个通信的双方建立单独信道,你会在地板下看见太多的纵横交错的网线而使您的网络变的无法管理。那我么是不是可以把信给一个大家都信任的人,比如一个不识字的老爷爷,让他来分发班级里的信呢?可以,交换机就充当了老爷爷的角色,它只会把信传递给一个接受端。
  2.3、网络层
  主要处理网间路由。IP地址就是在这一曾上用到的。
  2.3.1、还记得1.3.2.1的那个男生否?现在他要把信发给在大样彼岸的土著朋友,于是他在原来的信封上又套上一个信封,虽然这很BT,但没办法,因为不同的网络使用不同的编址方案,如中国的编制方案可能是:[中国上海市浦东新区],而远方土著人的理解是省份在最后面,市方在最前面,这就会产生接收端错误,或者根本无法接收。所以有必要在全球统一一下地址的编排方式,于是就出现了世界语(我中学的时候学过,很BT)IP地址。也就是说在同一个网络中通信的双方不需要IP地址?是的,如果你可以同过某种方式直接操纵网卡里的MAC地址,比如不可路由的协议NewBios的名字解析。
  2.3.2、数据链路层有纠错功能,既传输中受到破坏的包丢弃以后并等发送方从发。那么网络层有这样的纠错功能么?在设计者的初衷上是没有,小白都可以理解,因为在数据链路层以及传输层有纠错了。但是数据链路层不能发现因为在网络上存在环路而出现幽灵包的问题(包没有到达目的地,但却依游荡的占用网络带宽),于是就出现一个应用层的基于网络层ICMP而设计的小软件Ping.
  2.3.3、因为不同的网络要交换数据包,必须通过路由器,路由器是工作在网络层的设备(尽管单仅作在网络层的路由器并不存在),其起到一个邮递员的作用。如果傻忽忽的邮差被贿赂了会怎么样?
  2.4、传输层
  这是端到端的开始。提供纠错功能。
  2.4.1、什么是端到端?它描述了这样一件事:在这一层的程序不需要为这个包是哪来的操心,那是网络曾考虑的事,就象世界只有我们两个端点一样,而我只要看这个包在传输中有没有受到破坏。数据链路层不是已经负责差错检测,为什么还要来一次?因为数据链路层的纠错能力是有限制的,发送方在每个数据链路层包的末尾增加一个这个包的照片,接收方也对这个包拍个照,两个照片比较一下看是否一致(CRC校验)。
  2.4.1、黑客可以通过发送半连接的Tcp握手,让远程服务器瘫痪。所谓TCP握手,就是说如果要和对方交谈,必须先礼貌的握手。如果我们伪造10万个IP与远程服务器握手,那么远程服务器就会因为应接不暇而变迟钝。
  2.5、会话层
  这一层提供了通信双方交谈的开始需要进行的动作。以及在会话连接期间提供同步。
  2.5.1、场景模拟:
  2.5.1.1、Xman拿起电话,拨打小立的号码。(建立会话---请求)
  2.5.1.2、小立的电话开始响铃。(收到会话---指示)
  2.5.1.3、小立拿起电话。(会话---响应)
  2.5.1.4、歪,是小立嘛。(会话---确认)
  2.5.2、会话层的另一个服务是同步。所谓同步就是使会话服务用户对会话的进展情况有一致的了解。在会话被中断后可以从中断处继续下去,而不必从头恢复会话。
  2.5.2、大名鼎鼎的冲击波病毒就是利用会话层的RPC协议,让计算机不断从起达。
  2.6、表示层
  表示层的作用为异构操作系统通信提供一种公共语言。而且让某些数据语法的转化对用户的应用程序来说来说是透明的,如加密解密,压缩解压缩。
  2.6.1、我们知道,计算机是用2进制存储字符的,那么每台计算机肯定有一个 文字对应2进制 的表,如‘我不爱你’三个字在我的计算机里是1111,而另一台计算机的 文字对应2进制 表翻译出1111的意思却是‘我爱你’,这便引起了不必要的麻烦。
  2.6.2、加密是将数据编码,让未授权的用户不能截取或阅读的过程。例如,计算机的帐户密码可以在LAN上加密,或者信用卡号可以通过加密套接字协议层 (Secure Sockets Layer,SSL )在WAN上加密。
  2.6.3、表示层的另一功能是数据压缩。当数据格式化后,在文本和数字中间可能会有空格也格式化了。数据压缩将这些空格删除并压紧数据,减小其大小以便发送。数据传输后,由接收结点的表示层来解压缩。 现在有这样一种Ftp服务器,上传数据之前先把要传的数据本地压缩,传上去以后自己解压,然后这个FTP服务器再通过高速链路把解压的数据投递给自己的虚拟服务器。
  2.7、应用层
  我经常在梦里看见自己躺在一个没有窗户的屋子,静静的躺着,白色的光亮。也许不安装任何应用的系统,才是最安全的系统吧。
  未完,待续...
          转自:迪林客之家

你可能感兴趣的:(TCP/IP)