计算机网络-运输层

2018-06-20  本文已影响0人  CandyTong_

计算机网络-运输层

运输层协议概述

进程间的通信

运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层


image.png

通信的真正端点并不是主机而是主机中的进程

网络层和运输层的区别

image.png

运输层的两个主要协议

UDP:一种无连接协议

提供无连接服务。
在传送数据之前不需要先建立连接。
传送的数据单位协议是 UDP 报文或用户数据报。
对方的运输层在收到 UDP 报文后,不需要给出任何确认。
虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。

TCP:一种面向连接的协议

提供面向连接的服务。
传送的数据单位协议是 TCP 报文段 (segment)。
TCP 不提供广播或多播服务。
由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。

运输层的端口

为了标志本计算机应用层中的各进程

image.png

服务端端口!=客户端端口

客户端端口-短暂端口

当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。

UDP 协议

UDP 只在 IP 的数据报服务之上增加了很少一点的功能:

特点

image.png

UDP 首部格式

image.png

伪首部仅仅是为了计算检验和

端口分用

image.png

当运输层从 IP 层收到 UDP 数据报时,就根据首部中的目的端口,把 UDP 数据报通过相应的端口,上交最后的终点——应用进程

传输控制协议 TCP

image.png

TCP 不关心应用进程一次把多长的报文发送到 TCP 缓存。
TCP 对连续的字节流进行分段,形成 TCP 报文段
TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)

TCP连接

同一个 IP 地址可以有多个不同的 TCP 连接。
同一个端口号也可以出现在多个不同的 TCP 连接中

TCP 连接的端点叫做套接字 (socket)

套接字

image.png

每一条 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定

image.png

可靠传输工作原理

理想传输条件

在这样的理想传输条件下,不需要采取任何措施就能够实现可靠传输。
然而实际的网络都不具备以上两个理想条件。必须使用一些可靠传输协议,在不可靠的传输信道实现可靠传输。

停止等待协议

每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。

出现插查错

超时重传

接收方B 不会发送任何消息回发送方,此时发送方A 超过一定时间后,会重新发送到接收方

确认丢失

接收方发B 送给发送方A 的确认丢失

这会触发发送方A 超时重传,接收方又收到了重传的分组M1 。这时 接收方B 应采取两个行动:

  1. 丢弃这个重复的分组 M1,不向上层交付。
  2. 向 发送方A 发送确认。不能认为已经发送过确认就不再发送,因为 发送方A 之所以重传分组M1 就表示 A 没有收到对 M1 的确认。

确认迟到

传输过程中没有出现差错,但 接收方B 对分组 M1 的确认迟到了。
发送方A 会收到重复的确认。对重复的确认的处理很简单:收下后就丢弃。
接收方B 仍然会收到重复的 分组M1,并且同样要丢弃重复的 M1,并重传确认分组

自动重传请求 ARQ

重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组。

连续ARQ协议

滑动窗口协议比较复杂,是 TCP 协议的精髓所在。
发送方维持的发送窗口,它的意义是:位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认。这样,信道利用率就提高了。
连续 ARQ 协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置

累计确认

对按序到达的最后一个分组发送确认,到这个分组为止的所有分组都已正确收到了

Go-back-N

如果发送方发送了前 5 个分组,而中间的第 3 个分组丢失了。这时接收方只能对前两个分组发出确认。发送方无法知道后面三个分组的下落,而只好把后面的三个分组都再重传一次。
这就叫做 Go-back-N(回退 N),表示需要再退回来重传已发送过的 N 个分组

TCP 报文段首部格式

image.png

TCP 的运输连接管理

image.png
image.png
上一篇 下一篇

猜你喜欢

热点阅读