【JavaEE】网络初识 (IP地址, 端口号, 协议, 封装和分用)

文章目录

  • 前言
  • 网络通信基础
  • 一.IP地址
      • 概念
      • 格式
      • 特殊IP
  • 二.端口号
      • 概念
      • 注意事项
  • 三.协议
      • 概念
      • 知名协议的默认端口
      • 五元组
      • 协议分层
        • OSI七层模型
        • TCP/IP五层模型
  • 四.封装和分用

前言

本章来介绍一下网络中的一些基本概念, 例如 : IP地址, 端口号, 协议, 协议分层, 封装, 分用等等.

网络通信基础

网络互联的目的是进行网络通信, 即进行网络数据传输, 更具体一点, 是网络主机的不同进程间, 基于网络传输数据.

那么在组建的网络中是如何判断从哪台主机, 将数据传输到哪一台主机呢? 这就需要用 IP地址 来标识.

一.IP地址

概念

IP地址是分配给连接到使用Internet Protocol进行通信的计算机网络上的每个设备的数字标签. 他有两个主要功能: 主机或网络接口的标识和位置寻址.

格式

IP地址是一个32位的二进制数, 通常用点分十进制来表示. 如: 192.147.1.1

特殊IP

127.*的IP地址用于环回(loop back)测试, 通常是127.0.0.1

本机环回主要用于本机到本机的网络通信 (系统内部为了性能, 不会走网络的方式传输), 对于开发网络通信的程序 (即网络编程) 而言, 常见的开发方式都是本机到本机的网络通信.


IP地址解决了网络通信时,定位网络主机的问题,但是还存在一个问题,传输到目的主机后,由哪个进
程来接收这个数据呢?这就需要端口号来标识

二.端口号

概念

端口号是一个16位无符号整数, 范围从0到65535. 它用于定位主机上的进程. 可以标识主机中, 发送数据, 接收数据的进程.

注意事项

两个不同的进程不能绑用同一个端口号, 但是一个进程可以绑定多个端口号.


有了IP和端口号, 可以定位到网路中的唯一一个进程, 但还存在一个问题, 网络通信是基于二进制0/1传输, 而网络传输的数据类型可能有很多种: 图片, 视频, 文字等等, 同一类型的数据格式也可能不同, 那么如何告诉对方发送的数据是什么样的, 该用什么方法或者格式来解析数据呢? 就要使用协议来规定双方的数据格式.

三.协议

概念

网络协议的简称, 是指网络通信经过的网络设备都必须共同遵从同样的一组约定, 规则. 如怎样建立连接, 怎样互相识别等等.

基于网络数据传输, 需要使用协议来规定双方的数据格式.通常由三要素组成:

  1. 语法: 即数据与控制信息的结构或格式

    例如打电话时, 双方都使用相同的语言: 普通话

  2. 语义: 即需要发出何种控制信息, 完成何种动作以及做出何种相应

​ 主要用来说明通信双方应该怎么做, 用于协调与差错处理的控制信息

  1. 时序: 即事件实现顺序的详细说明

​ 同步传输还是异步传输

协议最终体现为在网络上传输数据包的格式.

在这里插入图片描述

知名协议的默认端口

系统端口号范围为 0 ~ 65535,其中:0 ~ 1023 为知名端口号,这些端口预留给服务端程序绑定广泛使
用的应用层协议,如:

21端口:预留给FTP服务器绑定FTP协议

22端口:预留给SSH服务器绑定SSH协议

23端口:预留给Telnet服务器绑定Telnet协议

80端口:预留给HTTP服务器绑定HTTP协议

443端口:预留给HTTPS服务器绑定HTTPS协议

五元组

协议用五元组来表示一个网络通信:

  1. 源IP: 标识源主机
  2. 源端口号: 标识主机中此次通信发送数据的进程
  3. 目的IP: 标识目的主机
  4. 目的端口号: 标识目的主机中此次通信接受数据的进程
  5. 协议号: 标识发送和接受双方约定的数据格式

可以在cmd中,输入 netstat -ano 查看网络数据传输中的五元组信息:

在这里插入图片描述

如果需要过滤 (一般是通过端口号或者进程PID过滤) , 可以用 netstat -ano | findstr 过滤字符串

协议分层

协议分层最大的好处, 类似于面向接口编程: 定义好两层之间的接口规范, 双方遵循这个规范这个规范来对接.

