计算机网络 - Charles-Charmless/Charles-Charmless.github.io GitHub Wiki

应用层

传输层

tcp报文段结构

网络层

应用层

传输层

  • TCP,UDP传输层协议
  • 为运行在不同主机上的应用进程之间提供逻辑通信

网络层提供了主机之间的逻辑通信,运输层为运行在不同主机上的进程之间提供了逻辑通信。

运输层协议只工作在端系统中,负责将应用进程的报文移动到网络边缘(网络层)

tcp:可靠,面向连接,报文段

udp:不可靠,无连接,数据报

将主机间交付扩展到进程间交付被称为运输层的多路复用多路分解

进程到进程的数据交付差错检查是两种最低限度的传输层服务(udp所能提供的仅有的两种服务),除此之外,tcp还提供可靠的数据传输(通过使用流量控制,序号,确认和定时器)和阻塞控制

  • 多路分解:将运输层报文段中的数据交付到正确的套接字。
  • 多路复用:将源主机从不同的套接字收集数据块,并为每个数据块封装上头部信息,(用来后续分解),从而生成报文段,然后将报文段传递到网络层。

套接字的唯一标识符:端口号。

一个udp套接字是由一个二元组来全面标识的,该二元组包含一个目的ip地址和一个目的端口地址。

tcp套接字是由一个四元组来标识的:源ip地址,源端口号,目的ip地址,目的端口号。与udp不同,两个具有不同源ip地址和端口号的到达tcp报文将被定向到两个不同的套接字,除非携带了初始创建连接的请求。

tcp阻塞控制防止任何一条tcp连接用过多的流量来淹没通信主机之间的链路和交换设备。

udp流量不可调节。

套接字用来连接传输层和网络层。

ARP自动重传请求,数据包错误,请求重传

  • 差错检验
  • 接受方反馈
  • 重传

可靠传输协议:

  • 1.0
  • 2.0 加入自动重传请求,停等协议
  • 2.1 加入数据分组编号
  • 2.2
  • 3.0 加入倒计数定时器,比特交替协议

对于SR(选择重传)协议而言,窗口长必须小于或等于序号空间大小的一半

tcp报文段结构

tcp首部一般是20个字节

udp首部一般是12个字节

源端口和目的端口被用于多路复用和多路分解

序号和确认号字段被tcp发送方和接受方用来实现可靠数据传输服务。

接收窗口字段:用于流量控制,指示接收方愿意接收的字节数量

首部长度字段:指示了以32比特的字节为单位的TCP首部长度(由于tcp选项字段原因,tcp首部的长度是可变的)

可选与变长的选项字段:用于发送方与接收方协商最大报文段长度(MSS)时,或在高速网络环境下用作窗口调节因子时使用。

标志字段:

  • ACK:指示确认字段中的值是有效的,即报文段包含一个对已被成功接收报文段的确认
  • RST:
  • SYN:
  • FIN:
  • PSH:表示接收方应立即将数据交给上层
  • URG:指示报文段里存在着被发送端的上层尸体置为“紧急”的数据

主机A填充报文段的确认号是主机A期望从主机B收到的下一个字节的序号

tcp被称为提供累积确认

网络层

ip协议(网际协议)

ip服务模型为尽力而为交付服务,不确保报文段的交付,也不保证报文段的按序交付。

⚠️ **GitHub.com Fallback** ⚠️