当前位置: 首页 > web >正文

常见网络协议汇总

常见的网络协议有: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)构成

请求由请求行,请求头,请求体组成

http://www.xdnf.cn/news/11804.html

相关文章:

  • Android 中的 NDK 到底是什么?(详细解析+案例实战)
  • 嵌入式迅为4412开发板学习开发从零开始嵌入式入门
  • LBS(基于位置服务(Location Based Service))
  • matlab从投影重建图像,由投影重建图像
  • web测试----死链检查(Xenu)
  • echarts柱状图,柱体使用图片显示vue
  • 以太坊P2P网络及节点发现机制
  • 免费域名和空间搭建个人网站——服务器篇
  • 第5章 彩色数字图像基础
  • 搜索引擎提交入口,导航站登陆入口大全
  • Windows App开发之常用控件与应用栏
  • 网关协议
  • 手把手教你破解无线路由器密码
  • 私有云平台下的存储架构规划设计
  • 安阳工学院c语言期末考试题库,安阳工学院期末C语言答案.doc
  • 纯小白从0开始root小米手机(MIUI14)及隐藏root使用银行app
  • 怎么制作GIF动图?教你这几个简单方法
  • 圣安地列斯2.0汉化补丁_[只知道圣安地列斯有热咖啡,没想到《GTA5》也这么污...
  • 【强烈推荐】基于stm32的OLED各种显示实现(含动态图)
  • MathType 数学公式编辑器[Baidu]
  • Ext.Net-----GridPanel (属性|方法|配置|详细介绍)
  • 陈建宝同志被授予“2021中国经济年度人物“荣誉称号
  • 浅谈显 ipqq 发展历程 【附显 ipqq原理】
  • 一个可以重复遍历的RowSet
  • 解决系统缺少Windows.Web.Http.dll文件无法启动程序问题
  • 基于Ajax的应用程序架构汇总(一)
  • 如何创建sis文件——概叙
  • Windows操作系统深入解析原理
  • 手把手教你怎么搭建属于自己的服务器(保姆级教程)
  • 第十八届全国大学生智能车竞赛全国总决赛获奖信息