JAVAEE初阶相关内容第十四弹--网络初识

news2025/1/8 17:09:31

写在前:

这一部分开启网络部分的相关知识,这一弹内容初始网络将主要进行网络相关知识的简单介绍,以及着重介绍协议、协议分层、OSI七层模型、TCP/IP五层模型、封装和分用。

需要认识协议,并知道协议的效果是什么;知道为什么分层,分层的好处?每一层都是干什么的?以及层与层之间是如何进行配合工作的。

目录

写在前:

1.网络发展史

1.1独立模式

1.2网络互连

1.3局域网LAN

1.3.1局域网组建网络的方式:

(1)基于网线直连

(2)基于集线器组建

(3)基于交换机组建

(4)基于交换机和路由器组建

1.3.2知识拓展--光纤

1.4广域网WAN

2.网络通信基础

2.1IP地址

2.1.1概念 

2.1.2格式

2.1.3特殊IP

2.2端口号

2.2.1概念

2.2.2格式

2.2.3注意事项

2.2.4了解内容

2.3认识协议

2.3.1概念

2.3.2五元组

(1)源IP

(2)源端口号

(3)目的IP

(4)目的端口号

(5)协议号

2.3.3协议分层

(1)协议分层的好处

(2)OSI七层模型

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

2.4封装和分用

2.5内容拓展

(1)数据包

(2)数据包的组成

(3)载荷

(4)载荷的传输过程


1.网络发展史

网络在国外起步比较早,在国内是2000年左右开始起步的。2000年左右,网络开始兴起,越来越多联网游戏出现,这里就有局域网联网、广域网联网。【局域和广域没有一个明确的界限】

2007年,乔布斯发布苹果一代,智能手机登上历史舞台,标志着网络时代,开始往“移动互联网进军”。2008年安卓登场。2011年安卓崛起,2014年左右,移动互联网发展最迅速的一年,资本的风口疯狂涌入这个赛道,掀起全民创业的高潮。

1.1独立模式

计算机之前是相互独立的,每个终端各自持有客户数据。

1.2网络互连

将多台计算机连接在一起,完成数据共享。

数据共享的本质是网络数据传输,即计算机之间通过网络来传输数据,也称网络通信

1.3局域网LAN

局域网(Local Area NetWork),简称LAN。Local即标识了局域网是本地,局部组建的一种私有网络。

局域网内的主机之间能方便进行通信,又称内网;局域网和局域网之间在没有连接的情况下是不能进行通信的。

1.3.1局域网组建网络的方式:

(1)基于网线直连
(2)基于集线器组建

比较古老的东西,现在比较少见(一根网线岔出来两根)

(3)基于交换机组建

组建局域网,不能跨局域网。【交换机有家用的也有企业用的】

(4)基于交换机和路由器组建

WiFi的本质就是一个无线路由器,路由器的本质上就是把两个局域网给连起来。

现在带有路由功能(三层转发)交换机也是很多很常见的,交换机哥路由器之间的界限越来越模糊。

1.3.2知识拓展--光纤

传输信号的介质。

网络通信信号传递:

电信号(网线)、光信号(光纤-玻璃丝、电磁波)

对于电信号,可以使用低电平表示1,高电平表示0;

对于光信号,可以使用高频光表示1,低频光表示0;

1.4广域网WAN

广域网Wide Area NetWork 简称WAN

通过路由器,将多个局域网连起来,在物理上组成很大范围的网络,就形成广域网,广域网内部的局域网都属于其子网。

2.网络通信基础

网络互联的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机之间的不同进程间基于网络传输数据。

2.1IP地址

2.1.1概念 

IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单的说,IP地址用于定位主机的网络地址。类似于我们发快递一样,需要知道对方的收货地址,快递员才能将包裹送到目的地。

2.1.2格式

32位二进制数 “点分十进制”。

2.1.3特殊IP

环回IP:用于本机环回(loop back)测试,通常是127.0.0.1

2.2端口号

标识一个具体的应用程序。

2.2.1概念

端口号可以标识主机中发送数据、接收数据的进程。简单说,端口号用于定位主机中的进程。

2.2.2格式

端口号是0-65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。

2.2.3注意事项

