计算机网络入门 -- 常用网络协议

计算机网络入门 – 常用网络协议

1.分类

1.1 模型回顾

计算机网络细分可以划为七层模型,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而上三层可以划为应用层中。

1.2 分类

1.2.1 应用层

为用户的应用进程提供网络通信服务,包括DNS协议、HTTP协议和HTTPS协议。

1.2.2 传输层

负责两台主机之间的数据传输,将数据从发送端传输到接收端,其中包括TCP和UDP协议。

1.2.3 网络层

负责传输的地址管理和路由选择,在众多复杂网络环境中确定一条合适的路径,包括IP协议。

1.2.4 数据链路层

负责设备之间数据帧的传输和识别,将网络层传递的数据报封装成帧,在处于同一个数据链路节点的两个设备之间传输,包括ARP协议和MTU协议。

1.2.5 物理层

负责光电信号传输,实现相邻计算机节点之间比特流透明传输。

1.3 意义

无论是将网络模型分为五层还是七层,都是为了简化网络设计的复杂性,通信协议采用分层结构,各层之间相互独立但又协同工作。在设计一个复杂庞大的框架时,尽可能使之间的功能解耦是一种很明智的做法。


2.应用层协议

2.1 概念

应用层网络负责各个程序之间通信。发生网络传输一个数据时,先由应用层对数据按照对应的协议封装,并交给下一层传输层,经过层层网络传输后数据到达接收端,又从下往上分用。

2.2 协议

2.2.1 DNS协议

DNS建立在TCP和UDP通信协议上,默认端口为53。正常传输通过UDP进行通信,当报文较长时切换至TCP协议。其功能是将便于人类理解的网络域名(如:www.baidu.com)转换为IP地址,而这种映射关系则保存于DNS服务器中。总体来说,域名解析可以分为两个步骤:第一步客户端向本地DNS服务器发起一个DNS请求报文,报文里携带需要查询的域名,第二步本地DNS服务器向本机回应一个DNS响应报文,报文里携带查询域名所对应的IP地址。

  • 1.在本地缓存中查询,如果有则返回IP,反之请求本地DNS。
  • 2.本地DNS收到请求后,先在服务器管理区域记录中查询,若无数据则在服务器本地缓存中查询,若还没有则将请求送达根域名服务器。
  • 3.根域名服务器解析请求的根域部分,然后将包含下一级域名信息的DNS服务器地址返回至本地DNS服务器。
  • 4.本地DNS服务器利用根域名服务器解析的地址访问下一级DNS服务器,得到再下一级的DNS服务器地址。
  • 5.按照上述递归方法逐级接近查询目标,最后在有目标的DNS服务器上找到相应的IP信息。
  • 6.本地DNS服务器将最终擦寻的IP返回至客户端,让客户端访问对应主机。

2.2.2 HTTP协议

HTTP本身是一个简单的请求,即响应协议,运行在TCP协议之上。该协议指定了客户端可能发送给服务器什么样的消息以及会得到什么样的响应。同其他应用层协议一样,是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能。HTTP是一种协议规范,这种规范记录在文档上,为真正通过HTTP进行通信的HTTP的实现程序。

2.2.2.1 HTTP事务处理
  • 1.客户端域服务器建立连接
  • 2.客户端向服务端发送请求
  • 3.服务器响应请求,并根据请求返回相应的数据
  • 4.客户端与服务端关闭连接
2.2.2.2 HTTP报文格式

请求本身由请求行、请求头和请求体狗工程

  • 请求行:包括请求方法、路径、版本号等
  • 请求头:为多个键值对数据
  • 请求体:包含请求数据
  • 响应行:包含状态码、版本号
2.2.2.3 响应码

200:客户端请求成功;3xx;4xx;5xx

2.2.2.4 特点
  • 1.支持C/S模式
  • 2.传输速度快,客户端向服务器发送请求,只需要传输请求方法和路径
  • 3.请求灵活,HTTP允许传输任意类型的数据对象
  • 4.无连接,每次连接只能处理一个请求,服务器处理完客户端请求,客户端收到响应后就断开连接
  • 5.无状态,协议本身对事务处理没有记忆能力,如果后序连接需要之前发送的信息时就需要重传

2.2.3 HTTPS协议

HTTPS同样作为应用层协议,可以说它是HTTP的升级版,增加了传输数据的安全性,HTTPS协议是在HTTP的基础上增加了一个SSL外壳,HTTPS运行在SSL上,SSL运行在TCP上,对数据的加密工作就是在SSL上完成的


3.传输层协议

3.1 概念

传输层的主要功能是为了实现“端口到端口”的通信,以确保一条数据发送到主机上后,能够正确的传递到对应的端口上。

3.2 协议

