文章目录:
一:从系统角度(解释互联网是如何构成的,协议的设计思想)
二:从用户的角度(解释结构是如何发挥作用,完成网络数据交换的)
参考:阮一峰
一:从系统角度(解释互联网是如何构成的,协议的设计思想)
五层模型(也有四层和七层的)
越下面的层,越靠近硬件;越上面的层,越靠近用户:如果理解话从下往上面看,上层的变动完全不涉及下层的结构 "应用层"(Application Layer):规定应用程序的数据格式。应用程序收到"传输层"的数据,接下来就要进行解读 "传输层"(Transport Layer):就是建立"端口到端口"的通信 端口(port):一个参数,表示这个数据包到底供哪个程序(进程)使用,就是使用网卡的程序的编号 套接字(socket):确定主机+端口,我们就能实现程序之间的交流 UDP协议:在数据包中加入端口信息,UDP数据包=标头+数据 优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到 TCP协议:有确认机制的UDP协议,每发出一个数据包都要求确认 优点能够确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源 没有长度限制,理论上可以无限长,通常长度不会超过IP数据包的长度 "网络层"(Network Layer):建立"主机到主机"的通信 网络地址:作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络 网络地址帮助我们确定计算机所在的子网络,MAC地址则将数据包送到该子网络中的目标网卡 IPV4:规定网络地址的协议 IP地址:地址分成两个部分,前一部分代表网络,后一部分代表主机 子网掩码(subnet mask):判断两台计算机是否属于同一个子网络,就是表示子网络特征的一个参数。它在形式上等同于IP地址 通过将两个IP地址与子网掩码分别进行AND运算看结果是否相同 IP数据包:根据IP协议发送的数据包 ARP协议:能够从子网络IP地址得到MAC地址,这里是两台主机在同一个子网络。如果不在同一个子网络交给网关去处理 "链接层"(Link Layer):确定了0和1的分组方式 以太网协议:一组电信号构成一个数据包/"帧"(Frame)分成两个部分标头(Head)+数据(Data) "标头"包含数据包的一些说明项,比如发送者、接受者、数据类型等等;"数据"则是数据包的具体内容。 MAC地址:连入网络的所有设备,都必须具有"网卡"接口。数据包必须是从一块网卡,传送到另一块网卡。 网卡的地址,就是数据包的发送地址和接收地址,都是独一无二的地址,可以定位网卡和数据包的路径 广播(broadcasting):发送一个数据包,接收者读取这个包的"标头",找到接收方的MAC地址,然后与自身的MAC地址相比较, 如果两者相同,就接受这个包,做进一步处理,否则就丢弃这个包 ”实体层"(Physical Layer):把电脑连接起来的物理手段。它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号
数据包的结构
发送数据包的条件 同一个子网络:对方的MAC地址+对方的IP地址 非同一个子网络:网关的MAC地址+对方的IP地址
二:从用户的角度(解释结构是如何发挥作用,完成网络数据交换的)
静态IP地址:本机的IP地址 + 子网掩码 + 网关的IP地址 + DNS的IP地址 动态IP地址:计算机开机后,会自动分配到一个IP地址,不用人为设定。它使用的协议叫做DHCP协议 DHCP协议:应用层协议 每一个子网络中,有一台计算机负责管理本网络的所有IP地址,它叫做"DHCP服务器" 新的计算机加入网络,必须向"DHCP服务器"发送一个"DHCP请求"数据包,申请IP地址和相关的网络参数
(1)最前面的"以太网标头",设置发出方(本机)的MAC地址和接收方(DHCP服务器)的MAC地址。前者就是本机网卡的MAC地址,后者这时不知道,就填入一个广播地址:FF-FF-FF-FF-FF-FF。 (2)后面的"IP标头",设置发出方的IP地址和接收方的IP地址。这时,对于这两者,本机都不知道。于是,发出方的IP地址就设为0.0.0.0,接收方的IP地址设为255.255.255.255。 (3)最后的"UDP标头",设置发出方的端口和接收方的端口。这一部分是DHCP协议规定好的,发出方是68端口,接收方是67端口。 以太网是广播发送,同一个子网络的每台计算机都收到了这个包。 因为接收方的MAC地址是FF-FF-FF-FF-FF-FF,看不出是发给谁的,所以每台收到这个包的计算机,还必须分析这个包的IP地址,才能确定是不是发给自己的。 当看到发出方IP地址是0.0.0.0,接收方是255.255.255.255,于是DHCP服务器知道"这个包是发给我的",而其他计算机就可以丢弃这个包 接下来,DHCP服务器读出这个包的数据内容,分配好IP地址,发送回去一个"DHCP响应"数据包。 这个响应包的结构也是类似的,以太网标头的MAC地址是双方的网卡地址,IP标头的IP地址是DHCP服务器的IP地址(发出方)和255.255.255.255(接收方), UDP标头的端口是67(发出方)和68(接收方),分配给请求端的IP地址和本网络的具体参数则包含在Data部分。 新加入的计算机收到这个响应包,于是就知道了自己的IP地址、子网掩码、网关地址、DNS服务器等等参数。
网络数据交换,互联网协议的整个通信过程:从上层到下层
1.设置本机参数
2.DNS协议
DNS协议:将网址转换成IP地址
3.子网掩码 :判断,这个IP地址是不是在同一个子网络,二进制的AND运算
4.应用层协议:浏览网页用的是HTTP协议
5.TCP协议:需要设置端口
6.IP协议:TCP数据包再嵌入IP数据包。IP数据包需要设置双方的IP地址
7.以太网协议:IP数据包嵌入以太网数据包。以太网数据包需要设置双方的MAC地址
8.服务器端响应:经过多个网关的转发,服务器收到了以太网数据包
根据IP标头的序号将包进行拼结,取出完整的TCP数据包,然后读出里面的"HTTP请求",接着做出"HTTP响应",再用TCP协议发回来
收到HTTP响应以后,就可以将网页显示出来,就完成一次网络通信