计算机网络05:运输层

概述

  1. 之前课程所介绍的计算机网络体系结构中的物理层、数据链路层以及网络层它们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信
  2. 但实际上,在计算机网络中进行通信的真正实体是位于通信两端主机中的进程
  3. 如何为运行在不同主机上的应用进程提供直接的通信服务是运输层的任务,运输层协议也称为端到端协议

在这里插入图片描述

运输层端口号、复用与分用的概念

端口号

在这里插入图片描述

发送方的复用和接收方的分用

在这里插入图片描述

TCP/IP体系的应用层常用协议所使用的运输层熟知端口号

在这里插入图片描述

举例

DNS客户端发送DNS查询请求报文给DNS服务端
用户在浏览器中输入web服务器的域名www.porttest.com
用户PC的DNS客户端进程会发送一个DNS查询请求报文
内容为:域名www.porttest.com对应的IP地址是什么
DNS查询请求报文需要使用运输层的UDP协议封装成UDP用户数据报
UDP首部的源端口值在短暂端口号49151~65525中挑选一个未被占用的,用来表示DNS客户端进程,例如49152
目的端口的值设置为53,这是DNS服务器端进程所使用的熟知端口号
之后,将UDP用户数据报封装在IP数据报中,通过以太网发送给DNS服务器,DNS服务器收到该数据报后,从中解封出UDP用户数据报,
UDP目的端口为53,这表明应将UDP用户数据报的数据载荷部分,也就是DNS查询请求报文交付给本服务器中的DNS服务器端进程

DNS服务端发送DNS响应报文给DNS客户端
DNS服务器端进程解析DNS查询请求报文的内容,然后按其要求查找对应的IP地址,之后,会给用户发送DNS相应报文,其内容为“域名www.porttest.com对应的ip地址是192.168.0.3”
DNS响应报文需要使用运输层的UDP协议封装成UDP用户数据报,UDP首部的源端口值设置为53,表明这是DNS服务器端进程所发送的UDP用户数据报,目的端口字段的值设定为49152,这是之前用户PC中发送DNS查询请求报文的DNS客户端进程所使用的短暂端口号
之后,将UDP用户数据报封装在IP数据报中,通过以太网发送给用户PC,用户PC收到该数据报后,从中解封出UDP用户数据报,
UDP首部中的目的端口号为49152,这表明应将UDP用户数据报的数据载荷部分,也就是DNS响应报文交付给用户PC中的DNS客户器端进程
DNS客户端进程解析DNS响应报文的内容,就可知道自己之前所发送的Web服务器的域名所对应的ip地址为192.168.0.3

HTTP客户端发送HTTP请求报文给HTTP服务端
现在,用户PC中的http客户端进程可以向Web服务器发送HTTP请求报文了,其内容为“首页内容是什么”,HTTP请求报文需要使用运输层的TCP协议封装成TCP报文段,
其首部的源端口值在短暂端口号49151~65525中挑选一个未被占用的,用来表示HTTP客户端进程,例如49152
目的端口的值设置为80,这是HTTP服务器端进程所使用的熟知端口号
之后,将TCP报文段封装在IP数据报中,通过以太网发送给Web服务器,
Web服务器收到该数据报后,从中解封出TCP报文段,
TCP首部的目的端口号为80,这表明应该将该TCP报文段的数据载荷部分,也就是HTTP请求报文交付给本服务器中的HTTP服务器端进程

HTTP服务端发送HTTP响应报文给HTTP客户端
HTTP服务端进程解析HTTP请求报文的内容,然后按其要求查找首页内容,
之后,会给用户PC发送HTTP响应报文,其内容是HTTP客户端所请求的首页内容。HTTP响应报文需要使用运输层的TCP协议封装成TCP报文段,其首部中的源端口字段的值设置为熟知端口号80,表明这是HTTP服务器端进程所发送的TCP报文段,目的端口字段的值设定为49152,这是之前用户PC中发送HTTP请求报文的HTTP客户端进程所使用的短暂端口号,
之后,将TCP报文段封装在IP数据报中,通过以太网发送给用户PC,用户PC收到该数据报后,从中解封出TCP报文段,
TCP首部的目的端口号为49152,这表明应该将该TCP报文段的数据载荷部分,也就是HTTP响应报文交付给用户PC中的HTTP客户器端进程
HTTP客户端进程解析HTTP响应报文的内容,并在网页浏览器中进行显示,这样我们就可以在网页浏览器中看到Web服务器所提供的首页内容了

