当前位置: 首页 > news >正文

[计算机网络]基本概念

目录

1.ip地址和端口号

1.1IP地址

1.2端口号

2.认识协议

2.1概念:

2.2知名协议的默认端口

3.五元组

4.协议分层

4.1分层的作用

4.2OSI七层模型

4.3TCP/IP五层(四层)模型

​编辑4.4网络设备对应的分层:

​编辑以下为跨网段的主机的文件传输:数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器​编辑4.5封装和分用


1.ip地址和端口号

1.1IP地址

在计算机网络中,IP地址是一个很重要的概念,它是用来标识网络主机,其它网络设备(如:路由器)的网络地址。简单来说,IP地址用于定位主机的网络地址。

各式:我们一般常用的IP地址的ipv4格式的IP地址,它是一个32位的二进制数字。通常被分割为4个八位二进制树,但我们为了表示方便,通常会使用点分十进制来表示。如:

192.168.1.1

特殊ip:127.0.0.1 本机环回。主要用到本机和本机的网络通信(系统内部为了测试性能用到的。不会走网络的方式传输),在我们后续编程的时候,这是常见的开发方式。

1.2端口号

在通信子网中,IP地址用于表示主机网络地址,端口号可以表示主机发送,接受数据的进程。简单通俗易懂的话来说:端口号就是标识主机中的进程。

格式:端口号是两个字节,也就是0-65536范围内的数字,但是一般来说 0-1024这些端口是知名端口,如https这些。我们在使用的时候也不用,所以我们使用的端口就是1025-65535这些。

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

注:如何去理解端口和IP地址,就好比在买快递的时候IP地址是是你家小区的地址,而端口号是你的手机号码,通过IP地址找到你家小区,在通过手机号码精准定位到个人。一个人可以有多个手机号码(端口号),而一个手机号码不能被多个人使用。

2.认识协议

2.1概念:


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

1. 语法:即数据与控制信息的结构或格式;
类似打电话时,双方要使用同样的语言:普通话
2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
语义主要用来说明通信双方应当怎么做。用于协调与差错处理的控制信息。
类似打电话时,说话的内容。一方道:你瞅啥?另一方就得有对应的响应:瞅你咋的!
3. 时序,即事件实现顺序的详细说明。
时序定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是
异步传输。
女生和男生的通话,总是由男生主动发起通话,而总是在男生恋恋不舍的时候,由女生要求
结束通话

协议(protocol)最终体现为在网络上传输的数据包的格式
就好比我去相亲的时候,提前对好暗号。天王盖地虎,小鸡炖蘑菇。这种就叫协议。是一种提前的约定。

2.2知名协议的默认端口

系统的端口范围是0-65535,而0-1024是知名端口。这些端口是留给服务端程序绑定广泛使用的应用层协议。如:

22端口:预留给SSH服务器绑定SSH协议

21端口:预留给FTP服务器绑定FTP协议

23端口:预留给Telnet服务器绑定Telnet协议
80端口:预留给HTTP服务器绑定HTTP协议
443端口:预留给HTTPS服务器绑定HTTPS协议

以上只是说明这些端口号用于绑定知名协议,但是某个服务器也可以使用1024-65535范围内的端口来绑定知名协议。

3.五元组

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

1.源IP:标识源主机

2.源端口号:表示源进程 发送数据的进程

3 目的IP 表示目的主机

4 目的端口号:标识目的进程,即接受数据的进程

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

4.协议分层

为了方便我们理解以及更方便,分工明确的网络通信。我们把网络协议氛围好几个层次来定义。

常见的有OSI七层网络协议,还有TCP/IP五层网络协议(有的教科书上说是四层,四层的忽略掉了物理层)

4.1分层的作用

为什么需要网络协议的分层?
分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。
在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类
(使用方,使用服务):
对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可
对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可。
这样能更好的扩展和维护,如下图

4.2OSI七层模型

OSI 七层网络模型是一个逻辑上的定义和规范:把网络从逻辑上分为了7层。
OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传
输;
它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通
过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
 