3.2.1 UDP协议

UDP是一种面向无连接的传输协议,无需连接就可以发送封装IP的数据包。但面向无连接的缺点就是不稳定,一旦在通信链路上出现网络波动或连接问题则会发生数据丢包。

3.2.1.1 UDP报文

alt text

3.2.1.2 特点
  • 无连接:只需要指导目标机的IP和端口就可以发送数据,其间无连接。
  • 不可靠:没有一系列机制保证数据传输的丢包问题。
  • 面向数据报发送:应用层交给UDP什么样的数据,UDP就发送什么样的数据,不会拆分、合并。
  • 传输限制:UDP一次传输上限为64K。
3.2.1.3 传输流程

alt text

3.2.1.4 适用范围

由于UDP不属于连接型协议,所以具有资源消耗小。处理速度优的特点,因此经常使用与视频、音频通话传输中,因为发送的数据较多,偶尔丢包一两个不会产生太大影响

3.2.2 TCP协议

因为上述讲到UDP的传输是不可靠的,经常会导致连接错误、数据丢包问题,针对这些问题规定了另一个传输层协议——TCP协议,TCP是一种面向连接、可靠的、基于字节流的传输层协议

3.2.2.1 TCP报文

alt text

3.2.2.2 特点
  • 面向连接:在传输数据时,客户端与服务端要建立一个可靠的连接
  • 可靠通信:TCP传输数据时,会基于内部的各种机制保证数据传输到目的端口
  • 基于字节流:TCP传输数据基于字节流,方便对数据的拆分和合并发送
  • 开销较大:TCP头部比UDP开销大,因为需要存放更多信息
3.2.2.3 TCP连接

TCP在连接时会进行三次握手

  • 首先客户端和服务端均关闭
  • 第一次握手:客户端打开并向服务端发送连接请求,这是报文首部中的同部位SYN=1,同时选择一个初始序列号 seq=x ,此时,TCP客户端进程进入了 SYN-SENT 同步已发送状态。该步骤是确定客户端能够正常发送数据
  • 第二次握手:服务端向客户端发送一个确认收到的响应,确认报文中应该 ACK=1,SYN=1,确认号是ack=x+1,同时也要为自己初始化一个序列号 seq=y,此时,TCP服务器进程进入了 SYN-RCVD 同步收到状态。该步骤是确认服务端收发数据正常。
  • 第三次握手:当客户端再次接收到服务端发送的数据后,将会再次向服务端发送确认连接信息,确认报文的ACK=1,ack=y+1,自己的序列号seq=x+1,此时,TCP连接建立,客户端进入ESTABLISHED已建立连接状态 触发三次握手。该步骤是确定客户端接收数据正常。

由于TCP是建立在可靠连接上的,因此三次握手的目的是为了检验客户端与服务端数据的收发功能是否正常。

alt text

3.2.2.4 TCP断连

TCP在终止连接时会进行四次挥手

  • 第一次挥手:客户端发出释放连接报文,并停止发送数据,释放数据报文首部。FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态
  • 第二次挥手:服务器端接收到连接释放报文后,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT 关闭等待状态
  • 第三次挥手:客户端接收到服务器端的确认请求后,客户端就会进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文,服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。
  • 第四次挥手:客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态,但此时TCP连接还未终止,必须要经过2MSL后(最长报文寿命),当客户端撤销相应的TCB后,客户端才会进入CLOSED关闭状态,服务器端接收到确认报文后,会立即进入CLOSED关闭状态,到这里TCP连接就断开了,四次挥手完成

alt text


4.网络层

4.1 概念

网络层是基于数据链路层和传输层之间的第三层协议,它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向传输层提供最基本的端到端的数据传送服务

4.2 协议

4.2.1 IP协议

IP协议是TCP/IP网络模型中的核心部分,他提供了一种分层的、无关硬件的寻址方式,可以在复杂的路由式网络中传递数据所需的服务。IP协议可以将多个交换网络连接起来,在源地址和目的地址之间传输数据包,同时它还能提供数据的组装功能,以适应不同网络对数据包大小的要求。

4.2.1.1 IP地址

IP地址是互联网协议特有的一种地址,它是IP协议提供的一种统一的地址格式,IP地址为互联网的每个网络和每台主机分配了一个逻辑地址,以此来屏蔽物理地址的差异。

4.2.1.2 IP地址格式

P地址为32位地址,被分为4个部分,如XXX.XXX.XXX.XXX,IP地址又被划分为两个部分

  • 网络号:前三部分用于标识网段,保证相互连接的两个网段有不同标识
  • 主机号:最后一部分用于标识主机,保证处于同一网段的不同设备都有不同标识
    通过合理设置主机号和网络号, 就可以保证在相互连接的网络中, 每台主机的IP地址都不相同
