常见网络编程面试题整理

1、TCP和UDP的区别:

1)TCP提供面向连接的传输,通信前要先建立连接(三次握手机制);UDP提供无连接的传输,通信前不需要建立连接。

2)TCP提供可靠的传输(有序,无差错,不丢失,不重复);UDP提供不可靠的传输。

3)TCP面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组;UDP是面向数据报的传输,没有分组开销。

4)TCP提供拥塞控制和流量控制机制;UDP不提供拥塞控制和流量控制机制。

2、流量控制和拥塞控制的实现机制:

1)TCP采用大小可变的滑动窗口机制实现流量控制功能。窗口的大小是字节。在TCP报文段首部的窗口字段写入的数值就是当前给对方设置发送窗口的数据的上限。
在数据传输过程中,TCP提供了一种基于滑动窗口协议的流量控制机制,用接收端接收能力(缓冲区的容量)的大小来控制发送端发送的数据量。

2)采用滑动窗口机制还可对网络进行拥塞控制,将网络中的分组(TCP报文段作为其数据部分)数量维持在一定的数量之下,当超过该数值时,网络的性能会急剧恶化。传输层的拥塞控制有慢开始(Slow-Start)、拥塞避免(Congestion Avoidance)、快重传(Fast Retransmit)和快恢复(Fast Recovery)四种算法。
拥塞: 大量数据报涌入同一交换节点(如路由器),导致该节点资源耗尽而必须丢弃后面到达的数据报时,就是拥塞。

3、重传机制:

TCP每发送一个报文段,就设置一次定时器。只要定时器设置的重发时间到而还没有收到确认,就要重发这一报文段。 
TCP环境

报文往返时间不定、有很大差别
AB在一个局域网络,往返时延很小
AC在一个互联网内,往返时延很大
因此,A很难确定一个固定的、与BC通信都适用的定时器时间

TCP采用了一种自适应算法。这种算法记录每一个报文段发出的时间,以及收到相应的确认报文段的时间。这两个时间之差就是报文段的往返时延。将各个报文段的往返时延样本加权平均,就得出报文段的平均往返时延T
4、滑动窗口机制:
TCP 采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。
在 TCP 报文段首部的窗口字段写入的数值就是当

在socket网络编程面试题中,常见的问题包括TCP报文重传机制、epoll的优势以及ThreadLocal的作用。 关于TCP报文重传机制,TCP协议在发送一个报文段后会设置一个定时器,如果在定时器到期之前没有收到确认,就会重发这个报文段。这种机制能够确保数据的可靠传输。 关于epoll的优势,epoll是一种高效的事件驱动I/O模型,在处理大量文件描述符时具有高效的性能。与select和poll不同,epoll不会随着文件描述符数目的增长而降低效率。它维护一个队列,只对活跃的socket进行操作,这样可以提高效率。但在大多数I/O端口都是活跃的情况下,epoll的效率可能不如select高,因为维护队列可能会复杂。 关于ThreadLocal的作用,ThreadLocal是一个线程局部变量,每个线程都有自己独立的变量副本。它可以用来隔离多个线程之间的数据共享冲突。当多个线程需要访问同一个变量时,可以使用ThreadLocal来保证每个线程拥有自己独立的副本,避免线程间的数据竞争和同步问题。ThreadLocal可以极大地简化程序,使其更加易读和简洁。但需要注意的是,ThreadLocal并不能替代同步机制,两者面向的问题领域不同,同步机制是为了同步多个线程对相同资源的并发访问,而ThreadLocal是用来隔离多个线程的数据共享。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [常见网络编程面试题整理](https://blog.csdn.net/wswbdfei/article/details/38724915)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值