网络基本概念

目录

一、IP地址

1. 概念

2. 格式

3. 特殊IP

二、端口号

1.概念

2. 格式

3.注意事项

三、 协议

1. 概念

2. 作用

四、协议分层

1. 网络设备所在分层

五、封装与分用

六、客户端和服务器

1. 客户端与服务器通信的过程 

一、IP地址

1. 概念

IP地址主要用于标识网络主机.其他网络设备(如路由器)的网络地址.简单说IP地址用于定位主机的网络地址

就像我们发送快递一样,需要知道对方的收货地址,快递员才能将包裹送到目的地。

2. 格式

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:
01100100.00000100.00000101.00000110
通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。如:100.0.0.6。

3. 特殊IP

127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开
发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信

二、端口号

1.概念

在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简单说:端口号用于定位主机中的进程。
类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货人(端口号)

2. 格式

端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据

3.注意事项

两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号

了解:
一个进程启动后,系统会随机分配一个端口(启动端口)
程序代码中,进行网络编程时,需要绑定端口号(收发数据的端口)来发送、接收数据。
进程绑定一个端口号后,fork一个子进程,可以实现多个进程绑定一个端口号,但不同的进程不能绑定同一个端口号

问题:
有了IP地址和端口号,可以定位到网络中唯一的一个进程,但还存在一个问题,网络通信是基于二进制0/1数据来传输,如何告诉对方发送的数据是什么样的呢?
网络通信传输的数据类型可能有多种:图片,视频,文本等。同一个类型的数据,格式可能也不同,如发送一个文本字符串“你好!”:如何标识发送的数据是文本类型,及文本的编码格式呢?
基于网络数据传输,需要使用协议来规定双方的数据格式

三、 协议

1. 概念

协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。通常由三要素组成:

  1. 语法:即数据与控制信息的结构或格式;
  2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
  3. 时序,即事件实现顺序的详细说明

协议(protocol)最终体现为在网络上传输的数据包的格式

2. 作用

为什么需要协议?
就好比见网友,彼此协商胸口插支玫瑰花见面,这就是一种提前的约定,也可以称之为协议
计算机之间的传输媒介是光信号和电信号。通过 "频率" 和 "强弱" 来表示 0 和 1 这样的信息。要想传递各种不同的信息,就需要约定好双方的数据格式

网络协议是指计算机网络中各个设备之间通信所遵循的一套规则和标准。网络协议的作用主要有以下几个方面:

1.确保网络中各个设备之间数据传输的正确性和可靠性。网络协议规定了数据传输的格式、传输方式和传输过程中可能出现的错误处理等规则,以保证数据传输的正确性和可靠性。

2.提高网络通信效率。网络协议通过规定传输数据的方式、流量控制和拥塞控制等规则,使得网络中的数据可以高效传输,提高网络通信效率。

3.保障网络安全。网络协议规定了数据传输的加密、认证和授权等安全机制,以确保网络通信的安全性。

4.促进多种设备的互操作。不同厂商的设备可能存在差异,网络协议可以规范不同设备之间的通信,促进不同设备之间的互操作。

因此,网络协议在计算机网络中具有重要的作用,是网络通信不可缺少的基础。

四、协议分层

协议分层是指将网络协议按照功能分为不同的层次,每一层都有各自定义的功能和任务,并按照一定规则进行交互协作,从而实现网络传输数据的目的。

目前通常使用的协议分层体系是OSI七层参考模型和TCP/IP四层参考模型。

OSI七层参考模型将协议分为以下七层:

1. 物理层(Physical layer):负责将数字信号转化为物理信号。

2. 数据链路层(Data Link layer):负责实现局域网内不同设备之间的直接通信。

3. 网络层(Network layer):负责实现互联网协议(IP)、地址解析协议(ARP)、路由协议等功能。

4. 传输层(Transport layer):负责提供可靠的数据传输服务,如传输控制协议(TCP)和用户数据报协议(UDP)。

5. 会话层(Session layer):负责管理不同设备之间的连接和会话。

6. 表示层(Presentation layer):负责将数据格式进行转换和编码,保证各个设备之间能够相互理解。

7. 应用层(Application layer):负责提供各种网络应用服务,比如电子邮件、文件传输、远程登录等。

TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  1. 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。
  2. 传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
  3. 网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。
  4. 数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。
  5. 物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层

 

1. 网络设备所在分层

一台主机,其实就对应了物理层到应用层五层

一台路由器,主要就是物理层到网络层(主要实现了物理层,数据链路层,网络层)

一台交换机:主要就是物理层和数据链路层(主要实现了物理层,数据链路层)

五、封装与分用

