【Java EE】网络原理——UDP

目录

1.应用层

2.传输层

2.1端口号

2.1.1端口号的范围划分

2.1.2一个端口号可以被多个进程绑定吗?

2.1.3一个进程可以绑定多个端口号吗?

3.UDP协议

3.1UDP的格式

3.1.1 UDP的源端口号

3.1.2 UDP的目的端口号

3.1.3 UDP长度

3.1.4UDP校验和

3.2UDP的特点

3.3UDP使用注意事项

3.4基于UDP的应用层协议


1.应用层

如何定义协议(1)确定传输信息(2)确定数据格式(xml,json,yml,protobutfer)。

现成的协议:典型代表HTTP协议。

2.传输层

socket api 都是传输层协议提供的。(操作系统内核实现)

负责数据能够从发送端到接受端。

2.1端口号

端口号标识了一个主机上不同通信的不同的应用程序。

端口号的组成 :IP地址(确认主机)+端口号(主机上的应用程序)。IP地址在网络层上,端口号在传输层上。

端口号是两个字节表示的无符号整数。

扩展:

一个字节:有符号:-128~+127;无符号:0~255

两个字节:有符号:-32768~+32767;无符号:0~65535

四个字节:有符号:-21忆~+21忆;无符号:0~42忆9千万

2.1.1端口号的范围划分
  • 0~1023:知名端口号,HTTP,FTP,SSH等这些广为使用的应用层协议,他们的端口号是固定的。
  • 1024~65535:操作系统动态分配的端口号,客户端程序的端口号,就是由操作系统从这个范分配的。

扩展:

知名端口号

  • ssh服务器,使用22端口号
  • ftp服务器,使用21端口号
  • telnet服务器,使用23端口号
  • http服务器,使用80端口号
  • https服务器,使用433端口号
2.1.2一个端口号可以被多个进程绑定吗?

同一个机器上,同一时刻内,端口号不能重复被绑定。

那么。如何确定在当前机器上某个端口号是否被其他进程使用呢?

使用netstart命令

netstart - ano | finder 9090
//netstart封装好api的一个可执行程序。
//Finder筛选查找,查询出当前主机中是否有9090端口号
// | 管道,报多个命令组合起来,把第一个命令的输出当做第二个命令的输入。

两个进程不能同时绑定一个端口号:

如果一个是TCP,一个是UDP,此时重复并不影响。

如果是两个TCP或者两个UDP,都会绑定失败。

2.1.3一个进程可以绑定多个端口号吗?

一个进程同一时刻可以绑定多个端口号。

一个进程可以使用多个Sever Socket绑定多个端口号。

管理端口:程序员+运行人员。

业务端口:普通用户

调试端口:程序员

3.UDP协议

3.1UDP的格式

UDP数据报=UDP报头+UDP载荷

3.1.1 UDP的源端口号

源端口号:这个数据是从哪里来。

3.1.2 UDP的目的端口号

目的端口号:这个数据传输到哪里。

3.1.3 UDP长度

描述了整个UDP数据报战了多少个字节,最大长度为64kb。

3.1.4UDP校验和

目的:(1)能够发现出错。(2)能发现哪一位出错,并进行纠正。

本质上,是引入额外的冗余信息,验证原有信息。

CRC算法作为校验和

md5的特点:

  • 定长:无论输入多长,得出的结果是固定长度。
  • 分散:数的内容改变一点点,最终结果差异都很大。
  • 不可逆:可以通过原数据计算出md5,但是知到md5不能计算出原数据。

md5破解只是查找。

还有sha1和md5差不多。

3.2UDP的特点

UDP传输具有的特点:

  • 无连接:知道对端的IP和端口号就直接进行传输,不需要建立连接。
  • 不可靠传输:没有确认机制,没有重传机制;如果因为网络故障该段无法发送到对方,UDP协议层也不会给应应用层返回任何错误信息。
  • 面向数据报:不能灵活的控制读写数据的次数和数量。
  • 全双工方式
3.3UDP使用注意事项

UDP协议首部中有一个16位的最大长度,也就是说一个UDP能传输的数据最大长度是64kb(包含首部)

如果我们需要传输的数据超过64kb,就需要在应用层手动的分包,多次发送,并在接收端手动拼装。

3.4基于UDP的应用层协议
  • NFS:网络文件系统
  • TFTP:简单文件传输协议
  • DHCP:动态主机配置协议
  • BOOTP:启动协议(用于无盘设备启动)
  • DNS:域名解析协议

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

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

相关文章

故障——蓝桥杯十三届2022国赛大学B组真题

