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

计算机网络基础知识总结

经过学习我们可以知道:

关于计算机网络:

  • ip地址
  • 端口号
  • 协议
  • 协议分层
  • TCP五层协议
  • 协议封装
  • 两台计算机之间的通信

目录

ip地址

端口号

协议

协议分层

五层协议体系结构

(1) 应用层

(2) 运输层

(3) 网络层

(4)数据链路层

(5)物理层

封装&分用

两台主机之间的通信


ip地址

        就像我们人与人之间的识别一样, 不能只看外貌来识别, 他还需要有像身份证一样的唯一身份表示, 对于计算机来说, 这种身份标识就称为IP地址.

        IP地址主要用于表示网络主机, 其他网络设备(例如路由器)的网络地址.

        格式: IP地址的格式, IP地址是一个32位的二进制数, 通常被分割为4个8位二进制数, 例如:011001100.00000100.00000101.00000110

        IP协议是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。各个厂家生产的网络系统和设备,如以太网、分组交换网等,它们相互之间不能互通,不能互通的主要原因是因为它们所传送数据的基本单元(技术上称之为“帧”)的格式不同。IP协议实际上是一套由软件程序组成的协议软件,它把各种不同“帧”统一转换成“IP数据报”格式,这种转换是因特网的一个最重要的特点,使所有各种计算机都能在因特网上实现互通,即具有“开放性”的特点。正是因为有了IP协议,因特网才得以迅速发展成为世界上最大的、开放的计算机通信网络。因此,IP协议也可以叫做“因特网协议”。

        

        IP协议中还有一个非常重要的内容,那就是给因特网上的每台计算机和其它设备都规定了一个唯一的地址,叫做“IP地址”。由于有这种唯一的地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。

        IP地址就像是我们的家庭住址一样,如果你要写信给一个人,你就要知道他(她)的地址,这样邮递员才能把信送到。计算机发送信息就好比是邮递员,它必须知道唯一的“家庭地址”才能不至于把信送错人家。只不过我们的地址是用文字来表示的,计算机的地址用二进制数字表示。

        IP地址被用来给Internet上的电脑一个编号。大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信。我们可以把“个人计算机”比作“一台电话”,那么“IP地址”就相当于“电话号码”,而Internet中的路由器,就相当于电信局的“程控式交换机”。

端口号

        所谓端口, 就是程序的入口, 客户端通过ip地址, 可以找到对应的服务端, 但是每一个服务器都有很多个应用端口, 如果想知道想要请求的应用是什么, 就必须知道应用的端口, 每一个应用程序对应着一个端口号, 这就类似于一个快递员通过ip找到了收件人的家, 但是还需要通过手机号来确认是这家人的谁买的东西, 这个手机号就类似于端口, 这个人就相当于每一个应用程序, 客户端在找到了正确的端口后, 才能在应用程序之间进行通信

        端口号有一个数字范围: 0 ~ 65535, 在网络通信当中, 进程通过绑定一个端口号, 来发送和接收数据. 但是两个不同的进程无法绑定同一个端口号, 但是一个进程可以绑定多个端口号.

        一个进程启动后, 操作系统会随机分配一个端口, 程序代码, 进行网络编程的时候, 需要绑定端口号来进行数据的发送和接收,         


        通过以上两点, 一个是IP地址, 一个是端口号, 那么知道IP后, 我们就可以知道我们想要通信的计算机在网络上的逻辑位置, 此时再知晓端口号之后, 两台计算机的应用程序之间就可以进行数据的交换, 或者说是信息的发送和接收.

        但是, 计算机的文件有这么多种类型, 如何让对方知道我们传过去的是什么呢? 这就得提到计算机在传输的时候的协议了.


