网络原理(网络协议初识)

 

目录

1.网络通信基础

 1.1IP地址

 1.2端口号

 1.3认识协议

1.4五元组 

1.5 协议分层

 2.TCP/IP五层(或四层)模型

2.1网络设备所在分层

2.2网络分层对应

 3.封装和分用


1.网络通信基础

        网络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据。 

 1.1IP地址

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

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

 1.2端口号

        在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简 单说:端口号用于定位主机中的进程 

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

        其中:0 ~ 1023 知名端口号 ,这些端口预留给服务端程序绑定广泛使
用的应用层协议,
  • 22端口:预留给SSH服务器绑定SSH协议
  • 21端口:预留给FTP服务器绑定FTP协议
  • 23端口:预留给Telnet服务器绑定Telnet协议
  • 80端口:预留给HTTP服务器绑定HTTP协议
  • 443端口:预留给HTTPS服务器绑定HTTPS协议

 1.3认识协议

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

 1. 语法:即数据与控制信息的结构或格式; 

2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;  

3. 时序,即事件实现顺序的详细说明。 

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

 

        计算机之间的传输媒介是光信号和电信号。通过 " 频率 " " 强弱 " 来表示 0 1 这样的信息。要想传递 各种不同的信息,就需要约定好双方的数据格式。

1.4五元组 

TCP/IP协议中,用五元组来标识一个网络通信:

1. IP:标识源主机

2. 源端口号:标识源主机中该次通信发送数据的进程

3. 目的IP:标识目的主机

4. 目的端口号:标识目的主机中该次通信接收数据的进程

5. 协议号:标识发送进程和接收进程双方约定的数据格式

 

1.5 协议分层

为什么需要网络协议的分层?

        分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。

        在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类(使用方,使用服务):

  • 对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可
  • 对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可。

 2.TCP/IP五层(或四层)模型

         TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。

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

 

2.1网络设备所在分层

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四
  • 对于一台路由器,它实现了从网络层到物理层,也即是TCP/IP五层模型的下三层
  •  对于一台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层
  •  对于集线器,它只实现了物理层

2.2网络分层对应

         网络数据传输时,经过不同的网络节点(主机、路由器)时,网络分层需要对应。 以下为同一个网段内的两台主机进行文件传输

 

 3.封装和分用

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)
  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装 (Encapsulation)
  • 首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。
  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中 "上层协议字段" 将数据交给对应的上层协议处理

 下图为数据封装的过程

 

 

 

 

 

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

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

相关文章

数据仓库为什么要分层建设?每一层的作用是什么?

在数字化时代,数据已成为企业最宝贵的资产之一。为了更好地管理和利用这些数据,许多企业都建立了数据仓库。然而,数据仓库并非简单的数据存储工具,而是一个复杂的数据处理和分析系统。其中,分层建设是数据仓库设计的重…

【OpenCV实战】基于OpenCV中DNN(深度神经网络)使用OpenPose模型实现手势识别详解

一、手部关键点检测 如图所示,为我们的手部关键点所在位置。第一步,我们需要检测手部21个关键点。我们使用深度神经网络DNN模块来完成这件事。通过使用DNN模块可以检测出手部21个关键点作为结果输出,具体请看源码。 二,openpose手势识别模型 OpenPose的原理基于卷积神经网…

【计算机图形学】End-to-End Affordance Learning for Robotic Manipulation

对RLAfford:End-to-End Affordance Learning for Robotic Manipulation的简单理解 1. 为什么要做这件事 在交互环境中学习如何操纵3D物体是RL中的挑战性问题。很难去训练出一个能够泛化到具有不同语义类别、不同几何形状和不同功能物体上的策略。 Visual Afforda…

粒子群算法对pi控制器进行参数优化,随时优化pi参数以控制直流无刷电机转速。

粒子群算法对pi控制器进行参数优化,随时优化pi参数以取得设定直流无刷电机转速。 PSO优化PID,用于BLDC速度控制 仿真平台为:MATLAB 采用的是Simulinkm程序相配合 仿真结果以及程序示例:

Armv8状态寄存器

Processor state AArch64没有与ARMv7当前程序状态寄存器直接对应的寄存器(CPSR)。在AArch64中,传统CPSR的组件以字段的形式提供可独立访问。这些统称为处理器状态(PSTATE)。 在AArch64中,通过执行ERET指令从异常中返回,这会导致要拷贝到PSTAT…

IEEE802.11v协议介绍

IEEE802.11v协议简介 协议全称:无线网络管理(Wireless Network Management) 批准日期:2011年2月 协议状态:并入802.11-2012 协议别名:BSS过渡管理 主要功能 支持AP和STA间交换:关于RF环境和拓扑状态的信息,以协助STA进行漫游决策支持STA之间交换:关于RF环境状态的信…

