计算机网络原理基础

目录

前言:

1.网络发展史

2.网络通信基础

2.1IP地址

2.1.1定义

2.1.2格式

2.2端口号

2.2.1定义

2.2.2格式

2.3协议

2.3.1定义

2.3.2作用

2.3.3分层

2.4五元组

2.4.1定义

2.4.2组成

3.TCP/IP五层网络模型

3.1模型概念

3.2模型构成

3.3网络分层对应

3.4封装和分用


前言:

JavaEE大体主要分为:1.多线程编程;2.文件/IO;3.网络原理。

在介绍完JavaEE中多线程编程和文件/IO后,下边就是网络编程原理,这也是JavaEE中最重要、最核心的一部分内容。

本节主要介绍计算机网络通信的基础知识和发展史,以及通信理论原理。

序列:网络编程 - 001


1.网络发展史

 互联网的发展经历了比较长的时间,在此之内,互联网一直在不断更新迭代,在这个时间段内主要有五个大的发展时代。

网络发展时代:独立模式(单机)->网络互联时代->局域网LAN->广域网LAN->移动互联网时代。

(1)独立模式(单机):计算机之间相互独立,并没有通信。

(2)网络互联时代:将多台计算机连接到一起,完成数据共享。

(3)局域网时代:局域内的计算机之间可以方便的进行通信。局域网与局域网之间没有连接的,无法进行通信。

(4)广域网时代:通过路由器将多个局域网连接起来的,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都属于其子网。

(5)移动互联网时代:集成广域网的优点,且网络连接不在局限于固定的计算机,扩大至各种移动设备。

上图为广域网与其子网的结构图,在广域网与局域网之间并没有明显的界限而言。

2.网络通信基础

数据共享的本质就是网络数据的传输,即计算机之间通过网络来传输数据也称网络通信

2.1IP地址

2.1.1定义

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

 那么如何在庞大的互联网系统中知道网络数据是从哪个主机到哪个主机之间传输的吗?这就需要IP地址来标识计算机。

IP地址:主要用于标识网络主机和其他网络设备的网络地址。简单说:IP地址用来定位主机的网络地址。

2.1.2格式

 IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如00100101.00100010.10000010.00010010。

 通常用“点分十进制”的方法表示,即a.b.c.d的形式(a、b、c、d都是0~255范围内的十进制整数),如:100.4.5.6。

在cmd命令行中输入ipconfig,可以查看计算机的IP地址为多少。127.0.0.1表示自引用时本主机IP地址。

2.2端口号

2.2.1定义

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

一个端口号只能被一个程序绑定,但是一个程序可以绑定多个端口号。

2.2.2格式

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

1~1023范围内的端口号为知名端口号,系统留作特殊用途。

2.3协议

2.3.1定义

 协议:是网络通信经过所有网络设备都必须共同遵守的一组约定、规则。如怎样建立连接、怎样相互识别等。只有遵守这个约定,计算机之间才能相互进行通信交流。

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

2.3.2作用

 为什么要有协议?计算机之间的传输媒介是光信号和电信号。通过“频率"和"强弱"来表示0和1这样的信息。

计算机之间要想传递各种不同的信息,就需要约定好双方的数据格式。

  • 计算机生产厂商有很多;
  • 计算机操作系统,也有很多;
  • 计算机网络硬件设备,还是有很多;

 为了让这些不同厂商之间生产的计算机能够相互顺畅的通信,就需要约定一个共同的标准,大家都来遵守,这就是网络协议作用。

2.3.3分层

 对于网络协议来说,往往分为几个层次来定义。

 分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。上层协议调用下层协议,下层协议会给上层协议提供支持,这样协议就不会出现混乱。

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

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

2.4五元组

2.4.1定义

 在计算机通信中,有很多需要的信息,其中有五个核心的信息是必不可少的,称为网络通信“五元组”,每一次网络通信这五个信息都必须存在。

在cmd命令行中输入netstat -ano,可以查看网络传输中的五元组信息。

2.4.2组成

五元组的构成如下:

  1. 源IP:标识源主机;
  2. 源端口号:标识源主机中该次通信的发送数据的进程;
  3. 目的IP:标识目的主机;
  4. 目的端口号:标识目的主机中该次通信的接收数据的进程;
  5. 协议号:标识发送进程和接收进程双方约定的数据格式。

网络通信五元组模型图如下:

3.TCP/IP五层网络模型