协议

        协议, 是网络协议的简称, 网络协议就是制定了两台计算机之间数据交换的规则. 经过的所有网络设备, 都需要遵守这样的一组约定规则, 只要相互遵守这个约定, 那么计算机之间就可以正确的识别信息.

        组成协议的三要素:

  1. 语法: 数据与控制信息的结构或者格式
  2. 语义: 即需要发出何种控制信息, 完成何种动作已经做出什么反应
  3. 时序: 即时间实现顺序的详细说明

协议分层

        在指定协议的时候, 如果笼统的将所有约定都指定在一起, 那么这个工作量是相当大的, 而且后面也不利于维护, 每一层的工作量大, 不方便实现, 所以将协议分为好几层

        运作方式: 数据由传送端的最上层产生, 然后逐层的, 由上层以此往下层进行传送和封装, 经过每一层, 都会在数据信息的前端增加一些该层专用的信息, 这些信息成为报头, 然后才能传给下一层,  可以类比一下, 其实每一层加的这些报头可以理解为寄快递的时候, 给商品上的一层层包装, 到了最底层的时候, 数据完成包装, 然后通过物理层, 通过网络线, 电话线, 光媒等媒介进行传送,

        接收段收到数据后, 就开始一层一层的拆包, 由最底层一直向上拆包, 知道最上层.


 

五层协议体系结构

(1) 应用层

        应用层是体系结构中的最高层, 应用层的任务就是通过应用进程之间的交互来完成特定的网络应用,  应用层协议定义的是 应用进程通信和交互的规则. 进程就是指的主机中正在运行的程序.

(2) 运输层

        运输层就是负责想两台主机中进程之间的通信提供通用的数据传输服务, 应用进程利用该服务传送应用层报文, 所谓通用就是, 多个应用都可以使用这个传输层的服务.

(3) 网络层

        网络层负为分组交换网上的不同主机提供通信服务, 发送数据时, 网络层把运算层产生的报文段, 或者是用户数据报封装成分组或包进行传送, 在TCP/IP协议中, 网络层使用的是IP协议, 因此也叫作IP数据报. 网络层将数据封装IP.

(4)数据链路层

        数据链路层也称为链路层, 两台主机之间的数据传输, 总是一段一段的在链路层上传输. 在两个相邻的结点之间传输数据的时候, , 数据链路层将网络层教下来的IP数据报组装成帧, 在两个相邻结点间的链路上传送帧

(5)物理层

        物理层是OSI的第一层,它虽然处于最底层,却是整个开放系统的基础。物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。如果您想要用尽量少的词来记住这个第一层,那就是“信号和介质”。  


 

封装&分用

        不同的协议对数据包有不同的称为, 在传输层叫做段, 在网络层叫做数据报, 在链路层叫做帧, 引用层数据通过协议栈发到网络上时, 每层协议都要加上一个数据首部, 称为封装, 首部信息中包含了一些类似于首部有多长, 在和有多长的信息, 数据封装成真后发送到传输截止上, 到达目的主机后每层协议再剥掉相应的首部, 根据首部中的, 上层协议字段, 将数据交给对应的上层协议处理.

         分用即封装的逆过程


两台主机之间的通信

发送方要给目的主机发送一条信息text,

(1) 首先是经过应用层, 应用层拿到数据, 将数据封装成数据包,调用传输层的api接口,然后来处理这个数据

(2) 传输层拿到数据之后,  将上述整个数据包作为udp数据包的数据部分,此处,UDP协议再给应用层数据报加个UDP报头,就是为了再贴一层标签,从而在标签上填写必要的属性.传输层协议,最关键的属性,源端口和目的端口了.

(3) 网络层, UDP数据包已经有了, 接下来就是把这个数据包交给网络层协议. (常见的有IP协议), 然后进一步封装, 添加上IP协议的报头. 

(4)封装好后交给数据链路层, 数据链路层最典型的协议是以太, 给上面的数据报加上以太网数据报头mac, (mac地址, 也是一个描述主机在网络上逻辑位置的地址, 功能和IP类似, mac用来描述两个相邻结点的数据)