嵌入式单片机学习思路感想分享

今天看到了一个提问,原话如下: 曾经干了8年单片机工程师,对工程师从入门,到入行,再到普通,再到高级,整个路径还算清晰,比如什么阶段,会碰到什么瓶颈,怎么突破,我都经历过。 这个同学,有个典型的问题,就是学得太多且杂了,估计稍微复杂点的项目,做不出来。 现在…

superset连接Apache Spark SQL(hive)过程中的各种报错解决

superset连接数据库官方文档:Installing Database Drivers | Superset 我们用的是Apache Spark SQL,所以首先需要安装下pyhive #命令既下载了pyhive也下载了它所依赖的其他安装包 pip install pyhive#多个命令也可下载 pip install sasl pip install th…

npm yarn 一起使用报错

项目记录,具有独特性,仅供参考 项目好好的运行,前一天装个测试工具包, 突然就不行了,卸载重装也不行,所有的项目都安装失败,新起一个项目也不行,有时候某个单独安装一个包可以&…

回归预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据回归预测

回归预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据回归预测 目录 回归预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 GSWOA-KELM多变量回归预测…

信号处理--卷积残差网络实现单通道脑电的睡眠分期监测

目录 背景 亮点 环境配置 数据 方法 结果 代码获取 参考文献 背景 人类大约花三分之一的时间睡觉,这使得监视睡眠成为幸福感的组成部分。 在本文中,提出了用于端到端睡眠阶段的34层深残留的Convnet架构 亮点 使用深度1D CNN残差架构&#xff0…

微信小程序云开发教程——墨刀原型工具入门(素材面板)

引言 作为一个小白,小北要怎么在短时间内快速学会微信小程序原型设计? “时间紧,任务重”,这意味着学习时必须把握微信小程序原型设计中的重点、难点,而非面面俱到。 要在短时间内理解、掌握一个工具的使用&#xf…

微信小程序购物/超市/餐饮/酒店商城开发搭建过程和需求

1. 商城开发的基本框架 a. 用户界面(Frontend) 页面设计:包括首页、商品列表、商品详情、购物车、下单界面、用户中心等。交云设计:如何让用户操作更加流畅,包括搜索、筛选、排序等功能的实现。响应式设计&#xff1…

web项目的搭建

使用Webstorm并创建Next.js文件 1、配置nodejs环境、安装webstorm【配置node.js可以使用nvm去管理nodejs的版本】 2、需要破解webstorm,可能会导致原本的idea失效,注册码过期 3、taobao的npm过期,导致npm is sass执行不成功,需…

C++面试题和笔试题(四)

一、intx[6][4],(*p)[4];px;则*(p2)指向哪里? A X[0][1]B X[0][2]C X[1][0]D X[2][0] 官方解释: D int x[6][4], (*p)[4]; p x; 在这里,x 是一个二维数组,它有6行和4列。p 是一个指向具有4个整数的数组的指针。 当你执行…

Let’s Move Sui , 一起来学习吧

Let’s Move Sui是一个全新的交互式学习平台,通过SuiFrens的帮助教您如何在Sui上构建。设计供新手和经验丰富的开发者使用,Let’s Move Sui提供了一次非凡的Sui开发之旅,利用了Move在Sui上的独特之处,从基于对象的数据模型的基础知…

Acer宏碁非凡Swift SFG16-71工厂模式原厂Win11系统,预装OEM系统恢复开箱状态

宏基笔记本电脑SFG16-71原装出厂Windows11系统安装工厂包下载,带恢复重置功能 链接:https://pan.baidu.com/s/1JK02kBbwKG_cIBNlEOzrOw?pwdzdfm 提取码:zdfm 原装工厂包系统自带所有驱动、Office办公软件、出厂时自带主题壁纸图片、系统…

在【IntelliJ IDEA】中配置【Tomcat】【2023版】【中文】【图文详解】

作为一款功能强大的集成开发环境(IDE),IntelliJ IDEA为Web服务器提供了卓越的支持,从而极大地简化了程序员在Web开发过程中的工作流程。学习Java Web开发实质上就是掌握如何创造动态Web资源,这些资源在完成开发后&…

Linux - 安装 nacos(详细教程)

目录 一、简介二、安装前准备三、下载与安装四、基本配置五、单机模式 一、简介 官网:https://nacos.io/ GitHub:https://github.com/alibaba/nacos Nacos 是阿里巴巴推出的一个新开源项目,它主要是一个更易于构建云原生应用的动态服务发现…

离线数仓(六)【ODS 层开发】

前言 今天开始正式的数仓搭建,所谓 ODS 层的工作就是把我们各种数据源采集发送来的各种类型的数据(Json、tsv类型)映射到 Hive 表中,映射时可以进行一些简单的处理,比如简单的数据清洗,舍弃一些没有必要的字…