【JavaEE】_网络通信原理

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

目录

1. 网络发展史

2. 网络通信基础

1.1 IP地址

1.2 端口号

1.3 协议

1.3.1 概念

1.3.2 五元组

1.4  协议分层

1.4.1 协议分层的优点

1.4.2 协议分层的分类

1.4.3网络设备所在分层

1.4.4 两台主机通过TCP/IP协议通讯过程

1.5 封装与分用

1.5.1 封装

1.5.2 分用


1. 网络发展史

(1)单机:计算机之间相互独立;

(2)局域互联网LAN:将多台电脑通过路由器、集线器、交换机等进行连接构成局域互联网;

组件局域网的方式:

① 网线直连; ② 基于交换器组建; ③ 基于集线器组建; ④ 基于交换机和路由器组建;

(3)广域互联网WAN:使用路由器连接多个局域网形成大范围网络,形成广域网;

(局域网与广域网之间没有明确的界限)

注:组件网络涉及到的重要设备:

① 集线器:一根网线分两路,但同一时刻只同一条,比较古早,现今不常见;

② 交换机:组件局域网(不能跨局域网),可以用于扩展路由器的端口,而今带有路由功能的交换机也较常见,故而交换机与路由器的界限也越来越模糊;

③ 路由器:将两个局域网进行连接(跨局域网),一般家用路由器常见是5个网口:I个WAN+4个LAN,其中WAN口用于连接上级路由器;

2. 网络通信基础

网络互联的目的是进行网络通信,即网络数据传输;

1.1 IP地址

1. 在组建的网络中,主机用于输出或是接收数据根据IP地址进行标识,标识了网络设备所在的位置,

即:IP地址用于定位主机的网络地址,唯一标识一个主机

2. 在计算机中,使用一个32位、4字节数字表示地址,一般会把IP地址表示成4个0~255之间的十进制数字,并且用3个点进行分割,这种表示方法称为点分十进制表示法。

1.2 端口号

1. 网络通信时,端口号可以标识主机中发送、接收数据的进程,标识了一个具体的应用程序;

即:端口号用于定位主机中的进程

2. 端口号也是一个整数,大小为2字节,相对IP地址,是一个比较小的数字,范围是0~65535。

3. 不同的程序可以关联/绑定到不同的端口号,要求同一个主机上的应用程序不能关联到同一个端口号。一个端口号只能被一个程序绑定,但一个程序可以绑定多个端口;

如:mysql服务器绑定了3306端口,与此同时mysql还可以绑定其他的端口,但其他的程序就不能绑定3306端口了。

4. 端口号的分类:

第1类:熟知端口号:1~1023,留给一些较常见的服务器程序进行使用的,如:DNS:53端口,HTTP:80端口;

第2类:登记/注册端口号:1024~49151,使用这类端口号必须在IANA登记;

第3类:临时端口(短暂端口号):49152~65535,仅在客户进程运行时才动态选择,通信结束后则端口号收回。

1.3 协议

1.3.1 概念

协议是网络协议的简称,网络协议是网络通信经过的所有网络设备都必须遵从的一组约定、规则;

1.3.2 五元组

在TCP/IP协议中,一次通信涉及到五元组,即:

源IP,源端口,目的IP,目的端口,协议类型

1.4  协议分层

1.4.1 协议分层的优点

基于复杂的网络编程,如果协议过于复杂会导致学习成本、维护成本等都非常高,故而实际情况是复杂的大协议被拆分成若干个相对简单的小协议,令每个协议负责一部分功能,某些协议之间的功能与作用是类似的,故而针对小协议再进行分层,类似于代码中功能类似的类在同一包中;

① 如甲乙用汉语使用电话机打电话时,协议就被分为语言层汉语协议与通信设备层电话机协议,两个协议之间没有必须相互熟知底层原理的必要,类似于封装,降低了学习和维护的成本;

② 如甲乙现用英文或使用无线电话打电话,同时可以灵活地针对某一层协议进行替换;

1.4.2 协议分层的分类

当前互联网的协议分层主要有两种风格:

第一种: OSI 七层网络模型:实际不存在,教科书用于教学;

第二种: TCP/IP 五层(四层)网络模型:实际存在的,是OSI七层模型的简化版本;

【JavaEE】_网络通信原理,JavaEE,网络,java,网络编程

物理层:约定网络通信中基础的硬件设备种类,如通信使用的网线、网口等等;

数据链路层:负责相邻两个结点如何进行传输;

网络层:负责路径的规划;

传输层:负责设备之间的数据传输,即端到端之间的传输,关注起点和终点;

应用层:描述应用程序如何使用数据,可以使用现有协议,也可由程序员自行编写,是程序员最需要关注的一点;

注:(1)主机是五层转发,路由器是三层转发(需解析出IP协议),交换机是二层转发(只需关注下一步发展到哪个相邻的设备上);

(2)基于协议分层的网络数据传输的基础五元组:

(3)应用层协议往往是根据具体的场景与需要,由程序员自主决定的;

源IP、源端口、目的IP、目的端口、协议类型;

1.4.3网络设备所在分层

1. 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,即TCP/IP的全5层;

2. 对于一台路由器,它实现了从网络层到物理层,即TCP/IP五层的下3层;

3. 对于一台交换机,它实现了从数据链路层到物理层,即TCP/IP五层的下2层;

4. 对于一台集线器,它只实现了物理层;

注:(1)交换机的作用是对路由器的端口进行拓展。

1.4.4 两台主机通过TCP/IP协议通讯过程