4.2.1.3 MAC地址

被称为物理地址,是用来标识网络中每个设备的,MAC地址是设备出厂之后就写死的

4.2.1.4 IP协议数据报格式

alt text

4.2.1.5 IP协议工作方式
  • 同网段:若源地址与主机地址位于同一网段,则目的IP地址被ARP协议解析为MAC地址后,源主机会根据目的MAC地址直接将数据包发送给目标主机。
  • 不同网段:不同网段会经过多个过程发送给主机
    • 网关的IP地址被ARP协议解析为MAC地址,根据MAC地址,源主机会将数据发送至网关。
    • 网关根据数据数据包中网段ID找到目标网络,将数据包发送至目标网络,如果没有则重复第一步发送到更高一级网关。
    • 数据包经网关发送到正确网段,目标IP被ARP协议 解析为MAC地址,在根据该MAC地址将数据包发送给目标地址的主机。

5.数据链路层

5.1 概念

数据链路层是TCP/IP网络模型的第二层,基于物理层和网络层之间,数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自物理层来的数据可靠地传输到相邻节点的目标机网络层。

5.2 协议

5.2.1 ARP协议

ARP协议是数据进行网络传输过程中,通过IP地址向MAC地址的转换,解决网络层和物理层衔接问题。由于 IP 地址和 MAC 地址定位方式不同,ARP 协议成为数据传输的必备协议。主机发送信息前,必须通过 ARP 协议获取目标 IP 地址对应的 MAC 地址,才能正确地发送数据包。

5.2.1.1 ARP报文

alt text

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/380229.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

复现Android中GridView的bug并解决

几年前的一个bug,GridView的item高度不一致。如下图: 复现bug的代码: import android.os.Bundle; import android.widget.BaseAdapter; import android.widget.GridView; import androidx.appcompat.app.AppCompatActivity; import java.uti…

buu做题(5)

目录 [GXYCTF2019]禁止套娃 方法一: 方法二: [NCTF2019]Fake XML cookbook [GXYCTF2019]禁止套娃 页面里啥也没有 使用dirsearch 扫一下目录 发现有 git 使用工具githack拉取源码 <?php include "flag.php"; echo "flag在哪里呢&#xff1f;<br&g…

【HarmonyOS学习】定位相关知识(Locationkit)

简介 LocationKit提供了定位服务、地理围栏、地理编码、逆地理编码和国家码等功能。 可以实现点击获取用户位置信息、持续获取位置信息和区域进出监控等多项功能。 需要注意&#xff0c;需要确定用户已经开启定位信息&#xff0c;一下的代码没有做这一步的操作&#xff0c;默…

数据分析入门指南:数据库入门(五)

本文将总结CDA认证考试中数据库中部分知识点&#xff0c;内容来源于《CDA模拟题库与备考资料PPT》 。 CDA认证&#xff0c;作为源自中国、面向全球的专业技能认证&#xff0c;覆盖金融、电信、零售、制造、能源、医疗医药、旅游、咨询等多个行业&#xff0c;旨在培养能够胜任数…

仿源码大师主界面UI的iAPP源文件

仿源码大师首页主界面的布局 首页&#xff0c;分类&#xff0c;需求&#xff0c;我的 就只有这几个界面内容而已 资源静态 没有任何动画和功能 纯UI布局 纯UI布局 他的最新版已经不是这个UI布局 放心使用 以学习参考为目的&#xff0c;如有不妥望告知 原创&#xff0c;纯…

一个非常好的美图展示网站整站打包源码,集成了wordpress和开源版ripro主题,可以完美运营。

一个非常好的美图展示网站整站打包源码&#xff0c;集成了wordpress和开源版ripro主题&#xff0c;可以完美运营。 自带了5个多g的美图资源&#xff0c;让网站内容看起来非常大气丰富&#xff0c;可以快速投入运营。 这个代码包&#xff0c;原网站已经稳定运营多年&#xff0…

Python和C++行人轨迹预推算和空间机器人多传感融合双图算法模型

&#x1f3af;要点 &#x1f3af;双图神经网络模型&#xff1a;最大后验推理和线性纠错码解码器 | &#x1f3af;重复结构和过约束问题超图推理模型 | &#x1f3af;无向图模型变量概率计算、和积消息传播图结构计算、隐马尔可夫模型图结构计算、矩阵图结构计算、图结构学习 |…

PostgreSql创建触发器并增加IF判断条件

在 PostgreSQL 中&#xff0c;可以使用触发器&#xff08;Trigger&#xff09;来在表上定义自定义的插入&#xff08;INSERT&#xff09;、更新&#xff08;UPDATE&#xff09;和删除&#xff08;DELETE&#xff09;操作的行为。触发器是与表相关联的特殊函数&#xff0c;它们在…

