2017-09-03 读书笔记(互联网协议入门1)

大学学的计算机网络都忘得差不多了,虽然现在作为一个小前端,这些都用不怎么上,但是该看的还是得看。

想了一下,决定看作为新手引导大神的 阮一峰 的文章。

今天先看这篇 互联网协议入门(一)

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

1、概述

如何分层有不同的模型,有的模型分七层,有的分四层。我觉得,把互联网分成五层,比较容易解释。

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

应用层 -> 传输层 -> 网络层 -> 链接层 -> 实体层

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

2、实体层

"实体层"就是把电脑连接起来的物理手段,它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号。比如光缆、电缆、双绞线、无线电波等方式。

3、链接层

它在"实体层"的上方,确定了0和1的分组方式。

以太网是一种电信号分组方式的协议。以太网规定,一组电信号构成一个数据包,叫做"帧"(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。

MAC地址,也就是网卡的地址,就是数据包的发送地址和接收地址。

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

ARP协议可以使一块网卡知道另一块网卡的MAC地址。

以太网采用了一种很"原始"的方式传递,它不是把数据包准确送到接收方,而是向本网络内所有计算机发送,让每台计算机自己判断,是否为接收方。这种发送方式就叫做"广播"(broadcasting)。

4、网络层

互联网是无数子网络共同组成的一个巨型网络,如果两台计算机不在同一个子网络,广播是传不过去的。

如果是同一个子网络,就采用广播方式发送,否则就采用"路由"方式发送。(路由只是一种方式,具体实现是靠网络层才做到。)

这就导致了"网络层"的诞生。它的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做"网络地址",简称"网址"。

于是,"网络层"出现以后,每台计算机有了两种地址,一种是MAC地址,另一种是网络地址。

从逻辑上可以推断,必定是先处理网络地址,然后再处理MAC地址。

规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址。

目前,广泛采用的是IP协议第四版,简称IPv4。这个版本规定,网络地址由32个二进制位组成,从0.0.0.0一直到255.255.255.255。

互联网上的每一台计算机,都会分配到一个IP地址。这个地址分成两个部分,前一部分代表网络,后一部分代表主机。

"子网掩码",就是表示子网络特征的一个参数。如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。将两个IP地址与子网掩码分别进行AND运算(二进制下,两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。其实也就是是禁止中的前9位相同的意思)

以太网数据包是head+body的形式,IP数据包是在这边的body中,又分为head和body。

IP数据包的"标头"部分的长度为20到60字节,整个数据包的总长度最大为65,535字节。因此,理论上,一个IP数据包的"数据"部分,最长为65,515字节。前面说过,以太网数据包的"数据"部分,最长只有1500字节。因此,如果IP数据包超过了1500字节,它就需要分割成几个以太网数据包,分开发送了。

通常情况下,对方的IP地址是已知的,但是我们不知道它的MAC地址。

ARP协议可以得到同一个子网络内的主机MAC地址,可以把数据包发送到任意一台主机之上了。

5、传输层

有了MAC地址和IP地址,我们已经可以在互联网上任意两台主机上建立通信。

"端口"(port),它其实是每一个使用网卡的程序的编号。每个数据包都发到主机的特定端口,所以不同的程序就能取到自己所需要的数据。

"传输层"的功能,就是建立"端口到端口"的通信。相比之下,"网络层"的功能是建立"主机到主机"的通信。只要确定主机和端口,我们就能实现程序之间的交流。

整个UDP数据包在IP数据包的"数据"body部分,也分为head和body。

TCP协议可以提高网络可靠性。可以近似认为,TCP协议是有确认机制的UDP协议,每发出一个数据包都要求确认。如果有一个数据包遗失,收不到确认,发出方就知道有必要重发这个数据包了。

TCP协议能够确保数据不会遗失,提高网络可靠性。它的缺点是过程复杂、实现困难、消耗较多的资源。

TCP数据包和UDP数据包一样,都是内嵌在IP数据包的"数据"部分。

6、应用层

"应用层"的作用,就是规定应用程序的数据格式。

TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了"应用层"。

总结

大体就是这么5层了。

发出的数据结构

你可能感兴趣的:(2017-09-03 读书笔记(互联网协议入门1))