网络原理-TCP/IP --传输层(UDP)

2024-06-01 13:36
文章标签 ip 原理 udp 网络 tcp 传输层

本文主要是介绍网络原理-TCP/IP --传输层(UDP),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

T04BF

👋专栏: 算法|JAVA|MySQL|C语言

🫵 今天你敲代码了吗

目录

        • 端口号
        • UDP协议

端口号

我们在学习套接字的时候,涉及到两个概念:IP地址和端口号

IP地址是用来确定主机,这是网络层提供的概念

而端口号就是用来确定主机上的应用程序,就是传输层的概念的

端口号是 一个2个字节的无符号整数,不能同时被不同的应用程序绑定

那么我们怎么知道当前这个端口是否已经被主机上的某个悠应用程序绑定了呢??
在cmd输入netstat -ano | findstr 端口号命令即可

此命令就是查询出当前的机器上是否有使用某个端口号的进程

但是如果一个服务器是TCP,一个服务器是UDP,那么此时端口号重复了,是不会有影响的

那么一个进程绑定多个端口号是否可行呢??
----非常可行,而且在日常开发经常用得到

就比如我们写一个服务器程序,首先服务器需要有一个端口号,是给客户端提供业务功能的,这样的端口称为"业务端口"
但是程序员还需要对这个服务器进行更加精细的控制,比如控制这个服务器加载配置 / 开启某一个功能 / 重新启动 / 重新加载数据 / 修改某个选项设定
这样的操作,经常是要通过网络来进行操作的,服务器就会另外设置一个端口号,称为"管理端口",程序员想对这个服务器进行管理操作,就通过管理端口给服务器发送一些对应的请求,服务器就执行对应的逻辑
另外,我们在日常开发中会遇到一些bug,需要去查看服务器的一些运行状态(比如服务器的一些关键变量是什么样的值),但服务器不能直接去调试(调试会把服务器阻塞住,无法给别的客户端提供服务了),此时也是借助网络的方式来给服务器发送请求,服务器返回对应的关键信息,这样的端口称为"调试端口"

UDP协议

学习一个网络层协议,最主要的就是学习报文格式

对于UDP来说,当应用层数据到达传输层的时候,就会在应用层数据报前面拼接上 UDP 报头

在这里插入图片描述
在UDP报头里面,每两个字节对应的部分 都会有特定的含义
在这里插入图片描述
我们重点关注的是后面两个
UDP长度就是描述了当前整个UDP数据报,占多少个字节,即我们通过UDP长度就能知道当前的载荷一共是多少个字节

两个字节的范围是 0 - 65535,也就是整个UDPS数据报的长度,最多的存储空间就是 65535个字节,也就是64kb,不能再长了
此时使用UDP开发程序就会受到很大的制约
就要保证,单次传输的数据报,不能超过 64kb

还有一个就是校验和

校验和是什么?? 就是数据引入冗余信息,通过冗余信息来验证原有的数据
校验和就是拿着数据(一部分)进行一系列计算,得到结果,如果数据部分发生改变,那么结果也就不一样

数据在网络传输的过程是可能会出错的,
最常见的就是"比特翻转"
就是像0101这样的二进制数据,本来的传输的是0,实际上到的时候数据变成1了
是由于受到了外界(电信号,光信号,电磁波)的干扰

那么我们就需要方法,来对传输的数据进行校验

第一层就是要能够发现当前传输的数据是否出错了,第二层就是 要能够发现是哪一位出错了

做到第一层的代价是比较小的,相比之下第二层的代价就更大(消耗的时间空间更多)
UDP校验和只能做到第一层

但是实际上本质都是要引入额外的冗余信息

在这里插入图片描述
当数据到达对端主机之后,就会按照相同的算法,针对数据内容再计算一遍校验和,就拿着这个校验和 和 收到的校验和 进行比较
如果发现不一样,就说明在传输过程发生了比特翻转

而一旦发现这两个校验和 不一样,就会把这个数据丢掉

