
Linux网络编程面试实战
文章平均质量分 85
嵌入式linux C开发实战
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
奇妙之二进制
csdn博客专家,C/C++领域优质创作者,专注于Linux C/C++、嵌入式Linux开发,偶尔谈谈人生,目前致力于完成大约500篇的linux C/C++开发知识体系库,所有的文章都会一直保持更新(优化内容、排版),想学习的可以订阅我的专栏。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
getaddrinfo工作原理分析
函数时,是否会发起网络通信取决于具体情况。(内存或文件),查看是否有最近解析过的域名记录。如果命中缓存,直接返回结果,文件,看是否存在域名到IP的静态映射。会调用系统的DNS解析器(通常是。如果缓存未命中,系统会检查本地的。如果找到匹配项,直接返回结果,获取DNS服务器地址(如。到配置的DNS服务器(如。如果前两步都未找到结果,原创 2025-07-04 18:04:29 · 367 阅读 · 0 评论 -
网络编程实战(19)正向代理和反向代理
在计算机网络领域,代理服务器扮演着至关重要的角色,它在服务器与客户端之间充当中间人的角色,有效地提高系统的安全性、性能和可扩展性。其中正向代理和反向代理是两种最为常见的代理方式。本文将详细介绍这两种代理方式的概念、特点、使用场景以及用途,帮助读者更好地理解它们在网络架构中的作用。正向代理和反向代理在计算机网络中各自发挥着重要的作用。正向代理主要关注客户端的访问需求和安全性,而反向代理则更注重后端服务器的负载均衡、安全性和性能优化。原创 2024-08-28 11:26:26 · 321 阅读 · 0 评论 -
网络编程实战(17)一文读懂VPN以及OpenVPN实现原理
ISP(Internet Service Provider,互联网服务提供商)是提供互联网接入服务的公司或组织。ISP 通过各种技术(如光纤、DSL、卫星或无线)将互联网连接到家庭或企业。由于国内的一些原因,有时候我们访问Google、youtobe等国外网站,需要通过一些代理软件才能访问,俗称科学上网。原创 2024-08-23 09:01:13 · 579 阅读 · 0 评论 -
linux防火墙iptables用法
在早期的 Linux 系统中,默认使用的是iptables配置防火墙。尽管新型 的firewalld防火墙已经被投入使用多年,但是大量的企业在生产环境中依然出于各种原因而继续使用 iptables。考虑到 iptables 在当前生产环境中还具有顽强的生命力,我觉得还是有必要再好好地讲解一下这项技术。iptables 是 Linux 防火墙工作在用户空间的管理工具,是IP 信息包过滤系统是一部分,用来设置、维护和检查 Linux 内核的 IP 数据包过滤规则。filterinputoutput和。原创 2024-08-12 17:23:18 · 265 阅读 · 0 评论 -
《网络编程实战系列》(17)网络桥接模式
桥接模式通过将多个网络接口连接在一起,形成一个逻辑上统一的网络,为网络设备之间的通信提供了一种简洁而有效的解决方案。它广泛应用于网络扩展、虚拟化环境、无线网络等场景中。尽管桥接模式具有透明性和兼容性,但在大型网络或复杂环境中,需要谨慎配置,以避免潜在的广播风暴和安全问题。原创 2024-08-10 23:10:12 · 431 阅读 · 0 评论 -
《网络编程实战系列》(16)route命令用法大全
命令是一个用于显示和操作 IP 路由表的工具。它可以在 Linux 和类 Unix 操作系统中使用,包括 OpenWrt。如果需要修改已有的路由条目,可以通过先删除原有条目,然后重新添加新的条目来实现。(img-vTawoqiA-1723106434344)]命令来查看当前系统的路由表信息,包括目标网络、网关、网络接口和路由类型等。命令可以向系统的路由表中添加新的路由条目。命令可以从路由表中删除指定的路由条目。网络的数据包发送到指定的网关进行路由。命令的详细使用说明和选项,可以使用。这样,系统就会将属于。原创 2024-08-08 15:10:12 · 384 阅读 · 0 评论 -
《网络编程实战系列》(15)NAT网络地址转换原理
举个例子,客户端172.18.250.6和百度服务器202.108.22.5通信,172.18.250.6发送数据时,先转换为219.155.6.240:1723(任意>1024的随机端口),然后再利用这个身份发送数据给百度服务器,然后百度服务器回应数据并发送给219.155.6.240:1723,NAT网关检查自己的关联表,意识到这是自己地私网中172.18.250.6的数据包,然后把这个数据发送给客户端。此种方式下,转换上层协议就是不必要的,因为一个公网IP就能唯一对应一个内部主机。原创 2024-08-10 17:41:19 · 198 阅读 · 0 评论 -
Linux C/C++ or 嵌入式面试之《网络编程系列》(14) 几种网络服务器模型
模型1:多线程模型每来一个连接,服务器就会新建一个线程来处理该连接的读写事件。特点:1)采用阻塞式 I/O 模型读取数据;2)每个连接都需要独立的线程完成数据读取,业务处理,数据返回的完整操作。存在问题:1)当并发数较大时,需要创建大量线程来处理连接,系统资源占用较大;2)连接建立后,如果当前线程暂时没有数据可读,则线程就阻塞在 read 操作上,造成线程资源浪费。因此,为了解决这种一个线程对应一个客户端模式带来的问题,提出了采用线程池的方式,也就说创建一个固定大小的线程池,来一个客户端,原创 2020-08-28 16:34:20 · 15201 阅读 · 1 评论 -
Linux C/C++ or 嵌入式面试之《网络编程系列》(13) select/poll/epoll区别
文章目录selectPollepoll涉及到网络编程时,IO多路复用问及的概率非常大。I/O多路复用通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。select,poll,epoll都是IO多路复用的机制。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。关于同步IO和原创 2020-09-25 13:44:49 · 5536 阅读 · 2 评论 -
Linux C/C++ or 嵌入式面试之《网络编程系列》(12) tcp如何实现断线检测
面试时可能会问tcp双方通信,如果对端断电或者断网,那么本端能否知道?有什么危害?如何避免?文章目录一、TCP存活(keepalive)检测的背景二、存活检测的两种方式1、应用层面的心跳机制(application-managed keepalive)2、传输层的存活检测一、TCP存活(keepalive)检测的背景对于TCP设计来说,如果一个客户端和服务器端建立连接后,不在进行数据传输,那么这个连接将会一直存在下去,理论上即使中间的路由器崩溃重启、或者中间的网络线路拔掉再插上等等,只要客户端和服务器原创 2020-08-16 10:12:41 · 3428 阅读 · 2 评论 -
Linux C/C++ or 嵌入式面试之《网络编程系列》(11) TCP保证数据传输可靠性的方式
这个问题的要求比较高,想要答出所有的点不容易,体验了一个人的知识深度和广度。文章目录1、检验和2、序列号3、确认应答机制(ACK)4、超时重传机制超时重传的过程5、连接管理机制TIME-WAIT存在的必要性(1)可靠地实现了TCP全双工连接的终止(2)允许老的重复分节在网络中的消逝(为什么需要2MSL)6、流量控制7、拥塞控制TCP协议保证数据传输可靠性的方式主要有:校验和序列号确认应答超时重传连接管理流量控制拥塞控制1、检验和TCP检验和的计算与UDP一样,在计算时要加上12byt原创 2020-08-16 12:02:35 · 16898 阅读 · 2 评论 -
Linux C/C++ or 嵌入式面试之《网络编程系列》(9) MSS、MTU、IP分片、TCP分段
这些术语作为技术开发人员的基本常识,要掌握,冷不防的面试官问你什么是MTU,结果栽在这么简单的问题上。文章目录一、MSS的含义二、通信双方如何协商MSS三、MTU四、IP分片五、MSS太小或太大会有什么问题问题汇总一、MSS的含义MSS是Maximum Segment Size的缩写,指TCP报文段所允许传送的数据部分最大长度。如果上层交付下来的数据太大,tcp会对其进行分块。这个分块过程是在运输层完成的,在接收端的运输层对分块的TCP报文段的数据部分进行重组。MSS字段位于TCP首部中的选项字段。原创 2020-08-18 13:46:42 · 10580 阅读 · 1 评论 -
Linux C/C++ or 嵌入式面试之《网络编程系列》(10) http协议面试汇总(博大精深的http协议)
文章目录**1、说一下什么是Http协议?****2、什么是Http无状态协议?怎么解决Http无状态协议?****3、说一下Http协议中302状态****4、Http协议有什么组成?****5、Http协议中有哪些请求方式?****6、Http协议中Http1.0与1.1区别?****7、get与post请求区别?**(初级程序员必备问题)**10、cookies机制和session机制的区别****11、Http与Https优缺点?****12、Http优化****13、Http协议有那些特征?**原创 2020-08-19 10:08:51 · 10616 阅读 · 1 评论 -
Linux C/C++ or 嵌入式面试之《网络编程系列》(8) tcp粘包、拆包问题(数据无边界性)及其解决办法
tcp粘包问题是实际开发时会遇到的问题,面试官可以用该问题测试应聘者是否真的动手做过网络开发,如果没有实际开发经验,可能不知道这个问题。文章目录一、tcp粘包问题1、什么是tcp粘包2、粘包原因二、tcp拆包问题1、什么是tcp拆包2、拆包原因三、粘包拆包解决办法一、tcp粘包问题1、什么是tcp粘包TCP粘包是指发送方发送的多个数据包被当做一个数据包接收,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。粘包可能由发送方造成,也可能由接收方造成。只有TCP有粘包现象,UDP永远不会粘包粘原创 2020-08-18 10:26:43 · 1794 阅读 · 2 评论 -
Linux C/C++ or 嵌入式面试之《网络编程系列》(7) time_wait状态的若干问题
文章目录1. 什么是TIME_WAIT状态?2. 为什么需要TIME_WAIT状态?**①可靠地实现TCP全双工连接的终止****②允许老的重复分节在网络中消逝**保活计时器的引入3. TIME_WAIT状态造成的危害4. 如何避免?5. TIME_WAIT状态一般是针对于客户端的1. 什么是TIME_WAIT状态?在TCP连接中四次挥手关闭连接时,主动关闭连接的一方(上图中时Client)会在发送最后一条ACK报文后维持一段时长2MSL(MSL指数据包在网络中的最大生存时间)的等待时间后才会真正关闭原创 2020-08-15 12:47:44 · 6368 阅读 · 2 评论 -
Linux C/C++ or 嵌入式面试之《网络编程系列》(6) 套接字编程杂项讨论
文章目录关于socket阻塞与非阻塞情况下的recv、send、read、write返回值烦人的SIGPIPE信号关于socket阻塞与非阻塞情况下的recv、send、read、write返回值read/recv:阻塞与非阻塞recv返回值没有区分,都是<0:出错,=0:对端关闭,>0:接收到的数据大小。特别:非阻塞模式下返回值 <0时并且(errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN)的情况 下认原创 2020-09-01 11:40:05 · 5640 阅读 · 2 评论 -
Linux C/C++ or 嵌入式面试之《网络编程系列》(4) tcp四次断开若干问题
首先A向B发送一个FIN报文段,报文段首部FIN=1,序列号seq=u(u为最后传送的数据的序列号加1,因为tcp规定,fin包消耗一个序列号,虽然没有发送数据),然后A进入FIN-WAIT-1(终止等待1)状态。(2)B收到释放连接的报文段后即发出确认报文段,报文首部ACK=1,ack=u+1,seq=v(v等于B前面传送过的数据的序列号加1),然后B进入CLOSE-WAIT(关闭等待)状态。(3)当A收到B的确认报文后,就进入FIN-WAIT-2(终止等待2)状态,等待B发出的连接释放报文段。原创 2020-08-15 12:52:33 · 15006 阅读 · 2 评论 -
Linux C/C++ or 嵌入式面试之《网络编程系列》(5) 理解tcp半打开、半关闭、半连接
这些并非臆造出来的问题,而是实际会开发遇到的问题。对于一个健壮的网络服务器,应该考虑如何处理连接异常。原创 2020-08-15 12:56:06 · 2071 阅读 · 3 评论 -
Linux C/C++ or 嵌入式面试之《网络编程系列》(3) tcp三次握手若干问题
tcp建立连接时的三次握手几乎是校招面试在考察网络编程知识时,必问的一个问题。必须清楚的知道tcp三次握手的流程,面试官可能会拿出一张白纸,让你简单画出该流程,然后展开追问。原创 2020-08-15 12:51:23 · 3634 阅读 · 2 评论 -
Linux C/C++ or 嵌入式面试之《网络编程系列》(2) tcp和udp的区别、编程区别、各自的应用场景
1、连接性TCP面向连接(三次握手建立连接);UDP是无连接的,即发送数据之前不需要建立连接。2、可靠性TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。5、开销和效率TCP首部开销20字节;UDP的首部开销小,只有8个字节。原创 2020-08-15 12:54:58 · 6577 阅读 · 2 评论 -
Linux C/C++ or 嵌入式面试之《网络编程系列》(1) 认识网络模型(TCP/IP四层与OSI七层)
我将网络模型放在了《网络编程系列》的第一篇,是因为它是整个网络知识体系的根基。作为一个网络常识,虽然简单,但面试官可能会将之作为开篇方式提问,然后他会借此展开深入追问其他的网络知识,所以还是有必要复习下。文章目录综述TCP/IP四层网络模型一、网络接口层二、网络层(网际层)三、传输层四、应用层总结问题综述计算机网络是一个非常庞大且复杂的系统,所以在设计之初就严格遵守着「分层」的设计理念。主流网络分层体系结构有两种:OSI(Open Systems Interconnection Referenc原创 2020-08-16 11:30:22 · 8381 阅读 · 5 评论