常见的网络协议有:TCP/IP协议、UDP协议、HTTP协议、FTP协议等,本文就详细的介绍一下常见的网络协议,通过这些具体的协议更深刻的认识整体网络的传输流程及相关网络原理,感兴趣的可以了解一下。
前言
本篇博客将对基于 计算机网络五层模型 中的常见协议做以总结 ,目的通过这些具体的协议更深刻的认识整体网络的传输流程及相关网络原理
计算机网络五层模型回顾
- 应用层:为用户为用户的应用进程提供网络通信服务
协议——DNS协议、HTTP协议、HTTPS协议 - 传输层:负责两台主机之间的数据传输,将数据从发送端传输到接收端
协议——TCP协议、UDP协议 - 网络层:负责传输的地址管理和路由选择,在众多复杂的网络环境中确定一条合适的路径
协议——IP协议 - 数据链路层:负责设备之间数据帧的传送和识别,将网络层传递的数据报封装成帧,在处于同一个数据数据链路节点的两个设备之间传输
协议——ARP协议、MTU协议 - 物理层:负责光电信号的传递方式,实现相邻计算机节点之间比特流的透明传输
对于五层网络模型基本都是耳熟能详,但是有没有思考过,网络为什么要这样分层呢?
最直接的回答就是为了简化网络设计的复杂性,通信协议采用分层结构,各层之间既相互独立又相互协调工作,如此以来便达到的高效的目的。如同设计模式中对于设计一个复杂的程序时,尽量使程序各功能之间是解耦合的一样,对于复杂的网络设计,分层设计也是很明智的一种做法。
网络分层的最本质就是每一层独立的完成一个任务而不必考虑自己任务之外的实现,而因为不同的任务因此就有了每一层所对应的不同设备。(实例到应用就是,物理层只需要关系0和1的光电信号如何传输,而对它所表达的内容毫不关心;再往上数据链路层只需要关心封装好的数据帧如何准确的送到对应的MAC地址的目的主机中,而不必关心数据报的具体内容和具体会通过何种方式光纤还是局域网…同理往上对于所有层)
应用层协议
应用层协议主要负责各个程序间的通信,发生网络传输一个数据时,先由应用层对数据按照对应的协议封装,然后交给下一层传输层,当经过一系列网络传输,数据达到接收端时,一层层的分用,最后一层再由应用层分用,最终得到数据。
DNS协议:
DNS协议是一个应用层协议,建立在TCP和UDP的基础之上,使用默认端口为53,其默认通过UDP协议通信,但如果报文过大是则会切换成TCP协议。
域名系统 (DNS) 的作用是将人类可读的域名 (如,www.baidu.com) 转换为机器可读的 IP 地址 (如,192.0.2.44),本质是通过DNS域名和IP地址的对应关系转换,而这种对应关系则保存在DNS服务器中
域名的解析过程:
域名的解析工作大体上可以分为两个步骤:第一步客户端向本地DNS服务器发起一个DNS请求报文,报文里携带需要查询的域名,第二步本地DNS服务器向本机回应一个DNS响应报文,报文里携带查询域名所对应的IP地址
具体流程如下:
在本地缓存中查询,如果有则返回对应IP,如果没有将请求发给DNS服务器
当本地DNS服务器接收到查询后,先在服务器管理区域记录中查询,若没有再在服务器本地缓存中查询,如果没有将请求发送到根域名服务器
根域名服务器负责解析请求的根域部分,然后将包含下一级域名信息的DNS服务地址返回给本地DNS服务器
本地DNS服务器利用根域名服务器解析的地址访问下一级DNS服务器,得到再下一级域的DNS服务器地址
按照上述递归方法逐级接近查询目标,最后在有目标域名的DNS服务器上找到相应的IP地址信息
本地DNS服务器将最终查询到的IP返回给客户端,让客户端访问对应主机
HTTP协议
HTTP协议是一个简单的请求——响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
同其他应用层协议一样,是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能。HTTP是一种协议规范,这种规范记录在文档上,为真正通过HTTP进行通信的HTTP的实现程序。
HTTP是基于TCP协议,且面向连接的。典型的HTTP事务处理有如下的过程:
- 客户端与服务器建立连接;
- 客户端向服务器提出请求;
- 服务器接受请求,并根据请求返回相应的数据作为应答响应;
- 客户端与服务器关闭连接。
HTTP协议报文格式
HTTP报文由从客户机到服务器的请求(Request)和从服务器到客户机的响应(Respone)构成文章来源:https://www.toymoban.com/news/detail-787921.html
请求由请求行,文章来源地址https://www.toymoban.com/news/detail-787921.html
到了这里,关于常见网络协议汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!