首页 > 其他分享 >5. 传输层

5. 传输层

时间:2024-04-20 15:44:50浏览次数:20  
标签:报文 TCP 发送 拥塞 传输层 cwnd 连接

传输层

1. 服务

1.1 功能

  1. 应用进程之间的逻辑通信。

    从传输层来说,通信的真正端点是 主机中的进程

  2. 复用和分用

    • 复用:发送方的不同进程都可以使用同一个传输层协议进行数据传输
    • 接收方传输层能将数据正确交付到不同的目的应用进程
  3. 检错检测

    • TCP:发现报文出错,要求重发
    • UDP:发现出错,直接丢弃
    • 区别网络层:网络层的IP数据报只检验首部,不检查数据
  4. 提供面向连接和无连接的传输协议。TCP/IP、UDP

1.2 寻址和端口

  1. 端口号 16bit

    • 服务器端使用的端口号。熟知端口号(0 ~ 1023);登记端口号(1024 ~ 49151)
    • 客户端使用的端口号。49152 ~ 65535,也称短暂端口号
  2. 套接字

    套接字(Socket)=(IP地址:端口号)

1.3 无连接服务和面向连接服务

  1. TCP/IP:建立连接、可靠数据传输、释放连接。确认、流量控制、计时器、连接管理。FTP、HTTP、TELNET
  2. UDP:无需建立连接和返回确认。TFTP、DNS、SNMP、RTP

2. UDP

2.1 数据报

2.1.1 概述

功能:复用和分用,差错检测

特点:无需建立连接;无连接状态;首部开销小;无拥塞控制;支持1对1,1n,n1,nn的交互通信

面向报文。报文不可分割,是UDP处理的最小单位。

2.1.2 首部格式

首部字段(8B)和用户数据字段。

首部(2B*4):源端口(不需要时可全0),目的端口,长度(首部+数据),检验和(可选,可全0)

image-20240420135135454

2.2 UDP检验

计算UDP检验和之前,还需要加上伪首部,以计算UDP检验和。

检验方法:补充0成偶数个字节后,按二进制反码计算这些16位字的和,最后将此和的反码写入检验和字段。接收方最终计算结果应全1,才表示无差错。这种方法不强,但简单快速。

image-20240420140317363

3. TCP

3.1 特点

  1. 面向连接,逻辑连接
  2. 一对一
  3. 可靠交付,无差错、不丢失、不重复且有序
  4. 全双工通信。
    • 发送缓存:准备发的数据;已发送但未收到确认的数据
    • 接收缓存:到达但未被读取的数据;不按序到达的数据
  5. 面向字节流。

TCP报文由接收方窗口值和网络拥塞程度决定;UDP报文由发送应用进程决定

3.2 报文段

首部(20B)和数据

image-20240420141458012

首部字段:

  • 源端口
  • 目的端口
  • 序号
  • 确认号
  • 数据偏移。表示首部长度
  • 保留
  • 紧急位URG
  • 确认位ACK
  • 推送位PSH
  • 复位位RST
  • 同步位SYN
  • 终止位FIN
  • 窗口
  • 检验和
  • 紧急指针
  • 选项,最长40B

3.3 连接管理

TCP连接的端口是套接字。连接的建立采用C/S模式,

三次握手

image-20240420141800394

  1. 客户机发请求(连接请求报文段)。SYN不能携带数据,但消耗一个序号。SYN-SENT
  2. 服务器同意,发回确认。确认报文段不能携带数据,但消耗一个序号。SYN-RCVD
  3. 客户机给出确认。可以携带数据,不携带数据就不消耗序号。ESTABLISHED

四次挥手

image-20240420141840594

  1. 客户机发送连接释放报文段,并停止发送数据。消耗一个序号。FIN-WAIT-1

  2. 服务器发出确认。CLOSED-WAIT。服务器继续未完成的数据传送,客户机收到确认后进入FIN-WAIT-2

  3. 服务器数据传送完成后,发出FIN=1的连接释放报文段。服务器LAST-ACK

  4. 客户机收到后,必须发出确认。进入TIME-WAIT,等待2MSL(Maximum Segment Lifetime,最长报文段寿命),进入CLOSED。服务器收到确认后进入CLOSED

    服务器最快1.5RTT,客户端最快1RTT+2MSL

image-20240420143412409

3.4 TCP可靠传输

检验(同UDP)、序号确认重传

a. 序号

序号字段,保证数据有序

b. 确认

确认号,表示期望收到的下一个报文段的第一个字节的序号

默认使用累计确认

c. 重传

  1. 超时。

    重传时间到期,未收到确认。维护了RTT(Round-Trip Time)的一个加权平均往返时间RTTS,设置的超时重传时间(Retransmission Time-Out,RTO)应略大于RTTS。

  2. 冗余ACK。

    接收方发送3个对某报文的冗余ACK,发送方则立即重传该报文。这种技术称为快速重传

3.5 TCP流量控制

让发送方的发送速率不要太快,以便接收方来得及接收。速度匹配服务。

数据链路层和传输层区别

  • 传输层:端到端(两个进程之间的流量控制),窗口大小动态变化
  • 数据链路层:两个中间的相邻节点之间的流量控制,滑动窗口不能动态变化

滑动窗口机制。发送方的发送窗口不能超过接收方给出的接收窗口值

image-20240420145404596

