【JavaEE】网络初识

系列文章目录


文章目录


前言

单机时代

局域网: 把电脑之间通过网线连接起来

局域网和局域网之间是隔离的

广域网时代 更大的局域网,也就是互联网时代

英特网最大的局域网

局域网和广域网没有明确的界线

路由器组件局域网

连接器增加接口

当年写JDBC的时候写过一串代码,写自定义的客户端,里面有ip地址和端口号,ip地址用来识别一个主机,端口号标识主机上的应用程序,比如浏览器和直播,所接收到数据格式是不一样的,每个使用网络的程序的端口号搜是不一样的

端口号是程序员定义或者是系统自动分配


一、协议

网络通信

网线 使用高低电压分别表示1和0

光纤,不同频率表示1和0

WIFI(无线)电磁波 不同频率表示

都属于协议

协议分层

协议会分几层来定义,

解耦合 通信协议中每一层都可以灵活替换

封装 上层不必知道下层协议细节,就可以直接使用


1.协议分层具体分法(背

OSI七层网络模型(仅存在于课本之上

经过简化之后

为

TCP/IP五层网络模型(四层网络模型

这是目前使用的

  1. 物理层
  2. 数据链路层
  3. 网络层
  4. 传输层
  5. 应用层

说四层是因为1和2可以合并成一个,都是和硬件设备直接相关的

物理层 硬件层面的基础设施,物理层协议约定了网线的结构,光纤的结构

数据链路层 负责两个节点的具体传输过程 , 负责具体的传输过程

网络层 负责通信中间过程 ,中间路线怎么走 , 就是确定路径

传输层 约定起点和终点之间的通信规则(不关心中间的通信过程

应用层(最重要) 代码主要是和应用层打交道的,决定了应用程序如何使用/构造传输的数据用来干什么

一级一级向上调用

传输层和网络层是操作系统内核内置功能

硬件和网卡层与硬件厂商相关

编写的代码就是应用层面,写的应用程序就是对应应用层


2.网络数据传输的基本流程

封装

分用

发送消息

  1. 应用层

    输入东西 , 输入的会构造成"应用层数据包"

    举个例子:时间 , 发送方qq号 , 接收方qq号 ,消息正文

    当然只是一个例子 , 我们不知道真实消息的格式

    调用传输层接口 , 把上述数据交给传输层

  2. 传输层

    传输层有多种协议 , 此处假设使用UDP , 在应用层数据包的基础上封装成传输包数据(字符串拼接

每一层协议都是会补充上一些信息 , 都是为了辅助网络传输的

UDP报头+UDP正文/载荷(应用层给的数据包

报头放源端口和目的端口

从哪个程序来

这个UDP数据包,交给网络层协议

  1. 网络层
    网络层也有很多协议 , 此处假设使用IP协议
    IP协议在传输层数据包的基础上 , 进一步封装成了网络层数据包

IP协议报头+IP协议载荷(传输包给的传输包数据

报头放源IP , 目的IP

从那个主机

上述数据 , 进一步的交给数据链路层协议

  1. 数据链路层
    数据链路层也有很多协议 , 此处假设使用的是"以太网"

帧头+载荷(网络层数据包)+帧尾

帧头放mac地址 , 和IP地址类似的一种机制 , 也是用来区分网络设备 , 它存在的意义是为了完成相邻设备的传输

  1. 物理层
    通过网卡 , 把上述二进制数据转为电信号/光信号/电磁波 , 传输出去了

接收方做的工作是反过来的

把发送方层层构造报文的过程称为封装

把接收方层层解析报文的过程称为分用

报文:特定格式的字符串 , 报头+载荷


发送方给交换机 , 交换机给路由器 , 路由器再给交换机 , 交换机给接收方

路由器接收到数据 , 也要分用/解析 , 只需要解析物理层 , 数据链路层 , 网络层即可 , 需要IP协议报头信息(三层转发 , 封装分用到网络层

有二层转发 , 需要封装分用到数据链路层

通信中的"五元组"

协议类型

源IP,源端口

目的IP,目的端口


二、


总结

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

相关推荐
for_ever_love__1 小时前
MySQL ORDER BY 排序优化:从 Using filesort 到索引有序扫描(含双路 / 单路排序原理)
java·mysql·优化·存储·by·order·filesort
我是人✓2 小时前
Java文件上传三方式对比:从传统到SpringBoot
java·开发语言
欣栀♡2 小时前
JVM 频繁 Full GC 先看日志括号里的 cause,jstat 的 FGC 在 JDK 8 上会骗人
java·jvm
IT研究室2 小时前
最新计算机毕业设计选题推荐-基于spring boot的葡萄酒文化宣传网站-网站-文档指导-Java-springboot
java·spring boot·课程设计
慧都小项3 小时前
MyEclipse 中创建和测试 JAX-RS REST 接口:从项目配置到 REST Explorer
java·restful·myeclipse·jax-rs
Wang's Blog3 小时前
Java 项目实战: 交友项目 - 入门案例:编写 Dubbo 服务提供者
java·dubbo·交友
秋饼3 小时前
Spring AI 2.0 结构化输出企业级实战:从 BeanOutputConverter 源码到生产级解析容错
java·ai·技术分享·后端开发
摇滚侠3 小时前
《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 9 章 机器码与汇编语言 阅读笔记 9
java·开发语言·笔记
Cc.Y3 小时前
Java零基础入门:深入Java核心:文件IO与序列化全解
java·开发语言·python