微波网络及其应用.pdf
微波网络及其应用 免费分享85,6直接耦合谐振器笮带带通§7.8支线定向合器…………滤波器………………………§7.9混合电桥的基本概念3!9§区.71/4波长短截线和联接线宽§7.10魔?和折叠双T接头………3I带带通滤波器…957.11矩形波导裂缝电桥§5.8平行耦合线带通滤泼器…20087.12环形电桥h十酽■■■冒吾1·P■■··3了3§59交指型带通滤波器……………6§7.13三端功率分配器…§5.10微带阻滤波器习趣§5,11徼波分路滤波器……………26§5,12微波滤波酱的相移和时延第八章微速铁氧体元件……特性司卓p自申●■啁口中●口啁■四●d自■口■§8.1引言……………………3日§5.13元件损耗对滤波器性能的§82张量导磁率和本征导磁率…影响4■即22383铁氧体非互易网络-346习题230§8,4Y型结环行器分析…………370§8.5双模移相器分析第大拿.阻抗匹配网络「2§8.6边导模器件…39§6.1引言23题………397§6.2抗匹配网络的宽带极……233§631/4波长阶梯阻抗变换器…a九章微渡系統分析中·“章自甲·‘86,4渐变线阻抗变换器…7§9.1引6.5低通港波阻抗变换器25289.2复杂网络的一般婢论……………4§6.6电抗性负载阻抗匹配网络……25939.3微波混合系统分析……n09§67负阻负载随抗匹配网络……21§9.4微波复杂系统分析…………43对题27589.5徼波溅量系统分柝·§9.6长馈线网络反射系数的概第七蠶微波定向網合器、沮合电桥及率分布+66功率分配器27T习趙87,1引肓……27§72定向耦合器的基本概念第十章计算乱输助设计网络初步…4537了§7.3平行矩形披导圆孔阵定向§1.1引言476合器21§1.2计鲜机辅助设计的一般§7.4正交矩形波导十字槽定向问题45构合器■·十■■平■■+·4女■画■p■b■29010,3矩量法S75单节平行糊合线定向糊§1合,4微波网络的优化99合器…295§10.5模拟技术§7.6多节平行耦合线定向§10.6计算机辅助设计的发展糊合楼越势50r§77不均匀耦合线高通定向耦合器……附录四单纯形优计录附录五长愦缤网络反射系数的附录一矩阵代数模拟程序及其说明附录二互易定理参考书目…晶幽"55附录三行主元消去法求逆矩阵…506第一章微波网络基础§1.1引言任何一个微波系统,都是由各种微波元件和徽波传输线连接而成。微波传输线特性可以用广义传输线方程来描述,徼波元件特性可以《类似低频网络)等效电路来描述,于是复杂的徽波系统,就可以用电磁理论和低频网络理论相绪合来求解,成为一门傲波网络理诒。每个微菠元件都可飴和几个微波传输线相连接,按照所连接传输线数目多少,微波元件可以分成苧端口、双端『、三端口、四端口等微波元件。每个微波元件都可以看成个微波网络,堕着徵波元件端口数的不同,微波网络也分为单端口、双端『、三端口、四端口等微波网络。实际所用的微波元件可高达四端口,凹端厂以上的徽波元件就很少应用了微波网络理论的主要目的,在于分析做波元件的工作特性,或依据它的工作特性,综合出微波元件结构和设讨方法,以便工程应用。分析微波元件的工作特性的方法有二,是应用麦克斯韦方程和元件的特定边界条件,求出其场强的分布、波的振荡和传输等特性;另一是把微波元件等效成微波网络,把连接它的传输縐等效成双导线传输线,然后用网络方法进行分菥。第一种方法比迹严格,听得结果ⅸ较全面正确,但其数学送算繁琐,所得结果通常都是特妹函缴,不便于下程应用。第种方法是近似的,能够得到微波元件主要传输特性,并且网络参薮可用测量方法来确定,便于工程应用,但不能得出元件内部场的分布情況。昱然如此,但由于网络方法计算简便,易于测量,又为广大工程技术人员所熟知,揿应用较为广泛。徽波电磁理论与徹波网络理论域是两大独立分支,但两者是相互连系的,微波网络理论是微波电磁理论的工程化,只信在微波电憾理论的基础上来探讨和发展微波网络理论,才是正确的方向微波网络理论又分为线性网绉理论和非线性网络理论,本书只讨论线性网络理论微波网络方法分析法和综合法两种,分析法是按已经掌握的基本微波网络结构及其特性,进行各种组合,来满足工作要求;综合法则根预定工作特性要求,来实现徼波网络结构。前者设计比较简单,但往往得不到性能优良而元件较少的最佳结果;后者虽然设计理论比较复杂,但能得到性能优良而元件较少的最佳设计。现在由于电子计算机的发展网络猕合所雷要的繁琰计算,都可用计算机来完成,一些主要元件设计都有现成图表数据备查,因而网络综合法已成为设计微波元件的主要方法。本书就是以网络综合法作为主要方法本章日的在于给定微波阿络的一些基本概念和基本参数。首先讨论广义传输线理论3从而定义出微波网络的电压和电流,这对了解等效电路的意义是很必要的。然后导出网络的阻抗矩阵、导纳矩阵、A矩阵、散射矩阵以及传输矩阵,并讨论它们的性质与相互变换,这给我们分析徽波网络是供数学工具。最后,讨论徼波闼络的本征值问题、网络参数浏量理论以及讯号流图,这对我们求解微波网络问题提供些必要的手。§1.2做波传输线及其特性电磁波可以用导体战介质进行引导,使其按一定方向传输·这种引导电磁被的装置叫妝传输线。在微波波段内,导行波的现象特明显,特别容彭b,因而有各种各样的微波传输线。图1.2-1示出几种常见的微波传输线,它们都是直的〔轴向),可以很长,直至无穷远。它们的横截面(横〕的几旋早4)矩形导(Abet〔c)同抽线何形状和媒质分布处处灬样,不因轴向位置不同而改变n这类传轴线叫做均匀传输线。在这些传输线中,电磁波沿着轴向传输,横截面上电磁场按一定规律分t带线布,所以这类电磁场问题可分为d)带状线两部分来研究。一是研究轴向的团12-1各种做菠传输线传输问题,叫做纵向问题;一是研究横截面上电磁场分布问题,叫做横向问题。两者相互联系,相互制约,究竟先研究哪个阿题,在理论上是无关紧要的。本背先从麦克斯韦方程发,简略叙速这类传输线的分析方法,从而得出其传输特性和等效电路。、微波传输线的电磁场方架研究任意檢截面的均匀徼波传输线中的电碱场,应从麦克斯韦方程出发。在正弦交变场情况下支克斯韦方程的复数形式是vxH=OEYXE=-FoWH.2-1·E=0V·=Q式屮∈是媒质的介电常数,μ是导磁率,它们都是与场强无关的當数。为求解传输线中电场E和磁场酽的方便,通常引入两个赫兹矢量位。由VH=0出发,可引入一个矢量位∏,使得≡{×∏,它消足回·H=jω∈V·(Vⅹn)=0,因为任何欠量旋度的散度恒等于零。矢量位∏°叫做赫兹电矢量,它揣足三维亥姆霍茨方程V2T+2T-0H=j∈V×T(1.2-2E=V(∏)+kT由¢-E=0出发,还可引入另一个矢量位冂,使得E=-fμ×n,并满足方程,j0v·(×T")=0。矢量位∏叫做赫兹磁矢量,它也满足三维亥姆霍茯·EVm+2r”=E=-jcV×nH=V(·T")+2n式中k=v比∈是无限媒质的波数。为解出均匀传输线中电磁场的普遍关系式,我们釆用广义正交柱坐标系(,琶,2)其中z是纵向直坐标,而,v是横截面上的曲线坐标,如图1.2-2所示。对于直角坐标系,“=%,U=y。在此坐标系中,为求解方程常数(12-2)和(12-3)筒便起见,可令『和∏t情数只有z方间分量,即=ir=ili同时担算符Ⅴ写成Ⅴ=4十--,其中Ⅴ是横截面型标的算符、L是之方向的单位矢。将上述关图122广叉止交坐訴系系代入(1.22)和(12-3)式中即可得到H=冖jo∈XV∏EA=v022十2∏z以及V21]z+21i=0E=j四Hz=×Ⅴm(1.2-5FI = =vp点2丑由此可见,在惹电矢量只有z分量的情况F,电磁波在2方向只有电场分量Ex而磁场分量Hx=,掀叫橫磁波(TM模),又叫徹哐波(E貘)。在勅兹磁矢量只有z分量的情况下,电磁波在z方向只有磁场分量II,而电场分量x=0,故叫做横忠波(TE模),又叫徹磁波(摸)这些模式能否在传输线中存在,是出其边界条件来决定的。对于TM模,在W=常数或U=常数的电壁(殚想导体表面)上!9=0;在H=常数的磁壁⊥d=0,在=常数的磁壁上(理想导磁体表面),。0=0,对于模,在2常数的电壁上,0,在=常数的电壁上,a门=0;在=砦数或v=常数的磁瑾上,巧=0在徽彼传输线中,如果单纯TM模或TE核不能满足逊界条件时,两者必须同时存在此时电磁就既有Ex分量,也有丑分量,叫做混合模。在直型标系中,混合模有两种简单形式,可令(12-2)或(1.2-3)式中=,「=求得。它们的表示式是∏6+hnr+R s上x=0d+们(1.2-7)EPoYEHII∵x由此可见,在赫兹电矢量只有x分量的情况下,电憾波的电场和磁场都具有之分量,仨磁场没有分量,即H=0,磁力线分纵向截上,叫做纵向磁波,筒称LSM模或TM模。在赫兹磁欠量只有x分量的情况下,电磁波的电场和磁场都有z分量,但电场没有x分量,即E:=0,电力线分布在纵向截面上,叫做纵向电波,简称LSE模或TEx棋。广义传输线方程我竹已知:求解黴波传输线的电磁场时,不管其中存在何种传输模式:槨要解赫兹矢量的三维亥姆霍茨方程,特别重要的是求解其中某一坐标分量的三维亥姆霍茨方积Van+kl o即YAI T五↓高I=0式中波函数Ⅱ既可以代表赫兹电矢量的κ分量(M模〉或x分量(LSM模),也可以代表赫兹磁矢量的2分量(TE模)或分量(LSE樸)。(1.2-8)式是个二阶偏微分方程,可用分离交量法求解。求解时令∏(#,沙,2)=∫(#,v)ψ(212-9式中f(u,t)只是横截面平标和的函数,ψ(x)只是纵向坐标之的图数。将(1,2-9式代入(1.2-8)式中就得到Vif(m, v)d2p(2)上式芹边仅仅是和U的数,与2无关;右边仅仅是z的函数,与和矿无关。两边相等,表明它们都必须等于常数。设此分离常数为一,则有(1.2-10)y2(2)=0(1.2-11)式中γ=k一由此可见,波函数∏(,U,2)可分离成f(u,)烈ψ(2)两个函教之积,其中f(,v)满足横坐标和v的二维亥姆霍茨方程,它决定横截面上电磁场分布。ψ(2)满足纵巫标z的传输线方程,它决定轴向电磁波的传输特性,故此方程称为广义传输线方程。由于我们所研究的微波传输线是无穷长,没有反射波,,故(1.2-11)式的解是2〕=Ag式中A是一个常缴,决定波的振幅。于是波函数n是∏(u,,z)=f(,u)ψ(z)=Af(n,)e(1.2-12)已知波函数后,传输线中各种模式的电戤场可由(1.2-4)到(1.2-7)式求得例如对于TM模∈A2xV(H,U)EE1=一YAVf(,t)e1.2-13)42)e对」IEE=j甲A2×Vf(,)e1(1.2-14)ustkA(u, ue传输特性电磁波在微波传输线中的传输特性,通常用其相速、波阳抗以及传输功率来表征,因为用它们可以确定波的传输快慢、强弱以及电场与磁场间的关系。一般说来,波的这些特性都与传输线的横截面的儿何结构有关,也就是与其边界条件关。下面分别叙述之1.被的速度在(12-2)式中波函数具有因子cY,它表示电磁波沿2方向的传输情况。ˇ叫做传输常数,通常是个复数,可以写为y=a+。其中叫做衰减常数,表示波在传输过程中振幅哀减的快慢β叫做相移常数,表示波不传输过程中相位变化的快慢。如果我们假设媒质是无耗的,μ和∈郗是实常数,则波数長=如vμ也是实数,这样,由y2后一}2可知,y的性质随者的不同而异,而是白横截面的边界条件决定的但是,不管横截画的几何结构如何,只可能有三种情况:(1)是的=0,(2)是>0,(3)是A0的情况下,电磁波的E。或H不等于,可以是M糖、E模或混合模这时传掏常数是即1.2-1?)如果令h=-5=2x/2n,B=/=2x/入,h=2τ/A其中是无限媒质中的波长,2是波导波长,A是截止波长,则(12-17)式变为(λ3/A入)21.2-18}由此可见,当為a,kx>λ,即波的相速大子无限媒质的光速,叫做快波。快波的波长大于无限媒质的波长。当λ>λa时,相速和波长都是虚激,没有物理意义,但这时=kk式中α是实数,故此电磁波变成衰减电磁场,随着轴向距离的增大,场的振幅逐惭衰演,但其相位不变,故衰减场是不能在传输线上传输的。0=是传输线中传输快波还是衰减场的临界情况,这时=0,月=0,传输线中既没有快波传输,也不是衰减场,而是等福的电磁场。λ之所以叫儆截止铍长,是因为当λ≥λe时,传输线中没有电磁波传输。在始8:因此Y=vR一的=v1+(B/R)=f于是波的相速和波长是1.2-19)2兀=入/V1+(戶,/)2由此可见,这类波的相速小于无阳媒质中的光速,岍做慢波,慢波的波长小于无限媒中的波长
- 2020-12-10下载
- 积分:1
c++笔试面试之网络和多线程
该文档是我总结的c++笔试面试通常会问的一些问题。另外可以从我的资源目录下找c++数据结构与算法,c++笔试面试基础两部分材料,综合这三个材料一起看,我相信大家一定尽快找到工作。ClientServerFIN WAIT 1IFIN MCLOSE WAITack M+1FIN WAIT 2LAST ACKFIN NTIME WAITACK=1 ack=K+CLOSEDm由于TCP连接是全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送个FIN来终止这·方向的连接,收到个FIN只是意味着这方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此第一次挥于Client发送个HN,用来关闭 Client到 Server的数据传送, Client进入 FIN WA1状第二次挥手Server收到FIN后,发送一个ACK给 Clien,确认序号为收到序号+1(与SN相同,一个FIN占用一个序号), Server进入 CLOSE WAIT状态。第三次挥手Server发送一个FIN,用来关闭 Server到 Client的数据传送, Server进入 LAST ACK状态。第四次挥手Client收到FIN后, Client进入 TIME WAIT状态,接着发送一个ACK给 Server,确认序号为收到序号+1, Server进入CL0SED状态,完成四次挥手。5.tcp为什么建立连接是三次握手,而关闭连接却是四次挥手呢?当主杋A确认发送完数据且知道B已经接受完了,想要关闭发送数据口(当然确认信号还是可以发),就会发FN给主机B;主机B收到A发送的F⊥N,表示收到了,就会发送ACK回复;但这是B可能还在发送数据,没有想要关闭数据口的意思,所以FⅣN与ACK不是同时发送的,而是等到B数据发送完了,才会发送FIN给主机A:;A收到B发米的FIN,知道B的数据也发送完∫,回复ACK,A等待2MSL以后,没有收到B传来的任何消息,知道B已经收到自己的ACK了,A就关闭链接,B也关闭链接了。6.TCP头大小,包含字段?TCP协议头最少20个字节,包括TCP的源端口,目的端口,序列号,应答号等等。7.tcp与udp的区别?为什么TCP要叫做数据流?1).基于连接与无连接2).对系统资源的要求(TCP较多,UDP少)3).UDP程序结构较简单4).流模式与数据报模式5).TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证6).TCP有拥塞控和流量控制,UDP没有TCP提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丟弃重复数据,检验数据,沇量控制等功能,保证数据能从端传到另·端UDP是一个简单的面向数据报的运输层协议。∪DP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是不能保证它们能到达目的地。山于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快8使用udp和tcp进程网络传输,为什么tcp能保证包是发送顺序,而udp无法保证?因为TCP发送的数据包是按序号发送,有确认机制和丢失重传机制,而udp是不可靠的发送机制,发送的对应端口的数据包不是按顺序发送的。9tcp三次握手的, accept发生在三次握手哪个阶段?三次握手:C--->SYNK>ACK K+1 SYN JC->ACK]+1DONELclient的 connect引起3次握于server在 socket,bind, listen后,阻塞在 accept,三次握手完成后, accept返回一个fd,TCP服务器端sackettTC客户端bindosten)connecto建立连接阻寒直到有客户端连接请求数据writereadr处理请求回应数据readr结束连接readr yclose10.流量控制和拥塞控制的实现机制数据的传送与接收过程当中很可能出现收方来不及接收的情况,这时就需要对发方进行控制,以免数据丢失。流量控制是一种解决发送端与接收方吞吐量不匹配问题的机制。网络拥瘧现象是指到达通信了网中杲部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个冈络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿即出现死锁现象。拥塞控制是处理网络拥塞现象的一种机。11.滑动窗口的实现机制滑动窗凵机制是tcp流量控制的一种机制。滑动窗口分为发送窗凵和接收窗口,发送窗口会根据接受窗口返回的ack中的大小来确定发送数据多少,如果ack返回可接受为零时,发送窗口不发送数据,然后启动定时器,一定时间内给接收端发送探测报文。为了传递效率提扃,发送数据吋会尽量次发送多个字节,这里会通过算法控制接收窗口发送窗口接收窗口取决发送窗口取决于对于本段应用端接收窗囗应用应用接收窗口取决发送窗口取决于对于本段应用端接收舍口发送窗口接收窗口字节流方向窗囗关联方问发送窗口中的四个概念:已发送并收到确认;凵发送但未收到确认;允许发送但未发送;不允许发送。每次成功发送完数据后,发送窗口都会根据接受窗口返冋的ack大小来调整窗口大小后浩前沿前移收缩前移A的发送窗凵=20E区图国时国时网國國回回区画乎图已发送井不允许发送收到确认允许发送的序号B期望收到的序号图5-15根据B给出的窗口值,A构造出自己的发送窗口12. linux的五种I0模式/异步模式1)同步阻塞I/O2)同步非阻塞I/O(只能阻塞个io)3)同步I/O复用模型(可以阻塞多个i,用一个进程/线程调用多个io,其实是复用进稈/线程)4)同步信号驱动I/O5)异步I/O模型3.网络编程设计模式, reactor/ proactor/半同步半异步模式?reactor模式:同步阻塞I/O模式,注册对应读写事件处理器,等待事件发生进而调用事件处理器处理事件。 proactor模式:异步I/O模式。 Reactor和 Proactor模式的主要区别就是真正的读取和写入操作是有谁来完成的, Reactor中需要应用程序自己读取或者写入数据, Proactor模式中,应用程序不需要进行实际读写过程。Reactor是:主线程往epo‖l核上注册 socket读事件,上线程调用 epoll_wait等待 socket上有数据可读,当 socket上有数据可读的时候,主线程把 socket可读事件放入请求队列。睡眠在请求队列上的某个工作线程被唤醒,处理客户请求,然后往epo‖!内核上注册 socket写请求事件。主线程调用 epoll_wait等待写请求事件,当有事件可写的时候,主线程把 socket可写事件放入请求队刎。睡眠在请求队列上的工作线程被唤醒,处理客户请求。Proactor主线程调用 aio read函数向内核注册 socket上的读完成事件,并告诉内核用广读缓冲区的位置,以及读完成后如何通知应用程序,主线程继续处理其他逻辑,当 socket上的数据被读入用户缓冲区后,通过信号告知应用程序数据已经可以使用。应用程序预先定义好的信号处理凼数选择一个工作线程来处理客户请求。工作线程处理完客户请求之后调用ao wrⅰte函数向内核注册 socke写完成事件,并告诉内核写缓冲区的位置,以及写完成时如何通知应用程序。主线程处玛其他逻辑。当用户缓存区的数据被写入 socket之后内核向应用程序发送一个信号,以通知应用程序数据已经发送完毕。应用程序预先定义的数据处理函数就会完成工作。半同步半异步模式上:层的任务(如:数据库查询,文件传输)使用同步IO模型,简化了编写并行程序的难度而底层的任务(如网络控制器的中断处理)使用异步I/O模型,提供了执行效率14.1inux下io多路复用的方案 select、poll、epol1的区别select:利用一个数组结构(最大1024)来存储需要检测的描述符,每次调用需要清空数组结构后重新存入新的描述符文件,然后遍历需要操作的描述符。可以用仨检测单个描述符可以理解为拉取pol:也是利用数组结构存储,但是没有描述符个数限制,而且每次调用时不需要清空存储描述符结构数组。可以用于检测大量描述符的情况。可以理解为拉取epoll:是 select/po!的升级版本,它的机制是可以监视大量的描述符,当有需要连接时将改描述符存放到队列中,而epol只监视和执行队列中即可。可以用于大量并发连接中只有少量活跃的情况。可以理解为推送http://blog.csdnnet/lookatthestars/article/details/5210877315.epo11哪些触发模式,有啥区别?(必须非常详尽的解释水平触发和边缘触发的区别,以及边缘触发在编程中要做哪些更多的确认epo‖有EPoL和 EPOLLET两种触发模式,LT是默认的模式,ET是高速"模式。LT模式下,只要这个fd还有数据可读,每次 epoll_wait都会返回它的事件,提醒用户稈序去操作,而在ET(边缘触发)模式中,它只会提示一次,直到下次再有数据流入之前都不会再提小」,无论fd中是否还有数据可读。所以在ET模式下,read一个fd的时候一定要把它的 buffer读光,也就是说一直读到read的返回值小于请求值。也就是说在LT模式的情况下‘定要确认收发的数据包的 buffer是不是足够大如果收发数据包大小大于 buffer的大小的时侯就可能会出现数据丢失的情况。16. Boost.asio、 libevent、1ibev简介。Boost.asio是一个跨平台的C++库,用于网络和底层I/0编程,可以在I/0对象(如socket)上执行同步和异步操作。 boost.asio的跨平台性原理是在win系统(支持I0CP)linux系统(支持epo11)。 boost:asio将整个异步平台抽象成 boost::asio: lo service,用work控制 1o service生命周期,通知它是否结束,只要对象work( 1o servi ce)存在,10 service就不会结束。利用 buffer类存储数据libevent是一个C语言与的网络库,官方主要支持的是类 linux操作系统,最新的版本添加了对 windows的I0CP的支持由于I0CP是异步I0,与 linux下的POL模型, EPOLL型,还有 freebsd的 KQUEUE等这些同步模型在用法上完全不一致,所以使用方法也不样,就好比ACE中的 Reactor和 Proactor模式一样,使用起来需要转变思路。如果对性能没有特别的要求,那么使用 Libevent中的 select模型来实现跨平台的操作, select模型可以橫跨 windows, linux,unix, solaris等系统。libel是一个C语言写的,只支持1inux系统的库,我以前研究的时候只封装了EPOL模型,不知道现在的新版有没有改进。使用方法类似 libevent,但是非常简洁,代码量是最少的一个库,乜貮几千行代码。显然这样的代码跨平台肯定是无法支持的了,如果你只需要在1inux下面运行,那用这个库也是可以的。17. connect可能会长时间阻塞,怎么解决?1.使用定时器;(最常用也最有效的·种方法2.采用非阻塞模式:设置非阻塞,返回之后用 select检测状态18. keepalive是什么东西?如何使用?keepalive,是在TCP中一个可以检测死连接的机制。1).如果主机可达,对方就会响应ACK应答,就认为是存活的。2).如果可达,但应用程序退岀,对方烑发RST应答,发送TCP撤消连接。3).如果可达,但应用程序崩溃,对方就发FIN消息。4).如果对方主杋不响应ack,rst,继续发送直到超时,就撤消连接。默认二个小时。19. socket什么情况下可读?1. socket接收缓冲区中己经接收的数据的字节数大于等于 socket接收缓冲区低潮限度的当前值;对这样的 socket的读操作不会阻塞,并返回一个大于0的值(准备好读入的数据的字节数)2连接的读一半关闭(即:接收到对方发过来的FIN的TCP连接)并且返回03.s0cket收到了对方的 connect请求已经完成的连接数为非0这样的 socket处于可读状态;4.异常的情况下 socket的读操作将不会阻塞,并且返同一个错误(-1)。20. socket编程,如果 client断电了,服务器如何快速知道?使用定时器(适合有数据流动的情况);使用sock吐t选项SO_ KEEPALIVE(适合没有数据流动的情况);1)、自己编写心跳包程序,简单的说就是自己的程序加入一条线程,定时向对端发送数据包,看是否有ACK,根据ACK的返回情况来管理连接。此方法比较通用,般使用业务层心跳处理,灵活可控,但改变了现有的协议2)、使用TCP的 keepalive机制,∪NX网络编程不推荐使用SO_ KEEPALIVE米做心跳检测。keepalive原理:TCP内嵌有心跳包,以服务端为例,当 serve检测到超过一定时间(/proc/sys/net/ipv4/tcp_ keepalive_ time7200即2小时)没有数据传输,那么会向client端发送一个 keepalive packet21.如果 select返回可读,结果只读到0字节,什么情况?某个套接字集合中没有准备好,可能会 select内存用 FD CLR清为0.22.网络中,如果客户端突然掉线或者重启,服务器端怎么样才能立刻知道?若客户端掉线或者重新启动,服务器端会收到复位信号,每一种tcp/ip得实现不一样,控制机制也不·样。23.TTL是什么?有什么用处,通常那些工具会用到它?ping? traceroute? ifconfig?netstat?TTL是 Time to live,每经过一个路由就会被减去一,如果它变成0,包会被丢掉。它的主要目的是防止包在有回路的网络上死转,浪费网络资源。ping和 traceroute用到它。24请说出http协议的优缺点1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务吋,只需传送请求方法和路径,通信速度很快。3.灵活:HTTP允许传输任意类型的数据对象。4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断廾连接。采用这种方式可以节省传输时间。5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,导致每次连接传送的数据量增大。缺点就是不够安全,可以使用hps完成使用25大规模连接上来,并发模型怎么设计Epol1+线程池(epo11可以采用 libevent处理)26.tcp怎么做到不丢包。TCP提供超时重发(每一个seq后都有ack,计时时间到后重发seq),丢重复数据(通过判断seq和ack的大小,如果seq比ack小说明发过了),检验数据(通过tcp的伪首部),流量控制(利用滑动窗口实伣流量控制)等功能,保证数据能从一端传到另一端。27.TCP的确认重发机制A发—B/a向b发送数据B确认-A//b收到数据后发送给a确认包A-在重发数据中将发送成功的数据删掉28.I0CP和epo1l的联系与区别?联系:两者都是高效的io模型,都是基于事件驱动。区别:TOCP用在 Windows上,epo11用在1inux上;IQCP本质是异步非阻塞的,而epo1l是同步非阻塞的;1OCP是当事件完成时再通知,而 epoll是当事件满足处理要求是通知处理。boost中的asio网络模块的跨平台性原理是在win系统(支持IOCP),1inuκ系统(支持epollhttps://yg.aliyun.com/articles/53621进程与线程1.进程之间的通信无名管道:单向通信,只能亲戚关系才能传递,般用在父了进程之间有名管道:单向通信,可以用在任意两个进程之间通信。信号量:是一种计数器,主要用于资源共亨,用在多个进程或者进程内多个线程之间同步手段共享内存:一个进程创建共多个进程使用,和信号一起使用在进程同步与通信。信号:比较复朵的·种通信。套接字:消息队列:客服信号传递信息少,管道缓冲区受限。2.线程同步临界区,互斥对象,事件,信号量3.多线程和多进程的区别1)进程数据是分丌的:共享复岽,需要用IPC,同步简单;多线程共享进程数据:共享简单,同步复杂2)进程创建销毁、切换复杂,速度慢:线程创建销毁、切换简单,速度快3)进程占用内存多,CPU利用率低;线程占用内存少,CPU利用率高4)进程编程简单,调试简单;线程编程复杂,调试复杂5)进程间不会相互影响;线程个线程挂掉将导致整个进程挂抻6)进程适应于多核、多机分布;线程适用于多核线程所私有的:线程jd、寄存器的值、栈、线程的优先级和调度策略、线程的私有数据、信号屏蔽字、ero变量。4.多线程锁的种类有哪些?a.互斥锁( mutex)b.递归锁C.自旋锁d.读写锁5.自旋锁和互斥锁的区别?白旋锁中当锁被其他线程占用时,其他线程并不是睡眠状态,而是不停的消耗CPU,获取锁;互斥锁则不然,保持睡眠,直到互斥锁被释放溦活。自旋锁,递归调用容易造成死锁,对长时间才能获得到锁的情况,使用自旋锁容易造成CPU效率低,只有内核可抢占式或SMP情况下才真正需要自旋锁6.多线程程序架构,线程数量应该如何设置?应尽量和CPU核数相等或者为CPU核数+1的个数7.有一个计数器,多个线程都需要更新,会遇到什么问题,原因是什么,应该如何做?如何优化?有可能一个线程更新的数据已经被另外一个线程更新了,更新的数据就会出现异常,可以加锁,保证数据史新只会被一个线程完成
- 2020-11-27下载
- 积分:1