【传输层】

文章目录

  • 传输层
    • 传输服务和协议
    • 传输层 vs. 网络层
    • Internet传输层协议
    • 多路复用/解复用
      • 在发送方主机多路复用
      • 在接收方主机多路解复用
    • 多路解复用工作原理
    • 无连接(UDP)多路解复用
    • 无连接传输:UDP
    • UDP:用户数据报协议
    • UDP校验和

传输层

  • 目标:理解传输层的工作原理
    • 多路复用/解复用
    • 可靠数据传输
    • 流量控制
    • 拥塞控制
  • 学习Internet的传输层协
    • UDP:无连接传输
    • TCP:面向连接的可靠传输
    • TCP的拥塞控制

传输服务和协议

  • 为运行在不同主机上的应用进程提供逻辑通信
  • 传输协议运行在端系统
    • 发送方:将应用层的报文分成报文段,然后传递给网络层
    • 接收方:将报文段重组成报文,然后传递给应用层
  • 有多个传输层协议可供应用选择
    • Internet: TCP和UDP

传输层 vs. 网络层

  • 网络层服务:主机之间的逻辑通信
  • 传输层服务:进程间的逻辑通信
    • 依赖于网络层的服务
    • 并对网络层的服务进行增强
      有些服务是可以加强的:不可靠 -> 可靠;安全
      但有些服务是不可以被加强的:带宽,延迟
      在这里插入图片描述

Internet传输层协议

  • 可靠的、保序的传输: TCP
    • 多路复用、解复用
    • 拥塞控制
    • 流量控制
    • 建立连接
  • 不可靠、不保序的传输:UDP
    • 多路复用、解复用
    • 没有为尽力而为的IP服务添加更多的其它额外服务
  • 都不提供的服务:
    • 延时保证
    • 带宽保证

多路复用/解复用

在发送方主机多路复用

从多个套接字接收来自多个进程的报文,根据套接字对应的IP地址和端口号等信息对报文段用头部加以封装(该头部信息用于以后的解复用)

在接收方主机多路解复用

根据报文段的头部信息中的IP地址和端口号将接收到的报文段发给正确的套接字(和对应的应用进程)
在这里插入图片描述

多路解复用工作原理

  • 解复用作用:TCP或者UDP实体采用哪些信息,将报文段的数据部分交给正确的socket,从而交给正确的进程。
  • 主机收到IP数据报
    • 每个数据报有源IP地址和目标地址
    • 每个数据报承载一个传输层报文段
    • 每个报文段有一个源端口和目标端口
  • 主机联合使用IP地址和端口号将报文段发送给合适的套接字

无连接(UDP)多路解复用

  • 在接收端,UDP套接字用二元组标识(目标IP地址,目标端口号)
  • 当主机收到UDP报文段:
    • 检查报文段的目标端口号
    • 用该端口号将报文段定位给套接字
  • 如果两个不同源IP地址/源端口号的数据报,但是有相同的目标IP地址和端口号,则被定位到相同的套接字

无连接传输:UDP

UDP: User Datagram Protocol [RFC ]

  • 尽力而为的服务,报文段可能
    • 丢失
    • 送到应用进程的报文乱序
  • 无连接
    • UDP发送端和接收端之间没有握手
    • 每个UDP报文段都被独立的处理
  • UDP被用于:
    • 流媒体(丢失不敏感,速率敏感,应用可控制传输速率)
    • DNS
    • SNMP
  • UDP上可行可靠传输:
    • 在应用层增加可靠性
    • 应用特定的差错恢复

UDP:用户数据报协议

在这里插入图片描述

为什么要有UDP?

  • 不建立连接(会建立延时)
  • 简单:在发送端和接收端没有连接状态
  • 报文段的头部很小(开销小)
  • 无拥塞控制和流量控制:
    • UDP可以尽可能快的发送报文段

UDP校验和

目标;检测在被传输报文段中的差错 (如比特反转)

发送方:

  • 将报文段的内容视为16比特的整数
  • 校验和:报文段的加法和 (1的补运算)
  • 发送方将校验和放在UDP的校验和字段

接收方:

  • 计算接收到的报文段的校验和
  • 检查计算出的校验和与校验和字段的内容是否相等:
  • 不相等––检测到差错
  • 相等––没有检测到差错,但也许还是有差错

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Springboot+Vue项目-基于Java+MySQL的图书馆管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

JAVA基础面试题(第九篇)中! 集合与数据结构

JAVA集合和数据结构也是面试常考的点,内容也是比较多。 在看之前希望各位如果方便可以点赞收藏,给我点个关注,创作不易! JAVA集合 11. HashMap 中 key 的存储索引是怎么计算的? 首先根据key的值计算出hashcode的值…

Linux 基于 TCP 协议的简单服务器-客户端应用

目录 一、相关函数 1、listen() 2、accept() 3、connect() 4、两种IP地址转换方式 5、TCP和UDP数据发送和接收函数对比 5、log.hpp自定义记录日志 二、udp_server.hpp单进程版本 三、tcp_server.cc 四、Telnet客户端(代替tcp_client.cc) 五…

XSS 检测神器:XSStrike 保姆级教程

一、介绍 XSStrike 是一款专门用于检测和利用跨站脚本(XSS)漏洞的工具,具有自动化、智能化的特点,它的主要功能包括: 自动检测: XSStrike 能够自动发现 Web 应用程序中的 XSS 漏洞,无需用户手动…

写一个uniapp的登录注册页面