在代码中, 类似于定义好一个接口, 一方为接口的实现类 (提供方, 提供服务) , 一方为接口的使用类 (使用方,使用服务) :

  • 对于使用方来说, 并不关心提供方是如何实现的, 只需要使用接口即可
  • 对于提供方来说, 利用封装的特性, 隐藏实现的细节, 只需要开放接口即可
OSI七层模型

OSI七层模型划分为以下七层:

在这里插入图片描述
在这里插入图片描述

OSI 七层模型既复杂又不实用:所以 OSI 七层模型没有落地、实现。
实际组建网络时,只是以 OSI 七层模型设计中的部分分层,也即是以下 TCP/IP 五层模型来
实现。

TCP/IP五层模型

TCP/IP是一组协议的代名词, 他还包括很多协议, 组成了TCP/IP协议簇.

采用了五层层级模型:

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

在这里插入图片描述

四.封装和分用

  1. 不同的协议层对数据包有不同的称谓, 在传输层叫做段 (segment) , 在网络层叫做数据报 (datagram) , 在链路层叫做帧 (frame).

  2. 应用层数据通过协议栈发送到网络上时, 每层协议都要加上一个数据首部 (header) , 称为封装 (Encapsulation).

  3. 首部信息中包含了一些类似于首部多长, 载荷 (payload) 多长, 上层协议是什么等信息.

  4. 数据封装成帧后发送到传输介质上, 到达目的主机后每层协议再剥掉响应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理

下图为数据封装的过程:

在这里插入图片描述
160942306.png&pos_id=img-xfgS2Eah-1705828659849)

下图为分用的过程:

请添加图片描述

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

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

相关文章

计组原理:系统概论与基本组成

系统概论与基本组成 系统概论硬件软件 计算机系统的层次结构系统复杂性的管理方法1:抽象 计算机的基本组成冯诺依曼计算机系统复杂性的管理方法 2:(3’Y) 计算机的工作步骤上机前的准备:计算机的解题过程存储器的基本组…

AI教我学编程之C#类的实例化与访问修饰符

前言 在这篇文章中,我将带大家深入了解C#编程语言的核心概念,包括类的实例化、访问修饰符的应用,以及C#中不同数据类型的默认值。我会通过逐步分析和具体实例,详细解释如何在C#中正确创建和操作对象,并探讨如何通过访…

维基百科推广的12种方法帮你建立强大的品牌-华媒舍

维基百科是全球最大、最权威的多语言网络百科全书。它是许多人搜索信息、获取知识的首选平台,也是许多品牌建立强大影响力的重要途径。本文将介绍维基百科推广的12种方法,帮助你在维基百科上建立强大的品牌形象。 1. 准备工作 在开始维基百科推广之前&a…

IDEA怎么用Devtools热部署

IDEA怎么用Devtools热部署 大家知道在项目开发过程中,有时候会改动代码逻辑或者修改数据结构,为了能使改动的代码生效,往往需要重启应用查看改变效果,这样会相当耗费时间。 重启应用其实就是重新编译生成新的Class文件&#xff0…

机器学习:何为监督学习和无监督学习

目录 一、监督学习 (一)回归 (二)分类 二、无监督学习 聚类 一、监督学习 介绍:监督学习是指学习输入到输出(x->y)映射的机器学习算法,监督即理解为:已知正确答案…

C语言总结十一:自定义类型:结构体、枚举、联合(共用体)

本篇博客详细介绍C语言最后的三种自定义类型,它们分别有着各自的特点和应用场景,重点在于理解这三种自定义类型的声明方式和使用,以及各自的特点,最后重点掌握该章节常考的考点,如:结构体内存对齐问题&…

C++PythonC# 三语言OpenCV从零开发(5):ROI截取

