计算机网络传输层知识总结

传输层:只有主机才有的层次,进程之间的通信

传输层提供的服务

传输层的功能

  •     传输层提供进程之间的逻辑通信,即端到端的通信(网络层是主机间的通信)
  •     复用和分用
  •     差错检测(首部和数据部分)
  •     面向连接的TCP和无连接的UDP

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

【2018统考真题】UDP协议实现分用时所依据的头部字段是(A)。

A. 目的端口号

C. 长度

D. 校验和

A. 源端口号

端口

端口的作用

  •     端口标识的是主机中的进程
  •     硬件端口是不同硬件设备进行交互的接口(路由器,交换机上有)
  •     软件端口是应用层的各种协议进程与传输实体进行层间交互的一种地址

端口号

  •    熟知端口号是0—1023
  •    登记端口号是1024—49151
  •    短暂端口号是49152—65535 

套接字

  •     套接字 Socket =( IP 地址:端口号)
  •     它唯一地标识网络中的一台主机和其上的一个应用(进程)

小结

    1.网络层只提供首部的差错控制
    2.数据链路层的 SAP 是 MAC 地址,网络层的 SAP 是 IP 地址,传输层的 SAP 是端口。
    3.传输层使用的是软件端口
    4.用户应用程序使用 UDP 进行数据传输,那么必须在传输层的上层即应用层提供可靠性方面的全部工作
    5.一个 TCP 报文的首部长度是20B,一个 IP 数据报的首部长度也是20B
 

UDP

传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。

使用UDP的网络应用,其传输的可靠性由应用层负责

UDP仅在IP的数据报服务之上增加了两个最基本的服务:复用和分用以及差错检测。

UDP数据报

UDP的特点:

  • UDP无需建立连接
  • 无连接状态
  • 分组首部开销小(8B)
  • 应用层能更好地控制要发送的数据和发送时间
  • UDP 支持一对一、一对多、多对一和多对多的交互通信。
  • 适合小文件
  • 一次发送一整个报文
  • UDP是面向报文的

UDP的首部格式
    ●源端口
    ●目的端口
    ●长度
    ●校验和

UDP校验

18bf53b8c62d4dac896e07776eac0531.jpeg

  •  校验时,若 UDP 数据报部分的长度不是偶数个字节,则需填入一个全0字节
  •  如果 UDP 校验和校验出 UDP 数据报是错误的,那么可以丢弃,也可以交付给上层,但是需要附上错误报告,即告诉上层这是错误的数据报
  • 通过伪首部,不仅可以检查源端口号、目的端口号和 UDP 用户数据报的数据部分,还可以检查 IP 数据报的源 IP 地址和目的地址。
  • 当无差错时结果为全1,否则就是出错,接收方丢弃这个UDP数据报
  • 该字段是可选的,不用就置为全零

小结

   1.UDP 数据报的格式包括 UDP 源端口号、 UDP 目的端口号、 UDP 报文长度和校验和,但不包括 UDP 数据报首部长度。因为 UDP 数据报首部长度是固定的8B,所以没有必要再设置首部长度字段。
    2.UDP 的校验和功能不是必需的,可以不使用
    3.如果 UDP 校验和计算结果为0,那么在校验和字段置为全1
    4.UDP 校验和字段的计算包括一个伪首部、 UDP 首部和携带的用户数据 
    5.UDP 校验和的计算方法是二进制反码运算求和再取反

TCP

传送数据之前必须建立连接,数据传送结束后要释放连接。不提供广播或多播服务。由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销:确认、流量控制、计时器及连接管理等。

TCP的特点:

  • 面向连接的,逻辑连接
  • 每条TCP连接是一对一的
  • 全双工通信
  • 可靠的
  • 面向字节流的
  • 适用于大文件


TCP报文段
    ●首部(其首部的前20B是固定的。 TCP 首部最短为20B,后面有4N字节是根据需要而增加的选项,长度为4B的整数倍。)
    ●数据

TCP连接管理
    ●连接建立
    ●数据传输
    ●连接释放

