专栏首页重庆的技术分享区五(七)层互联网协议(计算机网络)深入浅出,看完必懂【图文一】

五(七)层互联网协议(计算机网络)深入浅出,看完必懂【图文一】

我们每天使用互联网,你是否想过,它是如何实现的?

全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?

互联网的核心是一系列协议,总称为”互联网协议”(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理。

下面就是我的学习笔记。因为这些协议实在太复杂、太庞大,我想整理一个简洁的框架,帮助自己从总体上把握它们。为了保证简单易懂,我做了大量的简化,有些地方并不全面和精确,但是应该能够说清楚互联网的原理。

互联网协议入门

一、概述

1.1 五层模型

互联网的实现,分成好几层。每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。 用户接触到的,只是最上面的一层,根本没有感觉到下面的层。要理解互联网,必须从最下层开始,自下而上理解每一层的功能。 如何分层有不同的模型,有的模型分七层,有的分四层。我觉得,把互联网分成五层,比较容易解释。

如上图所示,最底下的一层叫做”实体层”(Physical Layer),最上面的一层叫做”应用层”(Application Layer),中间的三层(自下而上)分别是”链接层”(Link Layer)、”网络层”(Network Layer)和”传输层”(Transport Layer)。越下面的层,越靠近硬件;越上面的层,越靠近用户。

它们叫什么名字,其实并不重要。只需要知道,互联网分成若干层就可以了。

1.2 层与协议

每一层都是为了完成一种功能。为了实现这些功能,就需要大家都遵守共同的规则。

大家都遵守的规则,就叫做“协议”(protocol)

互联网的每一层,都定义了很多协议。这些协议的总称,就叫做”互联网协议”(Internet Protocol Suite)。它们是互联网的核心,下面介绍每一层的功能,主要就是介绍每一层的主要协议。

二、实体层

我们从最底下的一层开始。 电脑要组网,第一件事要干什么?当然是先把电脑连起来,可以用光缆、电缆、双绞线、无线电波等方式。

这就叫做”实体层”,它就是把电脑连接起来的物理手段。它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号。

三、链接层(以太网协议,MAC地址,广播)

3.1 定义

单纯的0和1没有任何意义,必须规定解读方式:多少个电信号算一组?每个信号位有何意义? 这就是”链接层”的功能,它在”实体层”的上方,确定了0和1的分组方式。

3.2 以太网协议

早期的时候,每家公司都有自己的电信号分组方式。逐渐地,一种叫做“以太网”(Ethernet)的协议,占据了主导地位。 以太网规定,一组电信号构成一个数据包,叫做”帧”(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。

“标头”包含数据包的一些说明项,比如发送者、接受者、数据类型等等;”数据”则是数据包的具体内容。 “标头”的长度,固定为18字节。“数据”的长度,最短为46字节,最长为1500字节。因此,整个”帧”最短为64字节,最长为1518字节。如果数据很长,就必须分割成多个帧进行发送。

3.3 MAC地址

上面提到,以太网数据包的”标头”,包含了发送者和接受者的信息。那么,发送者和接受者是如何标识呢? 以太网规定,连入网络的所有设备,都必须具有”网卡”接口。数据包必须是从一块网卡,传送到另一块网卡。网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。

每块网卡出厂的时候,都有一个全世界独一无二的MAC地址,长度是48个二进制位,通常用12个十六进制数表示。

前6个十六进制数是厂商编号,后6个是该厂商的网卡流水号。有了MAC地址,就可以定位网卡和数据包的路径了。

3.4 广播

定义地址只是第一步,后面还有更多的步骤。 首先,一块网卡怎么会知道另一块网卡的MAC地址?

回答是有一种ARP协议,可以解决这个问题。这个留到后面介绍,这里只需要知道,以太网数据包必须知道接收方的MAC地址,然后才能发送。

其次,就算有了MAC地址,系统怎样才能把数据包准确送到接收方?

回答是以太网采用了一种很”原始”的方式,它不是把数据包准确送到接收方,而是向本网络内所有计算机发送,让每台计算机自己判断,是否为接收方。

上图中,1号计算机向2号计算机发送一个数据包,同一个子网络的3号、4号、5号计算机都会收到这个包。它们读取这个包的”标头”,找到接收方的MAC地址,然后与自身的MAC地址相比较,如果两者相同,就接受这个包,做进一步处理,否则就丢弃这个包。这种发送方式就叫做“广播”(broadcasting)

有了数据包的定义、网卡的MAC地址、广播的发送方式,”链接层”就可以在多台计算机之间传送数据了。 。。。

接下来是网络层,传输层和应用层,由于简书篇幅有限制,只能分为两篇文章来写了,不好意思哈! 下篇链接:五(七)层互联网协议(计算机网络)深入浅出,看完必懂【图文二】

参考链接:互联网协议入门(一)-阮一峰

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 五(七)层互联网协议(计算机网络)深入浅出,看完必懂【图文三】

    双愚
  • 五(七)层互联网协议(计算机网络)深入浅出,看完必懂【图文二】

    双愚
  • JS-我待this如初见

    双愚
  • 第8章 以太网技术

    A. CSMA/CD 应用在总线型以太网中,主要解决在多个站点同时发送数据时如何检测冲突、确保数据有序传输的问题。

    week
  • 初学者玩好Linux的建议

    我把之前的一些学习经验和方法跟大家分享下,希望对大家有所帮助: 一、玩好Linux一定要经常折腾,说白了,就是动手能力一定要强。 我初学Linux那...

    wangxl
  • 人脸检测--Grid Loss: Detecting Occluded Faces

    Grid Loss: Detecting Occluded Faces ECCV2016 遮挡问题还是要通过区域分块来解决 针对有遮挡的人脸检测,如果从训练...

    用户1148525
  • PHP-搭建Web服务器

    在互联网上,IP地址是用来区分每台计算机的标识,但是IP记忆不友好,我们将IP地址取一个名字,一个IP对应一个名字,这个名字就称为域名。

    cwl_java
  • Confluence 上传大一点的附件显示HTTP Error

    一般几Mb的是可以的,但是上传30Mb以上的就会显示HTTP Error。目前系统配置是文件大小限制是100Mb。之前上传90Mb都是可以成功的。最近才出现这个...

    HoneyMoose
  • diango之基于内置视图CBS编程

    Class-based views是Django为解决建站过程中的常见的呈现模式而建立的。具有如下几个原则:

    菲宇
  • 无人车、自动驾驶、电动汽车…互联网大会上都有哪些汽车行业的新亮点?

    12月3日-5日,第四届世界互联网大会在浙江乌镇举行。这几天,这个仅有79平方公里、5.7万人口的江南小镇再一次华丽呈现在世界的镁光灯下。 ? 马云、马化腾、李...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券