一文搞定 UDP 和 TCP 高频面试题.docx
《一文搞定 UDP 和 TCP 高频面试题.docx》由会员分享,可在线阅读,更多相关《一文搞定 UDP 和 TCP 高频面试题.docx(25页珍藏版)》请在第一文库网上搜索。
1、一文搞定UDP和TCP高频面试题!找工作面试,经常会被问到UDP和TCP,今天给大家总结其中的核心高频面试题,再有面试官问你相关的知识点,看这篇就够了!PS:文章有点长,请耐心阅读。目录:1、UDP和 TCP的特点与区别2、UDP 、TCP首部格式3、TCP的三次握手和四次挥手4、TCP的三次握手(为什么三次?)5、TCP的四次挥手(为什么四次?)6、TCP长连接和短连接的区别7、TCP粘包、拆包及解决办法8、TCP可靠传输9、TCP滑动窗口10、TCP流量控制11、TCP拥塞控制12、提供网络利用率前言网络层只把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。传输层提供了进程间
2、的逻辑通信,传输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道。1、UDP和 TCP的特点与区别用 户数据报协议 UDP ( User Datagram Protocol )是无连接的,尽最大可能交付,没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP首部),支持一对一、一对多、多对一和多对多的交互通信。传输控制协议 TCP ( Transmission Control Protocol )是面向连接的,提供可靠交付,有流量控制,拥塞控制,提供全双工通信,面向字节流(把应用层传下来的报文看成字节流,把字节
3、流组织成大小不等的数据块),每一条TCP连接只能是点对点的(一对一)。2、UDP、TCP首部格式11号1加立目的端口号16位UDPK度16位UDP检验和015 1631数据(如果有)8字行UDP首部字段只有 8个字节,包括源端口、目的端口、长度、检验和。12字节的伪首部是为了计算检验和临时添加的。32位20字乃的固定首部TCP首部TCP数据部分,即首部V,:沪数据部分V 1 TCP报文段TCP首部格式比 UDP复杂。序号:用于对字节流进行编号,例如序号为301,表示第一个字节的编号为 301,如果携带的数据长度为100字节,那么下一个报文段的序号应为 401。确认号:期望收到的下一个报文段的序
4、号。例如B正确收到 A发送来的一个报文段,序号为501,携带的数据长度为200字节,因此 B期望下一个报文段的序号为 701, B发送给 A的确认报文段中确认号就为 701o数据偏移:指的是数据部分距离报文段起始处的偏移量,实际上指的是首部的长度。控制位:八位从左到右 分别是 CWR, ECE, URG, ACK, PSI1, RST,SYN, FINoCWR: CWR标志与后面的 ECE标志都用于 IP首部的 ECN字段,ECE标志为1时,则通知对方已将拥塞窗口缩小;ECE:若其值为1则会通知对方,从对方到这边的网络有阻塞。在收到数据包的IP首部中 ECN为 1时将 TCP首部中的ECE设为
5、1 ;URG:该位设为1 ,表示包中有需要紧急处理的数据,对于需要紧急处理的数据,与后面的紧急指针有关;ACK:该位设为1,确认应答的字段有效,TCP规定除了最初建立连接时的SYN包之外该位必须设为1;PSH:该位设为1 ,表示需要将收到的数据立刻传给上层应用协议,若设为0,则先将数据进行缓存;RST:该位设为1,表示 TCP连接出现异常必须强制断开连接;SYN:用于建立连接,该位设为1,表示希望建立连接,并在其序列号的字段进行序列号初值设定;FIN:该位设为1,表示今后不再有数据发送,希望断开连接。当通信结束希望断开连接时,通信双方的主机之间就可以相互交换 FIN位置为1的TCP段。每个主机
6、又对对方的 FIN包进行确认应答之后可以断开连接。不过,主机收到 FTN设置为1的TCP段之后不必马上回复一个 FIN包,而是可以等到缓冲区中的所有数据都因为已成功发送而被自动删除之后再发 FTN包;窗口:窗口值作为接收方让发送方设置其发送窗口的依据。之所以要有这个限制,是因为接收方的数据缓存空间是有限的。3、什么是 TCP的三次握手和四次挥手?TCP是一种面向连接的单播协议,在发送数据前,通信双方必须在彼此间建立一条连接。所谓的“连接”,其实是客户端和服务器的内存里保存的一份关于对方的信息,如IP地址、端口号等。TCP可以看成是一种字节流,它会处理 IP层或以下的层的丢包、重复以及错误问题。
7、在连接的建立过程中,双方需要交换一些连接的参数。这些参数可以放在 TCP头部。TCP提供了一种可靠、面向连接、字节流、传输层的服务,采用三次握手建立一个连接;采用四次挥手来关闭一个连接。一个 TCP连接由一个 4元组构成,分别是两个TP地址和两个端口号。一个TCP连接通常分为三个阶段:启动、数据传输、退出(关闭)。当TCP接收到另一端的数据时,它会发送一个确认,但这个确认不会立即发送,一般会延迟一会(提供网络利用率这部分有讲到)。ACK是累积的,一个确认字节号 N的 ACK表示所有直到 N的字节(不包括 N)已经成功被接收了。这样的好处是如果一个 ACK丢失,很可能后续的 ACK就足以确认前面
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一文搞定 UDP TCP 高频面试题 搞定 高频 试题