目录 一、效果图 二、代码 1、登录 (1)页面布局代码 (2)逻辑实现代码 (3)css样式 2、注册 (1)页面布局代码 (2)逻辑实现代码 (3&#x…

匿名对象 与 new delet初识

一.匿名对象 1.定义: 没有名称的临时创建的对象,通常用于临时操作或作为函数的实参或返回值。 2.声明周期与作用域: 仅仅在定义所在代码行中,执行完就销毁。 3.使用格式 类名(构造参数) 4.使用场景 临时调用成员函数 mid…

【InternLM 实战营第二期笔记06】Lagent AgentLego 智能体应用搭建

一、智能体的由来 为什么要有智能体呢?这主要源于大语言模型存在的局限性。尽管大语言模型在人工智能领域取得了显著的进步,但它们仍然面临着一些重要的问题。 智能体可以通过学习和优化算法,不断提升自身的性能。它们可以从历史数据中学习…

【前端面试3+1】15 CSS如隐藏元素、css块级元素和行内元素有哪些?两者有什么区别?、JavaScript中“==”与“===”的区别、【丢失的数字】

一、CSS如何隐藏元素? 1、使用 display: none; 这种方法会隐藏元素,并且不占据页面空间。元素会被完全移除,无法通过任何方式显示出来。 .hidden-element {display: none; }2、使用 visibility: hidden; 这种方法会隐藏元素,但仍然…

数字乡村创新实践推动农业现代化发展:科技赋能农业产业升级、提升农民收入水平与乡村治理效能

随着信息技术的迅猛发展和数字化转型的深入推进,数字乡村创新实践已成为推动农业现代化发展的重要引擎。数字技术的广泛应用不仅提升了农业生产的智能化水平,也带动了农民收入的增加和乡村治理的现代化。本文旨在探讨数字乡村创新实践如何科技赋能农业产…

Ubuntu24.04之软件源修改

注意事项 Ubuntu24.04的软件源从/etc/apt/sources.list改为/etc/apt/sources.list.d/ubuntu.sources 修改步骤 #备份软件源 sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak #更换软件源(更换为中科大源&#xff0…

使用 CentOS 搭建 Linux KVM 虚拟化平台

(1)上传镜像,可在这个链接上下载镜像:https://mirrors.aliyun.com/centos-vault/7.7.1908/isos/x86_64/CentOS-7-x86_64-Minimal-1908.iso?spma2c6h.25603864.0.0.4a41714fA9E9c0 (2). 在 CentOS 图形界面打开虚拟系统…

LIN数据总线ESD保护方案

LIN总线(Local Interconnect Network)是一种用于车辆电子系统中的串行通信协议。LIN接口与其他外露的接口一样,也会受到静电放电 (ESD) 的影响。电子工程师需设计具有保护二极管的LIN 接口可为 LIN 收发器本身和相应的下游总线元件提供保护。…

【源码】基于I.MX6ull驱动移植ds18b20的实验详解

文章目录 前言一、硬件连接二、代码移植1.驱动代码2.编译程序 三、移植到开发板参考连接 前言 提示:基于I.MX6ull驱动移植ds18b20的实验: 实验平台:正点原子alpha开发板V2.2 传感器:ds18b20模块 一、硬件连接 ds18b20的VCC&…

在瑞芯微RV1126 Linux系统上调试WiFi的详细指南

目录标题 1. **系统和环境准备**2. **检查WiFi设备状态**3. **启用和禁用WiFi接口**4. **扫描可用的WiFi网络**5. **连接到WiFi网络**6. **查看当前的WiFi连接状态**7. **断开和重新连接WiFi**8. **管理WiFi网络配置**9. **使用iw工具进行高级WiFi调试**10. **故障排除和日志获…

Kafka安装Windows版

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Kafka 是一个由 LinkedIn 开发的分布式消息系统,它于2011年年初开源,现…

【JavaSE】异常

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 认识异常 异常分类 举例 栈溢出错误 空指针异常(运行时异常) 编译时异常 处理异常 抛出 异常 程序本身触发异常 手动抛出异常 举例 利用try ca…

1096 大美数

solution B被A整除&#xff0c;B是A的倍数。B / AA整除B A把B整除 &#xff22;被A整除 B / A >n可以整除不同的四个因数之和 等价于 (a b c d) % n 0 #include<iostream> #include<cmath> using namespace std; int main(){int k, n, t;scanf("%d&q…

【MATLAB】App 设计 (入门)

设计APP 主界面 函数方法 定时器 classdef MemoryMonitorAppExample < matlab.apps.AppBase% Properties that correspond to app componentsproperties (Access public)UIFigure matlab.ui.FigureStopButton matlab.ui.control.ButtonStartButton matlab.ui.cont…

openAI tts Java文本转语音完整前后端代码 html

Java后端代码 maven 仓库&#xff1a; <!--openAI 请求工具--> <dependency><groupId>com.unfbx</groupId><artifactId>chatgpt-java</artifactId><version>1.1.5</version> </dependency>maven 仓库官方 tts 使用案例…

【论文源码实战】轻量化MobileSAM,分割一切大模型出现,模型缩小60倍,速度提高40倍

前言 MobileSAM模型是在2023年发布的&#xff0c;其对之前的SAM分割一切大模型进行了轻量化的优化处理&#xff0c;模型整体体积缩小了60倍&#xff0c;运行速度提高40倍&#xff0c;但分割效果却依旧很好。 MobileSAM在使用方法上沿用了SAM模型的接口&#xff0c;因此可以与…
最新文章