总结网络中的一些基本概念

1. IP地址

  描述一个设备在网络上的位置,而且计算机是通过数字来描述IP地址的。例如(生活中的地址)

2. 端口号

  描述一个主机上的哪个应用程序,有了IP可以确定主机,但是一个主机上可能有很多程序在使用网络,主机收到网络数据需要区分出是交给哪个程序使用数据,每个程序在进行网络通信过程中,都需要有一个端口号(可能是用户手动指定的,也肯能是系统自动分配的)同一个主机上,程序之间使用的端口号还不能冲突(端口号也是一个整数)

3. 协议

  协议,就只是一种通信过程中的约定,发送方和接受方需要提前商量好,数据的格式,才能确保俩者之间能够正确进行沟通,通信双方的俩个计算机,也是自于各种不同的厂商,为了确保任意俩个计算机之间能够通信,也就要求这些计算机都需要遵守相同的网络协议,协议就是一种约定,确保不同的厂商之间生产出的设备能够相互配合。

4.协议分层

   协议分层的初心是为了让一个复杂的一个协议变成更多简单的多个协议,还带了一些好处。

  1.上层协议直接使用下层协议即可,不需要了解下层协议的细节。(相当于下层协议把细节封装好了)

2.某一层的协议进行替换之后,对于其他层没啥影响。 

 

  分层的作用:分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。 在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类 (使用方,使用服务):1. 对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可 2.对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可。

5. 五元组

TCP/IP 协议中,用五元组来标识一个网络通信:
  1. IP :标识源主机
  2. 源端口号:标识源主机中该次通信发送数据的进程
  3. 目的 IP :标识目的主机
  4. 目的端口号:标识目的主机中该次通信接收数据的进程
  5. 协议号:标识发送进程和接收进程双方约定的数据格式

6. OSI 七层网络协议

  最初大佬们设计的时候给出的方案,后来在实施过程中太麻烦了,就简化成了五层

   这个是网上找的七层的图

7.TCP/IP 五层网络协议(四层) 

  把osi简化了 

1. 应用层:程序拿到数据之后用来干啥,解决什么问题

2. 传输层:负责关注网路数据包,起点和终点 端到端之间的传输

3. 网络层:负责关注,起点终点之间要走哪条路

4. 数据链路层:负责俩个相邻之间的传输

5. 物理层:通信过程中的基础设施

8.网络分层对应

  在我们进行数据传输的时候,网络的分层需要对应,物理层就对应物理层,数据链路层就对数据链路层就以TCP/IP协议来举例子。

9.封装

 

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

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

相关文章

【MySQL】 复合查询

复合查询 一、基本查询回顾二、多表查询1、多表查询2、笛卡尔积的过滤3、自连接 三、子查询1、单行子查询2、多行子查询3、多列子查询4、在from子句中使用子查询 四、合并查询 一、基本查询回顾 下面给出三张表,分别是员工表(emp)、部门表&a…

GO 中如何防止 goroutine 泄露

文章目录 概述如何监控泄露一个简单的例子泄露情况分类chanel 引起的泄露发送不接收接收不发送nil channel真实的场景 传统同步机制MutexWaitGroup 总结参考资料 今天来简单谈谈,Go 如何防止 goroutine 泄露。 概述 Go 的并发模型与其他语言不同,虽说它…

Wpf 使用 Prism 实战开发Day13

配置 AutoMapper 关系映射 在上一节 ToDoController 控制器,或 IToDoService 服务接口中,方法的传参都是直接传的实体类。但在实际开发过程中,这样是不允许的。标准且规范的做法是,定义一个数据传输层,即Dto层。 一.在…

【ARMv8M Cortex-M33 系列 7.2 -- HardFault 问题定位 1】

文章目录 问题背景堆栈对齐要求Cortex-M33 的 FPU 功能 问题背景 rt-thread 在PendSV_Handler退出的时候发生了HardFault_Handler是什么原因?且 LR 的值为0xfffffffd 堆栈对齐要求 在 ARM Cortex-M 架构中,堆栈指针 (SP) 必须始终保持 8 字节对齐。这…

强缓存、协商缓存(浏览器的缓存机制)是么子?

文章目录 一.为什么要用强缓存和协商缓存?二.什么是强缓存?三.什么是协商缓存?四.总结 一.为什么要用强缓存和协商缓存? 为了减少资源请求次数,加快资源访问速度,浏览器会对资源文件如图片、css文件、js文…

SQL注入实战操作

一:SQl注入分类 按照注入的网页功能类型分类: 1、登入注入:表单,如登入表单,注册表单 2、cms注入:CMS逻辑:index.php首页展示内容,具有文章列表(链接具有文章id)、articles.php文 章详细页&a…

关于ElasticSearch,你应该知道的

一、集群规划优化实践 1、基于目标数据量规划集群 在业务初期,经常被问到的问题,要几个节点的集群,内存、CPU要多大,要不要SSD? 最主要的考虑点是:你的目标存储数据量是多大?可以针对目标数据…

C#out参数传递

C# 是一种强大的编程语言,它提供了许多功能和特性来帮助开发人员编写高效和可维护的代码。其中,out 参数是 C# 中非常有用的一个特性之一。在本文中,我们将深入探讨 C# 中的 out 参数传递,并介绍它的用法、优势以及一些最佳实践。…

免费开源OCR 软件Umi-OCR

Umi-OCR 是一款免费、开源、可批量的离线 OCR 软件,基于 PaddleOCR,适用于 Windows10/11 平台 免费:本项目所有代码开源,完全免费。方便:解压即用,离线运行,无需网络。高效:自带高效…

vscode配置web开发环境(WampServer)

这里直接去下载了集成的服务器组件wampserver,集成了php,MySQL,Apache 可能会出现安装问题,这里说只有图上这些VC包都安装了才能继续安装,进入报错里提供的链接 在页面内搜索相关信息 github上不去可以去镜像站 下载…

Swagger + Knife4j 接口文档的整合

Swagger 接口文档的整合: 引入依赖(Swagger 或 Knife4j)。自定义 Swagger 配置类。定义需要生成接口文档的代码位置(Controller)。注意:线上环境不要把接口暴露出去!!!可…

css 3D立体动画效果怎么转这个骰子才能看到5

css 3D立体动画效果怎么转这个骰子才能看到5 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equ…