JavaEE初阶第三课:网络初识

news2024/12/24 3:26:47

欢迎来到javaee初阶的第三课,这节课我会带大家来初识网络

荔枝目录

  • 1.认识IP和端口
    • 1.1 IP
    • 1.2端口
  • 2.认识协议
    • 2.1协议分层(TCP/IP协议)
    • 2.2封装与分用
    • 2.3两台主机之间的网络通信流程(非同一网段)
  • 3.其他常见名词 解释
    • 3.1客户端
    • 3.2 服务器、请求和响应
  • 结束语

1.认识IP和端口

1.1 IP

🐋IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机。
就像我们发送快递一样,IP地址就是发件人和收件人的地址,发件人叫源ip,收件人是目标ip,但是只知道地址还不行,必须还得知道是哪个人收货。在计算机里,就是得知道是哪个进程接收这个数据,所以需要端口名来标识。

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:
01100100.00000100.00000101.00000110。
通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。如:
100.4.5.6。

这里是引用

  • (有时我们还会见到mac地址,mac地址是我们网卡的地址,相对于IP地址它是一个物理地址。总的来说,IP 地址解决的是数据在外网(因特网、互联网)的传输问题,MAC 地址解决的是数据在内网(局域网)中的传输问题。)

1.2端口

想要知道上面快递具体是那个人的,就需要知道什么是端口号。

🐲在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简单说:端口号用于定位主机中的进程

🐲端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据,但是两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号

有了IP地址和端口号,可以定位到网络中唯一的一个进程,但还存在一个问题,网络通信是基于二进制0/1数据来传输,如何告诉对方发送的数据是什么样的呢?
网络通信传输的数据类型可能有多种:图片,视频,文本等。同一个类型的数据,格式可能也不同,如发送一个文本字符串“你好!”:如何标识发送的数据是文本类型,及文本的编码格式呢?基于网络数据传输,需要使用协议来规定双方的数据格式

这里是引用

大家可以记住一句话:

  • 贫僧从东土大唐而来,前往西天拜佛求精

贫僧是源端口,东土大唐是源IP;佛是目的端口,西天是目的IP;

2.认识协议

为什么要分层:因为网络协议很复杂,如果不对其进行处理,不利于维护和修改,同时使人的学习成本变大等等,比如我只想学一下某一块协议是怎么处理的,但由于是一个整体,我就不得不把一整块全学了,这不是我们希望看到的。所以我们把它拆分成许多单一的模块,为了防止拆分的模块太多,我们进一步对其进行分类,也就是分层。
目前比较流行的协议分层是OSI七层协议,和TCP/IP五层协议,前者主要存在于教科书上,后者才是实际常用的,那么我就介绍一下后者

2.1协议分层(TCP/IP协议)

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


●在这些协议中提到的各种报,帧什么的都是指的传输数据,在不同场景下名称含义略有不同。

当然,光看这些概念肯定让人头大,有没有什么形象的荔枝呢?当然有!
在这里插入图片描述

2.2封装与分用

封装:

不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报
(datagram),在链路层叫做帧(frame)。
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装
(Encapsulation)。首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。
● 以传输层里的TCP协议为例,数据到传输层通过TCP协议就会被打上TCP报头,里面主要的信息就是源端口和目的端口

分用:

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

2.3两台主机之间的网络通信流程(非同一网段)

1.主机A应用层数据到传输层被分段,打上TCP头(含源端口,目的端口),再向下发给网络层,打上IP地址(含源IP,目的IP),再向下发送给数据链路层,打上数据帧(含源MAC地址,目的MAC地址),由于不知道目的MAC地址,则在MAC上打上于网关(路由器接口)的MAC地址,发往路由器A。

2.路由器A收到消息后,重新封装数据帧(得知发送到B主机需要经过路由器B),于是修改源MAC地址为路由器A的MAC地址,目标地址为B的MAC地址,(路由器A进行NAT地址转换)

3.路由器B收到路由器A的信息,核对地址,检查IP,修改MAC,源MAC改为路由器B的MAC地址,(假如主机B在路由器B的子网中)目标MAC地址填写为主机B的MAC地址,即下一步将信息发送给主机B。

4.主机B接收到数据后对数据拆帧、包,TCP头,检查其目的地址与校验,重新整合这些数据流之后,将这个数据流传递给应用层处理。

3.其他常见名词 解释

3.1客户端

客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。

3.2 服务器、请求和响应

服务器指一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器、数据库服务器和应用程序服务,运行以上软件的计算机或计算机系统。服务器需要响应服务请求,并进行处理,这个处理就是响应

结束语

那么JaveEE初阶第三课到此就结束啦,下节课我们会学习网络编程套接字socket,来学习如何用代码实现网络编程。
请添加图片描述

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

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

相关文章

电脑老是蓝屏是什么原因?怎么修复蓝屏

电脑老是蓝屏是什么原因?其实电脑蓝屏的原因是有很多种的,每个地方出问题都会导致电脑蓝屏,所以我们要想知道蓝屏的原因,那么就需要一步步的去检测,去排除掉一些可能,才能得出正确的蓝屏原因的答案。 一.什…

MATLAB 数组计算

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…

Java字典注解的简单实现(AOP)

需求来源 在开发过程中,必不可少会用到字典,例如,数据库字段性别字段可能是这样的:1:男;2:女,在数据存储的时候用1和2,但是在前端展示的时候需要使用男和女,…

有没有人像我一样每次面对sql都很痛苦

今天又操作了一遍sql,这世界上有没有人像我一样,每一次面对mysql都是一次痛苦的经历。 不知道别人怎么想,反正我是这样的。使用mysql从来没有让我快乐过。在数据库里面,最喜欢mongo,当然我也只会mongo。但是每一次使用…

