运输层协议概述
进程之间的通信
运输层向它上面的应用层提供通信服务。
当网络边缘部分的两台主机使用网络核心部分的功能进行端到端的通信时,都要使用协议栈中的运输层;而网络核心部分中的路由器在转发分组时只用到下三层的功能。
在计算机网络中实际进行通信的真正实体,是位于通信两端主机中的进程;也就是说,端到端的通信是应用进程之间的通信
进程之间的通信图例说明
运输层向应用层实体屏蔽了下面网络核心的细节(例如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道。
网络层与运输层的通信区别
运输层还要对收到的报文进行差错检测。——在网络层,IP 数据报首部中的检验和字段,只检验首部是否出现差错而不检查数据部分。
运输层的两个协议
- 用户数据报协议UDP (User Datagram Protocol)
- 传输控制协议 TCP (Transmission Control Protocol)
运输层的端口
我们知道,运输层有分用和复用的功能,为了正确交付应用层所指明的应用进程,应当给每个应用进程赋予一个明确的标志。
应用进程的交互需要经过应用层和运输层的界面上一些“门”,而“门”设为通信的抽象终点。
这些抽象终点的正式名称就是协议端口(protocol port),一般就简称为端口(port)。每一个端口用一个称为端口号(portnumber)的正整数来标志。主机的操作系统提供了接口机制,使得进程能够通过这种机制找到所要找的端口。
TCP/IP体系结构的运输层使用端口号来标识和区分应用层的不同应用进程。
服务器使用的端口号与客户端使用的端口号
分用和复用的运行
运输层端口号举例
数据协议报UDP
UDP的特点
UDP的传输特点
图上画出了多对一的通信(a→x, b→x)。如果改成a→x,a→y,则是一对多的情况了。
UDP的复用分用
UDP的首部格式
接收方UDP报文的端口号不正确
UDP计算检验和
二进制反码求和末尾进位会回卷
传输控制协议TCP
TCP的主要特点
TCP传输报文的特点
TCP与UDP传输报文的比较
TCP的连接
TCP把连接作为最基本的抽象。TCP的许多特性都与TCP是面向连接的这个基本特性有关。
每一条TCP连接有两个端点,TCP连接的端点叫作套接字(socket)或插口。
套接字socket的表示方式
TCP连接的表示方式
可靠传输的工作原理
TCP报文段的首部格式
TCP虽然是面向字节流的,但 TCP传送的数据单元却是报文段。一个TCP报文段分为首部和数据两部分,而 TCP的全部功能都体现在它首部中各字段的作用。