文章目录 前言ROI测试图片部分区域截取CCsharpPython 颜色区域分割CCsharpPython 颜色通道合并CCsharpPython 总结 前言 C&Python&Csharp in OpenCV 专栏 【2022B站最好的OpenCV课程推荐】OpenCV从入门到实战 全套课程(附带课程课件资料课件笔记&#xff09…

Mybatis Plus baomidou EasyCode插件自动生成驼峰字段实体类,而不是全小写字段实体类

开发环境: springboot 2.4.3baomidou 3.4.0mybatis plus 3.4.0jdk8 问题描述: 1、mybatis 使用baomidou 插件,EasyCode自动生成实体类,但字段都是全部小写的,不太符合编码规范。 2、mysql表字段全是驼峰&#xff0c…

大数据技术原理及应用课实验3 :熟悉常用的HBase操作

目录 实验3 熟悉常用的HBase操作 一、实验目的 二、实验平台 三、实验步骤(每个步骤下均需有运行截图) (一)编程实现以下指定功能,并用Hadoop提供的HBase Shell命令完成相同任务: 1.列出HBase所有的表…

科大讯飞将于1月30日发布星火大模型 V3.5,基于全国产化算力底座训练

科大讯飞即将发布全新AI大模型——星火认知大模型 V3.5,该模型将于14:00正式发布。据透露,相比于去年10月24日发布的V3.0版本,V3.5在逻辑推理、文本生成、数学答题及小样本学习能力上均实现了显著提升。 科大讯飞官网链接:讯飞星…

Leetcode的AC指南 —— 栈与队列:20. 有效的括号

摘要: **Leetcode的AC指南 —— 栈与队列:20. 有效的括号 **。题目介绍:给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字…

CMeet系列技术生态沙龙---城市开发者组织年度聚会·杭州 《把握未来趋势,持续学习创新》

CSDN始终致力于促进城市区域内尖端新兴技术开发者交流,提供开放自由的切磋平台。在这个充满挑战和机遇的一年即将结束之际,通过本次聚会,汇聚杭州本地各行各业的开发者朋友,回顾过去一年城市社区的成就和收获,感谢携手同行的各位,…

makefile的机制,执行命令的流程分析

makefile的机制,流程分析 calc:add.o sub.o multi.ogcc add.o sub.o multi.o calc.cpp -o calcadd.o:add.cppgcc -c add.cpp -o add.osub.o:sub.cppgcc -c sub.cpp -o sub.omulti.o:multi.cppgcc -c multi.cpp -o multi.oclean:rm -rf *.o calc按照这个例子分析&am…

常见网站结构

网站架构与部署架构 1、初始阶段的网站架构 一般来讲,大型网站都是从小型网站发展而来,一开始的架构都比较简单,随着业务复杂和用户量的激增,才开始做很多架构上的改进。当它还是小型网站的时候,没有太多访客&#…

数据结构之栈和队列

数据结构之栈和队列 1、栈1.1、栈的定义及基本运算1.2、栈的存储结构 2、队列2.1、队列的定义及基本运算2.2、队列的存储结构2.3、队列的应用 数据结构是程序设计的重要基础,它所讨论的内容和技术对从事软件项目的开发有重要作用。学习数据结构要达到的目标是学会从…

FDM3D打印系列——宝可梦妙蛙种子

fdm打印妙蛙种子 大家好,我是阿赵。   每次打印3D模型,都有新的感觉,这次打印了个宝可梦里面的妙蛙种子,也就是俗称的蒜头王八。   先来看看成果,然后在后面再聊一下关于3D打印的一些体会。使用创想三维的Sermoon …

华为机考入门python3--(0)测试题1-句子平均重量

分类:字符串 知识点: 获取输入 input().strip().split(" ") 拼接列表 " ".join(list) 输出指定位数的浮点数 print("%.2f" % value) 题目来自【华为招聘模拟考试】 # If you need to import additional packages or c…

Dell戴尔XPS 8930笔记本电脑原装Win10系统 恢复出厂预装OEM系统

链接:https://pan.baidu.com/s/1eaTQeX-LnPJwWt3fBJD8lg?pwdajy2 提取码:ajy2 原厂系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、Office办公软件、MyDell等预装程序 文件格式:esd/wim/swm 安装方式&am…

一文梳理金融风控建模全流程(Python)

▍目录 一、简介 风控信用评分卡简介 Scorecardpy库简介 二、目标定义与数据准备 目标定义 数据准备 三、安装scorecardpy包 四、数据检查 五、数据筛选 六、数据划分 七、变量分箱 卡方分箱 手动调整分箱 八、建立模型 相关性分析 多重共线性检验VIF KS和AUC …

李宏毅 Generative Adversarial Network(GAN)生成对抗网络

(延申)GAN Lecture 1 (2018)- Introduction_哔哩哔哩_bilibili Basic Idea of GAN 附课程提到的各式各样的GAN:https://github.com/hindupuravinash/the-gan-zoo 想要让机器做到的是生成东西。->训练出来一个generator。 假设要做图像生成,要做的是…