本文通过在局域网中新添加一台主机,到主机配置,最后访问网页的一个过程。来说明网络通信中各种协议和设备的作用。让大家对整个网络通信,在架构上有所理解,不对各种协议做深入说明。
本系列文章
网络技术入门(一):网络技术基础知识系统归结
网络技术入门(二):两个主机(客户端和服务器)通信过程(硬件转发角度)
网络技术入门(三):两个主机(客户端和服务器)通信过程(数据包交换角度)
网络技术入门(四):两个主机(客户端和服务器)通信过程(TCP/IP通信角度)
网络技术入门 :HTTP报文和TCP/IP数据包
网络技术入门 :一篇文章让你彻底理解网络通信中各种协议和设备的作用
这里用在你去公司入职,公司给你新配置一台电脑为例。(这里不用家里电脑入网为例,因为家里一般电脑较少,只用一个路由器就好,没有必要用交换机)。
入职一家新的公司,公司给你配置了一台新的电脑。需要你自己安装配置
一、硬件配置
涉及到设备:光猫,路由器,交换机,集线器(暂无)
首先你需要了解光猫、路由器、交换机和主机网络拓扑关系。入户光纤连接光猫,网线是从光猫出来要接路由器,路由器再接交换机,然后所有的电脑用网线连接到交换机就行了。
光猫有些是光猫和路由器一体的,不需要单独的路由器设备也可以上网。
可以参考下图的网络拓扑理解:
总结:
光猫:
又称调制调解器,它主要为了信号转换,如把模拟信号转换成数字信号。
.
路由器:
1 连接互联网中的不同子网络。
2 实现互联网中不同子网络之间的数据转发。
.
交换机和集线器:
1 连接局域网中的不同主机。
2 实现局域网不同主机之间的数据交换
。
二、上网设置
涉及到概念:IP地址,子网掩码,网关的IP地址,DNS的IP地址
打开电脑后需要在网络配置中配置四个属性才能上网,这里可以手动填也可以选择自动获取。
- 本机的IP地址
- 子网掩码
- 网关的IP地址
- DNS的IP地址
下面简称:通讯四参数
,后面会说明这四个参数在哪里用到。
为什么需要配置这四个参数,下一小节说明这四个参数的作用,或者查看网络技术入门(二):两个主机(客户端和服务器)通信过程(硬件转发角度)
三、访问网页
涉及到协议:DHCP协议,DNS,ARP协议,ICMP协议
当我们电脑连接安装完成(第一小节内容),并且网络配置完成(第二小节内容),我们就可以上网了。
1 DCHP协议
DHCP(Dynamic Host Configuration
Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
计算机配置好后,设置网络参数时勾选“自动获得IP地址”和“自动获得DNS服务器地址”,首先会在局域网内发送DCHP请求,该请求会在局域网内广播数据包,同一子网络内每台计算机都会收到这个包,只有DHCP服务器收到这个包会回复,而其他计算机会丢弃这个包。
DHCP服务器返回给计算机的数据包,就包含了分配给该计算机的IP地址,子网掩码,网关地址,DNS服务器IP等参数。
DCHP协议的作用就是为局域网中新加入的计算机,分配IP地址,子网掩码,网关地址,DNS服务器IP等参数。
这四个网络参数可以通过DCHP请求动态获取,也可以手动填写来分配。
2 DNS协议 和 ARP协议
DNS(Domain Name System,域名系统),DNS协议是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。
ARP(Address Resolution Protocol,地址解析协议),是根据IP地址获取物理地址的一个TCP/IP协议。
现在我们的计算机可以上网了,我们打开浏览器,输入网址(https://github.com)点击访问。
要和github服务器通信,需要知道服务器的IP地址,端口号和MAC地址。
这里再补充一下:
IP地址、MAC地址和端口号的作用:
1 IP地址可以找到互联网总目标主机所在的局域网
2 MAC地址能够找到子网络中目标网卡(主机)
3 端口号找到目标网卡所在计算机中的目标进程
.IP地址、MAC地址和端口号的获取:
1. 目标主机IP地址获取:操作系统通过域名(https://github.com)向DNS服务器发送请求获取web服务器的IP地址。DNS服务器的IP地址哪里来,这里就用到了
通讯四参数
:DNS服务器的IP地址
。
2. 进程或服务端口号获取:TCP/IP协议栈分配,这里就是操作系统分配。
3. 目标主机MAC地址获取:通过ARP请求获取目标主机(或者网关)的MAC地址。(这里是区分同一子网和不同子网的,具体不详细讲,详细过程网络技术入门(二):两个主机(客户端和服务器)通信过程(硬件转发角度))。
首先请求DNS服务器获取github服务器的IP地址。(这里请求的DNS服务器用到 通讯四参数
:DNS服务器的IP地址
)
TCP/IP协议栈分配端口号。
在获取web服务器MAC地址的时候,操作系统会区分该web服务器和当前计算机是否在一个子网络内。
计算的方法就是通过通讯四参数
:子网掩码
和web服务器IP进行“与”运算(过程自查)。
同一子网络可以通过发送ARP请求,广播所有子网内主机获取目标主机(web服务器)的MAC地址;
不在同一个子网络,可以通过通讯四参数
:网关的IP地址
获取网关MAC地址(没有设置网关的需要ARP请求获取)。
到目前为止,目标服务器的IP地址,目标服务器的MAC地址和端口号,都已经知道。就可以发送网络请求了。
计算机上:数据包会被操作系统(TCP/IP协议栈)交给网卡驱动,网卡驱动把数据报再转交给网卡。网卡会把数据通过网线传给交换机(MAC地址表)
交换机:交换机会把数据转发给路由器(ARP缓存表,路由表)。
路由器: 数据通过路由器在互联网中转发,最终被目标主机接收。
web服务器的应答数据包和计算机发送的请求数据包过程一样。
这里做一个总结
1 计算机新入网,需要通过DCHP协议
获取IP地址,子网掩码,网关地址,DNS服务器IP参数。才能上网。
2 计算机访问网页,需要知道web服务器的 IP地址,端口号和MAC地址。
IP地址:通过DNS协议
,根据web服务器域名获取web服务器IP。
端口号:TCP/IP协议栈分配,这里就是操作系统分配。
MAC地址:通过ARP协议
,根据目标主机IP地址获取目标主机MAC地址或者网关MAC地址。
(关于ARP协议详细说明:网络技术入门(二):两个主机(客户端和服务器)通信过程(硬件转发角度))
3 知道了web服务器的 IP地址,端口号和MAC地址,就可以发送网络请求了。
计算机上,数据包会被操作系统(TCP/IP协议栈)交给网卡驱动,网卡驱动把数据报再转交给网卡。
最后网卡会把数据通过网线传给交换机(MAC地址表),交换机会把数据转发给路由器(ARP缓存表,路由表)。
数据通过路由器在互联网中转发,最终被目标主机接收。