计算机网络 运输层上 | 运输层概述 UDP协议 端口 套接字

news2024/9/26 3:25:52

文章目录

  • 1 运输层概述
    • 1.1 运输层存在的意义
    • 1.2 运输层协议概述
    • 1.3 主要端口号
  • 2 运输层主要协议 UDP
    • 2.1 UDP的特点
    • 2.2 UDP首部格式
    • 2.3 UDP工作流

1 运输层概述

1.1 运输层存在的意义

之前我们讲网络层的时候,已经可以将信息从一个主机传递到另一个主机了。

那么为什么我们还需要运输层呢?

是因为我们两个主机通信的时候,大多数情况是两个主机不同的进程在通信,比如我们浏览器访问需要一个进程,发邮件又需要一个进程。很多时候这些进程都是并行通信的。那么网络层是无法区分的,实际的区分通信的不同进程就交给了运输层,这也是运输层的重要作用——复用和分用

当然除了复用和分用,运输层还提供一些其他的功能如差错检测等

应用层不同进程的报文通过不同的端口向下交付到运输层

运输层提供应用进程的逻辑通信——逻辑通信的意思是:运输层之间的通信好像是沿着水平方向传送数据,但事实上这两个运输层之间并没有一条水平方向的物理连接

所以总结来看

网络层和运输层的区别

网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信

1.2 运输层协议概述

运输层主要有两个不同的运输协议

TCP和UDP

他们各自的PDU(运输协议单元如下)

UDP:它的PDU是TCP报文段

TCP:它的PDU是UDP报文段或用户数据报

那么实际中运输层如何区分不同的进程呢?通过抽象了端口号这种方式

由此可见,两个计算机中的进程需要对方的IP地址,还要知道对方的端口号(为了找到对方计算机中的应用程序)

不同端口号代表不同进程。

设计者们对端口号做了如下一些规定

1.3 主要端口号

两大类端口

(1)服务端使用的端口号

又分为两大类

熟知端口,数值一般为0~1023

​ 熟知端口号用来指派给TCP/IP最重要的一些程序,如下图所示

登记端口,数值为1024~49151

​ 没有数值端口使用的,使用的话必须登记

(2)客户端使用的端口号

短暂端口号,数值49152~65535

​ 仅在客户端进程运行时动态选择,因此又叫做短暂端口号
在这里插入图片描述

下面分别讨论UDP和TCP

其中UDP比较简单

2 运输层主要协议 UDP

UDP只在IP数据报上增加了很少一点的功能,即端口功能和差错检测的功能

2.1 UDP的特点

  1. UDP是一种无连接协议
  • 提供无连接服务 传送数据前不需要先建立连接
  • 不提供可靠交付 对方的运输层在收到UDP报文后,不需要给出任何确认
  1. 尽最大努力交付
  2. 没有拥塞控制
  3. UDP支持一对一,一对多,多对一和多对多的交互通信
  4. 对于应用层的报文,不合并不拆分,多长就都发送
  5. UDP首部开销较小

2.2 UDP首部格式

UDP首部很简单就八个字节,由四个字段组成,每个字段长度都是2字节

  1. 源端口
  2. 目的端口
  3. 长度 数据报长度,最小值是8
  4. 检验和 检测传输中是否有错

2.3 UDP工作流

如果接收方UDP发现报文端口号不正确,就丢弃该报文,并由ICMP发送“端口不可达”差错报文给发送方

对于UDP的差错检测,和IP数据报检测方法类似

  1. 首先,将UDP首部中的检验和字段置为0,以便进行计算。

  2. 将UDP伪首部添加到UDP数据包前面。伪首部包含了一些IP层的信息,用于计算检验和。伪首部的格式如下:

    Source IP Address (32 bits)
    Destination IP Address (32 bits)
    Reserved (8 bits, 值为0)
    Protocol (8 bits, UDP的协议值为17)
    UDP Length (16 bits, UDP首部+UDP数据的总长度)
    

    伪首部中的字段分别是源IP地址、目标IP地址、保留字段、协议字段(UDP的协议值为17)和UDP长度字段。这些字段一起构成了伪首部。

  3. 将UDP伪首部的各字段以及UDP首部和UDP数据中的所有16位字(如果数据不是16位的倍数,需要填充0使其满足16位字的条件)进行按位求和。这意味着将它们视为16位整数,将它们相加,如果结果溢出,则将溢出部分加到总和的末尾。

  4. 取总和的反码(将所有位取反,1变为0,0变为1),并将结果存储在UDP首部的检验和字段中。

  5. 发送方将带有计算后的检验和字段的UDP数据包发送到目标主机。

  6. 接收方在收到UDP数据包后,重复以上步骤,计算接收方的检验和。

  7. 接收方将计算得到的检验和与UDP首部中的检验和字段进行比较。如果它们匹配,说明数据包未损坏;如果不匹配,说明数据包可能已损坏或被篡改,接收方可以选择丢弃这个数据包。

总之,UDP检验和用于检测UDP数据包在传输过程中的完整性,但它不提供数据包的可靠传输和重传机制。如果检验和不匹配,接收方可以选择忽略数据包或向上层报告错误,但UDP本身不会进行重传。这是与TCP不同的地方,TCP提供了可靠的数据传输和重传机制。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

轻推API无代码集成:创新电商CRM与客服系统

无代码API集成的力量:电商与CRM无缝对接 随着电子商务的快速发展,电商平台与客户关系管理(CRM)系统的高效对接成为商家竞争力的关键。无代码API集成平台如轻推,提供了简单易用的解决方案,使得电商企业能够…

