Java---网络初识

server/2025/3/18 20:29:32/

本文章用于理解网络中的各个关键字

1.IP地址 :

用于标识网络主机,和其他网络设备的网络地址

比如我们发快递时,需要知道对方的地址才能将包裹发送给他

格式:

IPv4:

IP地址是32位二进制数,如:01100000.01000010.00001110.00001010  (4字节 大约42亿)

通常采用“点分十进制”表示,即a.b.c.d(a,b,c,d均是0~255整数)

IPv6

IPv6协议将IPv6的地址长度增至128bit,分成8个部分,每个部分为16bit。

首选IPv6地址表示:8个由冒号隔开的16位字段,每个字段由4个十六进制数构成,比如AA22:BB11:1122:CDEF:1234:AA99:7654:7410。

2.端口号 :

端口号用于标识主机中进行数据传输接收的进程

比如发快递时不仅需要填写收货地址(IP地址),还要有收货人(端口号)

格式:

端口号是0~65535的整数,在网络通信中,进程可以绑定一个端口号用于接收与发送数据

0~1204范围是知名的端口号,已经被有名的程序占用

1205~65535范围可以随意指定

MYSQL是3306

原则是同一台主机上的端口号在不同运行程序之间不可冲突

3.协议

是一种网络约定,约定发送时如何组织数据,接受时如何解析数据

4.协议分层

OSI七层模型

从下到上分别是:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

TCP/IP五层模型(四层)

各层的作用:(以收发快递为例)

应用层: 接收与展示用户的数据,比如发快递时只关注快递本身。

传输层:完成端到端的传输,也就是记录收发主机的IP地址与端口号,比如发快递时填写的收件人地址与电话。

网络层:规划端到端的路径,路径中可能会经过其他网络设备,比如在收发快递的路上回经过加油站等等。

数据链路层:完成点到点的传输, 完成网络设备之间的传输,比如快递从一个村送到另一个村。

物理层:真实的bit传输,将数据以电信号/光信号传输

5.封装与分用

封装是传送端对数据的处理

分用是接收端对数据的处理

1.应用层

比如要用QQ发送数据:Hello

应用层根据协议内容(互相协定的)对该数据封装

然后调用系统API将内容传输给下一层

2.传输层

TCP协议为例:

为数据增加TCP头,内部装的是源端口号目标端口号

3.网络

遵守IP协议,为数据增加 IP头,内部装的是源IP与目标IP

4.数据链路层

 遵守以太协议,为数据增加 帧头,帧尾,帧头装的是源MAC地址与目标MAC地址,帧尾装的是校验和

MAC地址:

校验和:

传输数据前将信息用某种方式加成数字和,在传输数据后再次判断校验数据是否被修改

5.物理层 

将包装好的数据以电信号或光信号进行传输

分用

分用的过程就是将各个层级包装的头拆解解析,然后传递给下一层,这里就不概述了


http://www.ppmy.cn/server/176045.html

相关文章

淘宝/天猫获得淘宝商品评论 API 返回值说明

item_review-获得淘宝商品评论 taobao.item_review 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item…

ZooKeeper的五大核心作用及其在分布式系统中的关键价值

引言 在分布式系统的复杂架构中,协调多个节点的一致性、可靠性和高可用性始终是技术挑战的核心。​Apache ZooKeeper作为业界广泛采用的分布式协调服务,凭借其简洁的树形数据模型(ZNode)和高效的原子广播协议(ZAB&…

【Node.js入门笔记6---fs流(Streams)与管道(Pipe)】

Node.js入门笔记6 Node.js---fs 流(Streams)与管道(Pipe)一、流(Streams)与管道(Pipe)1.fs.createReadStream():创建可读流,逐块读取文件。逐块读取文件内容&…

四道Dockerfile练习

一、编写Dockerfile,ubuntu_18.04:v3 要求: 1、基础镜像ubuntu:18.04。 2、替换为国内的安装源(比如阿里或163)。 3、安装openssh-server。 4、允许root用户远程登录。 5、暴露端口22。 6、服务开机自启…

c++图论(二)之图的存储图解

在 C 中实现图的存储时,常用的方法包括 邻接矩阵(Adjacency Matrix)、邻接表(Adjacency List) 和 边列表(Edge List)。以下是具体实现方法、优缺点分析及代码示例: 1. 邻接矩阵&…

双 Token 无感刷新机制在前后端分离架构中实现

在前后端分离的架构中,双 Token 无感刷新是一种常见的身份验证机制,用于在 Access Token 过期时,通过 Refresh Token 自动获取新的 Access Token,从而避免用户频繁登录。 1. 双 Token 无感刷新的核心流程 1.1 核心流程 用户登录&…

ElementUI 表格中插入图片缩略图,鼠标悬停显示大图

如何在 ElementUI 的表格组件 Table 中插入图片缩略图&#xff0c;通过鼠标悬停显示大图&#xff1f;介绍以下2种方式&#xff1a; 方法1&#xff1a;直接在模板元素中插入 <template><el-table :data"tableData"><el-table-column label"图片…

conda创建Python虚拟环境的原理

<Conda>在创建Python虚拟环境时&#xff0c;其背后的原理涉及到Conda包的版本管理和隔离。Conda是一个开源的包管理器和环境管理系统&#xff0c;它主要用于安装、运行和部署各种Python、R、Ruby、Node.js等语言的包、依赖和库。以下是创建Python虚拟环境的原理&#xff…