【网络】网络发展,网络协议,网络传输流程,地址管理

news2024/11/16 17:27:06

目录

1.计算机网络背景

1.1网络发展

局域网和广域网

1.2 协议

2.网络协议初识

2.1协议分层

2.2OSI七层模型

2.3 TCP/IP 五层(或四层)模型

网络和操作系统之间的关系

2.4重谈协议 -- 计算机的视角,如何看待协议?

2.5 网络传输基本流程

网络传输流程图

数据包封装和分用

3.网络中的地址管理

3.1认识IP地址

3.2认识MAC地址

结论:


1.计算机网络背景

1.1网络发展

计算机体系结构本质也可以被看做是一个小型网络。计算机与计算机之间也是用“线”连接起来的。与其说两台计算机通信,本质上其实也是通过“线”链接起来。不过是“线”长了一点(网线,无限LAN)。

  • 独立模式:计算机之间相互独立;

  • 网络互联:多台计算机连接在一起,完成数据共享;

那么我们一般一台计算机内,把外设和内存之间的“线”称作IO总线。CPU和内存之间的“线”称作系统总线,我们常见的有32位/64位。

那么我们此时需要面对一个问题,在主机内,“线”比较短;跨主机,“线”比较长。而当“线”比较短时,数据之间会发生信号干扰;而“线”比较长时,数据的可靠性就降低了,以及效率变低,以及存在寻找对方的问题。

局域网和广域网

计算机网络,根据其规模可分为WAN(Wide Area Network,广域网)和LAN(Local Area Network,局域网)。

局域网LAN:计算机数量更多了,通过交换机和路由器链接在一起。(一栋楼或大学校园中有限的,狭小的,区域内网络)

广域网WAN:将远隔千里的计算机都连在一起;

1.2 协议

“协议” 是一种约定。这种约定使那些由不同厂商的设备、不同的CPU以及不同的操作系统组成的计算机之间,只要遵循相同的协议就能够实现通信。两台计算机必须能够支持相同的协议,并遵循相同协议进行处理,这样才能实现相互通信。

思考:只要通信的两台主机,约定好协议就可以了么?

  • 计算机生产厂商有很多
  • 计算机操作系统也有很多
  • 计算机网络硬件设备还是有很多
  • 如何让这些不同厂商之间生产的计算机能够相互顺畅的通信?就需要有人站出来约定一个共同的标准,大家都来遵守,这就是网络协议

2.网络协议初识

2.1协议分层

通信协议设计指标的OSI参考模型。这一模型将通信协议中必要的功能分成了7层。通过这些分层,使得那些比较复杂的网络协议更加简单化。

2.2OSI七层模型

  • OSI(Open System Interconnection,开放系统互连) 七层网络模型称为开放式系统互联参考模型是一个逻辑上的定义和规范;
  • 把网络从逻辑上分为7层,每一层都有相关,相对应的物理设备,比如路由器,交换机;
  • OSI七层模型上是一种框架性的设计方法,其最主要的功能就是帮助不同类型的主机实现数据传输
  • 他的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次的结构模型使不同的系统不同的网络之间实现可靠的通讯。

但是由于OSI七层模型既复杂又不实用,因此我们经常使用TCP/IP四层模型

2.3 TCP/IP 五层(或四层)模型

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

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

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

由于物理层我们考虑的比较少,因此很多时候也可以称为TCP/IP四层模型。

一般而言:

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容
  • 对于一台路由器,它实现了从网络层到物理层
  • 对于一台交换机,它实现了从数据链路层到物理层
  • 对于集线器,它只实现了物理层。

但是并不绝对,很多交换机也实现了网络层的转发,很多路由器也实现了部分传输层的内容(比如端口转发)

网络和操作系统之间的关系

TCP/IP协议和操作系统的关系是:操作系统内部,有一个模块,就叫做TCP/IP协议,网络协议栈是隶属于OS的!

那么两台主机之间进行通信的时候,同层协议都认为自己在和对方直接通信!

2.4重谈协议 -- 计算机的视角,如何看待协议?

举个例子,我们在网上购买一个鼠标。你和卖家沟通好,买了一个鼠标,实际上快递员给你的是一个包裹,里面有鼠标。

实际上,快递员多给了我们一些东西!快递单。这个快递单上填的一些数据。这些数据不是给你用的,是给快递公司用的。快递单多出来的这些数据是快递公司和快递点和快递小哥之间的协议!

为了维护协议,一定要在被传输的数据上新增其他数据。这个新增的其他数据我们叫做协议数据。

2.5 网络传输基本流程

网络传输流程图

