CSC8021_computer network_The Transport Layer

Role of the transport layer

• The transport layer is responsible for providing a reliable end-to-end connection between two application processes in a network
• Abstracting away the physical subnet
• Does not involve intermediate nodes
• Takes a network address (IP) and transport address (port) to ensure packets are received by the desired service
·传输层负责在网络中的两个应用进程之间提供可靠的端到端连接
·抽象出物理子网
·不涉及中间节点
·获取网络地址(IP)和传输地址(端口),以确保数据包被所需的服务接收
在这里插入图片描述

Comparison with other OSI layers

• Much of the functionality of the Transport and Datalink layers are the same but with any complex network between hosts abstracted away
• The Network layer is run by communications providers while the Transport layer is run by communicating hosts
·传输层和数据链路层的大部分功能都是相同的,但主机之间的任何复杂网络都被抽象掉了。
·网络层由通信提供商运行,而传输层由通信主机运行

Well known ports

• Well known ports are (usually) assigned to a standard service that a
system offers.
• In combination with an IP, the port is used to move packets from the network to the desired application layer service. An example might be
127.0.0.1:22 for SSH
• This combination of IP + port is called a socket
·众所周知的端口(通常)被分配给标准服务,系统报价。
·与IP结合,端口用于将数据包从网络移动到所需的应用层服务。一个例子可能是127.0.0.1:22用于SSH
·这种IP +端口的组合称为套接字
在这里插入图片描述

Transport protocol data unit (TPDU)

在这里插入图片描述• Used to encapsulate transport layer data
• Passed to the Network layer, which is passed to the Datalink layer, which is passed to the Physical layer, sent across a network, then back up the stack and unwrapped
·用于封装传输层数据
·传递到网络层,然后传递到数据链路层,再传递到物理层,通过网络发送,然后备份堆栈并解包

Unicast vs Multicast vs Broadcast

• Unicast is a one-to-one transmission from one node in a network to another
• Multicast is a one-to-many transmission from one node in a network to many selected nodes
• Broadcast is a one-to-all transmission from one node to all other nodes on the network
·单播是从网络中的一个节点到另一个节点的一对一传输
·多播是从网络中的一个节点到许多选定节点的一对多传输
·广播是从网络上的一个节点到所有其他节点的一对多传输
在这里插入图片描述

Transport protocols

• There are two commonly supported transport layer protocols

  1. Transmission Control Protocol (TCP)
  2. User Datagram Protocol (UDP)
    • UDP is connectionless (also called fire and forget) and consequentially faster than TCP
    – Used for real-time services (DNS lookup, online gaming, video streaming)
    • TCP is connection oriented and while slower is more reliable
    – Used for transfers that cannot fail (email, webpages, file transfers)
    ·有两种通常支持的传输层协议
    1.传输控制协议(TCP)
    2.用户数据报协议(UDP)
    UDP是无连接的(也称为fire and forget),因此比TCP快。
  • 用于实时服务(DNS查找、在线游戏、视频流)
    · TCP是面向连接的,速度越慢越可靠
  • 用于不会失败的传输(电子邮件、网页、文件传输)

User Datagram Protocol (UDP)

• Designed for “one request, one response” applications where setting up a connection is too much work
• An unreliable transport protocol
• UDP is not very popular but has its use cases
• “IP with extra header”
• Many systems reject UDP on non-standard ports by default
·专为“一个请求,一个响应”的应用程序,其中设置连接是太多的工作
·不可靠的传输协议
UDP不是很流行,但有它的用例
·“IP with extra header”
·许多系统默认拒绝非标准端口上的UDP
在这里插入图片描述

Transmission control protocol (TCP)

• Designed to be robust under unreliable internet conditions
• Provides end-to-end connection
• Utilises a 3-way handshake for connection
• Utilises a sliding window protocol for flow control
·在不可靠的互联网条件下保持稳定
·提供端到端连接
·使用3次握手进行连接
·利用滑动窗口协议进行流控制
在这里插入图片描述

3-Way handshake

The TCP 3-Way Handshake prevents duplicate connections,and allows the nodes to reject spurious packets

  1. SYN (sync)
  2. SYN/ACK
    (sync/acknowledged)
  3. ACK (acknowledged)
    At this point x becomes the starting sequence number for the sender, and y becomes the starting sequence number for the receiver
    TCP 3-Way Handshake防止重复连接,并允许节点拒绝虚假数据包
  4. SYN(同步)
  5. SYN/ACK
    (sync/确认)
  6. ACK(已确认)
    此时,x成为发送方的起始序列号,y成为接收方的起始序列号
    在这里插入图片描述

Flow control

• TCP operates a sliding window mechanism where each acknowledge includes the amount of data the receiver is now willing to accept.
• A number of measures are commonly employed to ensure that the window size is roughly a multiple of the senders desired segment size.
• Different flow control schemes are one of the main differences between different versions of TCP used today (there are several).
TCP采用滑动窗口机制,其中每个确认包括接收方现在愿意接受的数据量。
·通常采用许多措施来确保窗口大小大致为所需分段大小的倍数。
不同的流量控制方案是当今使用的TCP不同版本之间的主要差异之一(有几个)。

