前言:
在网络上有非常都关于计算机网络的知识,常常感觉看懂了,但没几天就忘得没影了。自己写一篇相关的文章是一个总结和消化的过程。这篇文章大致讲明白了各层通信协议的要点,此文对于了解整个网络通信流程有较大帮助。PS:时间充裕的话,还是建议看书。
相关知识:
传送门:关于HTTP协议,一篇就够了
传送门:网络通信的整个流程
传送门:路由器与交换机的工作原理
1 TCP/IP五层模型与OSI七层模型
这部分图片来自于:OSI七层模型与TCP/IP五层模型
1.0 OSI是什么
OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。
ISO为了更好的使网络应用更为普及,推出了OSI参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。
https://blog.csdn.net/xj5210224/article/details/90650379
1.1 TCP/IP五层模型与OSI七层模型分别是什么
1.2 TCP/IP五层模型与OSI七层模型的工作设备
关于硬件,有兴趣可以看下:二层、三层、四层交换机、路由器的区别
1.3 TCP/IP五层模型与OSI七层模型的协议
注:五层模型与七层模型,图源
1.4 四层、五层、还是七层?
TCP/IP模型原为四层,而TCP/IP五层模型实际上是TCP/IP与OSI七层模型的混合后的产物。说到底,这些模型的出现目的是为了使大家都使用统一的协议(通信规则)来通信。可以看到,五层模型和七层模型在物理层、数据链路层、网络层、传输层都用的是相同的协议,他们是统一的。不同点只在于应用层部分。应用程序复杂多变,比如电子邮件用的是SMTP协议、WEB服务器用HTTP协议。应用程序可以根据自己的需求特点,来使用各种不同的协议。而五层模型和七层模型在应用层的理念各有优劣,也因此在不同的协议中得到实现。
前面我们说过,TCP/IP协议是互联网协议(簇)的统称,他是互联网标准通信的基础,它提供点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。而OSI模型是开放式系统互联通信参考模型——笔者的理解是:
OSI是一个完整的、完善的宏观模型,他包括了硬件层(物理层),当然也包含了很多上面途中没有列出的协议(比如DNS解析协议等);而TCP/IP(参考)模型,更加侧重的是互联网通信核心(也是就是围绕TCP/IP协议展开的一系列通信协议)的分层,因此它不包括物理层,以及其他一些不想干的协议;其次,之所以说他是参考模型,是因为他本身也是OSI模型中的一部分,因此参考OSI模型对其分层。
2 计算机网络——以五层模型来说明工作原理
2.0这段主要参考IP协议基础,而后面几个小节参考的是一文读懂一台计算机是如何把数据发送给另一台计算机的 - 帅地的文章 - 知乎。PS:这里的信息正确与否自己没有求证过——没看过完整的计算机网络,因此只是拾人牙慧罢了。
2.0 数据封装的概念
封装即每一层接收上层数据时,都会添加自己特定的头部数据(有时也会有尾部数据)。这些头部数据实际上就是实现协议的规定,即加上相应的“暗号”、“黑话”。一个很好的例子:人是数据,“暗号”就是人的头部数据。当喊出“天王盖地虎”,回答“宝塔镇河妖”,那我们就是自己人,可以开始联系了。假如你的暗号是“三个臭皮匠”,“顶个诸葛亮”,那你就忽略掉前面的“天王盖地虎”。
如下图,应用层到传输层时,应用数据的基础上添加了TCP的header,就变成了TCP segment 。
传输层到网络层时,就在TCP segment的基础上添加了IP的header,整个数据变成了IP datagram(数据在网络层中传送需要IP地址的信息来寻路)。
网络层到链路层时,就在IP datagram的基础上添加了Ethnet header和Ethnet triler数据,变成了Ethernet frame(数据链路层中数据传送则需要Ethnet提供的信息)。
在传输层以下的各层中,数据的传递流程如下图:
下面是介绍各层都在干嘛,用什么协议实现连接和通讯。
2.1 物理层在干吗
设备:电缆、双绞线、无线网(电磁微波)、中继器、集线器。
功能:实现0、1信号的传输。这些0、1信号就是计算机能够识别的数据。
2.2 数据链路层
经物理层传输后,接收到信号如下:
问题:看得懂吗?谁送的信号?送给谁?因此,我们需要有一个规定(协议)来说明怎么我们该怎么编制有用的信号,然后大家就照这个来。
涉及硬件:网桥、网卡、以太网交换机