3.1模型概念

 TCP/IP五层网络模型(是OSI七层模型的简化版本):是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。

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

3.2模型构成

TCP/IP通讯协议层级构成如下:

  1. 物理层:负责光/电信号的方式,描述网络通信的硬件设备(计算机硬件层)。
  2. 数据链路层:负责设备之间的数据帧的传输与识别,两结点间数据传输。
  3. 网络层:负责地址管理与路由选择,进行路径规划。
  4. 传输层:负责两台主机间数据的传输。
  5. 应用层:负责应用程序间的沟通(计算机网络编程主要针对这层)。

3.3网络分层对应

网络设备所在分层:

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

  上图为TCP/IP通讯协议各层级所对应的主要协议。

3.4封装和分用

 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。

 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)。

 首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。

 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的"上层协议字段"将数据交给对应的上层协议处理。

各层协议封装图:


以上便是计算机网络通信的基础与原理。

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

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

相关文章

SpringBoot 过滤器Filter的过滤链 多个过滤器优先级

SpringBoot 过滤器Filter 拦截请求 生命周期 什么是过滤链? 指的是有多个过滤器形成的过滤链,一个项目中可以存在多个过滤器。 优先级 根据字母排序,如XFilter和AFilter,那么按照顺序应该先到AFilter过滤器当中

一般系统的请求认证授权思路【gateway网关+jwt+redis+请求头httpheader】

gateway:网关,我们都知道网关的作用就是对系统的所有请求,网关都会进行拦截,然后做一些操作(例如:设置每个请求的请求头httpHeader,身份认证等等)此时一般会使用到网关过滤器&#x…

【echarts】动态滚动趋势图,解决坐标轴数据太多遮挡覆盖问题

写在前面 业务场景x轴的文字太多&#xff0c;会出现遮挡问题&#xff0c;想到文字倾斜展示&#xff0c;页面不美观&#xff0c;于是想到使用滚动条优化趋势图。 <template><div id"storeDown" style"height: 400px;width:100%"/> </temp…

基于SpringBoot的后端导出Excel文件

后端导出Excel&#xff0c;前端下载。 系列文章指路&#x1f449; 系列文章-基于SpringBoot3创建项目并配置常用的工具和一些常用的类 文章目录 后端导出Excel引入依赖写入响应 前端下载后端导出失败和成功返回的内容类型不同&#xff0c;因此需要分别判断。 工具类ServletUti…

GLIP:零样本学习 + 目标检测 + 视觉语言大模型

GLIP 核心思想GLIP 对比 BLIP、BLIP-2、CLIP 主要问题: 如何构建一个能够在不同任务和领域中以零样本或少样本方式无缝迁移的预训练模型&#xff1f;统一的短语定位损失语言意识的深度融合预训练数据类型的结合语义丰富数据的扩展零样本和少样本迁移学习 效果 论文&#xff1a;…

docker核心技术

一. 从系统架构谈起 传统分层架构 vs 微服务 微服务改造 分离微服务的方法建议: 审视并发现可以分离的业务逻辑业务逻辑,在对业务领域不是特别熟悉的时候,按照部门职能进行划分,例如账号、财务等寻找天生隔离的代码模块,可以借助于静态代码分析工具如果可以闭环的解决一…

SQL Server之DML触发器

一、如何创建一个触发器呢 触发器的定义语言如下&#xff1a; CREATE [ OR ALTER ] TRIGGER trigger_nameon {table_name | view_name}{for | After | Instead of }[ insert, update,delete ]assql_statement从这个定义语言我们可以知道如下信息&#xff1a; trigger_name&…

从领域外到领域内:LLM在Text-to-SQL任务中的演进之路

导语 本文介绍了ODIS框架&#xff0c;这是一种新颖的Text-to-SQL方法&#xff0c;它结合了领域外示例和合成生成的领域内示例&#xff0c;以提升大型语言模型在In-context Learning中的性能。 标题&#xff1a;Selective Demonstrations for Cross-domain Text-to-SQL会议&am…

计算机组成原理 — 存储器(1)

存储器 大家好呀&#xff01;我是小笙&#xff0c;由于存储器这部分章节内容较多&#xff0c;我分成二部分进行总结&#xff0c;以下是第一部分&#xff0c;希望内容对你有所帮助&#xff01; 概述 存储器是计算机系统中的记忆设备&#xff0c;用来存放程序和数据 存储器分…