UDP和TCP的对比

UDP和TCP是TCP/IP体系结构运输层中的两个重要协议

有无连接

在这里插入图片描述

传播方式

在这里插入图片描述

处理数据报

在这里插入图片描述
(TCP是全双工通信)

是否可靠传输

在这里插入图片描述

数据报首部

在这里插入图片描述

TCP的流量控制

  1. 一般来说,我们总是希望数据传输得更快一些,但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失
  2. 所谓流量控制(flow control)就是让发送方的发送速率不要太快,要让接收方来得及接收
  3. 利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制

举例说明

在这里插入图片描述

在这里插入图片描述
下一题
在这里插入图片描述

TCP的拥塞控制

  1. 在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫拥塞
    在计算机网络中的链路容量(带宽)、交换结点中的缓存和处理机制等,都是网络的资源
  2. 出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降
    在这里插入图片描述

拥塞控制算法

下面介绍四种拥塞控制算法的基本原理,假定如下条件

  1. 数据是单方向传送,而另一个方向只传送确认
  2. 接收方总是有足够大的缓存空间,因而发送方的发送窗口的大小应该由网络的拥塞程度来决定
  3. 以最大报文段MSS的个数为讨论问题的单位,而不是以字节为单位

在这里插入图片描述

慢开始算法

慢开始是乘法增长,不断试探接收方能接收的最大报文数
每次乘2,当到达慢开始门限值时,改用拥塞避免算法
在这里插入图片描述

拥塞避免

每轮传输轮次结束后,拥塞窗口值只能线性加一,
在这里插入图片描述
当部分报文段丢失,这必然会造成发送方对这些丢失报文的超时重传
发送方以此判断网络可能出现了拥塞,进行以下工作:

  1. 将慢开始门限值(ssthresh)值更新为发生拥塞时拥塞窗口cwnd值的一半
  2. 将cwnd值减小为1,并重新执行慢开始算法

在这里插入图片描述

在这里插入图片描述

快重传

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

快恢复

在这里插入图片描述
在这里插入图片描述
例题
在这里插入图片描述

TCP超时重传时间的选择

  1. 超时重传时间的选择是TCP最复杂的问题之一
    在这里插入图片描述
    在这里插入图片描述
    因为复杂的网络环境,略大于往返时间RTT没那么好找
    在这里插入图片描述

在这里插入图片描述
计算:
在这里插入图片描述
测量比较复杂
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

TCP可靠传输的实现

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
例题
在这里插入图片描述
下一题
在这里插入图片描述

TCP的运输连接管理

在这里插入图片描述

TCP连接的建立

在这里插入图片描述

被动打开连接:首先TCP服务进程创建传输控制块,用来存储TCP连接中的一些重要信息
,之后就准备接收TCP客户进程的连接请求。
此时TCP服务器进程就进入监听状态,等待TCP客户进程的连接请求。

TCP客户进程首先创建传输控制块,然后主动打开连接
如下图
在这里插入图片描述
两次握手的弊端:
在这里插入图片描述

在这里插入图片描述
例题:
在这里插入图片描述
注意:

  1. TCP的标准规定,SYN =1 的报文段不能携带数据,但要消耗一个序号
  2. TCP的标准规定,普通的确认报文段如果不携带数据,则不消耗序号

TCP的连接释放

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

TCP报文段的首部格式

在这里插入图片描述

端口号

在这里插入图片描述

序号字段、确认字段、确认标记字段ACK

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据偏移字段

在这里插入图片描述

在这里插入图片描述

保留字段

占6比特,保留为今后使用,目前应置0

窗口字段

在这里插入图片描述

校验和字段

在这里插入图片描述

同步标志位SYN

在这里插入图片描述

终止标志位FIN

在这里插入图片描述

复位标志位RST

在这里插入图片描述

推送标志位PSH

在这里插入图片描述

紧急标志位URG和紧急指针

在这里插入图片描述

选项部分

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值