一,概述
计算机网络的实现,分成了好几个层,每一层都有自己的功能。可以分为四层、五层甚至是七层。越上面的层越靠近用户
二,实现
1.物理层
物理层的连接实际上就是我们可以看到的连接网线,无线电波,光纤等等各种模式。它是一种物理手段。主要规定了网络的一些电气特性,即0/1的电信号。
2.数据链路层
2.1以太网协议
最早期的时候,有一种叫“以太网”的协议定义了网络传输的类型。以太网规定,传输时需要传输一个数据包,也就是数据帧。每一帧由两部分组成:标头和数据部分;标头就是说明传输的接受者、发送者,数据类型等;数据包就是距离的数据内容。
标头的固定长度是18字节,数据的长度最短是46字节,最长是1500字节。如果数据较长,则需要分割成多个帧进行传输。
2.2MAC地址
以太网规定,连入网络的所有接口都需要有网卡接口。数据包就是从一块网卡传输到另一块网卡。网卡的地址就是数据包的发送和接收的地址,叫做MAC地址。
2.3广播
现在我们知道了网卡的地址,怎么知道另一块网卡地址?ARP协议可以解决。我们发送数据就必须知道接收方的MAC地址才能发送。原理就是它并不能准确的把数据包准确发送到接收方,而是向同一子网的所有计算机发送,由每台计算机自己判断是否自己是接收方。
发送数据包后,同一子网的所有电脑都会收到,然后开始解析标头,看接收方的MAC地址是否与自己的地址相同,如果两者相同就接收这个包,如果不同就丢弃这个包。
3.网络层
3.1概述
互联网是右无数的子网络组成的一个巨大的网络,因此必须有一种方法能够区分两个MAC地址是否处于同一个子网络。如果处于同一个子网络,就用广播的方式发送;如果不是,就用路由的方式。这就导致了网络层的诞生,每台计算机有两种地址,分别是MAC地址和网络地址。两种地址没有关联,
MAC地址是绑定在网卡上的,而网络地址是由管理员分配的,他们只是随机的组合在一起。网络地址帮助我们确定计算机所在的子网络,而MAC地址是确定该子网络的目标网卡。
3.2IP协议
规定网络地址的协议就是IP协议。它定义的地址就是IP地址。目前广泛采用IP协议第四版,简称IPv4,由32个二进制数组组成。互联网上的每一个计算机都会分配一个IP地址,这个地址由两部分组成,前一部分代表网络24位,后一部分代表主机8位。如果处于同一个子网络,那么它的网络部分是相同的。
通过IP地址判断两个两个网络是否处于同一个子网络。则需要用到子网掩码。
子网掩码在形式上和IP地址一样都是32位,它的网络部分全是1,主机部分全是0;判断两个网络是否是同一个子网,将两个IP地址与子网掩码进行AND运算,比较结果是否相同。如果相同,则处于同一个子网。
3.3IP数据包
IP协议发送的数据就叫做IP数据包。以太网的数据包标头只包含MAC地址,现在需要将IP地址放入到以太网的数据包中,只需要把IP数据包放入以太网数据包的“数据”部分,完全不用修改以太网的规格。
理论上,整个数据包的最大长度为65535字节,但是我们的数据部分长度函数1500字节,IP数据包的标头部分长度是20-60个字节。
3.4ARP协议
IP数据包是放在以太网数据包里发送的;所以我们必须痛死知道对方的MAC地址和IP地址。通常情况下IP地址是已知的。所以我们需要从它的IP地址得到MAC地址。
如果两个主机不在同一个子网络中,那么没办法得到对方的MAC地址,只能把数据包传到两个子网络连接处的网关部分,让网关处理;如果处于同一个子网络中,可以用ARP协议得到对方的MAC地址。ARP协议发出一个包(在以太网数据包中),其中包含要查询的主机地址,在对方的MAC地址这一栏,填的是FF:FF:FF:FF:FF:FF,表示这是一个"广播"地址。它所在子网络的每一台主机,都会收到这个数据包,从中取出IP地址,与自身的IP地址进行比较。如果两者相同,都做出回复,向对方报告自己的MAC地址,否则就丢弃这个包。
4.传输层
4.1概述
同一个主机有很多程序都需要用到网络,比如网页和聊天。当一个数据包发送来的时候,区别属于哪个程序,这个时候就需要一个参数叫做“端口”,每个数据包都发送到主机的特定端口,那么不同程序就能取到自己需要的数据。
端口是0-65535之间的一个整数,0-1023端口被系统占用,用户只能选择大于1023的端口,不管使用哪一个程序,程序都会选择一个随机的端口与服务器的相应端口联系。
传输层是端口-端口,网络层是主机-主机;只要确定了主机和端口就能实现程序之间的交流。
4.2UDP协议
现在需要在前面定义好的数据包中再加入端口信息,需要新的协议即UDP协议,它的格式几乎就是在数据的前面加上端口号。UDP数据包的标头部分定义了发送端口和接收端口,数据部分是具体的内容。把整个UDP数据包放入IP数据包的“数据”部分。UDP数据包标头部分一共只有八个字节。
协议优点:比较简单、容易实现;缺点:可靠性差,发出之后无法确定对方是否收到。
4.3TCP协议
有确认机制的UDP协议,每发出一个包都需要确认;如果有一个数据包丢失,收不到确认就必须重新发送这个数据包。因此TCP协议要确保数据不会遗失。
协议优点:数据不丢失,可靠性强;缺点:过程复杂,实现困难,消耗较多的资源。
5.应用层
规定应用程序的数据格式。
TCP协议可以用各种各样的程序传递数据,比如Email,WWW,FTP等,那么必须有不同的协议格式规定这些数据的格式,这些构成了应用层,这是最高的一层直接面对用户。