同一个网段内的两天主机进行文件传输。

我们把每一层要交付给下一层的数据,给他添加上本层“多出来的协议数据”拼接在原始数据的开头叫做报头.

跨网段的主机的文件传输,数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。

数据包封装和分用

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

下图为数据封装的过程

下图为数据分用的过程

3.网络中的地址管理

3.1认识IP地址

IP协议有两个版本,IPv4和IPv6,我们凡是提到IP协议,如果特殊说明的,默认都是值IPv4

  • IP地址是在IP协议中,用来标识网络中不同主机的地址;
  • 对于IPv4来说,IP地址是一个4字节,32位的整数
  • 我们通常也是用“点分十进制”的字符串表示IP地址,例如:192.168.0.1;用点来分割每一个数字表示一个字节,范围是0-255;

3.2认识MAC地址

每一台主机都要有唯一的标识,就是该主机对应的MAC地址!

任何一台主机,在任何时刻都可以随时发消息。我们把这种局域网的情况叫做 碰撞域 -- 无法准确的听到对应的消息 -- 每一台主机也能识别发生了碰撞(碰撞检测) -- 碰撞避免 -- 如果没人说话我再说话

  • MAC地址是用来识别数据链路层中相连的节点;
  • 长度为48位,即6个字节,一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)
  • 在网卡出厂时就确定了,不能修改,MAC地址通常是唯一的(虚拟机中的MAC地址不是真实的MAC地址,可能会冲突;也有些网卡支持用户配置mac地址)

在云服务器下查看MAC地址

ifconfig 可以查看MAC地址

ether:以太

其中“从哪儿来” -> "到哪里去" -- 对应IP 地址 ;"上一站从哪儿来"-- "下一站到哪儿去" 对应的是MAC地址。

MAC地址用来在局域网中标定主机的唯一性

IP地址在广域网中(公网),标定主机的唯一性。

结论:

  1. 一般而言,任何报头属性里面一定要存在的一些字段要支持进行封装和解包
  2. 一般而言,任何报头属性里面一定要存在的一些字段支持,我们要进行分用

(本篇完)

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

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

相关文章

python带你采集淘/苏/唯/考四大电商平台商品数据

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 环境介绍: python 3.8 越稳定越好 pycharm 2021专业版 一、苏宁 模块使用: selenium >>> pip install selenium 3.141.0 Python当中的模块 操作 浏览器的驱动 Chrome浏览器 Chromedr…

2023北京国际残疾人用品展览会|福祉博览会

全 称:2023中国国际福祉博览会暨中国国际康复博览会 英 文:Care & Rehabilitation Expo China 2023 时 间:2023年5月21-23日 地 点:北京首钢会展中心(1-3号馆) 主 办:中国残疾人联合会 承 办…

visdrone数据集转化为MOT数据集(用作MOTR模型训练)

文章目录visdrone数据集转化为MOT数据集MOT17 数据集格式traindet.txtgt.txtseqinfo.initestdet.txtvisdrone——Task 4_ Multi-Object Tracking配置seqinfo.ini文件代码如下Linuxvisdrone数据集转化为MOT数据集 MOT17 数据集格式 ├── MOT17 │ ├── images │ ├─…

YOLO学习记录之模型修改

我们在做实验时,不免需要对模型结构进行修改来检测自己的改进性能,对于一般模型而言,我们只需要简单的在代码中添加网络层即可,但对于一些预训练好的模型,我们则需要进行较为复杂的修改。以我们的YOLOV7模型为例&#…

[Linux]----守护进程

文章目录前言一、什么是守护进程?二、会话和进程组会话进程组三、守护进程的编程流程总结前言 这节课我来给大家讲解在Linux下如何让进程守护化,运行在后台,处理我们的任务. 正文开始! 一、什么是守护进程? 守护进程也称为精灵进程(Daemon),是运行在后台的一种特殊进程.它…

Mybatis-Plus快速使用相关知识点1

Mybatis-Plus的mapper、service 基本CURD BaseMapper BaseMapper是MyBatis-Plus提供的模板mapper,其中包含了基本的CRUD方法,泛型为操作的实体类型,Mapper 继承该接口后,无需编写 mapper.xml 文件,即可获得CRUD功能…

JavaScript刷LeetCode拿offer-链表篇

一、链表 链表(Linked List)是一种常见的基础数据结构,也是线性表的一种。 一个线性表是 n 个具有相同特性的数据元素的有限序列,线性表的存储结构分为两类:顺序表(数组)和链表。 链表相比较顺…

站得高,望得远

