[JAVAee]网络通信基础

news/2023/11/28 18:08:10

目录

IP地址

端口号

网络协议

五元组

TCP/IP五层模型


网络互连之间的目的就是为了相互通信,传输数据,是可以不同进程间的基于网络的数据传输.

而IP就可以确定网络通信的双方. 

IP地址

IP地址主要用于定位标识网络主机或其他网络设备的网络地址.(就像快递的收货地址一般)

格式:

IP地址是32位的二进制数,通常被分割为4个8位二进制数即4个字节

11000000.10101000.00010101.00000001

转换成点分十进制为:192.168.21.1

端口号

端口号之前在进程中也有介绍,其是用来定位主机中的进程.进程可以通过绑定一个进程号来发送及接收数据

格式:

端口号是0~65535之间的数字,在网络通信中,进程可以通过绑定一个端口号来发送及接收网络数据.

注意:一个进程可以绑定多个端口号,但一个端口号只能被一个进程绑定.(进程与a通信需要一个端口号,而与b通信又额外的需要一个新的端口号来通信)

网络协议

网络通信上,传输的都是0或1的二进制数据.但网络传输数据的类型是多种多样的,文本,图片,视频或音频.这时候网络通信就需要协议来规定双方的数据格式

在网络通信上的网络设备都必须共同遵守一组约定,规则.只有遵守了这些协议,计算机之间才能相互通信交流.

网络协议通常由三要素构成:

  • 语法:数据的结构或格式
  • 语义:设备需要发出的信息或需要完成的任务
  • 时序:任务实现顺序的说明

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

世界上有多种操作系统,多种计算机的生产商还有很多的网络设备硬件.协议的出现,就算为了解决他们之间的参差,规定了一定的标准方便网络的通信.

五元组

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

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

TCP/IP五层模型

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

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


http://www.ppmy.cn/news/1011751.html

相关文章

56从零开始学Java之与字符串相关的正则表达式

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在上一篇文章中,壹哥给大家介绍了String字符串及其各种常用API方法,接下来壹哥…

2023-08-07 LeetCode每日一题(反转字符串)

2023-08-07每日一题 一、题目编号 344. 反转字符串二、题目链接 点击跳转到题目位置 三、题目描述 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、…

智慧消防 | 气体灭火系统压力在线监测正当其时

气体灭火设备在消防安全系统中扮演着重要的角色。根据最新版的《气瓶安全技术规程》TSG23-2021规定,IG541气体钢瓶需要每3年进行一次检测。未按时进行检测可能导致压力掉压、瓶体外部锈蚀、钢瓶位置钢瓶内部腐蚀等风险,这些问题都可能对消防安全和效能产…

深入探究Spring核心模块

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

Vercel 部署的项目发现APIkeys过期了怎么办

好不容易部署的Vercel,发现APIkeys过期了显示,查了查资料发现只要更新下新的apikeys,然后再重新部署下就好了。 重新设置APIkeys 1.1. 进去 Vercel 项目内部控制台,点击顶部的 Settings 按钮; 1.2 点击环境变量Enviorn…

Idea配置Scala开发环境

