互联网的核心是一系列协议,总称为“互联网协议”。他们对电脑如何组网和连接,做出了详尽的规定。互联网协议按照理论体系分为多层,不同的理论体系的分层结果不一样,但又大同小异。通常将互联网协议分为四层,也有的分为七层,分为五层比较容易理解。
具体分层情况如下:
应用层 |
传输层 |
网络层 |
链接层 |
实体层 |
这是台湾的叫法,中国大陆的叫法是:应用层、传输层、网络层、数据链路层、物理层。
五层从上至下,越往下越接近硬件底层,越靠上越与人打交道得多。
为了实现一些功能,每一层都定义了许多协议。
一、物理层
最底层的协议,是连接电脑与电脑的物理手段,负责传送0和1的电信号。光缆、双绞线、无线电波等都属于物理层。
二、数据链路层
单纯的0和1的电信号没有任何意义,必须规定解读方式,这就是链路层的作用,它位于实体层的上方,规定了0和1电信号的分组方式。
Ethernet:现在主导的链路层协议是以太网(Ethernet)协议,Ethernet规定了一组电信号即为一个数据包,叫做帧(Frame),每一帧分为两部分:标头 (Head)和数据(Data)。标头包含说明(sender、receiver、dataformat等),数据是具体内容。标头长度固定为18字节,数据长度为46~1500字节。
MAC地址:网卡的地址,即数据包的发送地址和接收地址,这就叫做MAC地址。每块网卡出厂时,都有一个世界独一无二的MAC地址,长度是48个二进制位,用 12个十六进制位数表示。
有了网卡地址就可以定位网卡和数据包路径了。
广播:一块网卡为了知道另一块网卡的MAC地址,会把数据包发送给网络内(子网络)的所有计算机发送,让每台计算机自己判断是否为接收方。子网内的所有计算机,会读取数据包的标头,接到接收方的MAC地址,然后就会与自身比较,如果相同就接收这个包,否则就丢弃,这称为广播(broadcasting)。
有了数据包的定义、网卡的MAC地址、广播的发送方式,链路层就可以在多台计算机之间传送数据了。
三、网络层
Ethernet依靠MAC地址发送数据,但是效率比较低,而且局限于发送者所在的子网络,如果两台计算机不在同一个子网络,那么广播传不过去。
所以必须有一种方法,区分哪些MAC地址在同一个网络,哪些不是。如果是同一个子网络,那么就用广播方式发送,否则采用路由方式。这就导致了网络层的产生,他的作用是引进一套新的地址,使得能够区分不同计算机之间是否处于同一个子网络,这套地址就叫做“网络地址”,简称为“网址”。
“网络层”出现之后,每台计算机有了两个地址,一个是MAC地址,一个是网络地址。MAC地址绑定在网卡上,将数据包发送到该子网中的目标网卡。网络地址由管理员分配,帮助我们确定计算机所在子网络。
规定网址的协议,叫做IP协议,所定义的地址叫做IP地址。第四版IPv4,由32个二进制位组成,习惯上用分成四段的十位数表示IP地址,从0.0.0.0~255.255.255.255.
IP地址分为两部分,前一部分代表网络,后一部分代表主机。
子网掩码:表示子网络特征的一个参数。在形式上等同于IP地址,它的网络部分全部为1,主机部分全部为0。
判断两个IP地址是否在同一个子网络:
将两个要判断的IP地址分别与子网掩码进行AND运算,结果相同则在同一个子网内,否则不是。
IP协议的主要作用:
1.为每一个计算机分配IP地址。
2.确定哪些网络在同一个子网络内。
IP数据包:根据IP协议所发送的数据包。包含标头和数据。标头包含版本、长度、IP地址等信息。
ARP协议:从IP地址获取MAC地址。
1.如果不在同一个子网内,则无法获取。
2.如果在同一个子网内,那么可以用ARP协议得到对方的MAC地址。
协议:发出一个数据包(包含在以太网数据包中)数据包中包含要查询主机的IP地址。对方的MAC地址填的是FF:FF:FF:FF:FF:FF,表示这是一个广播地址,子网内的每一台主机都会接收到这个数据包,从中取出IP地址,与自身IP地址比较,如果相同,就作出回复,向对方报告自己的MAC地址,否则丢弃。
四、传输层
指定数据包给哪个程序使用。
端口(port):使用网卡的程序的编号。
传输层的功能:建立“端口到端口”的通信。
网络层的作用:建立“主机到主机”的通信。
只要确定主机和端口,就能实现程序之间的网络交流。Unix系统把主机+端口叫做“套接字”(socket),UDP/TCP都是传输层端对端协议。
五、应用层
作用:规定应用程序的数据格式。
电脑上网的首要步骤,确定四个参数:
1.本机IP地址
2.子网掩码
3.网关的IP地址
4.DNS的IP地址
另外,DHCP协议用于分配动态IP地址。