Home 计算机网络 传输层
Post
Cancel

计算机网络 传输层

传输层的功能

  1. 提供应用进程之间的逻辑通信。
  2. 复用:不同进程可以使用同一个传输层协议传输数据。
  3. 分用:接收方剥去报文首部后可以正确交付给目的进程。
  4. 对收到的报文进行差错检测。

端口号和套接字

端口

  1. 端口是传输层地SAP

套接字

  1. 套接字 Socket = (主机IP地址 : 端口号)
  2. 套接字唯一地标识了网络中地一个主机和其上地一个应用进程。
  3. TCP和UDP分别拥有自己地端口号,它们互不干扰,可以共存于同一台主机。

TCP

TCP的特点

  1. TCP在不可靠的IP层之上实现了可靠的数据传输协议。
  2. TCP是全双工的。
  3. TCP面向字节流,传送时给每一个字节都编上序号。TCP数据像自来水一样连续流入盆中(缓存)。
  4. TCP能够保证数据的正确性,也能够保证数据顺序到达,不可能丢包。
  5. TCP像自动挡的汽车,连接,按序到达,可靠性,自动切包都已经内置了。

应用场景

  1. 如果是由客户端间歇性地发起无状态的查询,并且偶尔发生的延迟可以容忍,那么就使用HTTP/HTTPS。
  2. 如果客户端和服务器都可以独立发包,但是偶尔发生的延迟可以容忍(比如在线的纸牌游戏、大部分MMO类游戏),那么使用TCP长连接。

TCP报文段

image-20230205124012612

  1. TCP报文包头的最小长度为 20B。
  2. 单个数据包最大能承载 $2^{16}- 1 = 65,535$B 的数据。(16为窗口大小的位数)

建立连接的三次握手

image-20230205124022197

断开连接的四次挥手

UDP

UDP的特点

  1. UDP无连接,不可靠,尽最大努力交付。
  2. 使用UDP,应用层能更好的控制要发送的数据和发送时间。
  3. 应用层协议要自己限制合适的报文大小,以免报文太大导致丢包率高。
  4. UDP为数据包模式,不是流模式,UDP数据像机关枪一样不停的扫射到目的地。
  5. UDP不保证任何事情(不保证正确,不保证按顺序到达),且可能丢包。
  6. UDP像手动挡汽车,只会简单的传输,什么都不能保证,但在效率上潜力巨大;只要应用层能够处理好需求,延迟比TCP低得多。

应用场景

  1. 如果客户端和服务器都可以独立发包,而且无法忍受延迟(比如大多数多人动作类游戏、少部分MMO类游戏),那么使用UDP。

UDP数据报

image-20230205124045127

image-20230205124055091

This post is licensed under CC BY 4.0 by the author.
Contents