总目录在这里~
https://blog.csdn.net/z123canghai/article/details/107855399
第二章 TCP/IP基础
2.1 不打紧的知识
1、发展历史
不多说,如下图,P53页
2、TCP/IP的标准化
20世纪90年代,ISO开展了OSI这一国际标准化协议的标准化进程,然而,并未普及,真的只做了参考。主要原因是TCP/IP的标准化所致,(以前还以为现有OSI,后有TCP/IP)呢。
TCP/IP不是指TCP、IP两种协议,而是包括这两种协议在内的一堆协议,叫做协议簇或协议栈。该协议栈具有开放性和注重实用性两大特点。
3、互联网基础知识
这部分很有帮助的一点就是撇清了互联网和TCP/IP的关系。
互联网英文单词为“Internet”,本意是网际网,就是表示终端通过网络连接的一种拓扑结构,现在呢,在英语语境下,是一个专有名词,即“The Internet”
而TCP/IP就是让这个拓扑结构能通讯的协议、或者说是语法。
互联网中的每个网络都是由骨干网和末端网组成,每个网络之间通过NOC(Network Operation Cener)相连。XI的意思是网络交换中心
2.2 TCP/IP的分层模型
如下图,是OSI参考模型与TCP/IP分层模型的对比。作者有这样一句话“OSI参考模型注重“通信协议必要的功能是什么”,而TCP/IP则更强调“在计算机上实现协议应该开发那种程序”。”我觉得人家说得真好,一语道破其本质。
如上图,TCP/IP协议分为4层,分别是网卡层、互联网层、传输层和应用层。一开始有些奇怪,那硬件这一层呢?不算么?是的,不算,这一层主要负责数据传输,没有任何协议上的要求,也没法要求,只要能把上面几层包裹好的数据发送出去就成。
1、网卡层(数据链路层)
网卡层也就是网络接口层,有三个作用,与上一层进行数据交换,添加MAC地址、适应硬件的数据传输方式。文中那驱动程序来做例子进行阐述,对于FPGA而言,我们一般用三速以太网进行相关开发,该核就实现了与硬件的数据交换,在加上我们添加MAC地址部分逻辑就是网卡层。
2、互联网层(网络层)
网络层是基于IP的数据转发,(艾玛,我也总算可以说出这句话了,以前理解了好长时间呢)。数据嘛,一层层包装一层层解析,到了这一层就到了对IP的解析和包装,而数据的迁移,从一头到另一头主要靠得就是IP。所以说,本层的IP协议是基于IP地址转发分包数据。
例如上一章说的路由器,就是解析到这一层来确定接下来数据的迁移方向。这一层涉及到的我们常用的协议有三个,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”,翻译为安全的壳,哈哈。
2.3 通讯实例
这一节大概将来TCP/IP的通讯过程以及协议内容,这种介绍是概念性的。
第一个知识点:
数据包首部,就是给每层给原始数据添加点东西,这些东西不是数据内容,是标志符用来识别判断。
第二个知识点:
第三个知识点:
收发数据流程。这幅图真好,一切都在图里面~