问题分析 这道题纯数学&#xff0c;考察贝叶斯公式 AC_Code #include <bits/stdc.h> using namespace std; typedef pair<int,double> PI; bool cmp(PI a,PI b){if(a.second!b.second)return a.second>b.second;return a.first<b.first; } int main() {i…

上班不想用脑子写代码了怎么办?那就试试Baidu Comate啊宝贝

本文目录 前言1、视频编程实战1.1、熟悉代码库中的代码1.2、参考现有代码编写新代码 2、下载使用教程3、使用体验3.1、AutoWork 产品测评3.2、解决有关ajax请求后重定向问题3.3、询问编程相关知识3.3.1、cookie和session的区别与联系3.3.2、数据库中主键外键的相关知识 4、问题…

《大疆二次开发》EMQX和MQTT部署

EMQX 服务器 基础知识 概念 EMQX (Erlang/Enterprise/Elastic MQTT Broker) &#xff1b;EMQ/EMQX就是MQTT Broker的一种实现&#xff1b;一款开源的大规模分布式 MQTT 消息服务器&#xff0c;功能丰富&#xff0c;专为物联网和实时通信应用而设计&#xff1b;支持多种协议&…

医院预约挂号|基于Springboot+vue的医院预约挂号系统小程序的设计与实现(源码+数据库+文档)

医院预约挂号系统小程序 目录 基于Springboot&#xff0b;vue的医院预约挂号系统小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 1小程序端 后台功能模块 4.2.1管理员功能 4.2.2医生功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选…

linux 性能监控命令之dstat

1. dstat 系统默认为安装&#xff0c;直接安装阿里源后&#xff0c;yum install -y dstat安装即可&#xff0c;该命令整合了 vmstat &#xff0c; iostat 和 ifstat&#xff0c;我们先看下效果&#xff1a; 我们先看看具体参数&#xff1a; [rootk8s-master ~]# dstat --help …

关于勒索攻击,绝大多数企业存在的三个认知误区

网络空间&#xff0c;有一个挥之不去的“幽灵”&#xff0c;它的名字就叫勒索攻击。 近年来&#xff0c;企业遭受勒索攻击的事件被频频曝光。就在不久前&#xff0c;国家安全部曝光了一起境外黑客组织对我国某高新科技企业实施勒索攻击的案例&#xff0c;该企业的相关信息化系统…

修改mysql locahost或者127.0.0.1弱密码问题

一、登录有问题的数据库 sudo mysql -uroot -pxxx -hkde-offline1 -P13306 二、查询user表 这将显示与 root 用户关联的主机、用户名以及加密后的认证字符串(密码)。请注意,authentication_string 列中存储的是经过哈希加密后的密码,而不是原始密码。 MySQL [mysql…

AD3552/AD3551驱动开发

开发环境&#xff1a;Vivado2021.2 ; Windows with Cygwin HDL版本&#xff1a;hdl_2021_r2 GitHub - analogdevicesinc/hdl at hdl_2021_r2 no-OS版本&#xff1a;no_OS-2021_R2 GitHub - analogdevicesinc/no-OS at 2021_R2 1.创建hdl 详细步骤参见参考链接1&#xf…

路由的基本使用

目录 一、VueRouter介绍 二、VueRouter的使用 三、注意 一、VueRouter介绍 VueRouter是Vue官方的一个路由插件&#xff0c;是一个第三方包。 作用&#xff1a;修改地址栏路径时&#xff0c;切换显示匹配的组件 官网:Vue Router (vuejs.org) 二、VueRouter的使用 注意&am…

ionic 中对Input输入框、searchbar进行solr检索

一、概述 Ionic 是一个用于开发跨平台应用程序的开源工具&#xff0c;可以使用 Angular、React 或 Vue 等前端框架。要在 Ionic 应用程序中实现实时与 Solr 通信&#xff0c;可以使用 HTTP 客户端&#xff08;如 Angular 的 HttpClient 或 Ionic 的 Native HTTP&#xff09;…

基于springboot的学生毕业选题管理系统

1.项目简介 作为高校毕业生的一个毕业设计选题系统&#xff0c;它就面对着许多用户的操作&#xff0c; 而这些用户对系统的操作应该有所不同&#xff0c;所以我们在设计时必须要对不同的用 户设立不同的的权限。在本系统中&#xff0c;我考虑了 3 种权限&#xff08;管理员&…

一键复制:基于vue实现的tab切换效果

需求&#xff1a;顶部栏有切换功能&#xff0c;内容区域随顶部切换而变化 目录 实现效果实现代码使用示例在线预览 实现效果 如下 实现代码 组件代码 MoTab.vue <template><div class"mo-tab"><divv-for"item in options"class"m…