网络初识部分

news2024/11/15 17:48:15

 1.网络

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

局域网时代:通过路由器把几个电脑连接起来。

广域网时代:把更多的局域网连接到一起,构成的网络更庞大,可能已经覆盖了一个城市/国家/全世界。

2.什么是路由器?

路由器就是一个用来连接其他设备的中转站。

一般家用的路由器有5个接口(1个WAN和4个LAN),WAN是用来连接上级路由器的,LAN是用来连接电脑(实现多台电脑之间的通信,一个LAN口对应一台电脑)。

ps:一般的家用电脑只有一个网口。

3.什么是交换机?

是用来扩展路由器的端口。

eg:

 4.IP地址

是用来描述一台设备在网络中的地址,使用一个32位(4字节)数字表示(一般来说IP地址是用4个0~255的十进制数字并且使用3个点相隔表示=> 点分十进制)

5.端口

区别一个主机上不同的应用程序,一个端口对应一个应用程序,但是一个应用程序可能会绑定多个端口(是一个2字节的整数)。

1~1023范围内的端口号有特定的用途(0不使用),如果是要自定义端口建议使用1024~65535内的。

在实际通信过程中往往IP地址和端口号是成对出现的。

6.协议

是一种约定,约定通信双方按照什么样的方式来进行通信(传递数据)。

网络上本质是通过光/电信号来进行传输的。

7.协议分层

按照协议的定位/作用进行分类,并且约定了不同层次之间的“调用关系”。

(1)为什么需要协议分层?

平时写代码的时候,写的多了,往往需要把代码分成多个部分(拆分之后,更容易理解,是基于人的基本认知规律)。

如果一个大的协议来解决所有的问题,此时这个协议就非常大和复杂,不太容易让人理解。

相比之下,可以将这个大的协议给拆分成多个协议,让每个小的协议只是专注于做一小块事情,这样一来,代码就更容易理解。但是由于网络通信是很复杂的,往往一个协议会被拆分成很多很多的小协议,此时就需要对这些协议进行分层。

(2)好处:

a.协议进行分层之后,上层和下层协议彼此都进行了封装,使用上层协议不必过多关注下层,使用下层协议不必过多关注上层协议。

b.每一层协议可以根据需要灵活进行替换。

8.TCP/IP五层网络模型(还有个OSI七层网络模型)

(1)解释:

a.物理层:描述网络通信的硬件设备。

b.数据链路层:两个相邻节点之间的数据传输情况。

c.网络层:进行路线规划。

d.传输层:关注起点和终点。

e.应用层:应用程序如何使用这个数据(程序员最需关注的一点)。

(2)作用:

a.应用层:就是对应到应用程序(程序员手动实现的代码)。

b.传输层和网络层:也称操作系统。

c.数据链路层和物理层:驱动程序+硬件。

9.封装和分用

描述了网络通信过程中,基本的数据传输流程。

(1)封装:

是发送方进行的操作,目的在于给数据添加更多的“辅助信息”。从上层协议到下层协议,是一个层层对数据报进行拼接报头的过程。

eg:现在要A要通过QQ把一个消息传递给B

a.应用层

QQ应用程序,QQ就会把A输入的信息(hello)给打包成一个数据报(格式是啥并不知道,得QQ得程序员才知道),现在假设格式为:

用四个字段来进行分割,这里就构成了一个简单的应用层数据报(采用字符串拼接的形式),上述描述的规则,就是此处约定的应用层协议,但是具体用几个字段,字段的顺序如何,字段之间用什么分割,这些都是可以根据需要灵活更改。

b.传输层(使用UDP)

在这里就会对刚才的数据报进行打包,变成传输层的数据报,这里打包的过程还是字符串拼接(在刚才的基础上拼接上传输层报文)。传输层打包过后,会进一步转交给网络层。

c.网络层

这里在刚才的基础上拼接上IP报头(一个数据报包含报头和载荷),进一步交给数据链路层。IP报头中包含源IP和目的IP

d.数据链路层

这里在刚才基础上拼接上以太网报头和报尾。以太网报头中包含重要的信息:源mac地址和目的mac地址(物理地址,也是用来描述设备在网络上的地址)

e.物理层

把上述数据转换成0/1的二进制数据,通过光/电信号进行传输。

(2)分用:

当上述封装过程完成后,数据报发送出去之后,就会经过一系列的交换机和路由器的转发,当数据报到达接收方之后,就要对数据报进行分用。

a.物理层

拿到光/电信号=>二进制数据=>将得到的数据交给数据链路层(以太网数据报)

b.数据链路层

通过以太网协议对数据报进行解析,这个解析过程就会解析出报头,报尾和中间的载荷,然后把载荷部分进一步交给网络层处理。

