当前位置: 首页 > news >正文

【Java EE初阶 --- 网络原理】初识网络

乐观学习,乐观生活,才能不断前进啊!!!

我的主页:optimistic_chen

我的专栏:c语言 ,Java

欢迎大家访问~
创作不易,大佬们点赞鼓励下吧~

文章目录

  • 网络发展
    • IP
    • 端口号
  • 协议
    • 协议五要素
    • 协议分层
      • OSI七层网络模型
      • TCP/IP五层模型(四层模型没有物理层)
  • 网络通信的基本流程
  • 完结

网络发展

在这里插入图片描述

IP

传输数据时,为了精准的找到指定主机,就需要找到主机的地址,也就是IP地址,用于定位主机的网络地址
和送快递一样,只有知道收货地址,才能准确的把包裹送到指定位置。
IP地址的格式是一个32为的二进制数,通常 以4个字节(8位) 划分,比如
二进制:01100100.00000100.00000101.00000110
十进制:100.4.5.6

端口号

找到IP地址就找到了主机,但是主机中有很多执行任务的进程。端⼝号可以标识主机中发送数据、接收数据的那个进程
还是送快递时,不仅要知道收货地址(IP地址),还需要找到接收人(端口号)
端口号的格式是0~65535范围的数字,在网络通信中,进程指定的端口号,来发送和接收数据。

协议

全称网络协议,指⽹络数据传输经过的所有⽹络设备都必须共同遵从的⼀组约定、规则体现在网络上传输的数据包的格式格式很重要、很重要…
计算机硬件的生产可能来自不同的厂商,那么组建出来的计算机之间如何正常通信呢

计算机A发送某一个格式的数据给计算机B,B要准确接收到这组数据,就需要按照A发送的格式来解析数据。这个时候计算机A、B都要遵守这个格式(约定),才能正常发送接收数据。

这就需要大家遵守同一个标准,此时通信才是有意义的,这个标准就是网络协议。

通俗一点:全国各地都有各自的方言,不同地区的人要正常沟通,就要遵守同一个协议--------普通话。

协议五要素

源IP :标识源主机
源端口:标识源主机中该次通信发送数据的进程

目的IP:标识⽬的主机
目的端口:标识⽬的主机中该次通信接收数据的进程

协议类型 :标识发送进程和接收进程双⽅约定的数据格式

协议分层

对网络通信来说,如果只涉及一个协议来解决通信时方方面面的问题,基本是不可能的。参考多线程思维,我们把这一个协议拆分成若干个小协议,但是协议越多就会越臃肿,需要更科学的管理方法,那就是协议分层
协议分层:只有相邻的两层协议之间可以交互,上层协议可以调用下层协议,下层协议给上层协议服务,但是两种协议之间互不理解

<举个例子> 打电话时,两个人之间说话是汉语,但是电话之间就是硬件设备之间的交互。说话的人不需要理解电话是怎么把汉语转化为电话之间的语言,电话也不需要理解汉语,两层协议正常互动,只是不理解而已。

在这里插入图片描述

OSI七层网络模型

实际上,OSI模型既复杂又不实用,所以在去掉表示层和会话层后,就是TCP/IP(五层)模型
在这里插入图片描述
简单说明一下OSI各层的主要用途:
1. 物理层: 是以0 101的二进制数据进行发送到网络其他设备中的
2. 数据链路层: 实现网络互联,连接到不同的主机,不同主机之间还要进行数据传输
3. 网络层: 网络地址IP使用,通过路由器传送到对应的地方
4. 传输层: TCP/UDP协议:都是属于操作系统
5. 会话层: 通信管理,负责建立和断开通信连接
6. 表示层: 主要是应用程序的沟通,包括FTP文件传输协议等
7. 应用层:针对特定应用的协议

TCP/IP五层模型(四层模型没有物理层)