封装:

封装是指将要传输的数据从上层向下层传递时,每经过一层就会被添加上一层的头部信息和尾部信息,形成一个新的数据包。以下图为例,假设要在应用层发送一份邮件,在传输至物理层时,每一层会将该数据包封装成一个新的数据包,其中上层的头部或尾部包含了该层的一些控制信息和协议标识,以便下层能够正确地使用该数据包。最终封装在物理层发送出去。

分用:

分用是指在接收方收到一个数据包时,每经过一层就会将该层的头部或尾部信息去除,从而得到上层应用程序需要的原始数据。以下图为例,假设接收方从物理层接收到一个数据包,那么在经过每一层时,都会将该层的头部和尾部信息去除,直到应用层,此时才能得到原始的邮件数据。

六、客户端和服务器

服务端:在常见的网络数据传输场景下,把提供服务的一方进程,称为服务端,可以提供对外服务。
客户端:获取服务的一方进程,称为客户端

1. 客户端与服务器通信的过程

客户端与服务器之间的通信过程,分为请求 - 响应两个步骤。其中:

  • 请求的概念:客户端通过网络去找服务器要资源的过程,叫做 “请求”

  • 响应的概念:服务器把资源通过网络发送给客户端的过程,叫做 “响应”

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux系统虚拟主机开启支持Swoole Loader扩展

特别说明:只是安装支持Swoole扩展,主机并没有安装服务端。目前支持版本php5.4-php7.2。 1、登陆主机控制面板,找到【远程文件下载】这个功能。 2、远程下载文件填写http://download.myhostadmin.net/vps/SwooleLoader_linux.zip 下载保存的路…

跳表与Redis

跳表原理 跳表是Redis有序集合ZSet底层的数据结构 首先有一个头结点 这个头结点里面的数据是null 就是他就是这个链表的最小值 就算是Math.Min也比它大 然后我们新建一个节点的时候是怎么操作的呢 先根据参数(假如说是5)创建一个节点 然后把它放在对应位置 就是找到小于他的最…

web安全漏洞

1.什么是Web漏洞 WEB漏洞通常是指网站程序上的漏洞,可能是由于代码编写者在编写代码时考虑不周全等原因而造成的漏洞。如果网站存在WEB漏洞并被黑客攻击者利用,攻击者可以轻易控制整个网站,并可进一步提前获取网站服务器权限,控制…

【Winform学习笔记(五)】引用自定义控件库(dll文件)

引用自定义控件库dll文件 前言正文1、生成dll文件2、选择工具箱项3、选择需要导入的dll文件4、确定需要导入的控件5、导入及使用 前言 在本文中主要介绍 如何引用自定义控件库(dll文件)。 正文 1、生成dll文件 通过生成解决方案 或 重新生成解决方案 生成 dll 文件 生成的…

探索ES高可用:滴滴自研跨数据中心复制技术详解

Elasticsearch 是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎,其每个字段均可被索引,且能够横向扩展至数以百计的服务器存储以及处理TB级的数据,其可以在极短的时间内存储、搜索和分析大量的数据。 滴滴ES发展至今&#xf…

element-ui 表格el-table的列内容溢出省略显示,鼠标移上显示全部和定制样式

1、在对应列加上省略显示show-overflow-tooltip属性&#xff0c;如果加上这属性&#xff0c;鼠标移上还是没效果&#xff0c;要考滤是不是层级的原因&#xff0c;被其他挡住了。 :deep(.el-tooltip){position: relative;z-index:9; } <el-table-column label"用款渠…

java静默打印PDF(可实现生产环境下服务器写入PDF模板,然后调用客户端打印机打印)

java静默打印PDF可实现生产环境下服务器写入PDF模板&#xff0c;然后调用客户端打印机打印 一、简需求实现步骤 二、代码实现0、打印模板1、服务器部分 &#xff08;端口&#xff1a;8090&#xff09;1.1、maven依赖1.2、实体1.2.1、接口返回类1.2.2、标签纸页面参数类1.2.3、P…

Spring集成Web

目录 1、简介 2、监听器 3、Spring提供的listener 3.1、xml 3.2、配置类 3.3、WebApplicationContextUtils 3.4、说明 4、自己复现的listener 4.1、ContextLoaderListener 4.2、WebApplicationContextUtils 4.3、Web调用 ⭐作者介绍&#xff1a;大二本科网络工程专业…

《Linux运维实战:Docker基础总结》

一、简介 1、docker的基本结构是什么&#xff0c;包含哪些组件&#xff1f; docker的基本机构是c/s模式&#xff0c;即客户端/服务端模式。 由docker客户端和docker守护进程组成。docker客户端通过命令行或其它工具使用docker sdk与docker守护进程通信&#xff0c;发送容器管理…