OSI 七层模型既复杂又不实用:所以 OSI 七层模型没有落地、实现。
实际组建网络时,只是以 OSI 七层模型设计中的部分分层,也即是以下 TCP/IP 五层(或四层)模型来实现

4.3TCP/IP五层(四层)模型

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

应用层:负责应用程序之间的沟通,在运行在主机的时候,程序会变成进程,会有很多应用层协议来规范各应用层之间的通信。如:,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层

传输层:负责两台主机的数据传输,如传输控制协议(TCP).能够确保数据可靠的从源主机发送到目标主机。

网络层:负责地址管理和路由选择,例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式来规划出两台主机之间数据传输的合理路线,路由器就是在网络层工作的。

数据链路层:只关心相邻设备之间数据的传输。负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线
上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工
作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层
物理层:负责光/电信号的传递方式,比如现在的以太网通用的网线,早期以太网采用的同轴光缆,光纤。以及WiFi无线网使用电磁波都属于物理层的概念。

4.4网络设备对应的分层:

对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,也就是TCP/IP五层模型的下四层

对于路由器,它工作在网络层,实现了网络层到物理层,也就是下三层

对于一台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层;
对于集线器,它只实现了物理层
注意我们这里说的是传统意义上的交换机和路由器,也称为二层交换机(工作在TCP/IP五层模型的下两层)、三层路由器(工作在TCP/IP五层模型的下三层)。

随着现在网络设备技术的不断发展,也出现了很多3层或4层交换机,4层路由器。我们以下说的网络设备都是传统意义上的交换机和路由器
 

4.5网络分层对饮的协议

以下为跨网段的主机的文件传输:数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器
4.5封装和分用

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

注意,这些都是类似于字符串拼接的过程。

下面为数据奋用的过程:

相关文章:

[计算机网络]基本概念

目录 1.ip地址和端口号 1.1IP地址 1.2端口号 2.认识协议 2.1概念: 2.2知名协议的默认端口 3.五元组 4.协议分层 4.1分层的作用 4.2OSI七层模型 4.3TCP/IP五层(四层)模型 ​编辑4.4网络设备对应的分层: ​编辑以下为跨…...

Flutter 综述

Flutter 综述 1 介绍1.1 概述1.2 重要节点1.3 移动开发中三种跨平台框架技术对比1.4 flutter 技术栈1.5 IDE1.6 Dart 语言1.7 应用1.8 框架 2 Flutter的主要组成部分3 资料书籍 《Flutter实战第二版》Dart 语言官网Flutter中文开发者社区flutter 官网 4 搭建Flutter开发环境参考…...

Pixels:重新定义游戏体验的区块链农场游戏

数据源:Pixels Dashboard 作者:lesleyfootprint.network 最近,Pixels 通过从 Polygon 转移到 Sky Mavis 旗下的 Ronin 网络,完成了一次战略性的转变。 Pixels 每日交易量 Pixels 在 Ronin 网络上的受欢迎程度急剧上升&#xf…...

【JavaEE】文件操作 —— IO

文件操作 —— IO 1. 文件的属性 文件内容文件大小文件路径文件名称 2. 文件的管理 采用树形结构进行管理。 3. 文件路径 分为两种:相对、绝对路径。 相对路径:相对于当前位置的路径,以“./xxx.xxx”为标志绝对路径:以从盘符…...

推荐新版AI智能聊天系统网站源码ChatGPT NineAi

Nine AI.ChatGPT是基于ChatGPT开发的一个人工智能技术驱动的自然语言处理工具,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代…...

学生公寓智能控电系统的重要性

学生公寓智能控电系统石家庄光大远通电气有限公司学生宿舍内漏电,超负荷用电,违规用电等现象一直是困扰后勤管理的普遍问题。随着学生日常生活方式以及生活用品的改变,电脑以及各种电器逐渐的普及,导致用电量与日俱增,…...

使用Scrapy 爬取“http://tuijian.hao123.com/”网页中左上角“娱乐”、“体育”、“财经”、“科技”、历史等名称和URL

一、网页信息 二、检查网页,找出目标内容 三、根据网页格式写正常爬虫代码 from bs4 import BeautifulSoup import requestsheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/53…...