1.首先安装scala插件: File--->Setting---->plugins,在输入框中输入scala,然后点击“Install”即可安装scala,需要稍微等待几分钟。 2 创建项目: File ---->new---->project-----Maven--->Next----输入名称(test…

无损音乐从哪找?五个网站+免费下载,你确定不来看看?

hi,大家好我是技术苟,每天晚上22点准时上线为你带来实用黑科技!由于公众号改版,现在的公众号消息已经不再按照时间顺序排送了。因此小伙伴们就很容易错过精彩内容。喜欢黑科技的小伙伴,可以将黑科技百科公众号设为标星…

pinctrl_desc结构体注册

pinctrl_desc结构体注册 文章目录 pinctrl_desc结构体注册pinctrl_registerpinctrl_register_pins注册所有的引脚 pinctrl_register 构建好struct pinctrl_desc结构以后,会调用pinctrl_register函数注册一个pinctrl控制器,得到一个pinctrl_dev struct …

如何进行高效的知识管理?5款好用的桌面思维导图软件推荐!

一 、思维导图:高效知识管理法 近年来,随着网络资源的丰富,共享的、私域的、免费的、付费的,大量的知识信息呈一种铺天盖地之势,知识管理变得越来越重要。无论是学生、教师、企业家还是其他专业人士,都…

基于java+Apriori算法的网络书城设计与实现

摘要 网络技术的发展市场的销售模式发生了巨大的改变,现在销售网站引用电子商务网站网站设计的基本流程,引用网站网站的开发生命周期法和结构化方法,使用JSP语言来设计并实现了书籍网上销售网站。本书籍销售网站分为前台、后台两个模块。前台…

stm32项目(3)——基于stm32的火焰检测器

目录 1.功能描述 2.功能演示视频 3.实现方案 3.1.火焰传感器 3.2.蜂鸣器模块 3.3.LED灯 4.程序分析 5.课题意义 6.发展前景 1.功能描述 本次设计的火焰检测器功能如下: 使用火焰传感器检测火焰强度,检测到火焰时,如果火焰强度没有超…

Python数据分析实战-dataframe指定多列去重(附源码和实现效果)

实现功能 Python数据分析实战-利用df.drop_duplicates(subset[,])对dataframe指定多列去重 实现代码 import pandas as pddata{state:[1,1,2,2,1,2,2],pop:[a,b,c,d,b,c,d]} framepd.DataFrame(data)frameframe.drop_duplicates(subset[pop,state]) print(frame) 实现效果 本…

Golang之路---04 并发编程——WaitGroup

WaitGroup 为了保证 main goroutine 在所有的 goroutine 都执行完毕后再退出,前面使用了 time.Sleep 这种简单的方式。 由于写的 demo 都是比较简单的, sleep 个 1 秒,我们主观上认为是够用的。 但在实际开发中,开发人员是无法…

微服务架构的模式介绍

1.微服务架构模式方案 用Scale Cube方法设计应用架构,将应用服务按功能拆分成一组相互协作的服务。每个服务负责一组特定、相关的功能。每个服务可以有自己独立的数据库,从而保证与其他服务解耦。 1.1 聚合器微服务设计模式 聚合器调用多个服务实现应用程…

APP外包开发的开发语言对比

在开发iOS APP时有两种语言可以选择,Swift(Swift Programming Language)和 Objective-C(Objective-C Programming Language),它们是两种不同的编程语言,都被用于iOS和macOS等苹果平台的软件开发…

idol!! 2023牛客暑期多校训练营6 C

登录—专业IT笔试面试备考平台_牛客网 题目大意&#xff1a;定义n!!等于与n的奇偶性相同的所有小于等于n的数的阶乘之和&#xff0c;问n!!的末尾有多少0 1<n<1e18 思路&#xff1a;因为末尾0的来源是2*5&#xff0c;而2的个数明显比5的个数多得多&#xff0c;所以末尾…

vue-router相关(持续更新中)

文章目录 router-viewrouter-view的嵌套router.addRoute复杂嵌套实例 总结 router-view <router-view></router-view>router-view 是Vue Router中的一个组件&#xff0c;用于渲染匹配到的路由组件。它是用来显示当前路由对应的组件内容的占位符。 即当前路由组件会…

final,static,this,super 关键字总结

文章目录 final 关键字static 关键字修饰成员变量和成员方法(常用)静态代码块静态内部类静态导包 this 关键字super 关键字补充内容静态方法与非静态方法static{}静态代码块与{}非静态代码块(构造代码块) final 关键字 final关键字&#xff0c;意思是最终的、不可修改的&#…

【嵌入式环境下linux内核及驱动学习笔记-(18)LCD驱动框架1-LCD控制原理】

目录 1、LCD显示系统介绍1.1 LCD显示基本原理1.1.1 颜色的显示原理&#xff1a;1.1.2 图像的构成 1.2 LCD接口介绍1.2.1 驱动接口 - MCU接口1.2.2 驱动接口 - RGB接口1.2.3 驱动接口 - LVDS接口1.2.4 驱动接口 - MIPI接口1.2.5 RGB / MIPI / LVDS三种接口方式的区别&#xff1a…

Vue2与Vue3—引入DataV

一、文档参考 vue2使用DataV文档 vue3使用DataV文档 二、开始 1、npm安装DateV 支持npm、pnpm、yarn V2&#xff1a; npm install jiaminghi/data-viewV3&#xff1a; npm install kjgl77/datav-vue32、全局引入DataV // main.ts中全局引入 v2: import dataV from jiaminghi/…
最新文章