(5) 剩下的就交给物理层了, 数据在物理层传输, 通过媒介: 广电信号, 电话线, 等传输媒介

相关文章:

计算机网络基础知识总结

经过学习我们可以知道: 关于计算机网络: ip地址端口号协议协议分层TCP五层协议协议封装两台计算机之间的通信 目录 ip地址 端口号 协议 协议分层 五层协议体系结构 (1) 应用层 (2) 运输层 (3) 网络层 (4)数据链路层 (5)物理层 封装&分用 两台主机之间的通信 …...

(下)苹果有开源,但又怎样呢?

一开始,因为 MacOS X ,苹果与 FreeBSD 过往从密,不仅挖来 FreeBSD 创始人 Jordan Hubbard,更是在此基础上开源了 Darwin。但是,苹果并没有给予 Darwin 太多关注,作为苹果的首个开源项目,它算不上…...

row_number 和 cte 使用实例:考场监考安排

row_number 和 cte 使用实例:考场监考安排 考场监考安排使用 cte 模拟两个表的原始数据使用 master..spt_values 进行数据填充优先安排时长较长的考试使用 cte 安排第一个需要安排的科目统计老师已有的监考时长尝试使用 cte 递归,进行下一场考试安排&…...

2023天梯赛记录

文章目录 L2-001 紧急救援L2-002 链表去重L2-004 这是二叉搜索树吗?L2-005 集合相似度L2-006 树的遍历L2-007 家庭房产L2-010 排座位L2-011 玩转二叉树L2-012 关于堆的判断L2-013 红色警报L2-014 列车调度L2-016 愿天下有情人都是失散多年的兄妹L2-019 悄悄关注L2-0…...

被吐槽 GitHub仓 库太大,直接 600M 瘦身到 6M,这下舒服了

大家好,我是小富~ 前言 忙里偷闲学习了点技术写了点demo代码,打算提交到我那 2000Star 的Github仓库上,居然发现有5个Issues,最近的一条日期已经是2022/8/1了,以前我还真没留意过这些,我这人懒…...

OpenGL(三)——着色器

目录 一、前言 二、Shader 2 Shader 2.1 顶点着色器 2.2 片段着色器 三、APP 2 Shader 四、顶点颜色属性 五、着色器类C 一、前言 着色器Shader是运行在GPU上的小程序,为图形渲染管线的某个特定部分而运行。各阶段着色器之间无法通信,只有输入和输…...

【MySQL】单表查询