Sliding window

• Sender sends 2048 bits to start
• Receiver’s buffer has capacity so it acks the send and sets the window
• Sender sends the same amount which fills receiver’s buffer
• Receiver acks the send and sets the window to 0 until the buffer is cleared
• Receivers buffer gets cleared 2048 bits so it acks the last send again and sends the new window
·UART发送2048位启动
·接收方的缓冲区有容量,因此它确认发送并设置窗口
·发送器发送与填充接收器的缓冲区相同的量
·接收方确认发送并将窗口设置为0,直到缓冲区被清除
·接收器缓冲区被清除2048位,因此它再次确认最后一次发送并发送新窗口

在这里插入图片描述

UDP vs TCP

UDP
• Connectionless
• Unicast, Multicast, or Broadcast communication
• No guarantees (packets may be lost, out of order,dropped)
• Faster due to “fire and forget” model

TCP
• Connection oriented
• Unicast communication
• Data delivery guarantees
– Packets arrive in order
– Duplicate packets are rejected
– Dropped packets are retransmitted
• Slower due to connection overhead
• Can deal with congestion
UDP
·无连接
·单播、多播或广播通信
·无保证(数据包可能丢失、乱序、丢失)
·更快,因为“火灾和遗忘”模式

TCP
·面向连接
·单播通信
·数据传输保证
- 数据包按顺序到达
- 拒绝重复的数据包
- 重传丢弃的数据包
·由于连接开销而变慢
·可以处理拥塞

TCP congestion control - slow start

In order to deal with packet congestion,TCP utilises an algorithm called slow start

  1. Window starts at 1 max segment(TDPU) size
  2. Doubles window each time an ack is received, exponential increase
  3. When a packet is lost (congestion), the window reverts to 1 max segment and the process starts from step 1 again
    为了处理数据包拥塞,TCP使用一种称为慢启动的算法
    1.窗口从1个最大段(TDPU)大小开始
    2.每次接收到ACK时将窗口加倍,指数增加
    3.当数据包丢失(拥塞)时,窗口恢复为最大1个段,过程再次从步骤1开始。
    在这里插入图片描述

TCP congestion control - threshold

Another way TCP deals with congestion is by utilising a threshold

  1. Window starts at 1 max segment(TDPU) size
  2. State some threshold (e.g. 32k) and double the window each time an ack is received until it is reached
  3. Once threshold is met, linearly increase window size
  4. When a packet is lost (congestion) reset threshold to ½ current window and the process starts from step 1 again
    TCP处理拥塞的另一种方法是利用阈值
    1.窗口从1个最大段(TDPU)大小开始
    2.规定某个阈值(例如32 k),并在每次收到确认时将窗口加倍,直到达到该阈值
    3.一旦达到阈值,则线性增加窗口大小
    4.当数据包丢失(拥塞)时,将阈值重置为当前窗口的1/2,并再次从步骤1开始处理
    在这里插入图片描述

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

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

相关文章

2024--Django平台开发-Redis集群(十一)

内容回顾 主从复制。 哨兵:实例启动了,哨兵节点没启动,Python通过redis-py连接报错。一定要确保实例节点和哨兵节点都启动了。 搭建集群用的是虚拟机的多台centos服务器,你在跟着学习的时候,一定要全部都是虚拟机&am…

MySQL面试题2

文章目录 面试题 (9-15) 面试题 (9-15) 09)查询学过「张三」老师授课的同学的信息 SELECT s.*,c.cname,t.tname FROM t_mysql_teacher t,t_mysql_student s,t_mysql_course c,t_mysql_score sc WHERE t.tidc.tid and c.cidsc.cid and sc.sids.sid and tname ‘张…

EI级 | Matlab实现VMD-TCN-BiLSTM变分模态分解结合时间卷积双向长短期记忆神经网络多变量光伏功率时间序列预测

EI级 | Matlab实现VMD-TCN-BiLSTM变分模态分解结合时间卷积双向长短期记忆神经网络多变量光伏功率时间序列预测 目录 EI级 | Matlab实现VMD-TCN-BiLSTM变分模态分解结合时间卷积双向长短期记忆神经网络多变量光伏功率时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基…

QLExpress和Groovy对比

原理 Groovy groovy基于JVM运行。 编译时:将源文件编译成class文件后,用java的classLoader加载;运行时:直接用groovy classLoader加载 QLExpress QLExpress将文本解析成AST,用java对象表达后执行。 特点 Groo…

如何用LLM和自有知识库搭建智能agent?

用LangChain建立知识库,文末中也推荐其他方案。 项目源码:ChatPDF实现 LangChain Indexes使用 对加载的内容进行索引,在indexes中提供了一些功能: Document Loaders,加载文档Text Splitters,文档切分V…

android.os.NetworkOnMainThreadException

问题 android.os.NetworkOnMainThreadException详细问题 核心代码如下: import android.os.Bundle;import androidx.appcompat.app.AppCompatActivity;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ja…

