【JavaEE】网络原理:网络中的一些基本概念

这篇具有很好参考价值的文章主要介绍了【JavaEE】网络原理:网络中的一些基本概念。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【JavaEE】网络原理:网络中的一些基本概念,JavaEE,网络,java-ee,java,开发语言目录

1. 网络通信基础

1.1 IP地址

1.2 端口号

1.3 认识协议

1.4 五元组

1.5 协议分层

什么是协议分层

分层的作用

OSI七层模型

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

网络设备所在分层

网络分层对应

封装和分用


1. 网络通信基础

1.1 IP地址

概念:IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址。

格式:IP地址是⼀个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节).

如: 01100100.00000100.00000101.00000110。 通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。 如:100.4.5.6。

1.2 端口号

概念: 在网络通信中,IP地址用于标识主机的网络地址,而端口号用于标识主机中发送数据、接收数据的进程。

简单说,端口号用于定位主机中的进程。IP地址可以看作是主机的地址,而端口号可以看作是进程的门牌号。通过IP地址可以找到目标主机,通过端口号可以找到目标主机中的具体进程,从而实现数据的发送和接收。

格式: 端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定⼀个端⼝号,来发送及接收网络数据。

问题:
        有了IP地址和端口号,可以定位到网络中唯一的一个进程,但还存在一个问题,网络通信是基于二进制0/1数据来传输,如何告诉对方发送的数据是什么样的呢?
        网络通信传输的数据类型可能有多种:图片,视频,文本等。同一个类型的数据,格式可能也不同,如发送一个文本字符串“你好!”; 如何标识发送的数据是文本类型,及文本的编码格式呢?
        基于网络数据传输,需要使用协议来规定双方的数据格式。

1.3 认识协议

概念

协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵
从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。

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

作用

【JavaEE】网络原理:网络中的一些基本概念,JavaEE,网络,java-ee,java,开发语言

计算机之间的传输媒介是光信号和电信号。通过"频率"和"强弱"来表示0和1这样的信息。要想传递
各种不同的信息,就需要约定好双方的数据格式。

  • 计算机生产厂商有很多;
  • 计算机操作系统,也有很多;
  • 计算机网络硬件设备,还是有很多;

如何让这些不同厂商之间生产的计算机能够相互顺畅的通信?
就需要有人站出来,约定一个共同的标准,大家都来遵守,这就是网络协议;

网络协议是网络通信中的基础,它定义了网络中数据的传输方式和规则,确保数据能够安全、可靠地在网络中传输和交换。

1.4 五元组

在TCP/IP协议中,用五元组来标识一个网络通信:

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

【JavaEE】网络原理:网络中的一些基本概念,JavaEE,网络,java-ee,java,开发语言

五元组在网络通信中的作用,类似于发送快递:
【JavaEE】网络原理:网络中的一些基本概念,JavaEE,网络,java-ee,java,开发语言

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

【JavaEE】网络原理:网络中的一些基本概念,JavaEE,网络,java-ee,java,开发语言

1.5 协议分层

对于网络协议来说,往往分成几个层次进行定义。

什么是协议分层

协议分层是将网络协议按照不同的功能和层次进行分组和组织的一种方式。它将复杂的网络通信过程划分为多个层次,每个层次负责特定的功能和任务。每个层次都建立在下一层的基础上,并为上一层提供服务。这种分层的结构使得网络协议的设计、实现和维护更加灵活和可扩展。

分层的作用

为什么需要网络协议的分层?
分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。
在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用
类(使用方,使用服务) :
●对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可
●对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可
这样能更好的扩展和维护,如下图:
【JavaEE】网络原理:网络中的一些基本概念,JavaEE,网络,java-ee,java,开发语言

OSI七层模型

OSI(Open Systems Interconnection)七层模型是一种标准的网络协议分层模型,用于描述计算机网络中不同层次的功能和任务,是一个理论上的框架,用于指导和标准化网络协议的设计和实现。

以下是OSI七层模型的各个层次及其功能:

  1. 物理层(Physical Layer):负责传输比特流,将数据从源设备传输到目标设备,包括传输媒介、电压等物理特性。

  2. 数据链路层(Data Link Layer):提供可靠的数据传输,负责将比特流划分为数据帧,进行错误检测和纠正,并控制数据在物理媒介上的访问。

  3. 网络层(Network Layer):负责数据包的路由选择和转发,实现数据在不同网络之间的传输,包括寻址、路由和拥塞控制等功能。

  4. 传输层(Transport Layer):提供端到端的可靠数据传输,负责分段和重组数据,确保数据的完整性和顺序性,包括流量控制和差错恢复等功能。

  5. 会话层(Session Layer):管理和协调应用程序之间的会话,负责建立、维护和终止会话连接,包括对话控制和同步等功能。

  6. 表示层(Presentation Layer):负责数据的格式化和编码,实现不同设备和系统之间的数据转换和兼容性,包括数据加密和压缩等功能。

  7. 应用层(Application Layer):提供网络服务和应用程序的接口,负责处理特定的应用协议和数据,包括电子邮件、文件传输和远程登录等功能。

每个层次都建立在下一层的基础上,并为上一层提供服务。通过这种分层的设计,OSI模型实现了网络协议的模块化和可管理性,使得不同厂商和组织可以根据这个模型进行协议的设计和实现,实现互操作性和可扩展性。

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

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

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

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

【JavaEE】网络原理:网络中的一些基本概念,JavaEE,网络,java-ee,java,开发语言

