
本文共 1940 字,大约阅读时间需要 6 分钟。
一、传输层的作用
1.传输层定义
传输层主要负责在网络层和应用层之间提供通信服务。在TCP/IP协议组中,传输层有两种协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供可靠的通信传输服务,而UDP则常被用于广播和细节控制交给应用的通信传输。
TCP协议通过端口号来识别应用程序,确保数据能够正确地送达目标应用程序。IP首部中的协议字段标识使用的传输层协议。
2.通信处理
TCP/IP协议组的应用协议大多以客户端/服务端模式运行。服务端程序需要提前启动,准备接收客户端的请求。以HTTP为例,服务端程序如httpd运行在服务器上,作为守护进程接收客户端的HTTP请求。
UNIX系统中,服务端程序称为守护进程。例如,HTTP的守护进程是httpd,SSH的守护进程是sshd。Unix中通常启动一个inetd服务程序(超级守护进程),该程序接收客户端请求并根据需要启动对应的守护进程。
3.传输层协议TCP与UDP
TCP在传输过程中保证数据的有序性和可靠性,通过序列号、确认应答、重发控制等机制实现可靠性传输。TCP的数据传输以段为单位进行,发送端可以在数据中设置间隔字段信息。
UDP协议不提供复杂的控制机制,直接将应用程序发来的数据以原始形式发送到网络上。UDP适用于高速传输和实时性要求较高的通信,或广播/多播通信。
4.TCP与UDP的区分
TCP和UDP各有优劣,选择哪种协议取决于具体应用需求。TCP的优势在于可靠传输,适用于需要顺序控制的通信。而UDP的优势在于传输效率高,适用于实时通信或广播通信。
二、端口号
1.端口号的定义
端口号用于区分同一台计算机中运行的不同应用程序。它与IP地址共同识别通信的终点,组成五元组:源IP地址、目标IP地址、协议号、源端口号、目标端口号。
2.根据端口号识别应用
端口号的确定分为标准既定端口号和时序分配法。标准既定端口号由IANA管理,例如HTTP的80端口,FTP的21端口等。
3.通过IP地址、端口号、协议号进行通信识别
网络层协议(如TCP或UDP)、源IP地址、目标IP地址、源端口号、目标端口号共同唯一确定一条通信链路。任何一项不同,都视为不同的通信。
4.端口号如何确定
端口号的确定遵循标准既定和时序分配法。服务端程序需提前确定监听端口号,而客户端程序不需要确定端口号。对于UDP,服务端程序也无需确定端口号。
三、TCP
1.TCP的特点及目的
TCP是面向连接的协议,建立连接前需进行准备工作,包括SYN确认和FIN断开。TCP通过序列号、确认应答、重发控制、窗口控制等机制实现可靠性传输。
2.通过序列号与确认应答提高可靠性
TCP发送端在接收到确认应答后,才能继续发送下一条数据。丢失的数据包会被重发,直到确认接收成功。
3.如何确定超市重发的时间
TCP通过计算往返时间及其偏差,决定重发的时间间隔。这种机制有助于减少网络拥塞,提高通信效率。
4.连接管理
TCP连接的建立需要发送SYN和ACK包,断开连接需发送FIN包。一个连接的建立至少需要来回发送7个包,完成三次握手。
5.TCP以段为单位发送数据
TCP在建立连接时确定最大消息长度(MSS),以段为单位发送数据,确保数据不会被IP层分片处理。
6.利用窗口控制提高速度
窗口控制机制允许多个段同时进行确认应答,提高通信效率。窗口大小由接收端决定,动态调整以适应网络状况。
7.窗口控制与重发控制:在窗口控制中,出现段丢失咋办?
窗口控制下,段丢失时无需重发,除非丢失多个段。对于某个段丢失,采用高速重发控制。
8.流控制
流控制通过接收端通知发送端当前能接收的数据量,控制发送数据量。窗口大小即接收端通知的数据量上限。
9.拥塞控制
TCP通过慢启动算法控制发送数据量,避免网络拥塞。拥塞窗口大小动态调整,根据确认应答和重复确认应答等因素。
10.提高网络利用率的规范
Nagle算法减少数据包数量,延迟确认应答提高网络利用率,捎带应答减少数据包传输量。
四、其他传输层协议
1.UDP-Lite:轻量级的用户数据报协议
UDP-Lite在UDP协议基础上增加了可靠性控制,适用于对传输可靠性要求较高但带宽敏感的场景。
2.SCTP:流控制传输协议
SCTP结合了TCP的可靠性和流控制机制,适用于多媒体通信和对可靠性要求较高的场景。
3.DCCP:数据报拥塞控制协议
DCCP通过拥塞控制机制实现数据报的可靠性传输,适用于对传输效率和可靠性要求较高的应用。
五、TCP首部的格式
TCP数据段格式包括序列号、确认应答字段、校验和、窗口大小、紧急指示等字段。校验和用于确保数据完整性,防止数据 corruption。
发表评论
最新留言
关于作者
