前言: 第5章 运输层笔记 1. 概览 主要内容:介绍运输层协议的特点、进程间通信、端口、UDP和TCP协议、可靠传输、TCP报文段的首部格式、TCP的关键概念(如滑动窗口、流量控制、拥塞控制和连接管理)。重要性:运输层是网络体系结构中的核心层次。 2. 运输层的基础概念 逻辑通信:运输层为通信的应用进程提供逻辑通信。端口与套接字:运输层使用端口和套接字来标识和管理不同的通信会话。 3. 无连接的UDP 定义:简单的传输协议,不建立连接。特点:高效但可能不可靠。 4. 面向连接的TCP 定义:复杂的传输协议,需要建立连接。特点:可靠但可能相对较慢。 5. 可靠传输的工作原理 目标:在不可靠的网络上实现可靠传输。方法: 停止等待协议ARQ协议 6. TCP的关键特性 滑动窗口:用于数据流量的有效控制。流量控制:确保数据在合适的速率下流动。拥塞控制:防止网络拥塞。连接管理:管理TCP连接的建立、维护和终止。
笔记:5.1.1 进程之间的通信 1. 运输层的定位位于面向通信部分的最高层。是用户功能中的最低层。只在主机的协议栈中存在,网络核心部分(如路由器)只使用下三层功能。 2. 逻辑通信网络层的通信端点:主机。运输层的通信端点:进程。逻辑通信定义:数据看似是在两端直接传输,但实际上它经过了多个层次,这种“看似”的通信称为逻辑通信。 3. 运输层的主要功能复用 (multiplexing):不同的应用进程都可以使用同一个运输层协议发送数据。分用 (demultiplexing):接收端的运输层可以正确地将数据传递给目的应用进程。提供应用进程间的逻辑通信。 4. 网络层 vs 运输层网络层:提供主机之间的逻辑通信。运输层:为应用进程间提供端到端的逻辑通信。运输层有许多网络层无法替代的功能。运输层对上层屏蔽了网络核心的细节。 5. 差错检测 运输层进行报文的差错检测。而网络层中的IP数据报仅检查首部,不检查数据部分。 6. 两种主要运输协议面向连接的TCP:虽然下层网络可能是不可靠的,但TCP为上层提供了一个看似可靠的逻辑通信信道。无连接的UDP:即使使用UDP,逻辑通信信道仍然是不可靠的。
5.1.2 运输层的两个主要协议笔记
主题: 运输层的两大核心协议:UDP和TCP。
TCP/IP运输层的两大协议:
用户数据报协议UDP (User Datagram Protocol)传输控制协议TCP (Transmission Control Protocol)位置于协议栈:
应用层UDP / TCPIP各种网络接口传输数据单位:
在TCP/IP中,使用的数据单位: TCP -> 报文段 (Segment)UDP ->用户数据报UDP特点:
无连接:发送数据前不需建立连接。无确认:接收方收到数据后不给出确认。不可靠交付:可能丢包,但某些场景下效率高。TCP特点:
面向连接:数据传送前需先建立连接,传送结束后释放连接。无广播、多播。可靠交付:包含确认、流量控制、计时器和连接管理等功能。由于其复杂性,会占用较多的处理资源。应用与协议使用情况:
应用应用层协议运输层协议名字转换DNSUDP文件传送TFTPUDP路由选择RIPUDPIP地址配置DHCPUDP网络管理SNMPUDP远程文件服务器NFSUDPIP电话专用协议UDP多媒体通信专用协议UDP多播IGMPUDP电子邮件SMTPTCP远程终端接入TELNETTCP万维网HTTPTCP文件传送FTPTCP结论: 运输层的UDP和TCP各有其用处,不同的应用和场景会选择不同的协议。UDP简单、快速但不可靠;而TCP则提供可靠的连接服务,但可能带来更多的开销。
5.1.3 运输层的端口 1. 复用和分用 日常比喻:所有部门通过收发室发送公文(复用),收发室根据地址将公文发送给正确的部门(分用)。在计算机中:应用层所有进程通过运输层发送数据到IP层(复用),从IP层接收数据后再根据标识分发给正确的应用进程(分用)。 2. 如何标识应用进程 计算机内部:进程标识符互联网上:由于存在不同的操作系统和进程标识格式,使用统一的端口号(port)来标识不同的应用进程。 3. 端口的重要性 定义:在TCP/IP体系中,用于标志应用进程与运输层之间的接口。软硬件区别:这里讨论的是软件端口,与硬件设备的端口完全不同。端口号范围:0-65535,其中有几个特定的区域是为特定的用途预留的。 4. 两大类的端口 服务器端端口熟知端口号:0-1023 例如: FTP: 21TELNET: 23SMTP: 25DNS: 53TFTP: 69HTTP: 80SNMP: 161HTTPS: 443登记端口号:1024-49151客户端端口短暂端口号:49152-65535,用于短期、临时通信。 5. 端口的应用 当服务器收到客户的报文时,它可以根据客户的端口号将数据返回给客户。服务器端的熟知端口是固定的,确保客户可以始终找到它,而客户端的短暂端口是动态分配的,用完即弃。 6. 小结
端口在运输层中起到了非常关键的作用,是确保数据能够正确传输到目标应用进程的关键。而为了满足各种应用和场景,端口又分为了不同的类型和范围,每种都有其特定的用途和意义。
总结: 重点: 运输层的功能:复用和分用,即将多个应用层进程的数据集中传输,并在接收端正确分发给相应的应用进程。端口的概念与重要性:端口是运输层与应用层交互的地址或接口,用于明确标识应用进程。端口的分类:包括服务器端的熟知端口和登记端口,以及客户端的短暂端口。 难点: 为何不能用进程标识符在互联网上标识进程:由于互联网上存在多种操作系统,而不同操作系统使用不同的进程标识格式。软件端口与硬件端口的区别:两者服务的目标和层次不同,前者服务于应用与运输层之间的通信,后者服务于物理设备间的连接。 易错点: 混淆端口的概念:可能将软件端口与硬件端口混为一谈,或误解其用途。端口号范围与应用:可能误解端口号的范围和其对应的应用,例如将客户端的短暂端口与服务器的熟知端口混淆。复用与分用的概念:可能混淆这两个相反的过程,特别是在理解其在运输层中的应用时。建议在学习运输层时,重点理解其为应用层提供的服务和功能,并牢记与其交互的各种协议和概念,特别是与端口相关的内容。同时,注意端口在实际通信中的应用,理解其在确定通信双方身份中的关键作用。