网络编程1--初识网络

1.1 网络

单机时代 ----------> 局域网时代 ----------> 广域网时代 -------------> 移动互联网时代

1、单机时代:即主机之间无法通信,只能访问自己电脑上的内容(只能玩一些单机游戏,扫雷,蜘蛛纸牌.....)

2、局域网时代:把几个主机通过网线(路由器)连接在一起,使其处于同一个网络下,电脑之间可以相互访问(可以玩一些小范围的网络游戏,红警,cs 1.6......)

3、广域网时代:把更多更多的局域网连在一起,使其组成一个更大的网络,可能是一个城市、一个国家或者全世界(可以和全球的人进行对战,英雄联盟,王者荣耀,csgo.......)

4、移动互联网时代:手机盛行,3G、4G、5G......(上网更加方便了)

1.2 IP地址

IP地址描述了一个设备在网络上的地址,使用32位(4字节)表示,一般来说,会把IP地址表示为4个0~255的之间数字,并用.分割,即点分十进制。

1.3 端口号

端口号用来区分一个主机上不同的应用程序。

IP地址和端口号通常成对出现,IP地址表示要与哪一台主机通信,找到主机之后,端口号用来表示与该主机的哪一个应用程序通信。

端口号用2个字节表示(0~65535),0一般不适用,1~1023这个范围的端口号,系统留作特殊用途,我们写的程序不应该占用这些端口号;注意:一个端口号只能被一个程序绑定,但是一个程序可以绑定多个端口号!!!

1.4 协议

1.4.1 初识协议

协议本身就是一种约定,约定了通信双方以什么样的通信方式来交换数据。

五元组规定了“谁”和“谁”通过什么样的“方式”进行通信。(网络通信必不可少!)

介绍具体的协议之前我们先聊一下协议分层:什么是协议分层呢?就是把相同或相似功能的协议放到同一层中,每一层只专注做自己擅长的事情,而不关注其他层的内容,并且约定了不同层之间的调用关系,上层调用下层提供的功能,下层为上层提供支持。协议分层还有一个好处是解耦合,每一层只要不变更上下层之间的接口(调用关系),无论它们内部的构造或者方法如何变更,都不会影响其它层的使用。

分层就类似于这样,各自做好自己的本职工作,做好了逐层向上汇报即可。

协议分层的好处:

1.4.2 具体协议介绍

协议常见的说法有两种:OSI七层网络模型(仅仅出现在教科书中);TCP/IP五层网络模型(生活中用到的都是这种)。

越往下,越接近硬件,越往上,越接近用户。

七层模型与五层模型的对比:

1、物理层:关注的是硬件的具体实现细节,例如电线的具体电气特性、物理特性等等,类似于铁路系统中公路、铁路的规模等等。

2、数据链路层:关注相邻结点的数据传输情况。

3、网络层:路径规划

4、传输层:关注起点和终点

举个例子:

我们从网络上买件衣服,商家只关注他的位置和我的位置,即快递的起点和终点(传输层),而不关注具体怎么送给我,只需要交给快递小哥就可以;快递小哥就需要考虑我该通过什么样的路径送这个包裹呢?怎么样更快呢?怎么样风险最小呢?武汉---->北京?武汉------>河南------->北京?还是武汉------->山西--------->北京呢?(网络层);考虑完路线之后,就要考虑相邻城市之间该怎么运输了,飞机?火车?汽车?电驴?自行车?步行?(数据链路层);顾客收到这个快递之后只需要考虑怎么使用它即可(应用层)。

1.4.3 经典的笔试题

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

对于一台路由器,它实现了从网络层到物理层,即TCP/IP五层协议的下三层

对于一台交换机,它实现了从数据链路层到物理层,即TCP/IP五层协议的下两层

对于一台集线器,它只实现了物理层

1.5 封装和分用

举个例子,我们通过QQ发送一个hello给好友,过程如下:

1、应用层:

在应用层我们可能会把要发送的数据封装成这样,然后发送给传输层。

2、传输层:

传输层收到数据之后,会将这段数据拼接上自己的报头,进行封装的过程,也就是给数据添加更多“辅助信息”的过程。

UDP/TCP报头中最主要的内容是源端口和目的端口号,封装好之后会接着发送给下一层,即网络层。

3、网络层:

IP报头中最主要的内容是源IP和目的IP,封装好之后会接着发送给数据链路层。

4、数据链路层:

数据链路层不仅会封装报头,同时还会封装一个尾部,数据链路层报头中最主要的内容是源mac地址和目的mac地址,封装完成后发送给物理层。

5、物理层:

物理层会把上面的数据变成用0、1表示的二进制数据,通过光信号/电信号进行传输。

分用是封装的逆过程,即一层一层的将刚才封装的报头全部拆掉,最终将简单的信息发到对方的应用层上。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW与Python的比较及联合开发

LabVIEW和Python在工业自动化和数据处理领域各具优势,联合开发可以充分发挥两者的优点。本文将从语言特性、开发效率、应用场景等多个角度进行比较,并详细介绍如何实现LabVIEW与Python的联合开发。 语言特性 LabVIEW 图形化编程:LabVIEW使用…

鸿蒙轻内核A核源码分析系列五 虚实映射(3)虚拟物理内存映射

3、虚实映射函数LOS_ArchMmuMap 从上文可知,用户程序加载启动时,会将代码段、数据段映射进虚拟内存空间,此时并没有物理页做实际的映射;程序执行时,如下图(图片来自OpenHarmony docs开源站点)粗…

Java到AI大模型,我为什么选择的后者

我为什么从Java转到AI大模型 在编程的海洋里,Java一直是我信赖的“小船”,载着我航行在代码的世界中。然而,随着行业的不断发展和变化,我开始感受到了一丝的迷茫和不安。我开始担心,随着技术的不断更新,Ja…

支付平台界面感知评估

目标: 了解本地用户在本地语言下对产品用户界面 (UI) 的感受和体验: 界面的目的是否对本地用户清晰,并且是否符合本地文化和国家标准;界面中的文本是否正确显示,是否存在语法、拼写或其他错误,包括品牌一致…

Vue21-列表排序

一、需求 二、解决方式 <body><div id"root"><h2>人员列表</h2><input type"text" placeholder"请输入" v-model"keyword"><button click"sortType 1">年龄升序</button><b…

[AI资讯·0612] AI测试高考物理题,最高准确率100%,OpenAI与苹果合作,将ChatGPT融入系统中,大模型在物理领域应用潜力显现

AI资讯 国产AI大战高考物理&#xff0c;第1题全对&#xff0c;第2题开始放飞终于放大招了&#xff0c;2024WWDC&#xff0c;苹果开启AI反击战苹果一夜重塑iPhone&#xff01;GPT-4o加持Siri&#xff0c;AI深入所有APPOpenAI确认苹果集成ChatGPT 还任命了两位新高管GPT-4搞不定…

中文藏文翻译怎么在线翻译?通过这些方法

中文藏文翻译怎么在线翻译&#xff1f;随着全球化的加速和跨文化交流的日益频繁&#xff0c;中文与藏文之间的翻译需求逐渐增加。为了满足这一需求&#xff0c;各种在线翻译工具和方法应运而生。下面&#xff0c;本文将详细介绍三种中文藏文在线翻译的方法&#xff0c;帮助用户…

yolov3 详解

文章目录 1、yolov3原理2、损失函数3、yolov3改进4、使用opencv实现yolov35、卷积神经网络工作原理 1、yolov3原理 参考视频 darknet53&#xff1a;52个卷积层和1个全联接层 输入图像为416416 1313 -》 下采样32倍 2626 -》 下采样16倍 5252 -》 下采样8倍 由标注框中心点落在…

图形学初识--定义摄像机类(实战)

文章目录 前言正文定义摄像机的操作方式键盘操作鼠标操作 定义摄像机类核心数据视图矩阵回顾&#xff1a;模拟摄像机的移动模拟摄像机的旋转 结尾&#xff1a;喜欢的小伙伴点点关注赞哦! 前言 前面一些章节讲解了图形学的比较原理性的内容&#xff0c;这一章节咱就实战一下&am…

