网络编程——基础知识

全文目录

  • 网络发展
  • 协议
    • OSI七层模型
    • TCP/IP五层(或四层)模型
  • 网络传输
  • 网络地址
    • IP地址
    • MAC地址
  • 网络通信的本质

网络发展

网络没有出来之前计算机都是相互独立的:

在这里插入图片描述

网络就是将独立的计算机连接在一起,局域网和广域网的区别只是范围上的大小:

局域网LAN: 计算机数量更多了,通过交换机和路由器连接在一起:

在这里插入图片描述

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

在这里插入图片描述

协议

就如同人想要进行有效沟通,我们首先要知道对方的语言规则,才能知道对方在说什么。计算机进行交流则是需要规定协议来进行交互的。

就像打电话:在上层,我们是直接沟通,但是在底层确实两台通信设备在通信协议下互相发送信号,并将接收到的信号转换为我们的语言。

在这里插入图片描述

在网络中,通信将会变得更加复杂。通常将复杂问题简单化,处理问题就会变得更简单。所以网络分为多层次,分层的好处就是便于封装

OSI七层模型

OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;

在这里插入图片描述

在这里插入图片描述

  • 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯

OSI七层模型只是一种设计方法,但是它既复杂又不实用,一般来说都是应用TCP/IP 四层模型。

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

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  • 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.

  • 数据链路层: 负责设备之间的数据帧的传送和识别.例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作.有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.

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

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

  • 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 我们的网络编程主要就是针对应用层.

在这里插入图片描述

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

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

参考资料: TCP/IP四层模型和OSI七层模型的概念

网络传输

网络传输流程:

在这里插入图片描述

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

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

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

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

数据封装的过程:

在这里插入图片描述

数据封装的过程:

在这里插入图片描述

网络地址

IP地址

IP地址是在IP协议中用来标识网络中不同主机的地址,有IPV4和IPV6两个版本。

对于IPv4来说, IP地址是一个4字节, 32位的整数,通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;

MAC地址

MAC地址用来识别数据链路层中相连的节点。

  • 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)

  • mac地址在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).

网络通信的本质

网络通信实际上是两个应用程序在进行通信,也就是说网络通信只是进程通信的一个手段。

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

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

相关文章

华为云云服务器云耀L实例评测 | 从零开始:华为云云服务器L实例使用教程

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

打造“共富果园” 广东乳源推动茶油全产业链高质量发展

新华网广州9月13日电(李庆招)金秋九月,瓜果飘香,油茶也将迎来采摘期。13日,一场以“中国健康油 茶油新势力”为主题的乳源茶油12221市场体系之产业大会暨供销对接会在广州举行。来自茶油行业的专家、企业家齐聚一堂&am…

高性能数据JS网格 Bryntum Grid 5.5.2 Crack

高性能数据网格 Bryntum Grid 是一个高性能的网络表格组件。它是用纯 JavaScript 构建的,并且可以轻松地与所有主要 JS 框架集成。 功能丰富 Bryntum Grid 具有您期望从专业网格组件获得的所有功能,包括: 很好的表现;很好的绩效 没有人喜欢缓…

Stable Diffusion 系统教程 | 强大的ControlNet 控制网

2023年的2月13日,一款名叫ControlNet的插件横空出世,AI绘画变得更加可控 ControlNet直译过来很简单,就叫做控制网,开发者是一名华裔,毕业于苏州大学,目前在斯坦福做读博士一年级,大佬大佬&…

Vivado XADC IP核 使用详解

本文介绍Vivado中XADC Wizard V3.3的使用方法。 XADC简介 XADC Wizard Basic Interface Options: 一共三种,分别是AXI4Lite、DRP、None。勾选后可在界面左侧看到相应通信接口情况。Startup Channel Selection Simultaneous Selection:同时监…

【C语言】指针的进阶(二)—— 回调函数的讲解以及qsort函数的使用方式

目录 1、函数指针数组 1.1、函数指针数组是什么? 1.2、函数指针数组的用途:转移表 2、扩展:指向函数指针的数组的指针 3、回调函数 3.1、回调函数介绍 3.2、回调函数的案例:qsort函数 3.2.1、回顾冒泡排序 3.2.1、什么是qso…

RFID插件,物联网技术新利器_三叠云

