当前位置: 首页 > article >正文

javaEE-网络原理-2网络编程

目录

为什么需要⽹络编程?

什么是网络编程?

一、网络编程中的基本概念

1.发送端和接收端

2.请求和相应

3.客户端和服务器

4.客户端和服务端之间的模式:

二、TCP/UDP

TCP的特点:

UDP的特点:

1.有连接/无连接:

2.可靠传输/不可靠传输:

3.面向字节流/面向数据报:

4.全双工/半双工:


为什么需要⽹络编程?

⽤⼾在浏览器中,打开在线视频⽹站,如优酷看视频,实质是通过⽹络,获取到⽹络上的⼀个视频资 源。与本地打开视频⽂件类似,只是视频⽂件这个资源的来源是⽹络。

相⽐本地资源来说,⽹络提供了更为丰富的⽹络资源:

所谓的⽹络资源,其实就是在⽹络中可以获取的各种数据资源。所有的⽹络资源,都是通过⽹络编程来进⾏数据传输的。

什么是网络编程?

网络编程,网络上的主机,通过不同的进程,以编程的方式进行网络通信(网络数据传

输)。

只需要满足进程不同就行,对于同一台主机,只要是不同的进程,基于网络来传输数据,就属于网络通信。

特殊的,对于开发来说,在条件有限的情况下,⼀般也都是在⼀个主机中运⾏多个进程来完成⽹络编 程。 但是,我们⼀定要明确,我们的⽬的是提供⽹络上不同主机,基于⽹络来传输数据资源:

• 进程A:编程来获取⽹络资源

• 进程B:编程来提供⽹络资源

网络编程中“数据单位”涉及到的术语:

段:segment  TCP数据段

报:datagram  UDP数据报

包:packet  IP数据包

帧:frame  以太网数据帧

一、网络编程中的基本概念

1.发送端和接收端

在一次的数据传输时:

发送端数据的发送方进程,称为发送端。即网络通信中的源主机。

接收端:数据的接收方进程,称为接收端。即网络通信中的目的主机。

收发端:发送端和接收端两端,即收发端。

注意:发送端和接收端只是相对的,只是一次数据传输产生数据流向后的概念。

2.请求和相应

获取一个网络资源,涉及到两次网络数据传输:

第一次:请求数据的发送(response);

第二次:响应数据的发送(request).

客户端给服务端发送的数据,称为请求;服务端给客户端返回的数据,称为相应。

就像去餐馆买饭:点一份到炒饭(请求数据的发送),厨师把饭端上来(响应数据的发送)。

3.客户端和服务器

服务端:在网络数据传输的过程中,把提供服务的一方进程,称为客户端。可以提供对外服务,被动接受通信的一方。

客户端:获取服务的进程,称为客户端。主动发起通信的一方。

好比银行存款:用户(客户端)保存资金在银行(服务端)。

4.客户端和服务端之间的模式:

1、“一问一答”:一个请求对应一个响应。

网站开发最常使用这种模式。

2、“一问多答”:一个请求对应多个相应。

在“下载”场景中,较多用到这个模式。

3.“多问多一”:多个请求对应一个相映。

在“上传”场景中,最长用到这个模式。

4.“多问多答”:可能一个请求对应多个响应,也可能一个响应对应多个请求。

远程操控/远程桌面都是多问多答的形式。

二、TCP/UDP

要想进行网络间编程,要使用系统提供的api,本质上这些都是传输层提供的。

传输层涉及到的协议有两个:TCP :TransmissionControlProtocol(传输控制协议),

                                              UDP:  User Datagram Protocol(⽤⼾数据报协议)。

这两个协议的差别很大,他们的api差别也很大。

TCP的特点:

有链接,可靠传输,面向字节流,全双工。

UDP的特点:

无连接,不可靠传输,面向数据报,全双工。

1.有连接/无连接:

这里的连接不是物理上的连接,而是抽象的连接,虚拟的连接。

就像两人结婚,买个房子,两人生活在一起,是物理的连接;领结婚证,两人称为夫妻,是抽象的连接。

有连接的通信:就像打电话,一方打电话,另一方只有接通电话才能进行通信,这就是有链接通信。连接的特点是双方都同意才行。

无连接的通信:类似于发微信/发短信,只要发送发发了消息,不论接收方是否想要收到,都能接收到消息。

2.可靠传输/不可靠传输:

网络上的 “异常事件” 非常多,无论使用什么样的软硬件手段,都无法做到100%实现网络数据从A传送到B.

“可靠传输”,就是尽可能的完成数据的传输。虽然无法确保数据从A传送到B,但可以知道这个数据接收方是否收到了。

此处的“可靠传输”,就是发送方能够感知到 接收方发送的数据是否成功到达。

3.面向字节流/面向数据报:

面向字节流:这里的字节流和文件中谈到的字节流是一样的,网络数据传输的基本单位就是字节。

面向数据报:每次传输的单位是一个数据报(一系列数字)的特定结构。

4.全双工/半双工:

全双工:一个信道,可以双向通信。

类似于公路,可以来回行驶。

半双工:只能单向通信。


http://www.kler.cn/a/465652.html

相关文章:

  • 创建并配置华为云虚拟私有云
  • 【蓝桥杯研究生组】第14届Java试题答案整理
  • USB子系统学习(一)USB电气信号
  • 【计算机视觉技术 - 人脸生成】2.GAN网络的构建和训练
  • 探索AI在地质科研绘图中的应用:ChatGPT与Midjourney绘图流程与效果对比
  • zsh 配置备忘
  • 网安数学基础期末复习
  • 单源最短路径【东北大学oj数据结构12-2/3】C++
  • 【JAVA】java中将一个list进行拆解重新组装
  • Kafka集群的常用命令与策略
  • 从室内到室外:移动机器人的环境适应之旅
  • 企业级网络运维管理系统:构建高效与稳定的基石
  • 电化学气体传感器在物联网中的精彩表现
  • 文本表征的Scaling Laws:Scaling Laws For Dense Retrieval
  • 02.01、移除重复节点
  • 【Ubuntu】安装华为的MindSpore
  • 2、pycharm常用快捷命令和配置【持续更新中】
  • Jetpack Compose 学习笔记(一)—— 快速上手
  • 智能边缘计算×软硬件一体化:开启全场景效能革命新征程(企业开发者作品)
  • kafka小实站
  • SASS 简化代码开发的基本方法
  • AcWing练习题:平均数2
  • 肿瘤免疫循环与肿瘤免疫治疗的关系
  • 《Vue3实战教程》39:Vue3无障碍访问
  • 初学stm32 --- FSMC驱动LCD屏
  • XML里预定义的字符实体引用