收到零窗口通知后,开始计时,计时结束后发送一个零窗口探测报文段,对方进行回应以给出窗口值。若仍为0,继续计时。

3.6 TCP拥塞控制

拥塞控制:防止过多的数据注入网络,保证网络中的路由器或链路不致过载。

拥塞控制与流量控制

  1. 拥塞控制:全局性的网络负荷的控制

  2. 流量控制:点对点的通信量的控制

    但是,都是提供控制发送方的发送速率实现控制效果

除了接收窗口(rwnd),TCP还要求发送方维持一个拥塞窗口(cwnd)

\[发送窗口上限值=min[rwnd,cwnd] \]

假设以下内容以最大报文段长度(MSL)为单位

1. 慢开始

从小到大增大拥塞窗口,cwnd的值随传输轮次(一个往返时延RTT)指数增长。先令cwnd=1,然后接着是2,4……。

需要设置一个慢开始门限ssthresh(阈值)。当cwnd大于ssthresh时,改用拥塞避免算法

2. 拥塞避免

每经过一个RTT,cwnd+=1,按线性规律缓慢增长。

出现网络拥塞(确认超时):

\[ssthresh = cwnd/2, \geq 2\\ cwnd=1\\ 执行慢开始算法 \]

3. 快重传

发送方连续收到3个冗余ACK,尽早重传

4. 快恢复

当发送方连续收到3个冗余ACK:

\[ssthresh=cwnd/2\\ cwnd =cwnd/2\\ 开始拥塞避免算法 \]

同时应用以上四种算法

标签:报文,TCP,发送,拥塞,传输层,cwnd,连接
From: https://www.cnblogs.com/walkallday/p/18147768

相关文章

  • 突破编程_C++_网络编程(TCPIP 四层模型(传输层))
    1传输层的功能与作用在TCP/IP四层模型中,传输层位于网络层之上和应用层之下,负责在源主机和目标主机之间提供端到端的可靠数据传输服务。传输层的主要功能与作用体现在以下几个方面:分段与重组:由于网络层的数据包大小有限制(如IP数据包的最大长度为65535字节),而应用层......
  • 网络基础二——传输层协议UDP与TCP
    九、传输层协议​传输层协议有UDP协议、TCP协议等;​两个远端机器通过使用"源IP",“源端口号”,“目的IP”,“目的端口号”,"协议号"来标识一次通信;9.1端口号的划分​0-1023:知名端口号,HTTP,HTTPS,FTP,SSH等应用层协议,他们的端口号都是固定的;如:ssh使用的是22号端口,ftp(rzsz使......
  • 突破编程_C++_网络编程(OSI 七层模型(传输层))
    1传输层的功能与特点1.1传输层的功能传输层是OSI七层模型中的第四层,它位于网络层和应用层之间,起着承上启下的关键作用。以下是关于OSI传输层功能的详细讲解:一、提供可靠的数据传输服务传输层的主要任务是确保数据在源主机和目标主机之间可靠地传输。它通过一系列......
  • TCP与UDP:传输层协议对比
    ......
  • 传输层协议
    TCP和UDP协议TCP/IP协议族的传输层协议1、TCP(TransmissionControlProtocol) 传输控制协议2、UDP(UserDatagramProtocol) 用户数据报协议###TCP和UDP协议的区别1、TCP是面向连接的、可靠的进程到进程通信的协议。TCP提供全双工服务,即数据可在同一时间双向传输,每一个......
  • 传输层协议介绍
    1.TCP和UDP协议(1)TCP/IP协议族的传输层协议TCP:传输控制协议;UDP用户数据报协议1)TCP协议:TCP是面向连接的、可靠的进程到进程通信的协议;比如打电话,双方通话前需要先建立连接。TCP提供全双工服务,即数据可在同一时间双向传输;每一个TCP都有发送缓存和接收缓存,用来临时存储数据。TC......
  • 传输层协议
    传输层协议TCP/IP协议TCP/IP是一个ProtocolStack,包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等许多协议TCP/IP和OSI模型的比较相同点两者都是以协议栈的概念为基础协议栈中的协议彼此相互独立下层对上层提供服务不同点OSI是先有模型;TCP/IP是先有协议,后有......
  • 传输层协议
    tcp/ip模型应用层传输层网络层接口层tcp/ip协议族tcp(传输控制协议):面向连接,在传递数据之前,会测试主机的联通性,如果通才会传输真实数据udp(用户数据报协议):无连接,不会测试主机的联通性,直接传递真实数据面向连接网络协议:是指通信双方之间在进行通信之前要先建立连......
  • 【计算机网络】传输层——传输层概念&UDP协议
    传输层概述主要学TCP和UDP协议,为应用层提供通信服务,使用网络层的服务只有主机才有的层次(路由器到网络层就没了)传输层功能1.提供进程与进程之间的通信2.复用和分用3.传输层对收到的报文进行差错检测。4.传输层的两种协议。TCPUDP差异面向连接的传输控制协议T......
  • 【计算机网络】3.传输层
    1概述和传输层服务传输层服务:进程之间的逻辑通信依赖网络层的服务(延时、带宽)对网络层的服务进行加强(数据丢失、顺序混乱、加密)TCP:多路复用解复用、建立连接、拥塞控制、流量控制UDP:多路复用解复用TCP和UDP都不提供延时和带宽保证网络层服务:主机之间的逻辑通信2多路......