物理层我们考虑的比较少。因此很多时候也可以称为 TCP/IP四层模型。

网络设备所在分层

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四层;
  • 对于一台路由器,它实现了从网络层到物理层,也即是TCP/IP五层模型的下三层;
  • 对于一台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层;
  • 对于集线器,它只实现了物理层;
     

        注意我们这里说的是传统意义上的交换机和路由器,也称为二层交换机(工作在TCP/IP五层模型的下两层)、三层路由器(工作在TCP/IP五层模型的下三层)。
        随着现在网络设备技术的不断发展,也出现了很多3层或4层交换机, 4层路由器。我们以下说的网络设备都是传统意义上的交换机和路由器。

网络分层对应

网络数据传输时,经过不同的网络节点(主机、路由器)时,网络分层需要对应。
【JavaEE】网络原理:网络中的一些基本概念,JavaEE,网络,java-ee,java,开发语言

 

封装和分用

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。
  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)。
  • 首部信息中包含了一些类似于首部有多长,载荷(payload)有 多长,上层协议是什么等信息。
  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的"上层协议字段"将数据交给对应的上层协议处理。
     

下图为数据封装的过程
【JavaEE】网络原理:网络中的一些基本概念,JavaEE,网络,java-ee,java,开发语言

下图为数据分用的过程
【JavaEE】网络原理:网络中的一些基本概念,JavaEE,网络,java-ee,java,开发语言

下面示对封装和分用过程的一个举例: 

【JavaEE】网络原理:网络中的一些基本概念,JavaEE,网络,java-ee,java,开发语言

分用 

【JavaEE】网络原理:网络中的一些基本概念,JavaEE,网络,java-ee,java,开发语言

【JavaEE】网络原理:网络中的一些基本概念,JavaEE,网络,java-ee,java,开发语言

【JavaEE】网络原理:网络中的一些基本概念,JavaEE,网络,java-ee,java,开发语言文章来源地址https://www.toymoban.com/news/detail-821500.html

到了这里,关于【JavaEE】网络原理:网络中的一些基本概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA中一些基本概念原理的区分

    在 Verilog 中,wire 和 reg 是两种不同类型的变量,它们有着不同的特性和用途 wire 变量用于连接模块中的输入、输出以及内部信号线。 它主要用于表示连续赋值的逻辑连接,类似于硬件电路中的导线。 wire 变量不能在 always 块或 initial 块中赋值,它们只能通过连续赋值“assig

    2024年02月21日
    浏览(39)
  • 网络中的基本概念

    ⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:JavaEE 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 前言 早起的计算机之间是相互独立的,随着时代的发展,计算机实现了互相通信,共享软件和数据,即以多个计算机协同⼯作来完成业务,

    2024年01月18日
    浏览(38)
  • 计算机网络 - 网络中的基本概念

    本篇介绍网络的一些基本概念,认识IP地址,端口号,协议;了解常用的网络协议模型,知道数据如何封装与分用的;为以后学习计算机网络其它知识做铺垫,如有错误,请在评论区指正,让我们一起交流,共同进步! 本文开始 局域网:把一些设备通过交换机 / 路由器 连接

    2023年04月15日
    浏览(85)
  • 网络协议从入门到底层原理学习(一)—— 简介及基本概念

    一、简介 1、网络协议的定义 什么是网络协议? 网络协议是由定义网络上两个或多个设备之间通信的规则、过程和格式组成的正式标准和策略 它们确保计算机网络设备可以使用一种通用语言传输和接收数据,而不管它们的设计、硬件或基础设施如何。 网络协议管理及时、安全

    2024年02月09日
    浏览(52)
  • 【计算机网络】计算机网络中的基本概念

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

    2024年02月06日
    浏览(51)
  • 网络层&&IP协议的基本原理 数据链路层&&ARP协议 域名解析以及一些重要技术

    网络层作用:在复杂的网络环境中确定一个合适的路径。 tcp/ip协议,tcp解决可靠性与效率,ip提供在网络中传输的能力。 传输层决定了单次向下交付数据包的大小。 IP(Internet Protocol)协议是一种网络层协议,用于在互联网上进行数据传输。它定义了数据如何在网络中进行分

    2024年02月15日
    浏览(46)
  • Java网络编程(一)基本网络概念

            网络(network) 是几乎可以实时相互发送和接收数据的计算机和其他设备的集合。网络通常用线缆连接,数据位转换为电磁波,通过线缆移动。不过,无线网络会通过无线电波传输数据,许多长距离的传输现在会用通过玻璃纤维发送可见光的光纤电缆来完成。传输数

    2024年02月16日
    浏览(44)
  • 大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

    预训练属于迁移学习的范畴。现有的神经网络在进行训练时,一般基于反向传播(Back Propagation,BP)算法,先对网络中的参数进行随机初始化,再利用随机梯度下降(Stochastic Gradient Descent,SGD)等优化算法不断优化模型参数。而预训练的思想是,模型参数不再是随机初始化的

    2024年02月17日
    浏览(52)
  • 一文带你彻底了解java 网络编程的基本概念

    主题:探索Java网络编程:构建连接世界的桥梁 作者:Stevedash 发布日期:2023年8月11日 15点18分 (PS:这一篇文章作为总章,今天着重讲“Socket套接字编程”这里的知识,其他模块的知识,后续补上,拆分成单独章节来慢慢完善该文,并且后面会附带上其他文章的链接,会持续

    2024年02月13日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包