Vue2后台管理:项目开发全流程(一)

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:Vue2后台管理&#xff1a;项目开发全流程(一) 目录 Vue项目开发 项目架构搭建 1、创建项目 2、…

SolidWorks 2016 SP5安装教程

软件介绍 Solidworks软件功能强大&#xff0c;组件繁多。 Solidworks有功能强大、易学易用和技术创新三大特点&#xff0c;这使得SolidWorks 成为领先的、主流的三维CAD解决方案。 SolidWorks 能够提供不同的设计方案、减少设计过程中的错误以及提高产品质量。SolidWorks 不仅…

开发移动端常见的问题:VW适配问题,基于 postcss 插件 实现项目vw适配

当你开发移动端的时候有一个问题是避免不了的&#xff0c;那就是当屏幕大小无论怎么变化时&#xff0c;内部尺寸也要随之发生改变&#xff0c;也就是适配问题。这里我们讲的是最新的VW适配&#xff0c;也就是用vw作为单位&#xff0c;100vw是整个页面的大小。而在开发的设计图中…

Mysql学习(九)——存储引擎

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 七、存储引擎7.1 MySQL体系结构7.2 存储引擎简介7.3 存储引擎特点7.4 存储引擎选择7.5 总结 七、存储引擎 7.1 MySQL体系结构 连接层&#xff1a;最上层是一些客户…

SAP SO定价上面2个ZPR1 其中一个不活跃

查看价格表 取定价的时候排除不活动的 即可

永磁同步电机滞环电流控制(PI双闭环)matlab仿真模型

微♥“电击小子程高兴的MATLAB小屋”获取模型 1.滞环电流控制的原理 将给定的电流信号与反馈的电流信号进行比较&#xff0c;然后控制它俩之间的差值稳定在一个滞环范围内&#xff0c;若超出范围&#xff0c;则进行相应的调节操作。 操作如下叙述&#xff1a;假设以三相中的A相…

DockerCompose+Jenkins+Pipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)入门

场景 DockerCompose中部署Jenkins&#xff08;Docker Desktop在windows上数据卷映射&#xff09;&#xff1a; DockerCompose中部署Jenkins&#xff08;Docker Desktop在windows上数据卷映射&#xff09;-CSDN博客 DockerJenkinsGiteeMaven项目配置jdk、maven、gitee等拉取代…

论文图片颜色提取

论文绘图的时候有些颜色不知道怎么选取&#xff0c;参考其他论文&#xff0c;将其他论文中的颜色提取下来&#xff0c;用取色器识别出来&#xff0c;记录如下&#xff1a; 颜色代码&#xff1a;#BEAED4 190,174,212 颜色代码&#xff1a;#C4CBCB 196,203,203 颜色代码&am…

51单片机实验05 -点阵

目录 一&#xff0c;熟悉矩阵led小灯 1&#xff0c;点亮矩阵的一只led 2&#xff0c;点亮矩阵的一排led 3&#xff0c;点亮矩阵的全部led static 关键字 unsigned 关键字 4&#xff0c;点阵的静态显示 2&#xff09;心形矩阵显示代码 3&#xff09;效果 二&#xff0c;课…

6.nginx负载均衡

说明 增加服务器的数量,将请求分发到各个服务器上。 将原来请求集中到单个服务器上的情况改为将请求分发到多个服务器上。 案例 浏览器请求地址http://ip/edu/a.html, 负载均衡的效果,平分到8080和8081两台服务上中。 准备工作 tomcat8080配置 tomcat8081配置 直接通过…

----几种接口的使用---

Compareable接口 对于给数组中的变量成员排序&#xff0c;我们能想到用sort&#xff0c;根据成员之间的大小进行排序&#xff0c;那么如果数组中的成员是对象的话&#xff0c;单单只是用sort去排序肯定是步成功的&#xff0c;因为并不知道要根据什么去排序&#xff0c; 这时要…