UDP现在最主要的用途,就是应用于对于性能要求比较高,但是对于可靠性要求不高的场景

(就比如在分布式系统中,多个服务器之间的相互通信,多个机器在同一个机房里面,网络结构简单 && 带宽充裕)

在这里插入图片描述

T04BF

🫵 今天记得敲代码

这篇关于网络原理-TCP/IP --传输层(UDP)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1021155

相关文章

【Altium】查找PCB上未连接的网络

【更多软件使用问题请点击亿道电子官方网站】 1、文档目标: PCB设计后期检查中找出没有连接的网络 应用场景:PCB设计后期,需要检查是否所有网络都已连接布线。虽然未连接的网络会有飞线显示,但是由于布线后期整板布线密度较高,虚连,断连的网络用肉眼难以轻易发现。用DRC检查也可以找出未连接的网络,如果PCB中DRC问题较多,查找起来就不是很方便。使用PCB Filter面板来达成目的相比DRC

通信系统网络架构_2.广域网网络架构

1.概述          通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现资源子网的共享。 2.网络组成          广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成

Toolbar+DrawerLayout使用详情结合网络各大神

最近也想搞下toolbar+drawerlayout的使用。结合网络上各大神的杰作,我把大部分的内容效果都完成了遍。现在记录下各个功能效果的实现以及一些细节注意点。 这图弹出两个菜单内容都是仿QQ界面的选项。左边一个是drawerlayout的弹窗。右边是toolbar的popup弹窗。 开始实现步骤详情: 1.创建toolbar布局跟drawerlayout布局 <?xml vers

[vivado][IP核]FFT

刘东华的IP核详解: 1、 2、

[vivado][IP核]DDS

刘东华的IP核详解: 1、 这里的是指IP核配置中的相位数据的宽度。 2、 实际使用此IP核时并没有“频率分辨率”可以配,是靠改变来变的。 3、 4、 5、 数据输出的ready在数据正式输出时才会有。 自己仿真: 使用SIN/COS LUT only的模式,使用一个累加器作为相位输入,不知怎么,输出为X。

[ip核][vivado]aurora

Xapp1193:  discovered:1)并不是所有芯片都支持aurora.xc7z010就没有。                     2)XDC文件的指令-允许未约束的引脚的存在:                 set_property BITSTREAM.General.UnconstrainedPins {Allow} [current_design] PG046

[ip核][vivado]Block Menory Gennerator 学习

<刘东华的xilinx系列FPGA芯片IP核详解>读书摘录: 1. 2. 3.

[ip核][vivado]FIFO 学习

<xlinx FPGA应用进阶 通用IP核详解和设计开发>读书摘录: 1.        2.3.仿真模型 特点总结:1)复位后会有busy状态,需要等待wr_rst_busy信号低电平后才能正常写入                  2)prog_full信号的高电平长度可调                  3)仿真中的读状态很奇怪,并没有正常读取,都是XXX的状态。 所用的te

数据库原理与安全复习笔记(未完待续)

1 概念 产生与发展:人工管理阶段 → \to → 文件系统阶段 → \to → 数据库系统阶段。 数据库系统特点:数据的管理者(DBMS);数据结构化;数据共享性高,冗余度低,易于扩充;数据独立性高。DBMS 对数据的控制功能:数据的安全性保护;数据的完整性检查;并发控制;数据库恢复。 数据库技术研究领域:数据库管理系统软件的研发;数据库设计;数据库理论。数据模型要素 数据结构:描述数据库

计算机组成原理——RECORD

第一章 概论 1.固件  将部分操作系统固化——即把软件永恒存于只读存储器中。 2.多级层次结构的计算机系统 3.冯*诺依曼计算机的特点 4.现代计算机的组成:CPU、I/O设备、主存储器(MM) 5.细化的计算机组成框图 6.指令操作的三个阶段:取指、分析、执行 第二章 计算机的发展 1.第一台由电子管组成的电子数字积分和计算机(ENIAC) 第三章 系统总线