Linux 12:多线程2

1. 生产者消费者模型 生产者消费者模型有三种关系&#xff0c;两个角色&#xff0c;一个交易场所。 三种关系&#xff1a; 生产者之间是什么关系?竞争 - 互斥 消费者和消费者之间?竞争 - 互斥 消费者和消费者之间?互斥和同步 两个角色&#xff1a; 生产者和消费者 一个交…

【Apache POI】Java解析Excel文件并处理合并单元格-粘贴即用

同为牛马&#xff0c;点个赞吧&#xff01; 一、Excel文件样例 二、工具类源码 import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.xssf.usermodel.XSSFWorkbookFactory; import org.springframework.web.multip…

mac M1 创建Mysql8.0容器

MySLQ8.0 拉取m1镜像 docker pull mysql:8.0创建挂载文件夹并且赋予权限 sudo chmod 777 /Users/zhao/software/dockerLocalData/mysql 创建容器并且挂载 docker run --name mysql_8 \-e MYSQL_ROOT_PASSWORDadmin \-v /Users/zhao/software/dockerLocalData/mysql/:/var/l…

利用patch-package补丁,解决H5预览PDF时电子签章不显示问题

利用patch-package补丁&#xff0c;解决H5预览PDF时电子签章不显示问题 一、问题描述 在生产环境中&#xff0c;遇到了一个紧急的技术问题&#xff1a;用户在移动端H5页面上查看电子票时&#xff0c;PDF文件预览功能正常&#xff0c;但其中的电子签章未能正常显示。这一问题直…

C++ AVL树

目录 ​编辑 0.前言 1.AVL树的概念 1.1 平衡因子 1.2 AVL树的性质 2.AVL树节点的定义 3.AVL树的插入 4.AVL树的旋转 4.1 左单旋&#xff08;LL旋转&#xff09; 4.2 右单旋&#xff08;RR旋转&#xff09; 4.3 右左旋&#xff08;RL旋转&#xff09; 4.4 左右旋&…

集群架构-web服务器(接入负载均衡+数据库+会话保持redis)--15454核心配置详解

紧接着前面的集群架构深化—中小型公司&#xff08;拓展到大型公司业务&#xff09;–下面图简单回顾一下之前做的及故障核心知识总结&#xff08;等后期完全整理后&#xff0c;上传资源希望能帮大家&#xff09; web集群架构-接入负载均衡部署web02服务器等 web集群-搭建web0…

介绍 Elasticsearch 中的 Learning to Tank - 学习排名

作者&#xff1a;来自 Elastic Aurlien Foucret 从 Elasticsearch 8.13 开始&#xff0c;我们提供了原生集成到 Elasticsearch 中的学习排名 (learning to rank - LTR) 实现。LTR 使用经过训练的机器学习 (ML) 模型为你的搜索引擎构建排名功能。通常&#xff0c;该模型用作第二…

postman接口测试实战篇

击杀小游戏接口测试 接口测试简单介绍击杀小游戏代码下载单接口测试(postman)接口关联并参数化接口测试简单介绍 首先思考两个问题:1.接口是什么?2.接口测试是什么? 1.我们总是把接口想的很复杂,其实呢,它就是一个有特定输入和输出参数的交互逻辑处理单元,它不需要知…

通过 EMR Serverless Spark 提交 PySpark 流任务

在大数据快速发展的时代&#xff0c;流式处理技术对于实时数据分析至关重要。EMR Serverless Spark提供了一个强大而可扩展的平台&#xff0c;它不仅简化了实时数据处理流程&#xff0c;还免去了服务器管理的烦恼&#xff0c;提升了效率。本文将指导您使用EMR Serverless Spark…

PostgreSQL使用(二)

说明&#xff1a;本文介绍PostgreSQL的DML语言&#xff1b; 插入数据 -- 1.全字段插入&#xff0c;字段名可以省略 insert into tb_student values (1, 张三, 1990-01-01, 88.88);-- 2.部分字段插入&#xff0c;字段名必须写全 insert into tb_student (id, name) values (2,…

[数据集][目标检测]导盲犬拐杖检测数据集VOC+YOLO格式4635张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;4635 标注数量(xml文件个数)&#xff1a;4635 标注数量(txt文件个数)&#xff1a;4635 标注…

graham 算法计算平面投影点集的凸包

文章目录 向量的内积&#xff08;点乘&#xff09;、外积&#xff08;叉乘&#xff09;确定旋转方向numpy 的 cross 和 outernp.inner 向量与矩阵计算示例np.outer 向量与矩阵计算示例 python 示例生成样例散点数据图显示按极角排序的结果根据排序点计算向量转向并连成凸包 基本…