c.网路层

通过IP协议对数据报进行解析,会解析出报头和载荷,进一步交给上层(传输层)。

d.传输层

通过UDP协议对数据报进行解析,会解析出报头和载荷,进一步交给上层。

e.应用层

此时的数据就是最原始的数据,就需根据端口号把数据交给QQ这个程序,然后QQ进一步解析这里的数据,这个解析过程也就是按照前面程序员自定义的协议来进行的。

10.传输层协议

通过网络可以让两个主机之间进行通信=>基于这样的通信来完成一定的功能。

进行网络编程的时候,需要操作系统提供一组api,通过这些api(可以认为是传输层与网络层之间的交互的路径,也就是socket api,通过该api可以完成不同主机之间,不同系统之间的通信)才能完成编程。

TCP与UDP这两种协议的工作原理差异很大,导致这两种协议进行网络编程的时候,存在一定的差别,故系统分别提供了两套api。

(1)区别:

a.TCP是有连接的,UDP是无连接的。(连接是抽象的描述)

此处连接的本质是建立连接的双方各自保存对方的信息。

两台计算机建立连接就是保存了对方的关键信息。

故而要想使用TCP进行通信,则通信双方必须建立连接,做完之后才能进行通信。

使用UDP通信,则不需要建立连接就可以进行通信。

eg:这里的建立连接就好比结婚证,一式两份,夫妻双方一人一份,内容一样(记录着双方的信息),妻子一看就知道谁是她的丈夫,丈夫也一样。

b.TCP是可靠传输的,UDP是不可靠传输的

可靠传输:A->B发送信息,消息如果没有到达B这一方,A能感受到,进一步就会采取一定的措施来进行补救(超时重传之类的)

不可靠传输:A->B发送信息,A只管发送信息,不管B有没有收到(A感知不到B的状态)

在网络通信中,A->B发送一个信息,是不可能100%到达的(网络环境很复杂),要想让数据尽可能被接收到,那应该都要采用TCP,为啥还要有UDP呢?

可靠传输意味着需要付出一定的代价(机制更复杂,传输速率会降低)

c.TCP是面向字节流,UDP是面向数据报的

此处的字节流与文件操作的字节流是一个意思,TCP和文件操作是相同的,以字节为单位来传输数据,UDP则是按照数据报为单位来进行传输的。

d.TCP和UDP是全双工的

一个信道允许双向通信,就是全双工的;只允许单向通信,就是半双工的。也就是在代码中使用一个socket对象就可以进行发送/接收数据。

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

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

相关文章

关于武汉芯景科技有限公司的多协议收发芯片XJ526(第二篇RS422模式)开发指南(兼容SP526)

一、设置芯片为RS422模式 SP526 包含高度集成的串行收发器。SP526 提供 RS-232 (V.28)、RS-423 (V.10)、RS-422 (V.11) 和 RS-485 的硬件接口模式。接口模式选择通过两个控制引脚D0、D1完成。 我们将D0接…

【简历】25届青岛某一本JAVA简历:中厂不要强调算法,面试官听不懂

注:为保证用户信息安全,姓名和学校等信息已经进行同层次变更,内容部分细节也进行了部分隐藏 简历说明 今天我们要看的是一位来自25届青岛某一本硕士同学的Java简历。 依旧是先判断自己要投什么层次的厂,也就是我们校招第一法则…

Netty04-优化与源码

四. 优化与源码 1. 优化 1.1 扩展序列化算法 序列化,反序列化主要用在消息正文的转换上 序列化时,需要将 Java 对象变为要传输的数据(可以是 byte[],或 json 等,最终都需要变成 byte[])反序列化时&…

SQL进阶技巧:如何按任意时段分析时间区间问题? | 区间重叠问题应用

目录 0 场景描述 1 数据准备 2 问题分析 方法1:分情况讨论,找出重叠区间 方法2:暴力美学法。按区间展开成日期明细表 3 小结 0 场景描述 现有用户还款计划表 user_repayment ,该表内的一条数据,表示用户在指定日期区间内 [date_start, date_end] ,每天还款 repay…

成为顶尖1%前端开发者的10项必备技能

从你可能已经熟悉的前端基础开始;然后进入关键技能,如使用浏览器开发工具和利用AI快速编码。包括99%的开发者忽视的宝贵通用技能。 从你可能已经熟悉的前端基础开始;然后进入关键技能,如使用浏览器开发工具和利用AI快速编码。 包…

【youcans论文精读】KAN 2.0:面向科学的KAN网络