NL-meals、BM3D

常用的高斯滤波或者均值滤波相对都比较简单,即每个窗口的滤波核都是一样的。稍微复杂一些保边滤波如,双边滤波和导向图滤波等。这里介绍几种ffmpeg里面包含的相对比较复杂的滤波算法。计算量不可谓不小。可以通过ffmpeg查看源码实现过程,这里…

RHCE(防火墙)

文章目录一、什么是防火墙二、iptables三、firewalld四、作业一、什么是防火墙 防火墙:防火墙是位于内部网络和外部网络之间的屏障,它按照系统管理员预先定义的规则来控制数据包的进出 防火墙可以分为硬件防火墙和软件防火墙。硬件防火墙是由厂商设计好的…

LongAdder/LongAccumulator类分析

一、LongAdder简介 1.下图是JDK-API文档的的截图信息 我们可以得知这两个类都是1.8开始提供的,并且都具有顶级的并发性。这两类的区别点主要在于LongAdder初始值为0,只能做累加操作,而LongAccumulator可以完成一些复杂的计算,本…

软件设计师考试整理-0-前言

1. 整理初衷 2022年下半年的软考成绩出来了,查了一下,上午58分,下午61分,虽然不高,但是也过了,还是值得开心的,毕竟在最初报考的时候,会的知识点寥寥无几。 先解释下为什么我会报考…

富勒烯C60,131159-39-2,水溶性富勒烯,CARBON C60

产品描述:富勒烯C60与金刚石、石墨是碳的三种同素异形体,富勒烯分子是一种由60个碳原子结合形成的稳定分子,它具有60个顶点和32个面,其中12个为正五边形,20个为正六边形,它形似足球,所以又称为富…

OpenMMLab AI实战营Day2 图像分类

目录 一、图像分类 二、卷积神经网络 三、超越ResNet的图像分类模型 1、神经结构搜索 2、Transformer 3、ConvNext 四、轻量化神经网络 五、Vision Transformer 六、模型学习 七、学习率与优化器调整策略 八、数据增强 一、图像分类 图像分类:识别图像中…

网络骗局丨典型案例分析,大家一起来避雷!

作者:黑蛋因为疫情的困扰,总体经济都不是很好,春节前后,网络诈骗高发期,以下是几种典型案例,一起来看看。比较常见的有以下几种:1、网络购物骗局小红在某平台网购一件产品,几天后&am…

Nacos+Springcloud+mybatis-plus+oracle的整合

NacosSpringcloudmybatis-plusoracle的整合 1、项目结构 2、父类的依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&q…

shell脚本基本使用

目录 1.是什么&#xff1f; 2.写法 3.shell脚本语法 3.1第一个shell脚本 3.2交互式shell脚本 3.3shell脚本的数值计算 3.4test命令 3.5中括号【】判断符 3.6默认变量 4.shell脚本条件判断 4.1 if fi 4.2 if then else 4.3 if elif else 4.4 case 5.shell脚本函数…

Linux 学习笔记 正则、管道、进程与任务定时

一、筛选与搜索 1.1 grep 命令 筛选数据 grep 是 Globally search a regular expression and print 的缩写。意思是全局搜索一个正则表达式&#xff0c;并且打印。 考虑这样的一个名为 a.txt 的文件&#xff1a; 执行 grep apple ./a.txt 即可匹配所有含有 apple 的字符 默认…

IDEA搭建Finchley.SR2版本的SpringCloud父子基础项目-------zuul和SpringConfig

1.Zuul是什么 Zuul包含了对请求的路由和过滤两个最主要的功能&#xff1a; 其中路由功能负责将外部请求转发到具体的微服务实例上&#xff0c;是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预&#xff0c;是实现请求校验、服务聚合等功能的基础. Zu…

4款实用的办公软件,每一款都让你效率翻倍,相见不易

称心的电脑使用体验&#xff0c;总离不开实用的工具&#xff0c;一款高效的工具&#xff0c;能让你的办公体验翻倍。 1、Mem Reduct 这是一款强大到离谱的电脑清理工具&#xff0c;比某安全卫士实用多&#xff0c;没有任何弹屏广告&#xff0c;完全免费使用&#xff0c;内存清理…

搜索算法基础

一 DFS 深度优先搜索算法&#xff08;Depth First Search&#xff0c;简称DFS&#xff09;&#xff1a;一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点&#xff0c;尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件&#xff0c;搜…

uboot的烧写及使用

目录 一、uboot概述 Bootloader Bootloader基本功能 常见的Bootloader 二、SD卡启动盘制作 三、uboot的使用 3.1uboot模式 3.2uboot帮助命令 3.3uboot环境变量命令 3.4常用环境变量 3.5网络传输命令 3.6u-boot访问存储器命令 3.7 u-boot自启动环境变量&#xff08…

人工智能趋势——2023 年综述

随着DALLE 2 于 2022 年 4 月的宣布&#xff0c;关于2022 年初第三个 AI 冬天——或 AI 撞墙——的预言过时得很快而且效果不佳&#xff0c;随后出现了更多主要由扩散模型驱动的文本到图像应用程序&#xff0c;这是一个非常多产的领域用于计算机视觉研究及其他领域。AI 的 2022…

SpringCloud五大核心组件

Consul 等&#xff0c;提供了搭建分布式系统及微服务常用的工具&#xff0c;如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性token、全局锁、选主、分布式会话和集群状态等&#xff0c;满足了构建微服务所需的所有解决方案。 服务发现——Netflix Eureka …