两个不同的进程,不能绑定同一个端口号,但是一个进程可以绑定多个端口号。

2.2.4了解内容

一个进程启动之后,系统会随机分配一个端口(启动端口)

程序代码中,进行网络编程时,需要绑定端口号(收发数据的端口)来发送、接收数据。

此时我们提出一个问题:有了IP和端口号后,可以定位到网络中唯一的一个进程,但是存在问题,网络是基于二进制0/1数据来传输,如何告诉对方发送的数据是什么样子的?

网络通信传输的数据类型也是很多种的,同一个数据类型,格式也可能不同,如何识别?

基于网络数据传输,需要使用协议来规定双方的数据格式。

2.3认识协议

2.3.1概念

协议,网络协议的简称,网络协议是网络通信(及网络数据传输)经过所有的网络设备都必须共同遵从的一组约定、规则。如何建立、怎么识别。只有遵循这个约定才能实现计算机之间的相互交流。

协议(protocol)

最终体现为在网络上传输的数据包格式。

2.3.2五元组

(1)源IP

标识源主机。

(2)源端口号

标识源主机中该次通信发送的数据进程。

(3)目的IP

标识目的主机。

(4)目的端口号

标识目的主机中该次通信接收的数据进程。

(5)协议号

标识发送进程和接收进程双方约定的数据格式。

2.3.3协议分层

网络通信是一个比较复杂的事情,需求场景复杂,实现的功能也复杂,如果这个协议复杂,学习成本、使用成本、理解成本、维护成本都非常高。因此,实际采用的做法,都是针对这个复杂的大协议,拆分成若干小的协议。每个协议负责一部分功能。此时就会发现,某些协议之间起到的功能和作用是类似的。就针对这些小的协议继续进行“分类”(分层),这就好比代码拆分为很多类,有些类功能差不多,就可以放到同一个包里。

(1)协议分层的好处

降低了学习和维护的成本(封装)。

灵活的针对这里的某一层协议进行替换。

当前互联网世界,协议分层有两种风格

(2)OSI七层模型

教科书上的,实际上是没有的

物理层 、数据链路层、网络层、传输层、会话层、表示层、应用层。

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

五层或四层是针对的包不包含物理层来说的。

是OSI简化的实现方式。

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

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

TCP/IP五层协议
层级名称主要负责内容协议举例备注
应用层负责应用程序间沟通如简单的电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。网络编程主要针对的就是应用层。应用程序,用户怎样进行使用。应用程序(程序员自己写的代码)
传输层负责两台主机之间的数据传输如传输控制协议(TCP),能够确保数据可靠的从源主机发送到目的主机。类比于快递公司的送货,在网上买衣服需要填写收货人地址、姓名;卖家与买家均不需要关心快递传输的过程,只关心起点和终点。操作系统
网络层负责地址管理和路由选择例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的路线(路由)。路由器(Router)工作在网络层。

路径规划:走那条路划算。

例如快递从上海发往北京选择卡车运输,这时就需要考虑具体从哪条路走,这就是网络层的作用。

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

相邻的两个节点之间具体进行怎么传输。例如将一个快递从上海运到哈尔滨。可以分为上海到北京再到哈尔滨。
第一段上海到北京选择卡车运输。

第二段北京到哈尔滨选择飞机运输。

这里运输方式的选择就是数据链路层的作用。

设备驱动程序与网络接口。(驱动程序和硬件设备关联,每个硬件的厂商会提供对应的驱动软件,操作系统内核通过驱动程序来控制硬件)
物理层负责光/电信号的传递方式现在的以太网通用的网线(双绞线)、早期以太网采用的同轴电缆(现在主要用于有线电视)、现在的WiFi,无线网使用的电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率,传输距离,抗干扰性。集线器(Hub)工作在物理层。

约定了网络通信中基础的硬件设备是啥,类比于现实生活中的修路。

通信使用的网线、网口设备都是相同规格的。

以上层级越往下越接近硬件设备,越往上越接近用户。上层协议调用下级协议,下层协议给上层协议提供服务。

2.4封装和分用

不同的协议对数据包有不同的称谓

不同协议层对数据包的不同称谓
传输层segment
网络层数据报datagram
数据链路层frame

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

