CSC8021_computer network_The Transport Layer

news2024/11/18 21:39:49

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开始处理
    在这里插入图片描述

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

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

相关文章

Centos源码编译安装Redis

Redis是常用的内容使用工具,每次安装服务器都需要安装Redis 为了减少重复工作,写了一个脚本自动安装Redis,如下 #!/bin/sh #下载源码 curl -O http://download.redis.io/redis-stable.tar.gz # 解压缩 tar zxf redis-stable.tar.gz cd redi…

【Redis集群】docker实现3主3从扩缩容架构配置案例

一,集群规划及准备工作 架构实现:Redis3主3从 二,搭建命令 第一步,创建6台服务: docker run -d --name redis-node-1 --net host --privilegedtrue -v /data/redis/share/redis-node-1:/data redis:6.0.8 --clust…

照片删除了怎么恢复回来

照片,对我们来说,这两个字眼再熟悉不过了,每一张照片都包含无比重要的意义,相信在大家的心目中,这些包含意义的照片都是无价的。怎样找回删除的照片? 既然这些照片对我们来说意义非凡,那如果不小…

超详细的搭建压测平台笔记

0、前言 最近重新回来学习熊哥的极客教程,结合自己学习的shell编程和Docker的指令学习,对熊哥的一些操作做bash脚本自动化,将搭建压测平台的步骤做记录,目的是分享搭建过程。 过程中会安装docker,mysql,redis,influxdb,grafana,…

分布形态的度量_峰度系数的探讨

集中趋势和离散程度是数据分布的两个重要特征,但要全面了解数据分布的特点,还应掌握数据分布的形态。 描述数据分布形态的度量有偏度系数和峰度系数, 其中偏度系数描述数据的对称性,峰度系数描述与正态分布的偏离程度。 峰度系数反映分布峰的尖峭程度的重要指标. 当…

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

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

Mysql-redoLog

Redo Log redo log进行刷盘的效率要远高于数据页刷盘,具体表现如下 redo log体积小,只记录了哪一页修改的内容,因此体积小,刷盘快 redo log是一直往末尾进行追加,属于顺序IO。效率显然比随机IO来的快Redo log 格式 在MySQL的InnoDB存储引擎中,redo log(重做日志)被用…

【UEFI基础】EDK网络框架(VLAN)

VLAN VLAN代码综述 在MNP中有很多的VLAN介绍,MNP存在的一个重要原因也是为了处理VLAN,而本文介绍的NetworkPkg\VlanConfigDxe\VlanConfigDxe.inf其实只是一个帮助模块,真正的VLAN配置还是在MNP中。 VLAN同样是一个UEFI Driver Model&#…

pytorch一致数据增强—异用增强

前作 [1] 介绍了一种用 pytorch 模仿 MONAI 实现多幅图(如:image 与 label)同用 random seed 保证一致变换的写法,核心是 MultiCompose 类和 to_multi 包装函数。不过 [1] 没考虑不同图用不同 augmentation 的情况,如&…

adb 常用命令汇总

目录 adb 常用命令 1、显示已连接的设备列表 2、进入设备 3、安装 APK 文件到设备 4、卸载指定包名的应用 5、从设备中复制文件到本地 6、将本地文件复制到设备 7、查看设备日志信息 8、重启设备 9、截取设备屏幕截图 10、屏幕分辨率 11、屏幕密度 12、显示设备的…

Linux 压缩与解压缩

参考资料 linux 压缩和解压缩命令gz、tar、zip、bz2tar命令 – 压缩和解压缩文件 目录 一. gzip命令1.1 压缩1.1.1 -k 压缩后保留源文件1.1.2 -l 查看压缩文件中的文件信息1.1.3 -r 递归压缩文件夹中的所有文件 1.2 解压缩 二. zip命令2.1 zip 压缩2.1.1 -r 压缩文件夹2.1.2 压…

Android中的anr定位指导与建议

1.背景 8月份安卓出现了一次直播间卡死(ANR)问题,且由于排查难度较大,持续了较长时间。本文针对如何快速定位安卓端出现ANR问题进行总结和探讨. 这里大致补充一下当时的情况,当时看到情景的是从某一个特定的场景下进入直播间后整个直播间界面立刻就卡住…

css3 2D与3D转换

css3 2D与3D转换 前言2D变形旋转变形 rotate()transform-origin属性 缩放变形 scale()斜切变形 skew()位移变形 translate() 3D变形3D旋转 rotateX() | rotateY()perspective属性 空间移动 制作一个正方体结语 前言 网页设计不再局限于平面,而是充满了立体感和动态…

【ESP32接入语言大模型之智谱清言】

1. 智谱清言 讲解视频: 随着人工智能技术的不断发展,自然语言处理领域也得到了广泛的关注和应用。智谱清言作为千亿参数对话模型 基于ChatGLM2模型开发,支持多轮对话,具备内容创作、信息归纳总结等能力。可以快速注册体验中国版…

Linux系统使用超详细(十)~vi/vim命令①

vi/vim命令有很多,其实只有少数的用法对于我们日常工作中起到了很大帮助,但是既然我选择梳理Linux的学习笔记,那么一定全力把自己的理解和学习笔记的内容认真整理汇总,内容或许有错误,还请发现的C友们发现了及时指出。…

小程序基础学习(发送请求)

原理 通过js发起wx.request的方法发送请求并接受相应数据 实例(一) 参数: url:请求网址地址, success:请求成功执行的函数, fail:请求失败执行的函数 请求返回的数据 实例(二) 参数&#xff1…

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

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

Codeforces Round 768 (Div. 1) D. Flipping Range(思维题 等价类性质 dp)

题目 思路来源 官方题解 洛谷题解 题解 可操作的最短区间长度肯定是gcd,记为g,然后考虑如何dp 考虑g个等价类,每个等价类i,ig,i2*g,... 每次翻转长度为g的区间,会同时影响到g个等价类总的翻转的奇偶性, 性质一&…

Puppeteer让你网页操作更简单(2)抓取数据

Puppeteer让你网页操作更简单(1)屏幕截图】 示例2 —— 让我们抓取一些数据 现在您已经了解了Headless Chrome和Puppeteer的工作原理基础知识,让我们看一个更复杂的示例,其中我们实际上可以抓取一些数据。 首先,请查看此处的Puppeteer API文档。如您所见,有大量不同的方法我…

Python教程39:使用turtle画今天日期

---------------turtle源码集合--------------- Python教程36:海龟画图turtle写春联 Python源码35:海龟画图turtle画中国结 Python源码31:海龟画图turtle画七道彩虹 Python源码30:海龟画图turtle画紫色的小熊 Python源码29&a…