欢迎关注『youcans论文精读』系列 本专栏内容和资源同步到 GitHub/youcans 【youcans论文精读】KAN 2.0:面向科学的KAN网络 1. KAN2.0 简介1.1 KAN 2.0 论文发布1.2 KAN2.0 的新特点:1.3 KAN 回顾 2. MultiKAN:用乘法增强 KAN 网络的表达能力…

足底筋膜炎专用药

足底筋膜炎专用药“古顺*敷堂筋膜*贴”通过其独特的药效和用法,能够针对足底筋膜炎进行有效治疗,缓解患者疼痛和不适感,促进炎症消退和肌肉恢复。长时间站立、行走或进行高强度的跑步、跳跃等活动,会使足底筋膜受到持续的牵拉和压…

MEMS 传感器 4GDTU 说明书

本系统经过精心设计,可无缝对接三石峰的振动管理系统平台。通过该平台,用户可直观查看传感器数据、分析振动趋势、预警潜在故障,并依据分析结果制定针对性的维护策略,从而有效提升设备运行的可靠性与安全性。 本产品广泛应用于工…

日常开发规范

日常开发规范 一.git提交规范 开发代码之前,需有管理员通过系统新建功能分支,如feature/one, 此时开发人员方可拉取feature/one到本地进行开发, 开发人员在本地环境测试稳定后,方可由管理员通过系统发布到开发环境…

宠物空气净化器不是智商税!希喂、352宠物空气净化器真实测评

前端时间我出差了,把小猫寄养在朋友家里,回来后去接它们,结果到朋友家差点没认出来...碰上换毛季猫咪疯狂脱毛,朋友没有及时清理,就全堆在身上了,简直是胖若两猫。到家后,我连忙用梳子把它身上的…

Wi-Fi发射功率简介

目录 一、概念 1.1 射频发射与组合功率 1.2 天线增益 1.3 信道影响 二、常用单位及转换 2.1 dB 与 dBm 2.2 dBi 与 dBd 三、发射功率 3.1 发射功率调节 3.1.1 TPC 3.2 国家码与信道功率 一、概念 ① 和 ⑦ 表示射频发送端处的功率,单位是 dBm。其中 ① 表示AP端的…

《通义千问AI落地—下》:WebSocket详解

一、前言 文本源自 微博客 且已获授权,请尊重版权。 《通义千问AI落地——下篇》如约而至。Websocket在这一类引用中,起到前后端通信的作用。因此,本文将介绍websocket在这类应用场景下的配置、使用、注意事项以及ws连接升级为wss连接等;如下图,本站已经使用了wss连接…

ssrf,csrf漏洞复现

印象深刻的csrf利用: 在phpwind下:漏洞点(但是都是在后台的漏洞) 代码追: task到unserialize,然后重写PwDelayRun的构造函数,给callback和args赋值,然后当程序执行结束&#xff0c…

请问lammps怎么做两种金属连接的原子浓度分布图??

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

未知单播泛洪原因

未知单播:交换机是收到数据包后,读取数据包的目的MAC,并查找自已的MAC表,查找目的MAC对应的端口,从而判断从哪个口端口转发出此数据包,若MAC表里没有此目的MAC,那对于此交换机来说就是未知单播&…

Day46 | 101孤岛的总面积 102沉没孤岛 103水流问题 104建造最大岛屿

语言 Java 101.孤岛的总面积 101. 孤岛的总面积 题目 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿指的是由水平或垂直方向上相邻的陆地单元格组成的区域,且完全被水域单元格包围。孤岛是那些…

植物大战僵尸杂交版v2.3.7最新版本(附下载链接)

新版本更新啦! B站游戏作者潜艇伟伟迷于8月19日更新了植物大战僵尸杂交版2.3.7版本!!! v2.3.7版本更新内容: 游戏分辨率扩充,UI界面翻新,卡槽数量提升至16个,修复大量BUG&#xff0c…

网络协议与IO模型

1、说一说网络模型(OSI、TCP/IP模型) OSI采用了分层的结构化技术,共分七层, 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 。 Open System Interconnect 简称OSI,是国际标准化组织(ISO)和国际电报电…

【Windows脚本】如何测试远程主机某个端口是否开放?

概要 如何测试远程主机某个端口是否开放? 1、PowerShell脚本 使用Test-NetConnection 指令,命令如下。 Test-NetConnection RemoteIP -Port 80 -InformationLevel Detailed 2、tcping工具 下载地址:https://download.csdn.net/download/…

工具(1)查看YUV 图

#灵感# 没啥灵感,就是脑子越来越健忘,就啥都记一笔。 工具名字:YUVPlayer 操作流程: 1、打开YUVPlayer, 把YUV文件拖进来。 2、如果拖进来失败,需要先设置属性, 尤其是YUV类型。 3、成功打开图片后,如…