首部信息中保护你一些类似于首部有多长,载荷(payload)有多长,上层协议时什么等信息。

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

2.5内容拓展

(1)数据包

什么是数据包?数据包是计算机网络中传输的基本单位,它是由网络层和传输层协议定义的一组二进制数据。每个数据包都包含了发送方和接收方之间的信息,例如源地址、目标地址、控制信息以及载荷等。

(2)数据包的组成

一个标准的数据包通常由以下几个部分组成:

a.首部:首部是指在数据包最前面的一段二进制数据,它通常用于存储控制信息,例如源地址、目标地址以及其他与传输相关的参数。

b.载荷:载荷是指在数据包中实际要传输的信息,例如文本、图片、音频等等。

c.尾部:尾部是指在数据包最后面的一段二进制数据,它通常用于校验和错误检测等操作。

d.标志位:标志位用于标记当前数据包是否为最后一个分片或者是否需要特殊处理。

e.序号:序号用于保证接收方能够正确地按照顺序接收所有分片,并且不会重复接收。

f.确认号:确认号用于告诉发送方接收方已经成功接收了哪些分片,并且可以继续发送下一个分片。

g.时间戳:时间戳用于记录当前数据包被发送的时间,以便后续的分析和调试。

h.其他:除了以上几个部分之外,数据包还可能包含其他一些与传输相关的信息,例如优先级、负载均衡等等。

(3)载荷

载荷是指在一个通信协议中实际要传输的信息。在计算机网络中,载荷通常被封装在一个或多个数据包中,并通过网络进行传输。

(4)载荷的传输过程

当一个计算机向另一个计算机发送载荷时,它会将载荷封装在一个或多个数据包中,并将每个数据包按照一定的顺序发送出去。接收方则会按照相同的顺序接收所有分片,并在接收完所有分片之后将它们重新组合成原始载荷。

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

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

相关文章

利用N点复数序列求2个N点实数序列的快速傅里叶变换

一、方法简介 通过一个点复数序列求出两个点实数序列的离散傅里叶变换,进一步提升快速傅里叶变换的效率。 二、方法详解 和是实数序列,且长度都为,定义复数序列: , 则序列和可表示为: 的离散傅…

LoRa与ZigBee有什么区别?

1、LoRa技术简介: 物联网应用中的无线技术有多种,可组成局域网或广域网。组成局域网的无线技术主要有2.4GHz的WiFi,蓝牙、Zigbee等,组成广域网的无线技术主要有2G/3G/4G等。这些无线技术,优缺点非常明显,可…

酷开系统 | 酷开科技让你放肆嗨唱,聆听内心最真实的声音

在这个喧嚣的城市里,每个人都像是一座孤岛,漂浮在茫茫人海之中,我们总是忙于奔波在各种琐事之间,渐渐忘记了内心深处的声音,我们压抑自己的情感,害怕被误解、被批评,然而真正的我们,…

利用FPGA和CPLD数字逻辑实现模数转换器

