五层网络模型
应用层:应用程序的数据格式、数据内容。
传输层:UDP协议/TCP协议、系统端口、应用端口。
网络层:IP协议、分配IP地址、确定子网络。
链接层:以太网协议、MAC地址、子网广播。
实体层:也是物理层、信号传播介质、如线缆。
网络数据包结构
标头、数据
如下精简步骤,反映了互联网通信的基本原理
(一)DHCP协议-联网
通过DHCP协议进行广播,在内网获取内动态Ip、子网掩码、网关IP、DNS的IP后,可以联网啦
无论是动态IP,还是静态IP,想要联网都必须设置如下参数(参数值以实际为准)
* 本机的IP地址:192.168.1.100
* 子网掩码:255.255.255.0
* 网关的IP地址:192.168.1.1
* DNS的IP地址:8.8.8.8
(二)DNS协议-域名解析为IP
DNS协议可以帮助我们,将这个网址www.google.com转换成IP地址。已知DNS服务器为8.8.8.8,于是我们向这个地址发送一个DNS数据包(53端口)。然后,DNS服务器做出响应,告诉我们Google的IP地址是172.194.72.105。于是,我们知道了对方的IP地址。
(三)子网掩码-计算通信目标是否在同一子网内
1.本机IP和子网掩码进行AND运算得A,目标IP与子网掩码进行AND运算得B,若A=B,则在同一子网络,否则向上游网关转发;
2.网关的IP地址,结合它自己的子网掩码,可用于确定目标IP是否与此网关处于同一子网络;若不在同一子网,则向上级网关转发,以此类推;
3.DNS的IP地址,用于将目标域名解析为IP地址。
(四)ARP协议-若在同一子网内,获取对方MAC地址,即可通信
通过ARP协议获取同一子网内的电脑的MAC地址获取
如果两台主机在同一个子网络,那么我们可以用ARP协议,得到对方的MAC地址。ARP协议也是发出一个数据包(包含在以太网数据包中),其中包含它所要查询主机的IP地址,在对方的MAC地址这一栏,填的是FF:FF:FF:FF:FF:FF,表示这是一个"广播"地址。它所在子网络的每一台主机,都会收到这个数据包,从中取出IP地址,与自身的IP地址进行比较。如果两者相同,都做出回复,向对方报告自己的MAC地址,否则就丢弃这个包。
总之,有了ARP协议之后,我们就可以得到同一个子网络内的主机MAC地址,可以把数据包发送到任意一台主机之上了。