TCP的连接建立:
    ●三次握手
    ●服务器端的资源是在完成第二次握手时分配的
    ●而客户端的资源是在完成第三次握手时分配的

连接建立。分为3步:
①SYN=1,seq=x。
②SYN=1,ACK=1,seq=y, ack=x+ 1。
③ACK=l,seq=x+ 1,ack=y+ 1。
 

[2011统考真题]主机甲向主机乙发送一个(SYN=1, seq=11220)的TCP段,期望与
主机乙建立TCP连接,若主机乙接受该连接请求,则主机乙向主机甲发送的正确的TCP
段可能是( )。
A. (SYN=0,ACK=0, seq=11221, ack= 11221 )
B. (SYN=1, ACK=1,seq= 11220, ack= 11220)
C. (SYN=1, ACK=1,seq=11221, ack=11221 )
D. (SYN=0, ACK=0,seq= 11220, ack= 11220)
在确认报文段中,同步位SYN和确认位ACK必须都是1;

返回的确认号ack是甲发送的初始序号seq=11220加1,即ack= 11221;

同时乙也要选择并消耗-一个初始序号seq, seq 值由乙的TCP进程任意给出,它与确认号、请求报文段的序号没有任何关系。

TCP连接的释放:
    ●四次握手

释放连接。分为4步:
①FIN=1,seq=u。
②ACK=l,seq=v,ack=u+ 1。
③FIN=1,ACK=1,seq=w, ack=u+ 1。
④ACK=1,seq=u+ 1,ack=w+ 1。
 

TCP的可靠传输
    ●校验(与UDP一致)
    ●序号 (保证数据有序提交给应用层)
    ●确认
    ●重传(超时和冗余ACK)

TCP流量控制
    ●TCP 提供流量控制服务来消除发送方(发送速率太快)使接收方缓存区溢出的可能性

TCP拥塞控制
    ●接收窗口rwnd
    ●拥塞窗口cwnd

慢恢复例题:

[2009统考真题]一个TCP连接总以1KB的最大段长发送TCP段,发送方有足够多的
数据要发送,当拥塞窗口为16KB时发生了超时,如果接下来的4个RTT时间内的TCP
段的传输都是成功的,那么当第4个RTT时间内发送的所有TCP段都得到肯定应答时,
拥塞窗口大小是( C)。
A.7KB
B. 8KB
C. 9KB
D. 16KB
 发生超时后,慢开始门]限ssthresh变为16KB/2=8KB, 拥塞窗口变为1KB。在接下来的3个
RTT内,执行慢开始算法,拥塞窗口大小依次为2KB、4KB、8KB,由于慢开始门限ssthresh为
8KB,因此之后转而执行拥塞避免算法,即拥塞窗口开始“加法增大”。因此第4个RTT结束后,
拥塞窗口的大小为9KB。
快重传例题:

在一个TCP连接中,MSS为1KB,当拥塞窗口为34KB时收到了3个冗余ACK报文。.
如果在接下来的4个RTT内报文段传输都是成功的,那么当这些报文段均得到确认后,
拥塞窗口的大小是( )。
A.8KB
B. 16KB 
C.20KB
D. 21KB
条件“收到了3个冗余ACK报文”说明此时应执行快恢复算法,因此慢开始门限值设为17KB,
并在接下来的第一个RTT中cwnd也被设为17KB, 第二个RTT中cwnd=18,第三个RTT中cwnd= 19KB,
第四个RTT中cwnd = 20KB,第四个RTT中发出的报文全部得到确认后,cwnd再增加1KB,变为21KB。
注意cwnd的增加都发生在收到确认报文后。
17->18->19->20->21

小结

  1.TCP 伪首部与 UDP 伪首部一样,包括 IP 分组首部的一部分。 IP 首部中有一个协议字段,用指明上层协议是 TCP 还是 UDP 。17代表 UDP ,6代表 TCP
  2.报头长度是20~60B,由于数据偏移字段的单位是4B,也就是说当偏移取最大时 TCP 首部长度为15x4=60B
  3.TCP使用大小可变的滑动窗口进行流量控制
 

猜你喜欢

转载自blog.csdn.net/weixin_53197693/article/details/133783402