数字系统的嵌入式工程师熟悉如何通过使用FPGA和CPLD在其印刷电路板上将各种处理器,存储器和标准功能组件粘合在一起来实现其数字设计的“剩余”。除了这些数字功能之外,FPGA和CPLD还可以使用LVDS输入,简单的电阻电容器(RC&#xf…

BricsCAD v24.1.05(CAD建模软件)

BricsCAD是一款强大的CAD软件,可以帮助用户进行二维和三维图形设计和建模。BricsCAD支持多种CAD格式,包括DWG、DXF、DGN和STL等,并且可以与AutoCAD兼容。BricsCAD还提供了多种工具和功能,可以让用户进行快速、精确的设计和建模。 …

理解 Git 的三个工作区:工作区、暂存区和版本库

文章目录 创建 Git 本地仓库配置Git认识⼯作区、暂存区、版本库添加⽂件--场景查看 .git ⽂件添加⽂件--场景⼆ 创建 Git 本地仓库 要提前说的是,仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制,就必须先创建⼀个仓库出来。创建⼀个 Gi…

VRRP与BFD的联动

今天的你和昨天的你相比是不是又进步了 一,现网中常用的技术(vrrp与bfd) VRRP(Virtual Router Redundancy Protocol)是一种网络协议,用于提高路由器的可靠性和容错性。它允许多个路由器共享一个虚拟 IP 地址…

如何注册微信小程序

如何注册微信小程序 前言 因为最近沉迷和朋友们一起下班去打麻将,他们推荐了一个计分的小程序,就不需要每局都转账或者用扑克牌记录了,但是这个小程序不仅打开有广告,各个页面都植入了广告,用起来十分不适。 于是我…

竞品价格怎么监测

品牌在做产品营销、产品定价时,除了要做好自身产品的研发设计外,需要非常了解市场,了解消费者偏好、了解竞品数据,通过对比分析,从而知道哪些价位的产品更受消费者喜爱,怎样设计产品更符合市场要求等&#…

LORA无纸温控记录仪测温不准

偏差特别很是大 测量不准缘故原由1: 当无纸记录仪采用热电偶温度传感器测温时,假如热电偶的冷端补偿不能真实反映冷端温度会产生偏差。 解决方法: 使冷端补偿传感器环境温度和接线端子环境温度接近,公司生产的无纸记录仪内置冷…

4.05 用户中心-订单状态和订单动向

详细内容: http://www.gxcode.top/code

MATLAB中zp2tf函数用法

目录 语法 说明 示例 质点弹簧系统的传递函数 zp2tf函数的功能是将零极点增益滤波器参数转换为传递函数形式。。 语法 [b,a] zp2tf(z,p,k) 说明 [b, a] zp2tf(z, p, k) 将一个分解的传递函数表示方式转换。 将单输入/多输出(SIMO)系统的多输出…

聚观早报 | 荣耀Magic Vs2首销;iQOO 12系列已入网

【聚观365】10月17日消息 荣耀Magic Vs2首销 iQOO 12系列已入网 三星Galaxy S24 Ultra跑分曝光 北京医保移动支付升级 现代和起亚新能源汽车在美销量超20万辆 荣耀Magic Vs2首销 荣耀推出了全新的Magic Vs2折叠屏机型,这是继最轻薄折叠屏荣耀Magic V2、最时尚…

尚硅谷Flink(四)处理函数

目录 🦍处理函数 🐒基本处理函数 🐒按键分区处理函数(KeyedProcessFunction) 🐵定时器(Timer)和定时服务(TimerService) // 1、事件时间的案例 // 2、处理…

Kali工具介绍(超详细!史上最全!)

前言 如果你读过 Kali Linux 点评,你就知道为什么它被认为是最好的黑客渗透测试的 Linux 发行版之一,而且名副其实。它带有许多工具,使你可以更轻松地测试、破解以及进行与数字取证相关的任何其他工作。 它是道德黑客ethical hacker最推荐的…

【Unity3D编辑器开发】Unity3D中实现Transform组件拓展,快速复制、粘贴、复原【非常实用】

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在开发中,常常会遇到频繁复制粘贴物体的坐标、旋转…

如何在ASO中使用App Store的促销文本

App Store中的促销文字如何使用,需要填写吗?从名称上就可以看出,这是用于推广应用的广告文字,由于其简洁而非常方便,这也是向现有或潜在用户展示将会有某种事件或重要更新的好方法。表明我们积极监控应用,总…

【滑动窗口】“正难则反法” 解决最小操作数的问题

Problem: 1658. 将 x 减到 0 的最小操作数 文章目录 题目解析算法原理分析Code复杂度 题目解析 首先我们来解读一下本题的题目含义 题目会给到我们一个整数数组和一个整数x,我们可以从左侧,也可以从右侧去减,只要让这个x最终减到【0】即可。不…

算法通关村第18关【白银】| 回溯热门问题

1.组合总和问题 思路:回溯模板 (1)确定方法返回值和参数 分析可知遍历数组然后求和值,不需要返回什么值 参数也就是candidates,list,path,target,start (2&#xff…

【2023研电赛】基于三维视觉感知的可重构智能表面通信方案

该作品参与极术社区组织的研电赛作品征集活动,欢迎同学们投稿,获取作品传播推广,并有丰富礼品哦~ 基于三维视觉感知的可重构智能表面通信方案 参赛单位:华北水利水电大学 参赛队伍:智能队 指导老师:邵霞 参…