UDP/TCP的相关性你知道几个?

news/2024/5/18 11:52:42 标签: udp, tcp/ip, 网络

TCP/IP网络原理——主要围绕UDP/TCP进行讲解

文章目录

  • TCP/IP网络原理——主要围绕UDP/TCP进行讲解
    • 应用层
    • 传输层UDP/TCP
    • TCP
    • 丢包
    • 总结

应用层

网络协议的五层协议分别是应用层,传输层,网络层,数据链路层,物理层,这五层构成。
应用层主要是与程序员相关,代码是和应用层息息相关的,代码的功能就相当于对于该应用层的一种扩展,比如说http就是应用层的关键协议,在使用该协议时,程序员会针对该协议进行一系列的约定,约定数据报,数据格式。
约定方法,简单介绍就是两种。
1.确定传输信息:请求信息,响应信息(这些信息的格式都是由产品需求确定的)
2.数据组织方法。例:将二进制数据转化为字符串数据
2.1)如果是一串需要传输的字符串,可以使用在正文外的所有符号将正文属性信息隔开。
例:hello world!=》hello/world/!
2.2)将数据信息使用xml或者json进行组织。(具体信息需要程序员自行决定)

传输层UDP/TCP

初识UDP,我们定要知道UDP的模样,就像我们刚刚开始认识一个人,定要知道他原本的模样。
在这里插入图片描述

udp报头是由8个字节组成
报头存储的信息:源端口,源IP,源端口,目的端口

  • UDP 协议规定报文长度为 16 位,所以 UDP 的报文长度不能超过 2^16 = 65536 字节=64kb

udp报文是64kb,对于当时的计算机使用来说是很巨大的传输包,所有在当时使用并没有出现问题。而现在由于科技的发展迅速,这64KB对当前的数据传输已经不够用了,虽然可以将数据进行拆分传输,这样的话会增加处理数据的复杂度,因此我们的前辈们经过重重困难,创建了TCP数据传输……

TCP

同样的,在我们认识TCP传输模式时,现将报文格式:

在这里插入图片描述

TCP传输的数据没有限制!!!因为TCP的数据传输没有限制,使用时会有其他的问题。网络传输数据不稳定,有时候会被外界干扰导致数据错误,这时候的校验和及CRC算法就可以帮助检验数据是否正确。

使用校验和(checksum)时,当数据通过校验和,数据也不一定正确,不过没有通过校验和的数据一定是错误的

介绍校验和使用原理:

发送方将载荷数据带入校验和中计算得到sum1,将sum1带入载荷,然后接收方将载荷数据带入校验和中进行计得到sum2,对比sum1和sum2,相同数据可使用,不同则将数据丢弃。

TCP特点

  1. 有连接
  2. 全双工
  3. 可靠传输
  4. 面向字节流

TCP的创造是为了可靠传输!!!(可靠传输是将数据尽可能的传输,没有达到100%成功,不过在TCP数据传输失败会有信息返回)
TCP的应答报文:ACK

ACK是用于接收方对数据的响应策略,当发送方将数据发过去时,会生成相应的序号,如果接收方接收到信息,就会返回ACK报文也就是确认号。比如发送方发送了1000个数据,ACK应答报文会回复1001,此时发送方就会知道对方接受到了数据。这里的回应规则是发送序号的下一个序号。
有时候发送数据也会出现其他情况:先发后至

就像你和你女朋友聊天

女朋友:最近心情不好,有没有时间约个饭?

你:随时都可以

女朋友:我把我闺蜜介绍给你认识?

你:还是算了吧。

这样你们的关系还可以维持,但是如果数据发生了先发后至!

//出现先发后至

女朋友:最近心情不好,有没有时间约个饭?

你:还是算了吧。

女朋友:我把我闺蜜介绍给你认识?

你:随时都可以

兄弟,完了!!!

不过这里的TCP可以帮助你把发送的数据进行排序,所以在这里不会出现先发后至!TCP有一个接收缓冲区,会将接收的数据进行排序。这是TCP非常重要的一个用途。

丢包

