里面有最新的版本
这篇介绍了下TCP与UDP面试题常考内容,并做了延伸,解释了原理。
面试题
tcp和udp的区别
tcp如何实现可靠性
怎么实现拥塞控制
cookie、session
一、TCP/IP协议
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是 指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。 我的理解: 互联网中的设备要相互通信,必须基于相同的方式,比如由哪一方发起通讯,使用什么语言进行通讯,怎么结束通讯这些都要事先确定,不同设备之间的通讯都需要一种规则,我们将这种规则成为协议。
1.1 TCP/IP 的分层管理图
1.1.1 应用层
TCP/IP模型将OSI参考模型中的会话层和表示层的功能合并到应用层实现。这一层主要的代表有DNS域名解析/http协议
1.1.2 传输层
在TCP/IP模型中,传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话。在传输层定义了两种服务质量不同的协议。即:传输控制协议TCP和用户数据报协议UDP.
1.1.3 网络层
网络层是整个TCP/IP协议栈的核心。它的功能是把分组发往目标网络或主机。同时,为了尽快地发送分组,可能需要沿不同的路径同时进行分组传递。因此,分组到达的顺序和发送的顺序可能不同,这就需要上层必须对分组进行排序。网络层定义了分组格式和协议,即IP协议(Internet Protocol )。
1.1.4 物理层
该层负责 比特流在节点之间的传输,即负责物理传输,这一层的协议既与链路有关,也与传输的介质有关。通俗来说就是把计算机连接起来的物理手段。
1.1.5 数据链路层
控制网络层与物理层之间的通信,主要功能是保证物理线路上进行可靠的数据传递。为了保证传输,从网络层接收到的数据被分割成特定的可被物理层传输的帧。帧是用来移动数据结构的结构包,他不仅包含原始数据,还包含发送方和接收方的物理地址以及纠错和控制信息。其中的地址确定了帧将发送到何处,而纠错和控制信息则确保帧无差错到达。如果在传达数据时,接收点检测到所传数据中有差错,就要通知发送方重发这一帧。
二、UDP
2.1 首部
UDP用户数据报有两个字段:首部字段和数据字段,数据字段很简单,只有8个字节;首部由四个字段组成,每个字段的长度都是两个字节。各字段意义如下:
- 源端口: 源端口号,在需要给对方回信时使用。不需要是可全用0.
- 目的端口号: 这在终点交付