RFID 插件 路径 拓展 >> 插件 功能简介 新增「RFID」插件。RFID 插件使系统对资产管理、人员定位、进出库管理等自动化应用全面适配,极大拓展了三叠云系统的应用场景。 示例: RFID在表单中应用: RFID在移动端应用: 实时…

腾讯轻联:带你创造属于自己的AI小助手

陈老老老板🤴 🧙‍♂️本文专栏:生活(主要讲一下自己生活相关的内容)生活就像海洋,只有意志坚强的人,才能到达彼岸。 🧙‍♂️本文简述:参加腾讯全球数字生态大会,了解到腾讯轻联企业…

Java8中判断一个对象不为空存在一个类对象是哪个

Java8中判断一个对象不为空存在一个类对象是哪个? 在Java 8中,你可以使用java.util.Optional类来处理可能为空的对象。Optional类可以帮助你优雅地处理空值情况,而不需要显式地进行空值检查。 这是一个简单的Optional示例: imp…

java反序列化---URLDNS链

目录 一、前言 二、原理分析 三、代码实现 一、前言 URLDNS链相较于其他java反序列化链是比较简单的,只需要几步调用就能触发 所以学习java反序列化,最好从URLDNS链出发,初步了解如何跟进,以及反射获取类、方法等 使用这条链…

面试中常见的算法题和其python实现

在面试中,常见的算法题包括排序算法、查找算法、动态规划、贪心算法等。以下是一些常见算法题及其Python实现示例: 1. 快速排序(Quick Sort): 题目描述:给定一个数组,使用快速排序算法对数组进…

不负昭华,前程似锦,新一批研发效能认证证书颁发丨IDCF

亲爱的认证学员, 恭喜你成功获得由国家工业和信息化部教育与考试中心颁发的职业技术证书——《研发效能(DevOps)工程师国家职业技术认证》。你的努力和才华得到了官方的认可,这是你职业生涯中的一个重要的里程碑。 这个证书不仅代表着你的专业知识和技…

c语言练习61:malloc和free

malloc和free malloc C语⾔提供了⼀个动态内存开辟的函数: 1 void* malloc (size_t size); 这个函数向内存申请⼀块连续可⽤的空间,并返回指向这块空间的指针。 • 如果开辟成功,则返回⼀个指向开辟好空间的指针。 • 如果开辟失败&…

解决 Cannot read property ‘key‘ of undefined

目录 问题解决1解决2最终 问题 现场环境分页查询某些条件项查询时,分页接口获取成功但是数据不渲染,页面像是卡住了: 报错 Cannot read property key of undefined 解决1 有人说 使用的el-pagination在格式化代码的时候layout属性的参数会多加…

ACM MM 2023 | 基于点集和偏置的单阶段多人人体解析方法

本文为我们刚刚被ACM MM2023接收的工作“Single-Stage Multi-Human Parsing via Point Sets and Center-Based Offsets”的分享报告。 论文链接: https://arxiv.org/abs/2304.11356 01. 前言 EVOL创新团队与北京邮电大学共同提出多人人体解析方法SMP,利…

IM即时通讯系统[SpringBoot+Netty]——梳理(总)

文章目录 一、为什么要自研一套即时通讯系统1、实现一个即时通讯系统有哪些方式1.1、使用开源产品做二次开发或直接使用1.2、使用付费的云服务商1.3、自研 2、如何自研一套即时通讯系统2.1、早期即时通讯系统是如何实现2.2、一套即时通讯系统的基本组成2.3、当下的即时通讯系统…

华为云云耀云服务器L实例评测|cento7.9在线使用cloudShell下载rpm解压包安装mysql并开启远程访问

文章目录 ⭐前言⭐使用华为cloudShell连接远程服务器💖 进入华为云耀服务器控制台💖 选择cloudShell ⭐安装mysql压缩包💖 wget下载💖 tar解压💖 安装步骤💖 初始化数据库💖 修改密码&#x1f4…

一周技术杂谈2023_09_11--2023_09_15

平铺直述! 1、linux 64位系统可以运行32位linux程序。需要在linux64位系统新增一些设置: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libc6:i386 libncurses5:i386 libstdc6:i386 其他已验证:32位用到的系统库无需替换…

IDEA使用技巧

1. 打开或导入别人的项目,找不到运行和调度的方法,如图所示(原因修改IDEA Mavem的执行路径) IDEA Maven配置的设定如下图所示: 程序启动类不能执行和调试如图所示 解决方案如下: 修改IDEA的Maven的路径,…