TCP/IP的分层模型


如下图,是OSI参考模型与TCP/IP分层模型的对比。作者有这样一句话“OSI参考模型注重“通信协议必要的功能是什么”,而TCP/IP则更强调“在计算机上实现协议应该开发那种程序”。”我觉得人家说得真好,一语道破其本质。

image.png 

如上图,TCP/IP协议分为4层,分别是网卡层、互联网层、传输层和应用层。一开始有些奇怪,那硬件这一层呢?不算么?是的,不算,这一层主要负责数据传输,没有任何协议上的要求,也没法要求,只要能把上面几层包裹好的数据发送出去就成。

1、网卡层(数据链路层)

网卡层也就是网络接口层,有三个作用,与上一层进行数据交换,添加MAC地址、适应硬件的数据传输方式。文中那驱动程序来做例子进行阐述,对于FPGA而言,我们一般用三速以太网进行相关开发,该核就实现了与硬件的数据交换,在加上我们添加MAC地址部分逻辑就是网卡层。

2、互联网层(网络层)

网络层是基于IP的数据转发,(艾玛,我也总算可以说出这句话了,以前理解了好长时间呢)。数据嘛,一层层包装一层层解析,到了这一层就到了对IP的解析和包装,而数据的迁移,从一头到另一头主要靠得就是IP。所以说,本层的IP协议是基于IP地址转发分包数据。 

 image.png

例如上一章说的路由器,就是解析到这一层来确定接下来数据的迁移方向。这一层涉及到的我们常用的协议有三个,IP协议、ICMP协议以及ARP协议,其中IP协议就是数据迁移,ICMP是具有通讯检查功能,而ARP协议是获取下一目的地的MAC地址。具体内容安排在后面章节阐述。

3、传输层

如果不是路由器等中转设备,一包数据通过了网络层到达传输层,这就意味着数据是给本设备的。是给本设备,但无法确定是给本设备的谁?这就是传输层要做的事情,把这包数据送给应当送给的人,实现方式也是在后面章节阐述。

这一层设计的协议有TCP和UDP。TCP是一种面向有连接的协议,就是说双方在沟通前要确对方是否具备沟通条件,并在沟通结束后要告知对方,而且在沟通过程中要保证对方不会接收出错。可见,为了搭上话,很是费劲,需要很多额外操作,这也使得这种数据交换方式效率不高,要实现大吞吐量的数据传输是很难的,但安全性是相当有保证的

为此,就有了UDP协议,应当可以想到,该协议解决了TCP协议存在的限制,实现了大容量的数据传输,然而,随之带来的就是数据的安全性上的牺牲,而且是无连接协议,不关心接收方是否收到数据,我想发就发。

4、应用层

传输层确定了数据是给哪的或是哪来的,本层就是让具体应用来处理数据了,例如邮件,万维网、看视频等,不同的应用有着各自的协议解析方式,是丰富多彩的。

作者提到了文件传输(FTP)、远程登录(TELNET和SSH)。当然还有其它,我觉得这两个有必要好好看看。文件传输(FTP)全称是“File Transfer Prototol”。使用TCP协议,实现保存在其它计算机硬盘上的文件转移到本地的硬盘上。我们经常用“FileZilla”就是这个协议。远程登录(TELNET和SSH)的SSH全称是“Sercure SHell”,翻译为安全的壳,哈哈。






快来扫描下方二维码关注公众号,领取站内所有相关资料,所有哦~

有建议、有需求、有疑问、联系我

<