面试题答案
一键面试TCP/IP协议栈传输层的作用
传输层位于TCP/IP协议栈的第三层,主要作用是为应用层提供端到端的可靠数据传输服务。它负责将应用层的数据进行分段、封装,添加相应的传输层首部信息,然后交给网络层进行传输。同时,传输层还对从网络层接收的数据进行重组、校验和排序等处理,确保数据准确无误地交付给应用层。传输层屏蔽了网络层及以下各层的细节,使应用层能够专注于数据处理,而无需关心底层网络的具体实现。
传输层常见的两个协议
- 传输控制协议(TCP)
- 特点
- 面向连接:在数据传输之前,需要在发送端和接收端建立一条逻辑连接,通过三次握手过程来确保连接的可靠性。
- 可靠传输:TCP采用了确认机制、重传机制、流量控制和拥塞控制等技术,保证数据能够准确、有序地到达接收方。
- 字节流:TCP将应用层的数据看作是无结构的字节流,不保留应用层数据的边界信息。
- 适用场景:适用于对数据准确性和完整性要求较高的场景,如文件传输(FTP)、电子邮件(SMTP、POP3、IMAP)、网页浏览(HTTP)等,这些应用需要确保数据无差错、按顺序到达。
- 特点
- 用户数据报协议(UDP)
- 特点
- 无连接:不需要在发送端和接收端建立连接,直接将数据报发送出去,减少了连接建立和拆除的开销。
- 不可靠传输:UDP不提供确认、重传等机制,数据是否能正确到达接收方取决于网络状况,可能会出现数据丢失、乱序等情况。
- 数据报:UDP对应用层的数据保留边界,即应用层一次发送的数据量与UDP数据报的大小相对应。
- 适用场景:适用于对实时性要求较高,但对数据准确性要求相对较低的场景,如实时视频流(RTSP、RTP)、音频流(VoIP)、网络游戏等,这些应用允许一定程度的数据丢失,但要求数据能够快速传输,以保证实时性。
- 特点