一、表的准备 查询操作的SQL演示将基于下面这四张表进行,我们先创建好这四张数据表,并为其添加数据。 1、第一张表为部门表,名称为包含三个字段:部门编号(deptno),部门名称(dname&…...

第一章 安装Unity

使用Unity开发游戏的话,首先要安装Unity Hub和Unity Editor两个软件。大家可以去官方地址下载:https://unity.cn/releases/full/2020 (这里我们选择的是2020版本) Unity Hub 是安装 Unity Editor、创建项目、管理帐户和许可证的主…...

20230425----重返学习-vue项目-vue自定义指令-vue-cli的配置

day-057-fifty-seven-20230425-vue项目-vue自定义指令-vue-cli的配置 vue项目 vuex版 普通版纯axios:切换页面,就会重新发送一次ajax请求普通版升级:vuex版vuex的常用功能 vuex 数据通信vuex 缓存数据 前进后退,切换页面&#…...

el-input 只能输入整数(包括正数、负数、0)或者只能输入整数(包括正数、负数、0)和小数

使用el-input-number标签 也可以使用typenumbe和v-model.number属性&#xff0c;两者结合使用&#xff0c;能满足大多数需求&#xff0c;如果还不满足&#xff0c;可以再结合正则表达式过滤 <el-input v-model.number"value" type"number" /> el-i…...

Docker Compose的常用命令与docker-compose.yml脚本属性配置

Docker Compose的常用命令与配置 常见命令ps&#xff1a;列出所有运行容器logs&#xff1a;查看服务日志输出port&#xff1a;打印绑定的公共端口build&#xff1a;构建或者重新构建服务start&#xff1a;启动指定服务已存在的容器stop&#xff1a;停止已运行的服务的容器&…...

with语句和上下文管理器(py编程)

1. with语句的使用 基础班向文件中写入数据的示例代码: # 1、以写的方式打开文件f open("1.txt", "w")# 2、写入文件内容f.write("hello world")# 3、关闭文件f.close()代码说明: 文件使用完后必须关闭&#xff0c;因为文件对象会占用操作系统…...

《JavaEE初阶》HTTP协议和HTTPS

《JavaEE初阶》HTTP协议和HTTPS 文章目录 《JavaEE初阶》HTTP协议和HTTPSHTTP协议是应用层协议:使用Fiddler抓取HTTP请求和响应:Fiddler的下载和基本使用:Fiddler的中间代理人身份:其他抓包工具: 先简单认识HTTP请求与HTTP响应:HTTP请求:HTTP响应: HTTP请求详解:首行&#xff1…...

微信小程序 | 基于高德地图+ChatGPT实现旅游规划小程序

&#x1f388;&#x1f388;效果预览&#x1f388;&#x1f388; ❤ 路劲规划 ❤ 功能总览 ❤ ChatGPT交互 一、需求背景 五一假期即即将到来&#xff0c;在大家都阳过之后&#xff0c;截止到目前这应该是最安全的一个假期。所以出去旅游想必是大多数人的选择。 然后&#x…...

Excel技能之实用技巧,高手私藏

今天来讲一下Excel技巧&#xff0c;工作常用&#xff0c;高手私藏。能帮到你是我最大的荣幸。 与其加班熬夜赶进度&#xff0c;不如下班学习提效率。能力有成长&#xff0c;效率提上去&#xff0c;自然不用加班。 消化吸收&#xff0c;工作中立马使用&#xff0c;感觉真不错。…...

黑马程序员Java零基础视频教程笔记-运算符

文章目录 一、算数运算符详解和综合练习二、隐式转换和强制转换三、字符串和字符的加操作四、自增自减运算符五、赋值运算符和关系运算符六、四种逻辑运算符七、短路逻辑运算符八、三元运算符 一、算数运算符详解和综合练习 1. 运算符和表达式 ① 运算符&#xff1a;对字面量…...

Microsoft Data Loss Prevention(DLP)部署方案

目录 一、前言 二、部署流程 步骤一:确定数据需求 步骤二:规划信息保护策略...

win系统使用frp端口映射实现内网穿透,配置“任务计划程序”提高稳定性

Github下载最新版frp: https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_windows_amd64.zip 解压把frpc.exe和frpc.ini放到D:\program\frp目录下&#xff0c;修改frpc.ini内容如下&#xff1a; [common] server_addr 服务器域名或IP&#xff0c;假设…...

python工具方法 39 大图裁剪为小图|小图还原成大图(含生成大图伪标签)

在进行遥感影像的处理中,通常都是几万x几万的大型影像,这给数据标注(图像尺寸过大使标注软件不能正常打开或过大给标注带来困难)、训练模型(只能使用小图)、测试图片(在小图上预测需要还原成大图)、生成伪标签(需要大图的伪标签,而不是小图的)都带来了困难。针对此进…...

MUSIC算法仿真

MUSIC算法原理及仿真 DOA波达方向估计MUSIC算法概述MUSIC算法原理MUSIC算法MATLB仿真 DOA波达方向估计 DOA&#xff08;Direction Of Arrival&#xff09;波达方向是指通过阵列信号处理来估计来波的方向&#xff0c;这里的信源可能是多个&#xff0c;角度也有多个。DOA技术主要…...

redis 数据类型详解 以及 redis适用场景场合

1. MySqlMemcached架构的问题 实际MySQL是适合进行海量数据存储的&#xff0c;通过Memcached将热点数据加载到cache&#xff0c;加速访问&#xff0c;很多公司都曾经使用过这样的架构&#xff0c;但随着业务数据量的不断增加&#xff0c;和访问量的持续增长&#xff0c;我们遇…...

python基于轻量级YOLOv5的生猪检测+状态识别分析系统

在我之前的一篇文章中有过生猪检测盒状态识别相关的项目实践&#xff0c;如下&#xff1a; 《Python基于yolov4实现生猪检测及状态识》 感兴趣的话可以自行移步阅读&#xff0c;这里主要是基于同样的技术思想&#xff0c;将原始体积较大的yolov4模型做无缝替换&#xff0c;使…...

阅读笔记 First Order Motion Model for Image Animation

文章解决的是图片动画的问题。假设有源图片和驱动视频&#xff0c;并且其中的物体是同一类的&#xff0c;文章的方法让源图片中的物体按照驱动视频中物体的动作而动。 文章的方法只需要一个同类物体的视频集&#xff0c;不需要而外的标注。 方法 该方法基于self-supervised策…...

【计算机图形学】课堂习题汇总

在直线的光栅化算法中&#xff0c;如果不考虑最大位移方向则可能得到怎样的直线&#xff1f; A&#xff1a;斜率为1的线 B&#xff1a;总是垂直的 C&#xff1a;离散的点&#xff0c;无法构成直线 D&#xff1a;总是水平的 在直线的改进的Bresenham算法中&#xff0c;每当误…...

国外导师对博士后申请简历的几点建议

正所谓“工欲善其事&#xff0c;必先利其器”&#xff0c;想要申请国外的博士后职位&#xff0c;就要准备好相应的申请文书材料。如果说Cover Letter是职位的窍门砖&#xff0c;那么申请者的简历就是争取职位的决定性筹码。 相信大家已经看过许多简历的模版了&#xff0c;但是…...

【五一创作】Scratch资料袋

Scratch软件是免费的、免费的、免费的。任何需要花钱才能下载Scratch软件的全是骗子。 1、什么是Scratch Scratch是麻省理工学院的“终身幼儿园团队”开发的一种图形化编程工具。是面向青少年的一款模块化&#xff0c;积木化、可视化的编程语言。 什么是模块化、积木化&…...

数据库基础篇 《17.触发器》

数据库基础篇 《17.触发器》 在实际开发中&#xff0c;我们经常会遇到这样的情况&#xff1a;有 2 个或者多个相互关联的表&#xff0c;如商品信息和库存信息分别存放在 2 个不同的数据表中&#xff0c;我们在添加一条新商品记录的时候&#xff0c;为了保证数据的完整性&#…...

03 - 大学生如何使用GPT

大学生如何使用GPT提高学习效率 一、引言 在当今的高速发展的信息时代&#xff0c;大学生面临着越来越多的学习挑战。作为一种先进的人工智能技术&#xff0c;GPT为大学生提供了一种强大的学习工具。本文将介绍大学生在不同场景中如何使用GPT来提高学习效率&#xff0c;并给出…...

【P1】Jmeter 准备工作

文章目录 一、Jmeter 介绍1.1、Jmeter 有什么样功能1.2、Jmeter 与 LoadRunner 比较1.3、常用性能测试工具1.4、性能测试工具如何选型1.5、学习 Jmeter 对 Java 编程的要求 二、Jmeter 软件安装2.1、官网介绍2.2、JDK 安装及环境配置2.3、Jmeter 三种模式2.4、主要配置介绍2.4.…...

字节的面试,你能扛住几道?

C &#xff0c; Python 哪一个更快&#xff1f; 读者答&#xff1a;这个我不知道从哪方面说&#xff0c;就是 C 的话&#xff0c;它其实能够提供开发者非常多的权限&#xff0c;就是说它能涉及到一些操作系统级别的一些操作&#xff0c;速度应该挺快。然后 Python 实现功能还…...