机器学习中的一些经典理论定理

PAC学习理论 当使用机器学习方法来解决某个特定问题时,通常靠经验或者多次试验来选择合适的模型、训练样本数量以及学习算法收敛的速度等。但是经验判断或多次试验往往成本比较高,也不太可靠,因此希望有一套理论能够分析问题难度、计算模型能…

Axure中如何使用交互样式交互事件交互动作情形

🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《产品经理如何画泳道图&流程图》 ⛺️ 越努力 ,越幸运 目录 一、Axure中交互样式 1、什么是交互样式? 2、交互样式的作用? 3、Axure中如何…

计算机组件操作系统BIOS的相关知识思维导图

🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《产品经理如何画泳道图&流程图》 ⛺️ 越努力 ,越幸运 目录 一、运维实施工程师需要具备的知识 1、运维工程师、实施工程师是啥? 2、运维工程师、实施工…

《每天一分钟学习C语言·三》

1、 scanf的返回值由后面的参数决定scanf(“%d%d”,& a, &b); 如果a和b都被成功读入,那么scanf的返回值就是2如果只有a被成功读入,返回值为1如果a和b都未被成功读入,返回值为0 如果遇到错误或遇到end of file,返回值为EOF…

论文报告公式序号右对齐技巧

最近在写报告,感觉这个方法很不错,所以记录一下。 1.添加一个1行3列的表格,将公式序号放在中间表格与右边表格中,公式居中,序号右对齐。 2.将边框去掉,选择无边框。 3.得出结果 结束!&#xff…

新型智慧视频监控系统:基于TSINGSEE青犀边缘计算AI视频识别技术的应用

边缘计算AI智能识别技术在视频监控领域的应用有很多。这项技术结合了边缘计算和人工智能技术,通过在摄像头或网关设备上运行AI算法,可以在现场实时处理和分析视频数据,从而实现智能识别和分析。目前来说,边缘计算AI视频智能技术可…

Ansible(一)

Ansible: 远程操作主机功能: 自动化运维(playbook剧本YAML) 是基于Python开发的配置管理应用部署攻具,在自动化运维当中,现在是异军突起 Ansible能批量配置,部署,管理上千台主机&#xff0c…

【简洁易懂】为什么绝对收敛的级数一定条件收敛?【考研向】

针对某高热帖子真的想说,什么时候讨论知识的戾气不那么重了,什么时候能把知识深入浅出的讲明白了,什么时候我们才能有希望吧。 图源:https://www.youtube.com/watch?v3ShPTvJUFrU

9ACL访问控制列表

为什么要有访问控制(Access Control List)? 因为我可能在局域网中提供了一些服务,我只希望合法的用户可以访问,其他非授权用户不能访问。 原理比较简单,通过对数据包里的信息做过滤,实现访问控…

为什么GRU和LSTM能够缓解梯度消失或梯度爆炸问题?

1、什么是梯度消失(gradient vanishing)? 参数更新过小,在每次更新时几乎不会移动,导致模型无法学习。 2、什么是梯度爆炸(gradient exploding)? 参数更新过小大,破坏了…

事务的两阶段提交

参考了小林coding 为什么两阶段提交 事务提交后,redo log 和 binlog 都要持久化到磁盘,但是这两个是独立的逻辑,可能出现半成功的状态,这样就造成两份日志之间的逻辑不一致。 举个例子,假设 id 1 这行数据的字段 n…

selenium css定位

selenium-css定位 element_css driver.find_element(By.CSS_SELECTOR, css表达式)css定位说明 selenium中的css定位,实际是通过css选择器来定位到具体元素,css选择器来自于css语法 css定位优点 语法简洁对比其他定位方式,定位效率更快对…

在商家角度怎么解读人货场,电商运营总结!

人货场,作为零售行业里三个永恒不变的组成要素,是近几年我们常常讨论的话题。今天我们就为大家分享下在商家角度怎么解读人货场,电商运营总结! 一、人货场的概念 首先,“人货场”是一个与电商相关的概念,…

董宇辉“回归”成为东方甄选高级合伙人,尘埃落地后是谁赢了?

董宇辉“回归”成为东方甄选高级合伙人,尘埃落地后是谁赢了? 董宇辉的“小作文事件”“CEO摔手机事件”迎来大结局了! 就在12月18日,董宇辉被任命为新东方教育科技集团董事长文化助理,兼任新东方文旅集团副总裁。有朋…

LeetCode刷题--- 子集

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题【 http://t.csdnimg.cn/yUl2I 】【C】 【 http://t.csdnimg.cn/6AbpV 】数据结构与算法【 http://t.csdnimg.cn/hKh2l 】 前言:这个专栏主要讲…

【HarmonyOS开发】ArkTs关系型和非关系型数据库的存储封装

前面使用了首选项的存储方式,因此将其他的两种存储方式(键值型数据库和关系型数据库)也学习一下,简单记录一下,并进行封装,方便后续使用。 1、效果预览 2、使用条件 2.1 键值型数据库 键值型数据库实现数据…

java读取含有合并单元格的Excel

java读取含有合并单元格的Excel Excel如下: import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.*;import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.…

IPSec VPN原理与配置

企业对网络安全性的需求日益提升,而传统的TCP/IP协议缺乏有效的安全认证和保密机制。IPSec(Internet Protocol Security)作为一种开放标准的安全框架结构,可以用来保证IP数据报文在网络上传输的机密性、完整性和防重放。 IPSec V…