1、站得高,望的远 计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。 这句话几乎概括了计算机系统软件体系结构的设计要点 ,整个体系结构从上到下都是按照严格的层次结构设计的。不仅是计算机系统软件整个体系是这样的,体系里…

884. 两句话中的不常见单词 map与stringstream

目录 力扣884. 两句话中的不常见单词 【解法一】:最后写出了一坨屎,虽然它是一坨屎,但是它能动,虽然它是一坨屎,但起码这是我自己拉的 【大佬解法】 stringstream的使用 以及 map的使用 884. 两句话中的不常见单词 句…

python实现bib文件中参考文献的题目每个单词首字母大写

文章目录前言实现思路前言 由于毕业论文格式要求英文参考文献的题目的每个单词(除了介词)的首字母都要大写,如果一条条地自己修改费时费力,这里就想着简单地用python操作字符串的方式实现。 实现思路 观察bib参考文献格式&#x…

20230102单独编译Toybrick的TB-RK3588X开发板的Android12的内核

20230102单独编译Toybrick的TB-RK3588X开发板的Android12的内核 2023/1/2 17:40 《RK3588_Android12_SDK_Developer_Guide_CN.pdf》 原厂的开发板rk3588-evb1-lp4-v10单独编译内核的方式: cd kernel-5.10 export PATH../prebuilts/clang/host/linux-x86/clang-r4161…

【数据结构】C语言实现链表(单链表部分)

目录 前言 链表 链表的分类 1.单向或者双向 2.带头或者不带头 3.循环或者非循环 单链表实现 定义节点 接口函数实现 创建节点 打印链表 尾插节点 尾删节点 头插节点 头删节点 单链表查找 删除指定位置后的节点 指定位置后插入节点 删除指定位置 指定位置插入节点…

Linux-7 文本编辑vivim

Linux-7 文本编辑vi/vim vim介绍 什么是vim? vi和vim是Linux下的一个文本编辑工具。(可以李姐为Windows的记事本或word文档) 为什么要使用vim? 因为Linux系统一切皆为文件,而我们工作最多的就是修改某个服务的配置&a…

一名七年老安卓的 2022 总结

大家好,我是 shixin。一转眼到了 2022 的最后一天,今年发生了很多事,这篇文章来总结一下。长短期目标达成情况和去年一样,我的长期目标是成为具备创业能力的人,包括商业思维和全栈技术能力。总的来说,今年是…

STM32MP157驱动开发——USB设备驱动

STM32MP157驱动开发——USB设备驱动一、简介1.电气属性2.USB OTG3.STM32MP1 USB 接口简介4.Type-C 电气属性二、USB HOST 驱动开发1.USB HOST 驱动编写2.配置 PHY 控制器3.配置usbh_ehci三、USB HOST 测试1.鼠标键盘驱动使能2.U盘驱动四、USB OTG驱动开发1.USB OTG 控制器节点信…

系统设计实战一

文章目录前言一、服务幂等1.防止订单重复下单1.1 场景如下:当用户在提交订单的时候1.2 重复下单解决方案1.3案例一幂等性总结2 防止订单ABA问题2.1 场景如下:当在修改订单用户信息的时候发生服务器或者网络问题导致的重试2.2 ABA问题解决方案2.3 业务ABA…

Mac本地安装Mysql并配置

文章目录一、安装Mysql二、配置Mysql三、启动mysql四、SQL语法初步了解1.创建数据库2.建表3.查看表一、安装Mysql 笔者推荐采用安装包的方法安装Mysql,比较简单,适合新手。 首先在网上搜安装包: baidu按关键字搜即可:mysql mac安…

多兴趣向量重构用户向量

Re4: Learning to Re-contrast, Re-attend, Re-construct for Multi-interest Recommendation 论文地址:https://arxiv.org/pdf/2208.08011.pdf 一般的多兴趣建模过程是对用户序列进行编码,抽取出用户的多个兴趣向量,然后利用这些用户兴趣向…

【Vue中使用Echarts】echarts初体验

文章目录一、echarts简介二、初次体验echarts1.下载2.在vue中引入echarts①全局引入(代码)② 局部引入一、echarts简介 在大数据盛行的今天,数据可视化变得越来越广泛。而在前端工作中,数据可视化用得最多的,可能就是…

Usaco Training 刷怪旅 第三层 第四题 :Combination Lock

一个六年级博主写文章不容易,给个关注呗 (点赞也行啊) 本蒟蒻的bilibili账号 注:这种题当你看不懂的时候是可以把题目复制去洛谷看中文版的 Farmer Johns cows keep escaping from his farm and causing mischief. To try and pre…