vue3 mathjax 数学公式

安装 pnpm install mathjax 新建文件/util/mathjax.js window.MathJax {tex: {inlineMath: [["$", "$"],["\\(", "\\)"],], // 行内公式选择符displayMath: [["$$", "$$"],["\\[", "\\]"…

UE4运用C++和框架开发坦克大战教程笔记(十七)(第51~54集)

UE4运用C和框架开发坦克大战教程笔记&#xff08;十七&#xff09;&#xff08;第51~54集&#xff09; 51. UI 框架介绍UE4 使用 UI 所面临的问题以及解决思路关于即将编写的 UI 框架的思维导图 52. 管理类与面板类53. 预加载与直接加载54. UI 首次进入界面 51. UI 框架介绍 U…

《合成孔径雷达成像算法与实现》Figure6.4

clc clear close all参数设置 距离向参数设置 R_eta_c 20e3; % 景中心斜距 Tr 2.5e-6; % 发射脉冲时宽 Kr 20e12; % 距离向调频率 alpha_os_r 1.2; % 距离过采样率 Nrg 320; % 距离线采样数 距离向…

CSS布局

CSS布局 1. 版心 在 PC 端网页中&#xff0c;一般都会有一个固定宽度且水平居中的盒子&#xff0c;来显示网页的主要内容&#xff0c;这是网页的版心。版心的宽度一般是 960 ~ 1200 像素之间。版心可以是一个&#xff0c;也可以是多个。 2. 常用布局名词 3. 重置默认样式 很…

C#验证字符串的长度,用正则表达式 vs 字符数组长度或字符串的长度

目录 一、使用的方法 1.使用正则表达式 2.通过计算字符串的长度验证 二、实例 1.源码 2.生成效果 一、使用的方法 1.使用正则表达式 使用正则表达式可以判断和限制用户输入的字符串长度。 比如验证用户密码不得少于8为&#xff0c;匹配的正则表达式"^.{8,}$"…

AIGC专题:AIGC教育行业全景报告

今天分享的是AI GC系列深度研究报告&#xff1a;《AIGC专题&#xff1a;AIGC教育行业全景报告》。 &#xff08;报告出品方&#xff1a;量子位智库&#xff09; 报告共计&#xff1a;31页 生成式AI快速落地教育&#xff0c;技术推动教育理念实施 生成式AI将我们带入AI2.0时代…

数据类型完整版

第三章 数据类型 3.1 Key操作 3.1.1 相关命令 序号命令语法描述1DEL key该命令用于在 key 存在时删除 key2DUMP key序列化给定 key &#xff0c;并返回被序列化的值3EXISTS key检查给定 key 是否存在&#xff0c;存在返回1&#xff0c;否则返回04EXPIRE key seconds为给定 k…

MacOS系统电脑远程桌面控制windows系统电脑【内网穿透】

最近&#xff0c;我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念&#xff0c;而且内容风趣幽默。我觉得它对大家可能会有所帮助&#xff0c;所以我在此分享。点击这里跳转到网站。 文章目录 1. 测试本地局域网内远程控制1.1 Windows打开远程桌面1…

回归预测 | Matlab实现WOA-CNN-LSTM-Attention鲸鱼算法优化卷积长短期记忆网络注意力多变量回归预测(SE注意力机制)

回归预测 | Matlab实现WOA-CNN-LSTM-Attention鲸鱼算法优化卷积长短期记忆网络注意力多变量回归预测&#xff08;SE注意力机制&#xff09; 目录 回归预测 | Matlab实现WOA-CNN-LSTM-Attention鲸鱼算法优化卷积长短期记忆网络注意力多变量回归预测&#xff08;SE注意力机制&…

问题:0xc8前面加(byte) #人工智能#学习方法的原因是因为0xc8大于??????????? 。 #微信#其他#微信

问题&#xff1a;0xc8前面加&#xff08;byte&#xff09;的原因是因为0xc8大于??????????? 。 参考答案如图所示

大数据学习之Redis,十大数据类型的具体应用(五)

目录 3.9 Redis地理空间&#xff08;GEO&#xff09; 简介 原理 Redis在3.2版本以后增加了地理位置的处理哦 命令 命令实操 如何获得某个地址的经纬度 3.9 Redis地理空间&#xff08;GEO&#xff09; 简介 移动互联网时代LBS应用越来越多&#xff0c;交友软件中附近的…