【JavaEE】_网络通信原理,JavaEE,网络,java,网络编程

注:(1)通信双方的协议必须一致,否则通信无法正常进行;

(2)发送方进行封装,接收方进行分用;

1.5 封装与分用

【JavaEE】_网络通信原理,JavaEE,网络,java,网络编程

1. 不同的协议层的数据报有不同的称谓:在传输层叫做段,在网络层叫做数据报,在链路层叫做帧;

2. 每层协议层增加或剥离的首部信息中包含了一些类似于首部长度、载荷长度以及上层协议名称等信息;

1.5.1 封装

应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称为封装:

【JavaEE】_网络通信原理,JavaEE,网络,java,网络编程

1.5.2 分用

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

【JavaEE】_网络通信原理,JavaEE,网络,java,网络编程文章来源地址https://www.toymoban.com/news/detail-804033.html

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

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

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

相关文章

  • Java网络编程 - TCP通信

    快速入门(一发一收) TCP协议回顾 : TCP是一种面向连接,安全、可靠的传输数据的协议 传输前,采用“三次握手”方式,点对点通信,是可靠的 在连接中可进行大数据量的传输 TCP通信模式 : 在java中只要是使用java.net.Socket类实现通信,底层即是使用了TCP协议 编写客户端代码

    2024年01月19日
    浏览(48)
  • Java网络编程-Socket实现数据通信

    本文主要是为下一篇Websockt做铺垫,大家了解socket的一些实现。 网络编程是指利用计算机网络进行程序设计、开发的技术。网络编程主要包含三个要素,分别是: IP地址和端口号 传输协议 Socket 在计算机网络中,每台计算机都有一个IP地址,用于唯一标识该计算机在网络中的

    2024年02月10日
    浏览(41)
  • Java网络编程之IP,端口号,通信协议(UDP,TCP)

    ① C/S :客户端/服务器 在用户本地需要下载安装客户端程序,在远程有一个服务器端程序。 优点:画面精美,用户体验好 缺点:用户需要下载更新 ② B/S :浏览器/服务器 只需要一个浏览器,用户通过指定网址访问对应的服务器。 优点:不需要开发客户端,只需要页面+服务

    2024年02月03日
    浏览(78)
  • 【Java】网络编程与Socket套接字、UDP编程和TCP编程实现客户端和服务端通信

    为什么需要网络编程? 现在网络普及程序越来越高,网络上保存着我们日常生活中需要的各种资源,使用程序通过网络来获取这些资源的过程就需要网络编程来实现。 什么是网络编程? 网络编程,指网络上的主机,通过不同的进程以程序的方式实现网络通信(网络数据传输)

    2024年02月17日
    浏览(73)
  • 【Java网络编程】基于UDP-Socket 实现客户端、服务器通信

    ​ 哈喽,大家好~我是你们的老朋友: 保护小周ღ   本期为大家带来的是网络编程的 UDP Socket 套接字,基于 UDP协议的 Socket 实现客户端服务器通信 ,Socket 套接字可以理解为是,传输层给应用层提供的一组 API,如此程序,确定不来看看嘛~~ 本期收录于博主的专栏 : JavaEE_保

    2024年02月02日
    浏览(64)
  • 网络编程-Socket通信实现服务器与客户端互传文件(JAVA语言实现)

    在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换. 网络编程三要素:ip地址、端口、协议 ip地址: 每台计算机指定的一个标识符,127.0.0.1是回送地址,可以代表本机地址 ,一般用来测试使用 ipconfig:命令行中查看本机地址 ping ip地址:检查网络是

    2023年04月14日
    浏览(43)
  • 【深入浅出C#】章节 8: 网络编程和远程通信:网络编程和远程通信

    计算机网络是指连接多台计算机设备,通过通信链路共享资源和信息的系统。它构建了一个相互连接的世界,使得人们可以在不同地点进行数据交换和资源共享。网络编程是指在计算机网络中,使用编程语言进行通信和数据传输的技术。现代应用中,网络编程发挥着重要作用

    2024年02月12日
    浏览(60)
  • Java【网络编程2】使用 TCP 的 Socket API 实现客户端服务器通信(保姆级教学, 附代码)

    📕各位读者好, 我是小陈, 这是我的个人主页 📗小陈还在持续努力学习编程, 努力通过博客输出所学知识 📘如果本篇对你有帮助, 烦请点赞关注支持一波, 感激不尽 📙 希望我的专栏能够帮助到你: JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统

    2024年02月05日
    浏览(62)
  • 《3.linux应用编程和网络编程-第8部分-3.8.网络基础》 3.8.1.网络通信概述 3.8.3.网络通信基础知识2

        进程间通信: 管道 、 信号量、 共享内存, 技术多,操作麻烦     线程就是解决 进程间 通信 麻烦的事情,这是线程的 优势 3.8.1.网络通信概述 3.8.1.1、从进程间通信说起: 网络域套接字socket , 网络通信其实就是位于网络中不同主机上面                   的 

    2024年02月15日
    浏览(53)
  • 【JAVAEE】网络原理之网络通信基础

    目录 1. 💋IP地址 1.1 🍟IP地址的格式 1.2 🎁特殊IP地址 2. ✨端口号 2.1  🎃端口号的格式 3. 😘网络协议 3.1 🎨为什么需要网络协议? 3.2 💛网络协议的概念与组成 3.3 🍉知名协议的默认端口 3.4 🐷五元组 4. 🍳网络协议分层 4.1 🍭协议分层的好处 4.2 🎩网络协议的分层模型一

    2023年04月24日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包