前言:
就TCP/IP协议族而言要学的东西很多很多,但是多不可怕,可怕的是学了后面忘了前面,没有宏观掌握所学的是什么,零零碎碎的学了很多,但是并不能把这些技术串在一块儿。对于某个技术点如果研究了很长时间依旧不是很清楚的话,那么就试着从他的历史着手重新研究一遍。
一、什么是TCP/IP协议族
维基百科解释:TCP/IP协议族(英语:TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP[2]。因为该协议家族的两个核心协议:TCP(传输控制协议)和IP(网际协议),为该家族中最早通过的标准[3]。由于在网络通讯协议普遍采用分层的结构,当多个层次的协议共同工作时,类似计算机科学中的堆栈,因此又被称为TCP/IP协议栈(英语:TCP/IP Protocol Stack)[4][5] 。
二、什么是TCP/IP参考模型
维基百科解释:TCP/IP参考模型是一个抽象的分层模型,这个模型中,所有的TCP/IP系列网络协议都被归类到4个抽象的"层"中。每一抽象层创建在低一层提供的服务上,并且为高一层提供服务。 完成一些特定的任务需要众多的协议协同工作,这些协议分布在参考模型的不同层中的,因此有时称它们为一个协议栈。 TCP/IP参考模型为TCP/IP协议栈订身制作。
三、 OSI参考模型与TCP/IP参考模型的历史
- OSI参考模型是学术上和法律上的国际标准,是完整的权威的网络参考模型(对的仅仅是提供了一套解决问题的思路)。而TCP/IP参考模型是事实上的国际标准,即现实生活中被广泛使用的网络参考模型。这个确实很有意思,这也是为什么实际开发大家都是在说TCP/IP,而考试面试什么的都喜欢问OSI,这种情形是怎么导致的?
- 早在20世纪70-80年代,网络发展的最初阶段,那时候各个生产厂商各自为营,生产出许多不同的网络,它们都相互不兼容。因此一个叫 ISO(国际标准组织)的机构跑出来说:我们应该就网络制定个开放标准,只要大家都遵循这个标准,生产出来的东西相互兼容,这样消费者满意,大家也都有肉吃了。这个想法呢,也得到大家的拥护。于是呢,这个机构就组织一批搞网络的专家研究网络通信的一些原理及解决方案。大家都知道,搞学术的人都有拖沓的臭毛病,搞啊搞的搞了好多年,终于弄出了OSI,这个OSI也不是盖的,把网络通信问题都研究透了,很权威。专家们都很满意,不过,却也很惊讶地发现满世界已经有许多网络产品在使用了,而且,遵循的并不是OSI标准,这是怎么回事呢?原来啊,国际标准化组织说搞一个开放标准出来,那些个生产厂商开始也是很拥护的,就等着出结果呢,结果呢,等了一段时间始终发现没标准出来,而现实中网络的发展和需求不等人啊。怎么办呢,摸着石头过河吧!这个石头就是TCP/IP参考模型了。这是一个很势利的模型,它主要只研究[网络互联]方面的一些问题,在网络连接过程出现了什么问题,那么才考虑去解决它,也就是说让 现实去改正,这么一来二去,几年的时间里,生产厂商们发现这个TCP/IP模型也挺好用,于是就占领了整个市场。等OSI从实验室里出来的时候,发现现实世界已经被TCP/IP这个草根占领了,想呼吁生产厂商们改用OSI标准,也没人听了哦。于是,就是现如今这种状况了。
但是为什么还要去了解OSI呢?
学习网络的人,为什么还要学习OSI模式,主要是因为它是非常好的理论,能帮助我们理解网络架构,这样就才更加容易学习到TCP/IP的模型。
OSI模型的理解: 以你和你女朋友以书信的方式进行通信为例。
1、物理层:运输工具,比如火车、汽车。
2、数据链路层:相当于货物核对单,表明里面有些什么东西,接受的时候确认一下是否正确(CRC检验)。
3、网络层:相当于邮政局或快递公司地址(IP地址),能正确到达对方;
4、传输层:信封(TCP协议是挂号信,是可靠的;UDP协议是平信,尽力送到对方,不保证一点送到对方)
5、会话层:相当于邮票,优质邮票寄一封信,相当与一个会话。
6、表示层:你用普通话还是用方言?或者是英语?
7、应用层:你可以说你的内容了,可以说是你爱她,也可以说你恨她。描述一下封装过程 :
1.你应该有需要表达的内容(应用层)
2.你需要有一种合适的表达语言(表示层)
3.你要把信纸装进一个信封,贴上一张邮票(一封信就是一个会话)
4.你要选择什么方式寄信(挂号信或平信,TCP或UDP,传输层)
5.选择一个快递公司或邮政局,告诉地址,邮政局根据地址选择运输方式(根据IP地址选择路由,网络层)
6.邮政局对货物进行再包装,写上装箱单,供接收地的邮政局核对(货物总是先送到对方邮政局,对方邮政局的地址就相当于MAC地址,装箱单就相当于CRC校验码,数据链路层)
7.货物通过具体的运输根据(汽车、汽车、飞机等,物理层)