【Java EE 初阶】网络初识

news/2024/10/22 2:39:21/

目录

1.网络互连

1.局域网:

2.广域网WAN

2.网络通信基础

3.IP地址:端口号

4.协议

1.五元组

2.协议分层

1.为什么要用网络分层?

3.OSI七层模型

4.TCP/IP五层(或四层)模型

5.封装和分用

1.应用层

2.传输层API

3.网络层

4.数据链路层

 5.物理层

6.物理层

7.数据链路层

8.网络层

9.传输层

10.应用层

 ​编辑

注意:


1.网络互连

将多台计算机连接在一起,完成数据共享
数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信
根据网络互连的规模不同,可以划分为局域网和广域网。

1.局域网:

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

2.广域网WAN

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

2.网络通信基础

网络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基 于网络传输数据。
那么,在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?这就需要使用IP地址 来标识。

3.IP地址:端口号

  • IP地址表示了主机在网络上的地址,类似于收件人与发件人地址
  • 端口号表示了主机中的某一个进程,使用网络的进程在启动时都会分配一个端口号
  • 两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号。

作为服务端:主动申请

作为客户端:被动分配

IP地址本质上是一个32位的整型,每8位做了分割

表示的最大范围是255.255.255.255

以目前IPv4协议,IP地址总共有42亿个

IPv4的地址个数不够用,所以现在大力推行IPv6

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

4.协议

1.五元组

1. IP:标识源主机
2. 源端口号:标识源主机中该次通信发送数据的进程
3. 目的IP:标识目的主机
4. 目的端口号:标识目的主机中该次通信接收数据的进程
5. 协议号:标识发送进程和接收进程双方约定的数据格式
通过五元组就可以明确知道网络中,那台主机向哪台主机发送了什么类型的数据

 

2.协议分层

1.为什么要用网络分层?

 

分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接
  • 对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可
  • 对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可

3.OSI七层模型

不用

4.TCP/IP五层(或四层)模型

  • 应用层:程序员关心的层,我们的工作主要在这一层,数据的编码解码方式
  • 传输层:操作系统工作在这一层,主要是确定程序的端口号,负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机
  • 网络层:规划出一条端到端的路径,包括其中要经过的其他网络设备,五元组到这一层就确定下来了
  • 数据链路层:负责设备之间的数据帧的传送和识别,解决的是路径之间的传输
  • 物理层:负责光/电信号的传递方式,比如网线或者其他网络设备

TCP/IP四层不包含物理层

5.封装和分用

 以QQ发送消息为例,模拟一下消息在网络中的封装与分用过程

1.应用层

对于应用层,双方要按照相同的编码规则去组织与解析数据

应用层会消息组织好,统一发给操作系统的API(传输层)socket api

2.传输层API

在传输层有几个非常著名的协议,TCP,UDP

 系统操作可以确定下来端口号

3.网络层

 确定下来源IP和目标IP

4.数据链路层

 

 

 5.物理层

6.物理层

 把光信号和电信号还原成数据链路层可以解析的格式

7.数据链路层

用帧头找到 对应的主机,用帧尾校验数据的有效性

脱掉帧头与帧尾把载荷交给网络层

8.网络层

 脱掉IP协议头,把数据交给传输层

9.传输层

10.应用层

 

 应用程序按照规定好的编目规则来解析消息体,完成通信

注意:

 


http://www.ppmy.cn/news/77062.html

相关文章

栈和队列 - C语言实现

目录 栈 栈的概念 栈的实现 队列 队列的概念 队列的实现 栈 栈的概念 栈是一种后进先出 (LIFO - last in first out) 的数据结构,通常利用数组或链表实现。栈只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另…

如何增加网站权重?有效提高网站权重的技巧方法

权重对于网站优化来说非常的重要,那什么是网站权重呢?网站权重是指搜索引擎给网站(包括网页)赋予一定的权威值,对网站(含网页)权威的评估评价。一个网站权重越高,在搜索引擎所占的份…

25 KVM管理虚拟机-虚拟机安全启动

文章目录 25 KVM管理虚拟机-虚拟机安全启动25.1 总体介绍25.1.1 概述25.1.2 功能说明25.1.3 约束限制 25.2 安全启动实践25.2.1 虚拟机配置25.2.2 证书导入25.2.3 安全启动观测 25 KVM管理虚拟机-虚拟机安全启动 25.1 总体介绍 25.1.1 概述 安全启动(Secure Boot…

leetcode 867. 转置矩阵

题目描述解题思路执行结果 leetcode 867. 转置矩阵 题目描述 转置矩阵 给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。 矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。 示例 1: 输入:matrix [[1,2…

Ceph的核心组件的介绍(基于nautilus版本)

Ceph的核心组件的介绍(基于nautilus版本) Ceph是一个基于分布式存储的开源存储系统,它提供了对象存储、块存储和文件存储三种存储方式,具有高可靠性、高可扩展性和高性能等优点。Ceph的核心组件包括以下几个部分: 1.…

C语言_用VS2019写第一个C语言或C++程序

接上一篇:C语言简述、特点、常用编译器,VS2010写第一个C语言程序 本次来分享用VS2019来写C语言或C程序,也是补充上一篇的知识,话不多说,开始上菜: 此博主在CSDN发布的文章目录:我的CSDN目录&…

y=gap++;y等于几

这里写自定义目录标题 直接上代码回答为什么第二次时&#xff0c;y1解释 什么是后缀自增操作符&#xff1f; 直接上代码 先来看一下下面的代码&#xff1a; public class TestValue {public static void main(String[] args) {int gap 1;List<Integer> vals new Arra…

【详解栈Stack与队列Queue】

&#x1f320;作者&#xff1a;TheMythWS. &#x1f386;专栏&#xff1a;《集合与数据结构》 &#x1f387;座右铭&#xff1a;不走心的努力都是在敷衍自己&#xff0c;让自己所做的选择&#xff0c;熠熠发光。 目录 栈 ( Stack ) 栈的概念 栈的使用 栈的模拟实现 栈…