OSI 七层模型 VS TCP/IP 协议族

来源:互联网 发布:花千骨天羽进阶数据 编辑:程序博客网 时间:2024/06/02 02:37

OSI 七层模型

OSI 七层模型的本意是为OSI 框架中的各种协议的创建提供基础,七层由底层到上层依次为 物理层、数据链路层、网络层、运输层、会话层、表现层 和 应用层,各层之间通过接口通信,接口定义了相应层对上层提供什么样的信息和服务,只要提供了符合接口规定的数据,就可以替换相应的层。

这不是软件工程中松散耦合的实践么 ^_^,谈到这里,不得不提一下 CSS 3 中的模块式迭代的规范草案,一个模块不影响另一个模块的发布和制定,这不都是很好的实践么?我等也要追求这样的设计。

OSI层次模型

各个层的作用:

  • 应用层,允许访问网络资源;
  • 表示层,数据的转换、加密和压缩;
  • 会话层,建立、管理和终止会话;
  • 运输层,提供可靠的进程到进程的交付和差错恢复;
  • 网络层,从源到终点传送分组,提供网络互联;
  • 数据链路层,将比特组织成帧结构,提供逐跳交付;
  • 物理层,经过媒体传送比特,提供机械的和电气的规约;

TCP/IP 协议族

TCP/IP 协议族,比 OSI 七层模型出现的早,但是和 OSI 模型的分层不一样,OSI模型每层强调定义相应的功能接口,而 TCP/IP 协议族的每层容纳一定数量的协议,这也是它为什么叫协议族的原因吧!两个模型类似,但是有一些分层方面的不同,请看图:

TCP/IP 协议族和OSI模型分层对比
图1 TCP/IP 协议族和OSI模型分层对比

TCP/IP 协议族分为五层,应用层是应用程序用到的协议,如软件等,HTTP协议在这一层;运输层应该是操作系统层面的,负责在两台电脑端口之间建立管道,传输数据,TCP协议就在这一层;网络层主要是通过IP简历两台主机之间的联系,IP 协议在这一层;数据链路层和物理层,更倾向于硬件了,日常开发基本用不到,我也就不研究了,偷个懒。【笑】

我们用一个表来说明TCP/IP 协议族中应用层、运输层和网络层每层都有哪些协议:

表1 TCP/IP 协议族应用层、运输层和网络层每层容纳协议

层 包含的协议 应用层 DHCP,DNS,TELNET 与 SSH,FTP 和 TFTP,HTTP,SMTP、POP、IMAP 和 MIME,SNMP 运输层 UDP,TCP,SCTP 网络层 IP(IPv4、IPv6),ARP,ICMP,单播路由选择协议(RIP、OSPF、BGP),多播和多播路由选择协议


作为一名合格前端,你可能对于 IP、TCP、DNS、TELNET、SSH 和 HTTP 已经司空见惯,在 Windows 中你对 IP 协议的认识可能是 ping 命令(查询服务器是否有响应),ipconfig命令(查询本机 IP 地址);TCP 用到最多的就是 socket 编程中用到;DNS 作用是将字符串域名转换为 IP 地址,以便利用 IP 协议在互联网中找到相应的主机;TELNET 是 Windows 中远程登录用到的协议,SSH 是 TELNET 的加密版本,也用于登录远程主机,多用于 Linux,比如 ssh root@122.122.122.12;HTTP 用于访问互联网上的文档和其它资源,浏览器就是利用 HTTP 访问网页的,所以这个协议跟我们最近,网站的性能直接跟这个协议息息相关。

还有一个协议,你也需要了解 : ICMP,Internet Control Message Protocol(网际控制报文协议),IP 协议是帮我们寻找远程主机的,但是途径几个节点,在任何一个节点都可能失败,但是 IP 协议并不具备差错报告或差错纠正机制,如何知道在哪个节点失败的呢?你可能会想到 ping,这个命令只会告诉你是否出错,不会告诉你那里出错的。这时你需要的命令是 tracert,参数为目标 IP 地址,或者网址(会自动使用 DNS 协议转换为 IP),下图为使用命令追踪 baidu.com 的结果:

tracert baidu.com
图2 tracert baidu.com 结果

总结

差不多明白了 OSI 七层模型和 TCP/IP 协议族的组织和各层功能了吧,捋一捋思路更清晰,身体更健康。【笑】

这里所说的这些是基础,理解整个互联网的实质和结构,在前端开发中,最重要的还是 HTTP(因为与浏览器直接相关嘛),接下来得仔细总结一下自己学过的 HTTP 知识了,下篇文章再说。

部分参考
TCP/IP 协议族(第四版)
自己的总结

1 0
原创粉丝点击