计算机网络学习笔记-传输层

目录​​​​​​​

概述

与网络层的区别

端口号

概述

分类

重要功能:复用+分用

两个重要协议:UDP+TCP

UDP用户数据报协议

概述

主要特点

首部格式

TCP传输控制协议

主要特点

首部格式

运输连接管理


概述

  • 运输层提供应用进程间的逻辑通信
  • 通信的真正实体是位于通信两端主机间的进程

与网络层的区别

网络层:为主机之间的通信提供服务

运输层:在网络层的基础上,为应用进程之间的通信提供服务

端口号

概述

端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程

传输层协议中端口号占16位

ps:两个计算机中的进程要互相通信,不仅必须知道对方的 IP 地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)

分类

(1) 服务器端使用的端口号

熟知端口,数值一般为 0 ~ 1023

登记端口号,数值为 1024 ~ 49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复

计算机网络学习笔记-传输层_第1张图片

(2) 客户端使用的端口号(短暂端口号

数值为 49152 ~ 65535,留给客户进程选择暂时使用

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

重要功能:复用+分用

  • 复用:应用层所有的应用进程都可以通过传输层再传输到网络层。
  • 分用:传输层从网络层收到数据后交付指明的应用进程。

两个重要协议:UDP+TCP

UDP用户数据报协议

概述

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

主要特点

  1. UDP 是无连接的,发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延
  2. UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表
  3. UDP 是面向报文的。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。UDP 一次交付一个完整的报文
  4. UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很适合多媒体通信的要求
  5.  UDP 支持一对一、一对多、多对一和多对多的交互通信
  6. UDP 的首部开销小,只有 8 个字节,比 TCP 的 20 个字节的首部要短

首部格式

计算机网络学习笔记-传输层_第2张图片

  1.  源端口(2B):源端口号。在需要对方回信时选用。不需要时可用全0
  2. 目的端口(2B):目的端口号。这在终点交付报文时必须使用
  3. 长度(2B):UDP用户数据报的长度,其最小值是8(仅有首部)
  4. 检验和(2B):检测UDP用户数据报在传输过程中是否出错
     

TCP传输控制协议

主要特点

  1. TCP 是面向连接的运输层协议 每一条 TCP 连接只能有两个端点 (接字 (socket) 或插口),每一条 TCP 连接只能是点对点的(一对一)。
  2. TCP 提供可靠交付的服务。
  3. TCP 提供全双工通信。
  4. 面向字节流

面向字节流:

ps:TCP协议不知道应用层报文下发的字节流的含义。

ps:端口号拼接到 IP 地址即构成了套接字

首部格式

计算机网络学习笔记-传输层_第3张图片 

 TCP 首部的最小长度是 20 字节

  1. 源端口和目的端口字段:各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。  
  2. 序号字段:占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
  3. 确认号字段:占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。
  4. 数据偏移(即首部长度):占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。  
  5. 保留字段:占 6 位,保留为今后使用,但目前应置为 0
  6. 紧急 URG:当 URG =1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)
  7. 确认 ACK:只有当 ACK=1时确认号字段才有效。当 ACK=0时,确认号无效。
  8. 推送 PSH (PuSH) :接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付
  9. 复位 RST (ReSeT):当 RST =1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
  10. 同步 SYN :同步 SYN = 1 表示这是一个连接请求或连接接受报文
  11. 终止 FIN (FINish):用来释放一个连接。FIN =1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接
  12. 窗口字段 :占 2 字节,用来让对方设置发送窗口的依据,单位为字节
  13. 检验和:占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部
  14. 紧急指针字段:占 16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)
  15. 选项字段:长度可变。TCP 最初只规定了一种选项,即最大报文段长度 MSS。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。”

运输连接管理

3个阶段:建立连接、数据传送、释放连接

TCP 连接的建立采用客户服务器方式 :主动发起连接建立的应用进程叫做客户,被动等待连接建立的应用进程叫做服务器

建立连接过程:握手(采用三报文握手)

计算机网络学习笔记-传输层_第4张图片

第一次握手:SYN = 1  ACK = 1

第二次握手:ACK = 1

第三次握手:SYN = 1

连接释放过程:采用四报文握手

计算机网络学习笔记-传输层_第5张图片

第一次握手:FIN = 1 

第二次握手:ACK=1

第三次握手:FIN = 1  ACK = 1

第四次握手:ACK = 1

你可能感兴趣的:(计算机网络学习笔记,计算机网络,学习,笔记)