TCP/IP五层模型:TCP/IP通讯协议采⽤了5层的层级结构,每⼀层都呼叫它的下⼀层所提供的⽹络来完成⾃⼰的需求。

网络分层代表硬件协议/技术特性
物理层WIFI电磁波、集线器、网卡约定硬件设施符合的要求发送0,1光电信号
数据链路层交换机以太网、ARP协议(查找MAC地址)负责设备之间数据帧的传送和识别,有冲突检测、数据差错校验等工作
网络层路由器IP协议负责地址管理和路由选择(确定对应主机)
传输层TCP/UDP协议负责两台主机之间数据的准确传输,主机系统内核实现
应用层HTTP/DNS/FTP/SMTP协议等等是应用程序实现的
<举个例子> 在京东买东西,买来要如何使用    应用层 商家(发件人)只关心收件人信息   传输层 物流公司只关心包裹的运输路线     网络层 快递小哥只关心相邻的快递驿站     数据链路层

网络通信的基本流程

1. 应用程序获取到用户输入,构造一个应用层的数据包
2. 应用程序调用传输层提供的接口,把数据传输给传输层
3. 传输层构造好数据后继续调用网络层的接口,把传输层的数据包交给网络层
4. 网络层IP协议接续调用数据链路层的接口,把IP数据包交给数据链路层
5. 数据链路层将包装好的数据包(以太网数据帧)交给计算机硬件设备(网卡等)
6. 网卡将这些二进制数据以光电信号传播出去(此时数据才离开计算机)

整个过程从上层到下层每一步都进行加工(添加报头),然后封装;接收过程从下到上,依次解析即可接收到数据。

在这里插入图片描述
传输过程中,有时候并不是主机和主机之间的数据交互:
主机数据—>交换机交换机收到后,物理层解析,数据链路层解析(没有网络层),直接在数据链路层再构造出新的以太网数据帧,发给下一个设备。(二层转发)
主机数据—>路由器路由器收到后,物理层解析,数据链路层解析,网络层解析(没有传输层),直接在网络层再构造出新的网络数据包,造出以太网数据帧,发给下一个设备。(三层转发)

完结


可以点一个免费的赞并收藏起来~
可以点点关注,避免找不到我~ ,我的主页:optimistic_chen
我们下期不见不散 ~ ~ ~

http://www.dtcms.com/a/278557.html

相关文章:

  • flink 和 spark 架构的对比
  • 如何在 Java 中使用 Redis 实现缓存优化?
  • 4G模块 A7670发送英文短信到手机
  • 11.设置 Python 3 和 pip 3 为默认版本
  • Google的Mediapipe开源框架介绍及使用说明
  • 基于浅切多道的晶圆切割 TTV 均匀性控制与应力释放技术
  • python学智能算法(十八)|SVM基础概念-向量点积
  • CentOS 安装jenkins笔记
  • windows在anaconda中下载安装fasttext
  • jenkins搭建笔记
  • .gitignore文件中的各种写法详解
  • JMeter 连接与配置 ClickHouse 数据库
  • JavaScript 高级封装方法指南
  • 将CSDN文章导出为PDF
  • RabbitMQ的介绍与安装
  • 嵌入式小记
  • 亚马逊自养号技术栈解析:从环境隔离到AI行为模拟的实战指南
  • C++编程语言:标准库:内存和资源管理(Bjarne Stroustrup)
  • 对偶原理与蕴含定理
  • UART寄存器介绍
  • 解决安装 make 时 “configure: error: C compiler cannot create executables” 报错
  • 用于监测线性基础设施的分布式声学传感:现状与趋势
  • week3
  • 阿里云ODPS多模态数据处理实战:MaxFrame的分布式AI数据管道构建
  • ISO 15765-2TP传输协议
  • 迁移学习之图像预训练理解
  • 【双链表】【数组】
  • ubuntu(22.04)系统上安装 MuJoCo
  • 计算机网络(基础概念)
  • 网络协议和基础通信原理