【Java】IDEA中的JFormDesigner使用教程

目录 1 安装 JFormDesigner 插件2 JFormDesigner 使用教程2.1 新建JFormDesigner Form时的选项2.2 JFormDesigner Form界面布局2.3 JFormDesigner 常用组件 JFormDesigner 是一款用于设计和创建图形用户界面(GUI)的插件,它允许开发者使用可视…

鸿蒙Harmony-相对布局(RelativeContainer)详解

成年人的世界,从来没有容易二字,想要什么,就得凭自己的努力去拿,遇到事情就得自己生生的硬抗,希望你即使再辛苦,但还是会选择这滚烫的人生,加油陌生的朋友们 目录 一,定义 二&#x…

瑞_Java开发手册_(一)编程规约

文章目录 编程规约的意义(一)命名风格(二)常量定义(三)代码格式(四)OOP 规约(五)日期时间(六)集合处理(七)并发…

网络分流规则

现在的网络是越来越复杂。 有必要进行分流。 有一些geosite.dat是已经整理好的,包含许多的网站的分类: 分流规则: route规则 主要是: {"type": "field","outboundTag": "direct","domain&quo…

Material Design 进阶(十一)——Chip,ChipGroup,ChipDrawable使用

流式布局标签发展历程 第一阶段:实现这种界面的时候,基本都是自定义一个控件,然后在Java代码中动态的 添加一个个的TextView,还需要计算布局宽度/高度,进行换行等等处理,比较复杂;第二阶段:使用…

cad二次开发autolisp(一)

文章目录 一、概述1.1 简介1.2 打开编辑器1.3 调试页面 二、数据类型三、函数3.1 用户函数 四、语句4.1 常规语句4.2 流程控制语句 五、图元操作5.1 定义5.2 图元选择5.3 图元属性列表 一、概述 1.1 简介 简介:cad 二次开发语言,后缀名*.lsp适用于编写…

恒源云GPU服务器使用Linux图形化界面

编程如画,我是panda! 干货满满,不要走开~ 前言 前一节分享了如何在GPU云服务器上创建实例并运行YOLOV5项目,但是使用命令行的方式容易劝退很多小白,并且有些环境配置是需要图形化界面的,所以这一节就教大家…

1119: 一维数组排序(数组)

题目描述 对一维数组按照从小到大的顺序排序。程序定义函数sort()来实现数组a的排序。函数原型如下&#xff1a; void sort(int a[], int n); 数组元素的输出调用PrintArr()。 输入 第一行输入一个整数n&#xff08;1<n<10)&#xff0c;表示数组有n个整数&#xff…

SpringFramework实战指南(一)

SpringFramework实战指南&#xff08;一&#xff09; 一、技术体系结构1.1 总体技术体系1.2 框架概念和理解 一、技术体系结构 1.1 总体技术体系 单一架构 一个项目&#xff0c;一个工程&#xff0c;导出为一个war包&#xff0c;在一个Tomcat上运行。也叫all in one。 单一架…

SpringBoot-项目部署

SpringBoot项目部署可以通过将项目打成可执行的jar包或war包来实现&#xff0c;也可以使用容器化技术如Docker将项目部署到云平台中。在部署时需要注意配置文件的位置和启动参数的设置&#xff0c;同时确保目标环境中的Java版本与项目所需的Java版本一致。部署完成后&#xff0…

1 快速前端开发

前端开发 1 前端开发1.快速开发网站2.浏览器能识别的标签2.1 编码&#xff08;head&#xff09;2.2 title&#xff08;head&#xff09;2.3 标题2.4 div和span2.4.5 超链接2.4.6 图片小结2.4.7 列表2.4.8 表格2.4.9 input系列&#xff08;7个&#xff09;2.4.10 下拉框2.4.11 多…

非线性方程求根迭代法(C++)

文章目录 问题描述算法描述不动点迭代法一维情形多维情形 牛顿迭代法单根情形重根情形 割线法抛物线法逆二次插值法 算法实现准备工作一般迭代法割线法抛物线法逆二次插值法 实例分析例1例2 迭代法是一种求解非线性方程根的方法, 它通过构造一个迭代过程, 将一个非线性方程转化…

10.抽象工厂模式

江湖上再也没人找林家的麻烦了。因为林平之一怒之下将辟邪剑谱公诸天下。一下子印出去几万份&#xff0c;江湖上人人都能轻而易举的得到这本无尚武学&#xff1b;然而江湖人士却陷入深深的矛盾之中&#xff1a; 不练&#xff0c;别人练了&#xff0c;分分钟秒杀你&#xff1b;练…

【InternLM 大模型实战】第五课

LMDeploy 大模型量化部署实践 大模型部署背景模型部署定义&#xff1a;产品形态计算设备 大模型特点内存开销巨大动态shape相对视觉模型&#xff0c;LLM结构简单 大模型部署挑战设备推理服务 大模型部署方案技术点方案云端移动端 LMDeploy 简介高效推理引擎完备易用的工具链支持…