丢包也是网络传输经常会遇到的事情,出现丢包的可能情况就是网络传输中设备分配网络不均匀,在多转发,达到转发上限的情况下会出现丢包的情况,注意这里连续丢包是十分严重的问题,需要检查网络设备。
TCP用于解决丢包问题是一把好手!
超时重传:针对丢包时,不会返回确认序号,会等待一段时间后,会重新发送数据,以此类推,没丢包一次系统等待的时间会变长,多次无果会尝试重置连接,如果重置连接失败,最后才会关闭连接。

ACK丢失,也就是确认序号丢失,作为发送方是不会知道ACK丢失的,所以这里会发生数据重传,会发生重复数据的问题,然而TCP有一个重复数据处理机制,可以自动去重。

总结

网络协议的五层模型中应用层与程序员契合度最高,协议约定和组织数据格式都是由程序员决定的。传输层中两大主角UDP/TCP中,UDP的数据稳定但是适用场景不多对于TCP的四大特性,和对数据的传输中的困难和出现的错误都有针对的解决方案,对于TCP中序号的传递可以知道数据传输中的错误和应对错误的解决方法。以上,希望能帮助大家理解UDP/TCP的特性。


http://www.niftyadmin.cn/n/225001.html

相关文章

记录-Vue.js模板编译过程揭秘:从模板字符串到渲染函数

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 Vue.js是一个基于组件化和响应式数据流的前端框架。当我们在Vue中编写模板代码时,它会被Vue编译器处理并转换为可被浏览器解析的JavaScript代码。Vue中的模板实际上是HTML标记和Vue指令的组…

k8s部署流水账

久仰大名k8s,业余选手一直望而却步。最近终于初步炮制成功。知道了大概的流程。本篇为部署备忘录。 经过的大环节有:修改树莓派/boot/cmdline.txt甚至/cmd/config.txt里面的集群相关设置,把cgroup驱动enable好。swap关掉。这些都是所有集群内…

低压接地系统:TN-C 、TN-S、TN-C-S、TT、IT

电力系统的接地直接关系到用户的人身和财产安全,以及电气设备和电子设备的正常运行。如何针对实际情况选择合适的接地系统,确保配电系统及电气设备的安全使用,是电气设计人员面临的首要问题。 根据 国际电工委员会(IEC)规定的各种保护接地方式的术语概念,低压配电系统按…

直播观看指南|SOFA 五周年,Live Long and Prosper!

SOFA 五周年活动将于 2023 年 4 月 15 日(周六)12:00 在北京朝阳区恒通国际创新园 C6 栋 C work 举行!期待社区的小伙伴和对开源感兴趣的小伙伴们一起来现场玩哦~当然啦,不能来现场的小伙伴们也别担心,我们…

数据结构---二叉树

专栏:数据结构 个人主页:HaiFan. 专栏简介:这里是HaiFan.的数据结构专栏,今天的内容是二叉树。 二叉树树的概念及结构二叉树概念及结构二叉树的概念二叉树的存储结构二叉树的顺序结构及实现大根堆和小根堆堆的实现及其各个接口堆的…

【设计模式之美 设计原则与思想:规范与重构】36 | 实战二(上):程序出错该返回啥?NULL、异常、错误码、空对象?

我们可以把函数的运行结果分为两类。一类是预期的结果,也就是函数在正常情况下输出的结果。一类是非预期的结果,也就是函数在异常(或叫出错)情况下输出的结果。比如,在上一节课中,获取本机名的函数&#xf…

记录npm的安装过程

一、访问官网(https://nodejs.org/en),下载nodejs并安装: 然后一路点击next直到安装完成,环境变量已经自动添加好了: 通过设置环境变量,改变本地仓库地址: 可以看到,…

【高等数学】常见不定积分公式详细推导

常见积分公式注意事项!1 ∫cscxdxln∣cscx−cotx∣C\int cscxdxln|cscx-cotx|C∫cscxdxln∣cscx−cotx∣C2 ∫secxdxln∣secxtanx∣C\int secxdxln|secxtanx|C∫secxdxln∣secxtanx∣C3 ∫dxx2−a2ln∣xx2−a2∣C\int \frac{dx}{\sqrt{x^2-a^2}}ln|x\sqrt{x^2-a^2}|…