计算机网络Ch5

第五章 传输层

一、传输层概述

1.进程、端口号、传输协议之间的关系

进程、端口号、传输协议之间的关系

  • 端口号占16bit,范围是0到65535
  • 0到1023为熟知端口号,开发的时候一般不使用,只能用于被熟知的重要应用程序

2.功能

  • 实现端到端(进程之间)的通信
  • 复用和分用
    • 复用(从上到下):在发送数据时,同一台主机上的多个进程可以使用同一个传输层协议
    • 分用(从下到上):在接收数据时,传输层可以把数据正确交付到目的进程
  • 差错检测
    • TCP会丢弃并通知重传
    • UDP会丢弃不通知
  • 向应用层提供两种服务
    • 面向连接的、可靠的端到端传输服务(TCP)
      • 确保数据正确,开销大,实时性较差
    • 无连接的、不可靠的端到端传输服务(UDP)
      • 数据可能出错,但速度快,开销小
    • 有连接:传输前先打招呼建立连接,传输结束告知对方结束
    • 可靠传输:接收方有确认机制,通知发送方哪些被接收成功

小结

传输层概述小结

二、UDP协议

1.UDP协议、UDP数据报、UDP首部

UDP协议

  • UDP首部很小,8B
  • UDP每次传输一个完整的报文,不支持自动拆分、重装,数据过大会拒绝
  • UDP无连接不可靠,不支持拥塞控制
  • UDP支持一对一、一对多传输

2.UDP数据报格式

UDP数据报格式

小结

UDP小结

3.UDP检验(发送方)

发送方UDP校验

  • 如果最高位进位,则将进位加到最低位

4.UDP校验(接收方)

接收方UDP校验

小结

UDP检验小结

三、TCP协议

1.TCP协议通信过程

TCP协议通信

2.TCP数据传输

TCP数据传输

3.TCP段格式

TCP段格式

  • 序号seq:用于标记数据部分的第一个字节在原始字节流中的位置
  • 确认ack:用于反馈ack号之前的所有字节都已收到
  • ACK:为0时ack无效,为1时ack有效,只有握手1的ACK为0
  • 数据偏移:表示TCP首部长度,以4B为单位
  • SYN:表示这是一个连接请求或者连接接受的报文,只有握手1和握手2为1
  • FIN:为1表示此报文的发送方的数据已经发送完毕,要求释放连接,只有挥手1和挥手3为1
  • 窗口(rwnd):表示接收窗口的大小。即从本报文ack算起,接收方还能接收多少数据,以字节为单位
  • 选项:在握手1和握手2中,选项中协商MSS(Max Segment Size,最大段长),表示TCP报文段最多携带多少数据(不算头部),通常不会太大,以免在IP层被分片

4.TCP连接管理


计算机网络Ch5
https://sdueryrg.github.io/2024/12/13/计算机网络Ch5/
作者
yrg
发布于
2024年12月13日
许可协议