2018年认证杯SPSSPRO杯数学建模D题(第二阶段)投篮的最佳出手点全过程文档及程序

2018年认证杯SPSSPRO杯数学建模 D题 投篮的最佳出手点 原题再现: 影响投篮命中率的因素不仅仅有出手角度、球感、出手速度,还有出手点的选择。规范的投篮动作包含两膝微屈、重心落在两脚掌上、下肢蹬地发力、身体随之向前上方伸展、同时抬肘向投篮方向…...

软件资源管理下载系统全新带勋章功能 + Uniapp前端

测试环境:php7.1。ng1.2,MySQL 5.6 常见问题: 配置好登录后转圈圈,检查环境及伪静态以及后台创建好应用 上传图片不了,检查php拓展fileinfo 以及public文件权限 App个人主页随机背景图,在前端uitl文件…...

高性能前端UI库 SolidJS | 超棒 NPM 库

SolidJS是一个声明式的、高效的、编译时优化的JavaScript库,用于构建用户界面。它的核心特点是让你能够编写的代码既接近原生JavaScript,又能够享受到现代响应式框架提供的便利。 SolidJS的设计哲学强调了性能与简洁性。它不使用虚拟DOM(Vir…...

聊聊PowerJob的AliOssService

序 本文主要研究一下PowerJob的AliOssService DFsService tech/powerjob/server/extension/dfs/DFsService.java public interface DFsService {/*** 存储文件* param storeRequest 存储请求* throws IOException 异常*/void store(StoreRequest storeRequest) throws IOEx…...

【VRTK】【Unity】【PICO】PICO项目打包后闪退的根本原因

【背景】 一开始打包运行好好的PICO项目,中途用Preview模式开发了一阵后,再次打包就闪退了。 【分析】 项目设置没有动过,那么可能是Preview开发过程中引入的包导致的问题。 【答案】 千万不要在PICO项目中导入Oculus包。我原本想用一些…...

《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(21)

接前一篇文章:《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(20) 2.4 PCI总线的配置 PCI总线定义了两类配置请求,一个是Type 00h配置请求,另一个是Type 01h配置请求。PCI总线使用这些配置请求…...

大数据前馈神经网络解密:深入理解人工智能的基石

文章目录 大数据前馈神经网络解密:深入理解人工智能的基石一、前馈神经网络概述什么是前馈神经网络前馈神经网络的工作原理应用场景及优缺点 二、前馈神经网络的基本结构输入层、隐藏层和输出层激活函数的选择与作用网络权重和偏置 三、前馈神经网络的训练方法损失函…...

【新书推荐】Web3.0应用开发实战(从Web 2.0到Web 3.0)

第一部分 Flask简介 第1章 安装 1.1 创建应用目录 1.2 虚拟环境 1.2.1 创建虚拟环境 1.2.2 使用虚拟环境 1.3 使用pip安装Python包 1.4 使用pipregs输出包 1.5 使用requirements.txt 1.6 使用pipenv管理包 第2章 应用的基本结构 2.1 网页显示过程 2.2 初始化 2.3 路由和视图函数…...

vue3中状态管理库pinia的安装和使用方法介绍及和vuex的区别

文章目录 Pinia 的主要特点:如何使用:1.安装2.定义3.使用 pinia和vuex的对比 Pinia 与 Vuex 一样,是作为 Vue 的“状态存储库”,用来实现 跨页面/组件 形式的数据状态共享。它允许你跨组件或页面共享状态。如果你熟悉组合式 API 的…...

领略指针之妙

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…...

迭代器模式介绍

目录 一、迭代器模式介绍 1.1 迭代器模式定义 1.2 迭代器模式原理 1.2.1 迭代器模式类图 1.2.2 模式角色说明 1.2.3 示例代码 二、迭代模式的应用 2.1 需求说明 2.2 需求实现 2.2.1 抽象迭代类 2.2.2 抽象集合类 2.2.3 主题类 2.2.4 具体迭代类 2.2.5 具体集合类 …...

算法每日一题: 最大字符串匹配数目 | 哈希 | 哈希表 | 题意分析

hello 大家好,我是星恒 今天给大家带来的是hash,思路有好几种,需要注意的是这中简单的题目需要仔细看条件,往往他们有对应题目的特殊的解法 题目:leetcode 2744给你一个下标从 0 开始的数组 words ,数组中包…...

自然语言处理(Natural Language Processing,NLP)解密

专栏集锦,大佬们可以收藏以备不时之需: Spring Cloud 专栏:http://t.csdnimg.cn/WDmJ9 Python 专栏:http://t.csdnimg.cn/hMwPR Redis 专栏:http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏:http://t.csdni…...

【DevOps-08-5】目标服务器准备脚本,并基于Harbor的最终部署

一、简要描述 告知目标服务器拉取哪个镜像判断当前服务器是否正在运行容器,停止并删除如果目标服务器已经存在当前镜像,删除当前版本的镜像目标服务器拉取Harbor上的镜像将拉取下来的镜像运行成容器二、准备目标服务器脚本文件 1、在部署的目标服务器准备deploy.sh部署脚本 …...

用Java实现01背包问题 用贪心算法

贪心算法不是解决01背包问题的有效方法,因为贪心算法只能保证得到一个近似最优解,而无法保证得到最优解。因此,我们需要使用动态规划来解决01背包问题。以下是使用Java实现的动态规划解法: public class KnapsackProblem {public…...

JUC并发编程-8锁现象

5. 8锁现象 如何判断锁的是谁!锁到底锁的是谁? 锁会锁住:对象、Class 深刻理解我们的锁 问题1 两个同步方法,先执行发短信还是打电话 public class dome01 {public static void main(String[] args) {Phone phone new Phon…...

集美大学“第15届蓝桥杯大赛(软件类)“校内选拔赛 D矩阵选数

经典的状态压缩DP int dp[15][(1<<14)10]; int a[15][15]; void solve() {//dp[i][st]考虑到了第i行 并且当前考虑完第i行以后的选择状态是st的所有方案中的最大值for(int i1;i<13;i)for(int j1;j<13;j)cin>>a[i][j];for(int i1;i<13;i){for(int j0;j<…...

Android System Service系统服务--1

因为工作中经常需要解决一些framework层的问题&#xff0c;而framework层功能一般都是system service 的代理stub&#xff0c;然后封装相关接口&#xff0c;并提供给APP层使用&#xff0c;system service则在不同的进程中运行&#xff0c;这样实现了分层&#xff0c;隔离&#…...

【RT-DETR有效改进】华为 | Ghostnetv1一种专为移动端设计的特征提取网络

前言 大家好&#xff0c;这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进&#xff0c;内容持续更新&#xff0c;每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本&#xff0c;同时修改内容也支持ResNet32、ResNet101和PP…...

45个经典Linux面试题!赶紧收藏!

问题一&#xff1a; 绝对路径用什么符号表示&#xff1f;当前目录、上层目录用什么表示&#xff1f;主目录用什么表示? 切换目录用什么命令&#xff1f; 答案&#xff1a;绝对路径&#xff1a;如/etc/init.d当前目录和上层目录&#xff1a;./ …/主目录&#xff1a;~/切换目…...

将字符串中可能被视为正则表达式的特殊字符进行转义re.escape()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将字符串中可能被视为 正则表达式的特殊字符 进行转义 re.escape() [太阳]选择题 请问以下代码最后输出的结果是&#xff1f; import re s [a-z] print("【显示】s ",s) print(&q…...

C语言:函数指针的使用

在C语言中&#xff0c;函数指针是指向函数的指针变量。它可以存储函数的地址&#xff0c;使得可以通过该指针来调用函数。以下是函数指针的基本概念和用法&#xff1a; 一、基本概念&#xff1a; 声明函数指针&#xff1a; returnType (*pointerName)(parameterTypes); 这里 r…...

「实战应用」如何用DHTMLX Gantt构建类似JIRA式的项目路线图(二)

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求&#xff0c;是最完善的甘特图图表库。 在web项目中使用DHTMLX Gantt时&#xff0c;开发人员经常需要满足与UI外观相关的各种需求。因此他们必须确定JavaScript甘特图库的…...