Add-in Express for Microsoft Office and Delphi Crack

Add-in Express for Microsoft Office and Delphi Crack 适用于Microsoft Office和Delphi VCL的Add-in Express使您能够在几次点击中为Microsoft Office开发专业插件。它生成基于COM的项目&#xff0c;这些项目包含Microsoft Office外接程序或智能标记的所有必要功能&#xff0…

React实现关键字高亮

先看效果&#xff1a; 实现很简单通过以下这个函数&#xff1a; highLight (text, keyword ) > {return text.split(keyword).flatMap(str > [<span style{{ color: red, fontWeight: bold }}>{keyword}</span>, str]).slice(1);}展示某段文本时调用该函数…

Matlab进阶绘图第25期—三维密度散点图

三维密度散点图本质上是一种特征渲染的三维散点图&#xff0c;其颜色表示某一点所在区域的密度信息。 除了作图&#xff0c;三维密度散点图绘制的关键还在于密度的计算。 当然&#xff0c;不管是作图还是密度的计算&#xff0c;这些在《Matlab论文插图绘制模板》和《Matlab点…

k8s资源管理方法详解(陈述式、声明式)

目录 一&#xff1a;陈述式资源管理方法 二&#xff1a; 基本信息查看 1、查看信息 2、创建 3、删除 4、service 的 type 类型 三&#xff1a;项目实例 1、创建 kubectl create命令 2、发布 kubectl expose命令 3、在 node 节点上操作&#xff0c;查看负载均衡端…

Celery嵌入工程的使用

文章目录 1.config 1.1 通过app.conf进行配置1.2 通过app.conf.update进行配置1.3 通过配置文件进行配置1.4 通过配置类的方式进行配置2.任务相关 2.1 任务基类(base)2.2 任务名称(name)2.3 任务请求(request)2.4 任务重试(retry) 2.4.1 指定最大重试次数2.4.2 设置重试间隔时间…

Mac终端利器:Homebrew + iTerm2 + Oh My Zsh 教程

引言 前段时间调整了一下 iTerm2 的环境&#xff0c;感觉比以前好看多了&#xff0c;并且更加高效&#xff0c;这里做一个记录&#xff0c;希望能给大家一些启发。 工具介绍 brew&#xff1a;Mac OS 下强大的包管理工具。iTerm2&#xff1a;iTerm2是 Mac OS 终端的替代品&am…

Detecting Everything in the Open World: Towards Universal Object Detection

1. 论文简介 论文题目《Detecting Everything in the Open World: Towards Universal Object Detection》发表情况&#xff0c;CVPR2023[论文地址][https://arxiv.org/pdf/2303.11749.pdf][代码地址][https://github.com/zhenyuw16/UniDetector] 2.背景与摘要 本文旨在解决通…

Crowd-Robot Interaction 论文阅读

论文信息 题目&#xff1a;Crowd-Robot Interaction:Crowd-aware Robot Navigation with Attention-based Deep Reinforcement Learning 作者&#xff1a;Changan Chen, Y uejiang Liu 代码地址&#xff1a;https://github.com/vita-epfl/CrowdNav 来源&#xff1a;arXiv 时间…

Spring集成Seata

Seata的集成方式有&#xff1a; 1. Seata-All 2. Seata-Spring-Boot-Starter 3. Spring-Cloud-Starter-Seata 本案例使用Seata-All演示&#xff1a; 第一步&#xff1a;下载Seata 第二步&#xff1a;为了更好看到效果&#xff0c;我们将Seata的数据存储改为db 将seata\sc…

【IMX6ULL驱动开发学习】04.应用程序和驱动程序数据传输和交互的4种方式:非阻塞、阻塞、POLL、异步通知

一、数据传输 1.1 APP和驱动 APP和驱动之间的数据访问是不能通过直接访问对方的内存地址来操作的&#xff0c;这里涉及Linux系统中的MMU&#xff08;内存管理单元&#xff09;。在驱动程序中通过这两个函数来获得APP和传给APP数据&#xff1a; copy_to_usercopy_from_user …

电脑自动关机是什么原因?1分钟弄懂!

“好奇怪啊&#xff0c;我在使用电脑时&#xff0c;电脑总是莫名其妙就会自动关机&#xff0c;有时候我文件都来不及保存。这是为什么呢&#xff1f;有什么解决方法吗&#xff1f;” 电脑自动关机是一个令人头疼的问题&#xff0c;可能会对我们的工作和生活带来影响。电脑自动关…