计算机网络协议详解:从DNS到TCP/IP的完整指南
计算机网络协议详解:从DNS到TCP/IP的完整指南
计算机网络协议是计算机网络中用于实现数据传输和通信的标准规则。本文详细介绍了计算机网络五层模型中的常见协议,包括DNS、HTTP、HTTPS、TCP、UDP、IP、ICMP、ARP等协议的原理、特点和工作流程。通过本文的学习,读者可以系统地了解和掌握计算机网络协议的相关知识。
计算机网络五层模型回顾
计算机网络五层模型包括应用层、传输层、网络层、数据链路层和物理层。每一层都有其特定的功能和协议:
- 应用层:为用户的应用进程提供网络通信服务,主要协议包括DNS、HTTP、HTTPS等。
- 传输层:负责两台主机之间的数据传输,主要协议包括TCP和UDP。
- 网络层:负责传输的地址管理和路由选择,主要协议包括IP和ICMP。
- 数据链路层:负责设备之间数据帧的传送和识别,主要协议包括ARP。
- 物理层:负责光电信号的传递方式,实现相邻计算机节点之间比特流的透明传输。
应用层协议
DNS协议
DNS协议是一个应用层协议,建立在TCP和UDP的基础之上,使用默认端口为53,其默认通过UDP协议通信,但如果报文过大是则会切换成TCP协议。域名系统 (DNS) 的作用是将人类可读的域名 (如,www.baidu.com) 转换为机器可读的 IP 地址 (如,192.0.2.44),本质是通过DNS域名和IP地址的对应关系转换,而这种对应关系则保存在DNS服务器中。
域名的解析过程:
- 在本地缓存中查询,如果有则返回对应IP,如果没有将请求发给DNS服务器
- 当本地DNS服务器接收到查询后,先在服务器管理区域记录中查询,若没有再在服务器本地缓存中查询,如果没有将请求发送到根域名服务器
- 根域名服务器负责解析请求的根域部分,然后将包含下一级域名信息的DNS服务地址返回给本地DNS服务器
- 本地DNS服务器利用根域名服务器解析的地址访问下一级DNS服务器,得到再下一级域的DNS服务器地址
- 按照上述递归方法逐级接近查询目标,最后在有目标域名的DNS服务器上找到相应的IP地址信息
- 本地DNS服务器将最终查询到的IP返回给客户端,让客户端访问对应主机
HTTP协议
HTTP协议是一个简单的请求——响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。HTTP协议报文格式由请求和响应组成,请求由请求行、请求头、请求体组成,响应由响应行、响应头、响应体组成。HTTP协议的特点包括支持服务器/客户端模式、传输快速、灵活、无连接、无状态等。
HTTPS协议
HTTPS同样作为应用层协议,可以说它是HTTP的升级版,增加了传输数据的安全性,HTTPS协议是在HTTP的基础上增加了一个SSL外壳,HTTPS运行在SSL上,SSL运行在TCP上,对数据的加密工作就是在SSL上完成的。其保证安全性的做法是通过证书验证和对信息混合加密的方式。
传输层协议
UDP协议
UDP协议的主要特点是无连接、不可靠、面向数据报发送。UDP一次传输的数据大小有限,最大64k。UDP的适用范围是视频、音频通话传输中,因为发送的数据较多,偶尔丢包一两个不会产生太大影响。
TCP协议
TCP是一种面向连接、可靠的、基于字节流的传输层协议。TCP的特点包括面向连接、可靠的通信、基于字节流等。TCP与UDP的区别在于UDP是无连接的,TCP是有连接的;UDP是不可靠的,TCP是可靠的;UDP面向数据报,TCP面向字节流;UDP比TCP的传输消耗小,速度更快。
网络层协议
IP协议
IP协议是TCP/IP网络模型中的核心部分,它提供了一种分层的、无关硬件的寻址方式,可以在复杂的路由式网络中传递数据所需的服务。IP协议可以将多个交换网络连接起来,在源地址和目的地址之间传输数据包,同时它还能提供数据的组装功能,以适应不同网络对数据包大小的要求。
IP协议的工作方式分为同网段和不同网段两种情况。同网段时,目的IP地址被ARP协议解析为MAC地址后,源主机会根据目的MAC地址直接将数据包发送给目的主机。不同网段时,数据包会经历多个过程最终发送给目的主机。
ICMP协议
ICMP协议又叫控制报文协议,ICMP协议用于在IP 和 路由器之间传递控制消息,描述网络是否通畅、主机是否可达、路由器是否可用等网络状态,ICMP本身并不传输数据,但对于用户间数据的传递起着重要的作用。
数据链路层协议
ARP协议
ARP协议是数据进行网络传输过程中,通过IP地址向MAC地址的转换,解决网络层和物理层衔接问题。ARP的工作流程包括主机A以广播的形式向该网段内的所有主机发送ARP请求,请求中包含了目的主机的IP地址,主机B接收到请求,通过请求中的目的IP地址发现自己是主机A要找的,返回响应,响应包括主机B的 MAC地址。ARP缓存用于存储目标主机的 IP 地址和物理地址,避免重复发送 ARP 请求。
物理层
物理层,顾名思义就是用物理手段将两个要通信的电脑连接起来,主要用来传输0、1光电信号,因为这一层过于偏硬件,所以本文不做过多的赘述。
整体的网络传输流程
当访问一个网页时,网络数据报的传输流程包括DNS解析、找到IP后、根据目的IP计算目的主机是否和主机A处于同一网段、通过ARP协议解析出对应的目的MAC、交换机转发、路由器接收、最终主机A接受到数据报,经过分用,解析,最终得到响应。