从TCP/IP协议栈看计算机层次结构

少于 1 分钟读完

解决“大”问题的诀窍,就在于将其分解成较小、较易管理的问题。如果分解后的问题还是太庞大,再进一步分解。 ——《Head First Javascript》

##1.TCP/IP协议栈

TCP/IP参考模型不同层之间的多个协议协同工作,也称为协议栈。

之所以称为栈,我的理解是因为数据包发送的时候,从应用层到物理层,一步步封装(添加每一层的协议头),类似于压栈过程。收到数据包之后,从物理层到应用层,一步步解封装(去掉协议头),类似于弹栈过程。

发送过程先添加的协议头(如http报头),在接收过程中最后解析去掉,后添加的协议头(如以太网协议的帧头),在接收端最先被去掉,符合栈“后进先出”的特点。

TCP/IP参考模型是一个抽象的分层模型,这个模型中,所有的TCP/IP系列网络协议都被归类到4个抽象的”层”中。各层分工明确,每一抽象层建立在低一层提供的服务上,并且为高一层提供服务。

如网络层的IP协议,根据IP报头的目的IP地址,进行路由寻址,负责将数据包送到目的主机,剩下的事由传输层来接管,传输层的TCP或者UDP协 议根据目标端口号将数据包送到相应的应用程序。IP层不管一个数据包有没有重复,这不属于它的任务,它把IP报头去掉,将数据交给传输层处理,传输层负责 丢失重传等差错控制。

##2.UNIX架构

unix architecture

##3.计算机结构

大致可以看成如下三个层次

  • 硬件
  • 操作系统
  • 应用程序

操作系统的出现,我们再也不必直接在硬件上使用汇编写程序,我们可以在操作系统环境下,使用高级语言,方便的编写程序,再利用编译器将我的程序编译成目标代码,最后链接为可执行程序。


这是一种思想

每一层基于低一层实现,又向高一层提供某些接口,本层的更新修改,只要不改变接口,就不影响高一层的使用。

分层思想将一个复杂的问题分解化简,变成一系列简单的小问题。试考虑一下,我QQ发送的消息,对方如何准确的收到呢?我们的聊天内容会不会被窃听 啊?对方不回复,是他掉线了,还是发送的消息丢失了?我怎么样才能知道对方收到了呢?我和好友相距那么远,数据包是怎么到达对方电脑的呢?。。。。

这些问题如果不按TCP/IP模型考虑,想想都头大。根据TCP/IP参考模型,

  • 应用层: 使用一些加密算法对数据进行加密,防止聊天的私密信息被偷听。

  • 传输层: 进行拥塞控制和差错控制,每发送一个数据包,必须要等收到确认之后,才能认为对方已经收到。

  • 网络层: 进行路由选择,确保数据包到达远方的主机。

标签:

分类:

更新时间:

留下评论