Hello and welcome to lecture number 33 of this lecture series on Introduction to Aerospace Propulsion. We have been over the last lecture discussing about cycle analysis, the ideal cycle analysis for gas turbine engines. So, we started our discussion in the last lecture on trying to derive an equation for thrust and other performance parameters of jet engine like the fuel consumption, the specific fuel consumption, the thrust specific fuel consumption and the different efficiencies like the thermal efficiency, the propulsion efficiency and the overall efficiency. And so these are some of the performance parameters that we can define for evaluating the performance of air breathing engines. And in the last lecture we had our discussion on cycle analysis, the ideal cycle analysis for turbojet engines. So, turbojet engines are one of the basic forms of jet engines and we have done the cycle analysis for that which primarily involved trying to determine the performance across each of the components in terms of the temperature and pressure. And then subsequently for each of the components which constitute a turbojet engine and so once we reach the nozzle of the turbojet engine we can find out the exhaust velocity and from the exhaust velocity we can find out the thrust that the engine is going to develop under those circumstances. And once we calculate the thrust we can also determine other performance parameters like the fuel consumption as well as the efficiencies. So, that was the basic cycle analysis procedure that we had followed and we had discussed in the last lecture. So, in today's lecture we are going to continue with discussion on that, but we shall be taking up variance of turbojet engine. We shall be discussing about one of the most popularly used jet engines in current day civil aviation that is the turbofan engines. We shall be discussing in detail about turbofan engines and how we can carry out a cycle analysis for turbofan engines. And there are some different variants of turbofan engines as well that we shall be discussing about and some of those analysis I shall probably be leaving it to you for carrying out an exercise on the cycle analysis of some of the variants of the turbofan engine. And then we shall also move on to discuss some of the other types of jet engines which are used like the turboprop engines and the turbo shaft engines and also in very brief about the ramjet engines which we shall take up towards the end of this lecture. So, let us take a look at what we are going to discuss in today's talk. So, we shall be discussing about ideal cycle again we are not taking into account efficiencies of different components. We shall be discussing about the ideal cycles and we will begin with the turbofan engine and the turbofan engine which constitutes of different components which are some of most of which are similar to what is there in a turbojet engine. But, there are there is an additional component in turbofan engine which basically the fan and there are different configurations of turbofan engines which we shall be discussing in detail. And depending upon the particular configuration that the turbofan engine is operating on the cycle analysis needs to be modified slightly depending upon what configuration it is. We shall then be discussing about two other popular engines which are in use the turboprop and the turbo shaft engines. Turboprop and turbo shaft engines are also used primarily in of course, they are used in military as well as in civil aviation, but many of the civil aircraft which probably you might have seen or flown would be using the turboprop engines usually with those engines are used in smaller aircraft which have lesser seating capacity. Turbofan engines the high bypass turbofan engines are what are used in most of the large class jet engines and aircraft like some of the larger aircraft which carry about 300 400 passengers or even more all of them use the turbofan engines. And turbo shaft engines are used in helicopters and of course, they have both civil as well as military applications. And then we shall also be discussing about ramjet engines which are very simple form of a jet engine. In fact, it is even simpler than a turbo jet engine, but it is not being used for any civil application it is primarily for missiles and probably for some of the futuristic aircraft applications that ramjets might probably be used little later on, but currently it is primarily used in missiles. So, these are some of the topics that we shall be discussing in today's lecture and so, we will begin our discussion with discussion on the turbofan engines. Now, let us understand why we need a turbofan engine in the first place. Now, we have seen that in a one of the performance parameters that we can use to evaluate the performance of a jet engine is the propulsion efficiency. You already learnt in great detail about the propeller based engines and we have also seen that the propeller based engines have a very high propulsion efficiency as compared to the pure jet based engines, let us say the turbo jets. So, if you compare the propulsion efficiency of a jet engine a turbo jet engine with that of a propeller based engine, the propulsion efficiency is much higher for a propeller based engine as compared to turbo jet engines. So, if the propulsion efficiency is higher this also contributes to the overall efficiency of the engine. So, this is one of the parameters which we shall make use of in trying to modify the jet engine the basic jet engine. So, that we have a better overall efficiency as well. So, what we shall be doing is that if we can increase the propulsion efficiency of the jet engine in some way, then it means that we will also have a higher overall efficiency. So, in order to do that we need to increase the front stages of the compressor in terms of the diameter we have a larger diameter and therefore, the mass flow rate associated with that fan will also be higher, but it will exhaust at a velocity which is lower than that of the core engine and therefore, the propulsion efficiency can be increased. So, turbo fan engines are characterized by the presence of huge fans which are placed ahead of the compressor. So, if you have had a chance to take a closer look at the aircraft engine which is used in most of the commercial civil aircraft, you might have seen that the first component that you see is this huge fan and that is the main difference between a turbo fan engine and a turbo jet engine. And so this is something which you could see either if you are in an airport waiting for the plane or if you are boarding an aircraft then you probably will get a chance to see the engine in a little bit detail or at least the next time you board an aircraft make sure you can have a view of the engine. You will notice that there are these huge fans and the basic reason that these fans are present is that firstly they of course, give you a higher mass flow rate and we have seen that thrust is a direct function of mass flow rate and the other reason is that it will also have an effective lower exhaust velocity and therefore, the propulsion efficiency can be higher which means that turbo fan engines in general can have higher overall efficiency. But besides this turbo fan engines also have a higher thermal efficiency which we shall see little later, but the only issue is that because they have larger diameters the overall drag of the aircraft can be higher. But this can be compensated by the fact that turbo fan engines can generate larger thrust because of the presence of the fan which generates a lot of mass flow rate through the engine which is high in fact, higher than that of the core mass flow. So, if you take a look at the turbo fan engine characteristics. So, the first two points is what I was mentioning about that propulsion efficiency is one aspect which turbo fan engines will have higher than turbo jet engines because the effective exhaust velocity is lower and we can do that by increasing the fan diameter. And so, in a turbo fan engine a large diameter fan is used ahead of the compressor it generates a mass flow which is higher than that of the core mass flow. And so, this ratio of the fan mass flow to the core mass flow is called the bypass ratio. So, this bypass ratio for modern turbo fan engines can be as high as 6 or even 7 which means that the mass flow which is which is being generated by the fan is 6 times greater than the mass flow which is passing through the core engine. So, 6 times the mass flow actually goes through the bypass duct. And therefore, your overall thrust can be higher because the mass flow is much higher than what you get in the core which also contributes to thrust. At the same time you also have a lower effective exhaust velocity and hence an increased propulsion efficiency. So, turbo fan engines will in general have propulsion efficiencies which are higher than that of the conventional turbo jet engines. Now, let us take a look at a schematic of a turbo fan engine. We have already seen that for a turbo jet engine. Let us now see how we can analyze a turbo fan engine and what are the different types of turbo fan engines which are in existence. So, a schematic of a turbo fan engine is shown here. And what is shown here is a schematic of an unmixed turbo fan engine. Unmixed turbo fan engine means that there are two separate exhausts there is one exhaust from the fan and the other exhaust is the core engine that is the primary nozzle. So, let me explain what are the different components of a turbo fan engine. So, turbo fan engine like the turbo jet has a diffuser and immediately following the diffuser is a fan. And so, you can see that the fan diameter is much higher than that of the compressor. So, this is the compressor fan diameter is much higher than that of the compressor. And then downstream of the compressor we have the combustion chamber which is where the primary heat addition takes place. Then we have a turbine which could be in multiple stages we could have different stages of turbines. Then after the turbine we have the primary nozzle after the fan you might notice that there is a secondary nozzle. So, you could have exhaust velocities from the secondary nozzle as well as from the primary nozzle both of them contribute to the thrust. And if we were to carry out a cycle analysis we have already seen we normally follow a certain convention for station numbering. So, for the core engine it is pretty much the same as what we had done for the turbo jet engine that we have stations A for the free stream, one for diffuser inlet, two for the compressor inlet, three for compressor outlet, four for the turbine inlet, five for turbine exit, six is the nozzle entry, seven is nozzle exit. For the bypass duct we shall denote these numbers with a prime. So, 2 prime refers to the fan inlet, 3 prime refers to the fan exhaust which means 3 prime and 2 for the core stream are the same. And the secondary nozzle exhaust is 7 prime. So, these are different components of a turbo fan engine which is of an unmixed configuration that is these two streams do not mix within the engine valves. Now, it is also possible to have a turbo fan engine where these two streams mix and that is known as a mixed turbo fan engine which is what I shall show you in the next diagram. This is a mixed turbo fan engine where the core mass flow mixes with the cold mass flow before exhausting through a single nozzle. So, here there is only a single nozzle and therefore, this is very similar to that of a turbo jet engine and such engines usually have a lower bypass ratio as compared to the high bypass which I had shown earlier. So, such engines are also sometimes refer to as low bypass turbo jets because these bypass ratios are very small and they are mixed the mixing is done for other reasons as well for military advantages to reduce the infrared signatures and so on. So, these this is a schematic of a mixed turbo fan and so here the analysis would be very similar to what we had seen for a turbo jet engine just that we have to calculate the properties in the mixture and which is basically done by an enthalpy balance of these two streams. So, these are the different components of a turbo fan engine in two of its configurations. Now, there are multiple ways of operating a turbo fan engine. You could have a turbo fan engine with a single spool that is the compressor, the fan and the turbines are mounted on the same shaft, but that is a little unrealistic or an inefficient way of operating a turbo fan because if you mount all of them on the same shaft it means that all the stages have to run at the same speed. So, there are operational issues with regard to running the fan and compressor at the same speed. So, normally it is practiced to split the different turbo machines on and mount them on separate spools or shafts. So, you could have a turbo fan with two spools or a twin spool turbo fan where usually we have the fan and the low pressure compressor that is the initial stages of the compressor which is attached to later stages of the turbine and that is known as a low pressure turbine and the later stages of compressor which are known as high pressure compressor that is driven by the initial stages of the turbine which is the high pressure turbine. So, this is a twin spool configuration. You could also have a three spool configuration where the fan is driven by the LPT that is low pressure turbine, the LPC that is low pressure compressor is driven by an intermediate pressure turbine or IPT and the HPC that is high pressure compressor is driven by the high pressure turbine. So, these are different configurations of a turbo fan and these all these three configurations could either be operating in a mixed mode or an unmixed mode. So, you can see that there are different varieties of turbo fan engines or configurations possible and cycle analysis for each of them though the basic philosophy is the same, they could be slightly different depending upon which configuration of the engine is being analyzed at the moment. So, what we shall do is to analyze the turbo fan engine, the cycle analysis for an ideal turbo fan engine for one of these configurations and the others can be carried out in a very similar fashion and we shall only discuss that in a very short duration for that time. So, let us take a look at one of the configurations of an ideal turbo fan. Now, the different processes which involve, which are involved in an unmixed turbo fan cycle constitute the first process that is A to 1 which is air intake from the far upstream, which involves air from the far upstream brought to the air intake with some acceleration or deceleration. Well, you could also have intakes where there is either acceleration or deceleration depending upon the operating condition. We will not discuss that in detail here it is out of the scope of the current syllabus and the second process is 1 to 2 dash or 1 to 2 prime, where the air is decelerated as it passes through the diffuser. 2 prime to 3 prime is the compression process in the fan and 2 to 3 is the compression process in the compressor, which could be either an axial compressor or centrifugal. Most of the cases it is indeed an axial compressor which is used. 3 to 4 is the combustion process of the core engine, air is burned or heated in a combustion chamber. 4 to 5 is air is expanded in a turbine to obtain power to drive the compressor. So, this process that is 4 to 5 could happen in different stages depending upon the number of stages that are involved. 5 to 6 is there could be an after burner. Normally, in a turbofan it is unusual to have an after burner, but there have been engines which have low bypass ratios and still have after burners. And 6 to 7 is the nozzle, the primary nozzle where air is expanded through the primary nozzle. 3 prime to 7 prime is the air in the bypass duct is accelerated and expanded through a secondary nozzle. So, secondary nozzle is the nozzle which is present in the cold stream and does not take part in the combustion. Whereas, the primary nozzle is the one which passes the air or combustion products which is coming from the turbine after the combustion and then it gets expanded through the nozzle. So, there could be 2 distinct nozzles or you could have a single nozzle where which is what would be in a mixed turbofan where both these streams are mixed. So, you could have turbofan engines which are operating in different modes and what we shall do is take up one of these for our cycle analysis. And let us say we take up one case where we have the turbine, there are 2 stages of turbine a twin spool turbofan where the fan is driven by the one of the stages of the turbine and the compressor is driven by the another stage of a turbine. So, let us see the turbine consists of 2 stages, one stage drives the fan, other stage drives the compressor. We shall do a cycle analysis for this case and the other cases we will discuss in little bit detail. So, depending upon what configuration the turbofan is operating on, the cycle analysis can be slightly different depending upon what configuration it is. We will carry out an ideal cycle analysis for an unmixed twin spool turbofan engine. Then of course, there are also mixed versions of the same engine. So, like we did for the turbojet engine, we shall be we shall be carrying out cycle analysis by considering the components one by one. And then based on some of those parameters which are known a priori like the ambient conditions and the Mach number are fixed, the compressor pressure ratio, the fan pressure ratio and the turbine inlet temperature are also design parameters which are fixed or known a priori. So, based on these known parameters we can now carry out the cycle analysis. So, let us take up the first component that is the intake. So, for an intake we should be knowing the ambient pressure, the temperature and the Mach number and therefore, P a which is the ambient pressure, static pressure T a and the Mach number are fixed. Now, based on this the intake exit conditions which is T 0 2 prime is equal to T a into 1 plus gamma minus 1 by 2 m square. So, this is following the isentropic relations because the compression in the intake is assumed to be isentropic for an ideal cycle. T 0 2 prime is the stagnation pressure at the intake exit which is equal to P a into T 0 2 prime divided by T a raise to gamma by gamma minus 1 which is again as a consequence of the isentropic nature of this process. The second process or the component which follows the intake is the fan and for the fan we know that the fan pressure ratio is a design parameter which is known and therefore, pi f which is the fan pressure ratio is equal to P 0 3 prime divided by P 0 2 prime where P 0 3 is the fan exit stagnation pressure. So, therefore, P 0 3 prime that is fan exit stagnation pressure is equal to pi f fan pressure ratio into P 0 2 prime P 0 2 prime has already been calculated. The fan exit stagnation temperature is T 0 3 prime which is equal to T 0 2 prime into pi f raise to gamma minus 1 by gamma where pi f is as we know is the fan pressure ratio. So, these are the first two components of a turbofan engine the intake and the fan. So, both these processes are isentropic for an ideal cycle and in fact the next process which we shall see that is the compressor will also be an isentropic compression process and so for the compressor the cycle analysis which involves isentropic relation is similar to what we did for the turbo jet. So, for the compressor the known parameter is the compressor pressure ratio which is fixed. Now, the compressor inlet pressure is known stagnation pressure is known because a fan exit stagnation pressure should be equal to the compressor inlet stagnation pressure and so P 0 3 prime should be equal to P 0 2 which is the inlet stagnation pressure of the compressor. Similarly, the stagnation temperatures so based on that since we know the compressor pressure ratio we can find out the compressor exit conditions the temperature and pressure and just the same way as we did for the turbo jet engine. So, for the compressor we have P 0 3 which is the compressor exit pressure stagnation pressure is equal to pi c into P 0 2 where P 0 2 should be equal to P 0 3 prime and P 0 3 prime is the fan exit stagnation pressure. Similarly, T 0 3 is equal to T 0 2 into pi c raise to gamma minus 1 by gamma here T 0 2 that is the compressor inlet stagnation temperature should be equal to fan exit stagnation temperature that is T 0 3 prime. So, these are the compressor exit conditions the stagnation temperature and the pressure and now we move on to the combustion chamber. Now, combustion chamber analysis is something you are already familiar with we did that in the turbo jet. What we do is to carry out an energy balance across the combustion chamber. So, at the inlet we have conditions of pressure and temperature coming from the compressor then fuel is added in the combustion chamber and the we find out the exit conditions. So, H 0 4 is the stagnation enthalpy at the combustion chamber exit there should be equal to stagnation enthalpy at the inlet which is H 0 3 plus the fuel flow rate that is f into q r which is the heat of reaction of that particular fuel. So, from this by simplification because we are assuming air to be ideal gas here with constant specific heats. So, H 0 4 should be equal to C p into T 0 4 which is equal to C p T 0 3 plus f into q r. So, from this we can find out the fuel to air ratio. So, that will on simplification we get the fuel to air ratio as T 0 4 by T 0 3 minus 1 divided by q r divided by C p into T 0 3 minus T 0 4 by T 0 3. So, from this we can find out the fuel to air ratio. So, the fuel to air ratio we can find because we have the conditions at the inlet and the conditions at the outlet of the combustion chamber because the turbine inlet temperature that is T 0 4 as I already mentioned is a design parameter and so that should be known a priori. So, once that is fixed and inlet conditions are obtained from the compressor analysis we get the inlet stagnation pressure and temperature. So, we can find the exit conditions and in an ideal cycle we assume that there is no pressure loss occurring in the combustion chamber therefore, P 0 4 should be equal to P 0 3. So, now we have the properties up to the combustion chamber inlet or combustion chamber outlet or the turbine inlet. Now, in the turbine the analysis is now going to be slightly different from what we did for the turbojet because here we have a twin spool engine where there are two stages of turbines one driving the compressor and the other driving the fan. Now, the first stages of the turbine first few stages or at least it could be one or two stages is known as the high pressure turbine because that is the turbine stage which is operating at the highest temperature and that is therefore, known as the high pressure turbine. High pressure turbine is going to drive the compressor because compressor requires more work than a fan and the later stages of the turbine which is known as the low pressure turbine or LPT will be driving the fan because fan requires lesser work than these compressor as a whole. So, we have to now split the compressor well the turbine stages into two and so, the high pressure turbine drives the compressor low pressure turbine drives the fan. So, if you have to do that now depending upon the type of a configuration we are going to use we have already assumed that the engine is going to have two spools. Now, if the engine has two spools the fan will be driven by the low pressure turbine and the compressor is driven by the high pressure turbine. So, from how do we calculate the properties across this the work done by LPT that is low pressure turbine should be equal to the fan work and work done by the high pressure turbine which is HPT should be equal to the compressor work. So, we are going to carry out a work balance between the fan and the low pressure turbine and then the compressor and the high pressure turbine. Now, since initial stages are the high pressure turbine and we know the turbine inlet temperature which is the high pressure turbine inlet temperature we will use that for carrying out the work balance. Now, so for the high pressure turbine which is what is the first component after the combustion chamber the work done by the high pressure turbine should be equal to the work required for the compressor. So, if we equate the two we have m dot t which is mass flow rate through the turbine which is the mass flow rate coming in from the compressor plus the fuel flow rate multiplied by C p into T 0 4 minus T 0 5 prime. So, here T 0 5 prime is the temperature at the high pressure turbine exit at HPT exit this should be equal to m dot a h which is the mass flow coming in from the compressor the subscript h denotes hot exhaust or the hot core of the engine multiplied by C p into T 0 3 minus T 0 2. Now, from this we can find out the HP turbine stagnation temperature at the exit of the HP turbine. So, T 0 5 prime is equal to T 0 4 minus T 0 3 minus T 0 2 by 1 plus f. Similarly, P 0 5 prime is equal to P 0 4 into T 0 5 prime by T 0 4 raise to gamma by gamma minus 1 where P 0 4 is equal to P 0 3 for an ideal cycle there is no pressure loss in the combustion chamber. So, the stagnation pressures are the same. Now, after the high pressure turbine we now move on to the low pressure turbine here the low pressure turbine drives the fan and therefore, m dot t remains the same as that for the high pressure turbine m dot t into C p multiplied by T 0 5 prime which is the inlet stagnation temperature of L p t minus T 0 5 which is exit stagnation temperature of the L p t and this is equal to m dot ac which is mass flow rate required for the fan into C p into T 0 3 prime minus T 0 2 prime. So, here we have the exit stagnation temperature exit stagnation temperature which is T 0 5 that is what we need to find out. So, therefore, if you simplify this we get since m dot t is equal to m dot a h plus m dot f. So, if we divide throughout by m dot a h we get 1 plus f into T 0 5 prime minus T 0 5 is equal to b which is the bypass ratio into T 0 3 prime minus T 0 2 where b is equal to m dot ac by m dot a h that is the cold mass flow divided by the hot mass flow. So, from this we can simplify and find out the exit stagnation temperature of the low pressure turbine which is T 0 5. T 0 5 should be equal to T 0 5 prime minus b into that is bypass ratio into T 0 3 prime minus T 0 2 prime divided by 1 plus f and similarly the stagnation pressure which is T 0 5 which is equal to T 0 5 prime into the temperature ratio T 0 5 divided by T 0 5 prime raise to gamma by gamma minus 1. So, we have now carried out the analysis across the low pressure turbine. We already carried that out for the high pressure turbine and so at the LP turbine exit we now have properties which are basically corresponding to the turbine exit. Now, from the turbine exit we will now move on to the nozzle and the nozzle exit conditions that is the exhaust velocity can be determined which in turn we can use to find out part of the thrust which is generated by the hot nozzle or the primary nozzle. Similarly, we will also find out the thrust which is contributed by the secondary nozzle that is the bypass duct and so the total thrust will be equal to the sum of these two for this case that is the unmixed turbofan case. The mixed turbofan case of course, there will be only a single exhaust which would be a mixture of the bypass mass flow with the core mass flow. So, moving on to the primary nozzle the analysis is identical to what we did for the turbojet and so we have the stagnation temperature and pressure at the turbine exit and in an ideal cycle there are no losses occurring in that duct subsequently therefore, these temperatures and pressures will be the same as that of the nozzle entry. So, at the nozzle entry if we do not have any after burner we have T 0 6 is equal to T 0 5 and P 0 6 is equal to P 0 5. So, the nozzle exit kinetic energy will be equal to u e which is the same as we did for the turbojet is equal to square root of 2 C P T 0 6 into 1 minus P a by P 0 6 raise to gamma minus 1 by gamma. So, this is the exhaust velocity from the primary nozzle. Now, for the secondary nozzle we have u e f where f corresponds to that of fan we can derive an equation for the exhaust velocity from the fan from the secondary nozzle in the same way as we did for the primary nozzle. So, u e f is equal to square root of 2 C P T 0 3 prime which is the nozzle inlet stagnation temperature into 1 minus P a by P 0 3 prime raise to gamma minus 1 by gamma. So, now we have the exhaust velocities from both the nozzles primary nozzle as well as the secondary nozzle. So, how do we now calculate the thrust because mass flow rate through both these streams are different they are governed by the bypass ratio. So, now that we know the bypass ratio we can calculate the thrust which is the total thrust which will have two components one is from the core duct and the other is from the bypass duct. So, the thrust that is generated by this unmixed by turbofan engine is equal to the first part of it is the thrust by the core nozzle which is m dot a h which is mass flow rate through the core stream into 1 plus f into u e minus u. And the second term that is the thrust generated by the bypass duct will be equal to the bypass ratio into m dot a h which is basically equal to m dot a c into u e f minus u which is equal to the velocity differences through the bypass duct. Of course, there will also be a pressure thrust term if it is to be assumed negligible then this is the total thrust which is developed by this turbofan engine the ideal turbofan where the two streams are unmixed. Now similarly, we can calculate the specific fuel consumption or the thrust specific fuel consumption and the efficiencies in the same way as we did for the turbo jet case. And once we calculate thrust the other parameters are straight forward. Now if the turbofan consists of a mixed configuration that is the two nozzles mix and there is only a single exhaust nozzle if it is a mixed turbofan engine then there is only one nozzle which generates the thrust. So, in this case the difference in the cycle analysis comes only at the nozzle entry how do you find the temperature of the nozzle entry which is not equal to the turbine exit temperature because there is a bypass duct mass flow which mixes with the turbine exhaust mass flow. So, what we need to do there is to carry out an energy balance between the two streams which is the bypass stream and the turbine exhaust stream both of them mix then you have a final mixture enthalpy. So, final mixture enthalpy that is m dot into h 0 6 should be equal to m dot ac into the temperature and that there is enthalpy of the cold stream plus the mass flow rate of the hot stream multiplied by the enthalpy of the turbine exhaust. So, from that you can find out the nozzle entry stagnation temperature and therefore, thrust because the nozzle exhaust velocity is a function of the temperature and the pressure ratios. So, if the configuration is a mixed turbofan then we can find out these parameters by carrying out this energy balance. Now, similarly there could be other configurations of turbofan engines which are possible like you could have different number of spools we have now carried out the analysis for a two spool configuration. You could have three spool configuration or you could have the same configuration with mixed or unmixed exhaust and so on. So, the analysis the process procedure for analysis is very much identical to what we have already discussed and so I will leave it as an exercise for you to carry out an ideal cycle analysis for a turbofan with three spools that is three spool configuration with the low pressure turbine driving the fan and intermediate pressure turbine driving the LPC and the high pressure turbine driving the HPC and you could have two types of configurations either mixed or unmixed configurations. So, I leave it as an exercise for you to carry out a cycle analysis for these two cases. There are two cases here that is it is a three spool engine and one configuration is a mixed turbofan the other is an unmixed turbofan. So, based on the discussion we had you should be able to now carry out the cycle analysis for these two configurations of a turbofan engine. So, we have now discussed cycle analysis for turbofan engines and as I mentioned there are different types of turbofan engines that you could come up with and cycle analysis will be slightly different depending upon what type of configuration it is. Now, the next type of engine that we shall be discussing there are two set types of engines together we shall discuss these are the turboprop engines and the turboshaft engines. Now, these are two types of engines which are slightly different from the turbojet and turbofan in the sense that these engines also develop a certain shaft power to either drive a propeller in the case of a turboprop or you could be driving a main rotor blade as in the case of a turboshaft engine, but the difference between a turboprop and the turboshaft is that in a turboprop there is also thrust generated by the nozzle exhaust which is absent in the case of a turboshaft. Turboshaft necessarily generates only shaft power to drive the main rotor blade there is hardly any nozzle exhaust thrust which is developed by the turboshaft engine. So, in a turboprop or turboshaft engine in a turboshaft prop engine generates a substantial shaft power in addition to the nozzle thrust and turboshaft engines on the other hand generates only shaft power and turboshaft as I mentioned in the beginning they are used in helicopters and the shaft power is used to drive the main rotor blade. In a turboprop engines that the advantages and limitations are primarily to that of the propeller in the sense that the advantage of a turboprop engine is it is high propulsion efficiency. The limitation is that the presence of the propeller leads to limited speeds that the propeller based engine can operate and so the limitations as well as advantages are both on account of primarily the propeller and so both these types of engines turboprops as well as turboshaft engines are primarily limited to relatively lower speeds because at higher speeds the compressibility effects come into picture and that could lead to increase in losses because of compressibility effects and shocks which could occur at the tip of the propeller or the blades and so their applications are limited to relatively lower speed but they are still not very low speed but relatively lower than a turbofan or a turbojet engine. Now if you let us take a look at a schematic of a typical turboprop engine now so what we have here is a turboprop schematic of that so some of the components you are already familiar with which were discussed for the turbofan and turbojet engines. We have a compressor then a combustion chamber and turbines so I have shown two types of turbines of stages of turbines one is the compressor turbine which drives the compressor and we also have a power turbine which is meant to drive the propeller. So this is the propeller here and this is driven by the power turbine in a turboprop and since the propeller speeds are limited the rotational speeds are limited the invariably there is a gearbox which reduces the speed of the shaft from the turbine so that the propeller can run at relatively lower speeds. So, gearbox is also a constituent of this arrangement and you may also have a propeller pitch control mechanism for changing the pitch which you had already seen in some of the earlier lectures and there is also a nozzle at the exhaust that is generating some amount of thrust. So, the power turbine exhaust through a nozzle which also generates a certain amount of thrust. So, these are the different components of a turboprop engine and it is very similar for a turbo shaft engine also instead of a propeller we have the main rotor blade and the nozzle component of the thrust is very limited it is negligible in a turbo shaft engine other components are more or less the same. Now in both these engines turboprops as well as turbo shaft engines they usually have a free turbine or a power turbine which is used to drive either the propeller in the case of turboprops or the main rotor blade in the case of turbo shafts. So, the speeds at which the propeller can rotate is basically limited by as I mentioned compressibility effects and stress limitations and. So, they have to have a speed reducer so that the speed at which propeller rotates can be limited and. So, in the case of turboprop I mentioned there are two components of thrust the thrust because of the propeller itself and the thrust on account of the nozzle exhaust and in the case of turbo shaft it is just the primary the thrust or the entire power of the engine is used for driving the main rotor blade. So, the cycle analysis of both these engines are in most of the components being identical to that of the turbo jets or the turbo fan cycle analysis remains more or less the same except for the free turbine or the power turbine which is used for driving the propeller or the rotor blade. So, that is the only component where there could be a slight difference between the cycle analysis. So, cycle analysis for the turbo shaft is very identical to what we had discussed only thing is here the power output is the shaft power and there is no thrust generated by the nozzle in turboprops thrust comprises of two components the propeller thrust and the nozzle thrust the therefore, the total thrust will be equal to some of the nozzle and the propeller thrust. So, if you look at the power turbine I mentioned that is the major difference between a turboprop or a turbo shaft and the other forms of engines. So, this is the power turbine that is shown here. So, 5 is the main turbine or the compressor turbine exist exit 6 is the power turbine and 7 is the nozzle exit. So, if you look at this process on an H s diagram it is an expansion process. So, an ideal cycle the expansion process is isentropic. So, stagnation temperature at 5 is T 0 5 and pressure is P 0 5. So, it expands all the way to P 0 6 in the power turbine and then rest of the expansion takes place in the nozzle. So, 0 6 to 7 which is the ambient pressure is the nozzle expansion. So, let us say this total enthalpy drop across the power turbine and the nozzle together is delta H a fraction of that enthalpy drop occurs in the power turbine which is let us say alpha. So, alpha times delta H is the enthalpy drop which occurs in the power turbine. So, 1 minus alpha into delta H is the power is the enthalpy drop in which takes place in the nozzle. So, delta H is basically the enthalpy drop in the both the power turbine as well as the exhaust nozzle put together fraction of that delta H which is alpha would be used by the turbine and remainder is used by the nozzle. So, the propeller thrust power which primarily comes from the power turbine let us say is the thrust power thrust by the propeller is tau to subscript P R which is the propeller. So, thrust power is this multiplied by u. So, thrust power is alpha delta H which is fraction of the total delta H which is occurring across the turbine power turbine plus the nozzle multiplied by the mass flow rate. So, propeller thrust will be equal to alpha delta H into m dot divided by u and. So, the next component of that is the nozzle thrust. So, exhaust nozzle thrust is tau n. So, tau n is mass flow rate times the velocity differences. So, here velocity difference you can find by the same way as we did for the turbo jet and turbo fans which is square root of 2 into the enthalpy drop multiplied by the fraction which is 1 minus alpha. So, u e is equal to square root of 2 into 1 minus alpha into delta H. So, 1 minus alpha into delta H is the fraction of the enthalpy drop which occurs in the nozzle. So, therefore, the total thrust which is equal to thrust generated by the propeller plus the thrust generated by the nozzle which is equal to alpha delta H into m dot divided by u plus m dot into square root of 2 into 1 minus alpha delta H minus u. So, here I have not described the step by step cycle analysis because it is identical to what we have done for turbo jets and turbo fans and all you have to do is to find out the temperature at the power turbine inlet and therefore, across the power turbine you could determine the enthalpy drop and which in turn gives you the propeller thrust. And once you know that the power turbine exhaust conditions are known, you can also find out the nozzle exhaust conditions and therefore, the nozzle thrust can also be determined. So, the total thrust will be equal to sum of these two thrust components part of which is coming from the turbine, part of it is coming from the propeller and rest of the thrust generation is taking place across the nozzle. And so these delta H that we have talking about the total enthalpy drop should be coming from the cycle analysis of the preceding components that is starting from the compressor, the combustion chamber and the compressor turbine. So, from there we can determine the enthalpy drop that will be required for these two components together and that in turn gives us the total thrust which is developed by the turbo jet turbo prop engines. And obviously, I want to calculate the thrust we can also determine the fuel consumption and the efficiencies. We already discussed the efficiency definition for turbo props wherein we also have the shaft power which needs to be taken into account while calculating the efficiencies. So, this is the general procedure for carrying out the cycle analysis for the turbo props. It is identical for a turbo shaft as well just that in a turbo shaft you do not need to really calculate the nozzle thrust because there is hardly any nozzle thrust developed in a turbo shaft engine. Now, the last cycle analysis which we shall discuss is that for a cycle which is a simplest form of an everything engine which is a ramjet engine. We will again not going to details of the cycle analysis because we have already discussed that. In fact, a ramjet cycle analysis should be much simpler than what we have discussed for all the other engines because ramjet is the simplest form of an everything engine. And some of the components we have discussed like compressor and turbine is actually absent in a ramjet engine. So, a ramjet engine consists of three basic components it consists of a diffuser or an intake followed by a combustion chamber and the nozzle. So, there is no compressor there is no turbine as well. So, you may wonder if there is no compressor and the turbine how is it that this engine is going to operate. So, in a ramjet engine the basic idea is that if the engine itself is flying at very high speed then the compression across the intake itself leads to substantial increase in the stagnation pressure and temperature to the extent that would not need to have a compressor anymore because the intake or the diffuser itself is compressing the flow to such an extent that the pressures and temperatures are high enough that you can have combustion taking place at that kind of temperatures and pressures. So, once you do not have a compressor you no longer need a turbine to drive the compressor. So, once the compressor is not required you would not need a turbine as well. So, exhaust of the intake goes into the combustion chamber and from the combustion chamber the combustion products are expanded in nozzle to generate thrust. Now, the only drawback that is there for a ramjet is that this can work only if the ramjet itself is operating at a certain speed that is ramjet will start generating pressure ratios only if the ramjet is operating at a certain speed which means that ramjet engines cannot really generate any static thrust that is if a ramjet is stationary it is not going to start on its own. Ramjet has to be taken to a certain reasonably high Mach numbers or speeds before which ramjet engines can start developing or generating thrust. So, once the ramjet reaches a certain power or certain Mach number then the compression in the intake is high enough that you can have a stable combustion in the combustion chamber and so the ramjet can start operating. So, let us take a look at some of the salient features of a ramjet. Ramjet as I mentioned is one of the simplest forms of everything engines consists of a diffuser combustion chamber and nozzle only the new compressors or turbines and obviously ramjets are most efficient when they are operated at supersonic speeds and in fact the peak efficiency of a ramjet occurs around Mach number of 2 to 0.5 and again beyond that Mach number the ramjet efficiency also starts dropping. So, when we have already seen that when air is decelerated from a very high Mach number to very low subsonic Mach number this leads to a substantial increase in the pressure and temperature. Now, if you are already having such a high increase in pressure and temperature without the need of using a compressor then you do not necessarily need a compressor and therefore, no turbines and that is why ramjet is considered the simplest form of everything engine because you do not have any turbo machinery present there you do not have a compressor you do not have a turbine. So, there are no rotating components there and so since there are no rotating components in a ramjet you can actually have very high cycle temperatures in the cycle as compared to a turbojet where these temperatures are limited the turbine inlet temperatures are limited because the turbine blades which are rotating cannot withstand very high temperatures and so you have limited temperatures there. In a ramjet you do not have any such limitation there are no rotating components and so you can actually go for higher temperatures in a ramjet which in some sense means that thermodynamically ramjets may essentially have a higher efficiency because you are adding heat at a higher temperature and so that is one of the advantages that ramjets have you can actually operate it at higher temperature. So, let us take a look at a schematic of a ramjet engine and see look at what are the different components of a ramjet engine. So, ramjet engine primarily consists of as I mentioned three components the diffuser the combustion chamber and the nozzle. So, ramjet engine begins with a diffuser it requires a very efficient diffuser because it is going to operate at supersonic speeds which means that deceleration in a ramjet occurs through shock waves. So, if you look at the schematic that is shown here we have the diffuser part of it then fuel is added in the combustion chamber and then at the exit of the combustion chamber we have a nozzle. Now, I have indicated that diffusion or diffuser consists of or the compression process consists of two distinct processes the supersonic compression and the subsonic compression. So, this is a supersonic compression part of it where there could be shock waves there would be shock waves for decelerating it from supersonic speeds to subsonic speeds and at the end of the supersonic compression we have a normal shock which takes it to subsonic speeds and the subsonic flow enters the combustion chamber fuel is injected here in the combustion chamber and there are flame holders for ensuring that there is a stable flame in the combustion chamber and the combustion products are expanded in the nozzle. So, these are the different components or that constitute a ramjet and so if you look at the T s diagram of the same it is the basic Brayton cycle which we have seen process A to 2 is the isentropic compression in the intake 2 to 4 is the combustion process which is at constant pressure 4 to 7 is the isentropic expansion through the nozzle. So, this is the basic Brayton cycle that is shown there ideal cycle of the ramjet obviously is a simpler version of what we have seen for turbo jets and turbo fans and since there are no compressors and turbines the analysis is a lot simpler and so as I have already mentioned since ramjets depend upon the ram compression and the intake without the use of compressors they cannot generate any static thrust ramjets have to be taken to a reasonably high Mach number before which ramjets begin to generate thrust and so they cannot really start from 0 Mach number and start operating they have to be flown to a certain Mach number before which ramjets begin to operate. So, I will not discuss the ramjet cycle analysis in detail because it is a lot simpler and something we have already discussed for lot of other types of cycles. So, let us take a relook at what we have discussed in today's lecture we were discussing about different forms of turbo fan engines how do you carry out cycle analysis for these turbo fan engines the variations of the turbo fan engines like different spool configurations the mixed and unmixed forms of turbo fan engines we also discussed a little bit about turbo prop and turbo shaft engines and what are the different forms of the thrust in the case of turbo prop it is the nozzle thrust plus the plus the propeller thrust and so on and towards the end we also had a very quick discussion on ramjet engines and what makes ramjet engines different from other forms of engines. Now, so this completes the cycle analysis discussion which we have had over the last two lectures and in the next lecture what we shall do is to try and solve a few problems pertaining to ideal cycles of everything engines we will try and solve problems from turbo fans turbo jets and turbo prop engines and this we shall take up during our next lecture.


We all know basically what language is. It's that thing you do when you know something and someone else doesn't know something so you flap your tongue around and suddenly they know the thing. Or in the case of sign language, you wave your arms around or, for written language, you draw lines on things and I guess there's also, like, Morse code and stuff and... Okay, back up. Let's try this again. A language is a system of communication. A set of norms for turning ideas and information into symbols and different languages are different such systems. Okay, but people in England call elevators lifts, so that means they have a different system for turning information into symbols. So do they speak a different language? Well, no, of course not. The Brits might have a few different words for a few different things, but for the most part they call stuff by the same words we do, and also for the most part have the same grammar we do. Okay, but it's not just those words. They pronounce basically all of their words differently than we do. Saying bet-uh instead of better, both instead of bath, the list goes on. Yeah, but that's just minor differences in pronunciation. You still know what British people mean when they say both instead of bath. That means we're not dealing with different languages, just different accents, right? And here, we get to the rule that linguists actually use to distinguish between languages, mutual intelligibility. If two people can't talk to each other and understand each other, then there is no mutual intelligibility and they're speaking different languages. If, on the other hand, they can communicate with each other, then there is mutual intelligibility and they're speaking the same language. It's worth noting though, linguists don't really like using the term accent in this context. If two people speak differently but can still understand each other, then they pretty much always say that they speak two different dialects. This is because the term accent carries this connotation of wrong or weird or, at the very least, non-standard, which is the sort of cultural value judgment we should probably be trying to avoid. So, that pretty much covers it. Languages are defined by mutual intelligibility. Come back for my next video. Okay, it's more complicated than that, for a lot of reasons. Let's start with one of the most notable cases of confusion, the Chinese languages, where you have a whole bunch of different dialects of Chinese that are so different that speakers usually can't understand each other. This should mean that they're different languages, and most of the time that's how we talk about them. These days, people tend to talk about Mandarin Chinese versus Cantonese versus Hakka versus Wu, etc., all as different languages. And yet, all of these people still use the same Chinese characters to write with, and can therefore communicate with writing just fine. So, we find ourselves in the awkward position of saying that they speak different languages, but write in the same language. Another good example of where all of this gets much more complicated is the phenomenon of dialect continuums. Say, person A and person B speak with mutual intelligibility. Their speech is a little different, just like between the US and Britain, but for the most part they can still understand each other. Likewise, person B can understand person C, and person C can understand person D. But try to get person A and person D to talk to each other, and they have no idea what the other one is saying. Each dialect these people speak is just a little bit different from the ones on either side, so that eventually you've completely lost mutual intelligibility. By our earlier rule, person A and B speak the same language, as do B and C and C and D. And yet, at the same time, person A and D speak different languages. Unfortunately for linguists, this kind of thing happens in real life all the time. And when it does, they usually just call the whole system a dialect continuum. It most famously happens a lot in Africa, where a lot of the time each town will be able to talk to the next town over with relative ease, but the further away from your home you go, the less you can understand people. But perhaps the biggest obstacle for the use of this rule is the fact that there is no solid line between mutually intelligible and not mutually intelligible.  And even people who speak languages completely unrelated to each other might still get a little bit of information out of each other if they can pick out a few loanwords. In between, there's a huge, infinitely divisible spectrum of levels of intelligibility, where you have the difference between some romance languages, where you can understand a lot, maybe even the majority, but never everything, or the difference between English and German, where you can't understand most of it, but every now and then you might hear something like, Die Ses Buch ist gut, and get the general idea. On top of this is the fact that intelligibility isn't always symmetrical. Like how people from Denmark can understand people from Sweden way better than the reverse. A lot of things can cause this, like one language might have some sounds merged while the other has them unmerged, or one language might have more words that the two have in common and fewer of its own words. But usually the most important factor is when, for some historical reason or another, one country gets exposed to media from the other country way more than the other way around. In the end, one of the huge things that winds up playing a decisive role in whether people call two things different languages, or just different dialects of the same language, is politics. People who want to create a sense of national unity among a group of diverse people often make the case that they all speak the same language. While if you think that part of this group should be its own independent country, then you're more likely to say that they speak different languages. Hence, people in India and Pakistan will often talk about how India uses Hindi while Pakistan uses Urdu, even though speakers of the two can easily understand each other. And official documents back from Czechoslovakia used to talk about a Czechoslovak language, while these days people usually talk about a Czech language and a Slovak language. I wish there were a way for me to demonstrate partial intelligibility better. All I've really got to work with for English speakers are the difference between American English and British English, which is barely anything at all, and the difference between, like, English and German, which is enormous. Too bad there's nothing in between. Oh yeah, Scots! Like modern English, Scots is descended from Old English, which was spoken about a thousand years ago in Britain. But while English slowly changed into modern British English and England, Old English diverged and evolved into Scots in Scotland. Keep in mind that Scots is a completely different thing from Scottish Gaelic, a Celtic language spoken in Scotland before the arrival of the Anglo-Saxons, and it's also different from the Scottish dialect of modern English, which is the dominant language in Scotland today, and, like American English and British English, is descended from early modern English, although it does have a fair amount of influence from Scots. Scots, I think, is an amazing example for English speakers to learn what partial intelligibility feels like. For example, this awesome video gives a short history of Scots in Scots, and sometimes you can understand them perfectly, while other times you have no idea what he's saying. Most of the time, though, you get enough of an idea of what he's talking about to figure out the meaning of the words you don't know from context. At the same time, you get a very strong sense for how asymmetrical intelligibility can form. All I had to do was watch through this 20-minute video, and I was already picking up a lot of Scots' words without even really trying to. Lead for language, bilead for dialect, echt for eight, and I think similar might be something like sucklight. It's a really cool experience that English speakers don't get to often, and I think it's the best way to get your head around the fact that what does and doesn't count as its own language is often way fuzzier than people usually assume.


The study aimed to screen natural compounds against the BDNF variant, V66M, which affects memory, cognition, and mooned regulation, using multiple tools like Autodocvena, Biovia Discovery Studio, PyMOL, CbDoc, ImodServer, SwissADMT, and SwissPredictLigansTarget. The compounds vitamin D3, curcumin, vitamin C, and quacetin with binding energies values of 5.5, 6.1, 4.5, and 6.7 kW per mole, respectively, were selected as ligands that bind to the active sites of the BDNF variant, V66M, biohydrophobic bonds, hydrogen bonds, and electrostatic interactions. The ADMET analysis revealed that the ligands exhibited sound pharmacokinetic and toxicity profiles. An MD simulation study showed that quacetin formed a more structurally stable complex with the target protein and was determined to be a more potent BDNF variant, V66M, inhibitor. This article was authored by Isra Sakawot, Muhammad Amakan, Rehma Rehman, and others. We are article.tv, links in the description below.


Appalachian Wireless and Samsung proudly introduce Black November all month long get the Samsung Galaxy S9 for just a penny. The Galaxy S9 Plus just $99.99 and the Note 9 just $249.99. Black Friday all month long at Appalachian Wireless. Two year agreement required C store for details. Trooper responded and he did at the time when he got there the horse had been buried it had passed away and been buried. The owner had tied it up to a different pole to keep it away from his other horses because he was afraid it was going to be contagious maybe and the trooper checked all the other horses he had they all seem to be well fed and taken care of so at this point it just appears to be a sick horse that passed away.


Hey Pittsburgh, this has certainly been a trying time for all of us and I just wanted to share a message of positivity and hope during this time As I was sitting home this past week I was thinking back to the wonderful people that I've met and all the funny moments we've shared together Sometimes you get distracted and disrupted lunchboxes Sometimes you're gonna say the wrong thing and I'm here at Lucy's Riverside Cafe with Pat Mazer Morsky Morsky, let me start that one and I'm here at Scott's scuba and today we're gonna learn And sometimes you're gonna yell at your kids Leah, I need you to stand still and then I prepared But I want you to know we can overcome this together We all bring something unique and awesome to our communities, but most importantly to our families as we go through this trying time I want to encourage you to encourage others mail a card send a text or drop off something fun at their house Whatever we do, let's make this pandemic worth looking back on Let's be able to say to our grandchildren that in spite of the global shutdown and pandemic We were able to see the best in people during this time We have to do this all separated, but we still are in this together I hope you all stay safe and I look forward to seeing you again in person when this is all over


So, all right, so the talk is about bpf kernel infrastructure. So I just gave a flash talk at the Audi one for, so, so a bit about me, I'm a performance engineer at Radhat team. I basically work at the networking performance team, partly inside it's OpenShift and things like that. I've been organizing LXD, which is the next group in Delhi for a while, I think one year. They have been doing very good work, if you are in Delhi, go ahead and do those. So this talk was supposed to be exploring BPF use cases. So that means I'm going to show, I was supposed to show like what all BPF can do, but reviews and other people helped me realize that not many people understand BPF and know what it is. Can you start the timer? So I converted that talk to something introducing BPF and I wanted to go as deep as possible, so this is an in-depth introduction to BPF. I'm not going to go over a simply and things like that, but as low as system calls. I'll start with BPF, like what exactly BPF is, and then move on to BPF, why BPF came across and talk about something called XTP. If you have attended load balancing talk, I have some surprises for you, then Q&A as usual. So, how many people have heard about TCP dump or use TCP dump, can I see a raise of hands? Awesome. Everyone. What it does is it does packet filtering, and it does, it's used for network debugging. It would trace your packets that are coming into kernel, and then it would filter that and it returns back to the user space for you to see. So the original TCP dump program use something called BPF. So you have been using BPF without even knowing if you're using TCP dump. BPF is a code that runs TCP dump. It's a virtual machine that is what doing the packet filtering for TCP dump, and it uses the space. So what it is, it's a virtual machine, and it's inside the kernel. That means it's running inside the kernel. It has its own custom instruction set. It's a special purpose VM. It's not a general purpose VM. That means it cannot run an operating system. It's used for a specific purpose. That is packet filtering and aggregation. And yeah. So why was TCP dump or BPF created originally? There were many packet filters at that time. So Vanzikops, and if you're aware, is one of the people who devised the TCP consumption control algorithms, which probably saved the internet in 1980s, 90s. So the few problems they came across was all the packet filters at that time had very large overhead. That means it has to do a lot of context switches. Say if you're trying to debug a million packet filter flow, and then all the packet has to go all the way up to from kernel space to user span, and there is a lot of context switches that happen. So that is very expensive. And since it has to travel all the way up from network driver to all the way to user space application where your packet filter is residing, so that it can finally do the filtering, that's very expensive. So the two problem that it solved was BPF was in kernel. That means it's doing, there is no context switches. The context switches is minimum because the only context switches happens, it's for user space to see what's happened. That's the only context switch. And then it's doing the packet filtering at very early in the stack. So there's a lot of memory, a lot of processing has been saved. So that's how it looked like. You have a driver, you have your BPF virtual machine which have its filter and it's inside the kernel. But it was made for a specific use case. It follows the UNIX philosophy. The problem was that you have your user space application that is a TCP dump and you write some program in TCP dump and you are putting that program inside the kernel and it's running inside the kernel. So you're interacting with the kernel without having to reboot it. But you are limited to what TCP dump provides. So whatever syntax TCP dump provide, you have to make do with it. And the instruction set was very limited. Also, the problem was there was no other API to interact with it. Once the program was in, you cannot do much with it, apart from loading the program with TCP dump. But apart from that, you cannot interact with the program. So with these problems, what was created was eBPF, which is Extent Berkeley Packet Filter. People at Plum Grade, they were working on an SDN product. They wanted the ability to interact with the packets and things like that. So they enhanced Berkeley Packet Filter to some features. They added some features. So TCP dump was created, I think, the paper was back in 1992, which was the time for 32-bit registers and all that. That was a huge time for 32-bit. Now it's 64-bit, so they moved to 64-bit and they add a couple of registers. So 10 number registers, what they wanted was they wanted to cover one-to-one mapping with x86 instruction set. So it was inspired from that, so you can have one-to-one mapping with that. And just support what I added so that your eBPF code or whatever that is running inside the kernel can directly convert it to whatever architecture that you have, say x86, pp64, whatever. And one major thing was a BPF call was added, syscall was added. That means you have a way now to interact with the program that you have loaded. So when people say eBPF or BPF, they basically mean eBPF. The original BPF that was used in TCP dump is now in newer kernel, it's converted back to eBPF. So there is no original BPF. Whatever you see is eBPF in your newer kernels. So when people say BPF, it means eBPF. Or explicitly mentioned, they have to say classic BPF or CBPF for the original BPF. All right, so because of the features of registers, adding registers and 64-bit register support, a lot more use cases kept up. So networking features was the original intention. And then tracing came up, then Seccom came up, and there are people doing a lot of hacking together and bringing up a lot of more use cases. One of my favorite one, if you attended the load balancing talk, Sree Agarwal mentioned that he was trying to do. He mentioned that there was no well-known kernel space program to do your load balancing. So what Facebook is doing is Facebook is using something called XTP for deploying load balancer. It acts as a one-legged load balancer. What it means is that usual cases load balancer require entire server for doing their work. But in this case, the load balancing program has so less overhead that it's entirely doing everything in kernel. So the server itself can be the useful load balancing itself. So Facebook has already deployed it on their data centers and are seeing significant improvement performance. Cloudflare is also using in Forty-Dos production and another favorite is Celium. I came to know that this solution was using Celium for the Kubernetes purposes. All right, so let's take a look at how it works. I might be going a bit fast from now. So how the general architecture looks like, I will explain each of the components. So you have a user space program that you will write in the user space, like Python, C or whatever. And then it will be compiled to eBPF bytecode using LLVM. So LLVM has its support. And then you will use the BPF system call that I just mentioned to load the program. And then you have a verifier. So running inside a kernel is not considered safe. It's a very error-prone situation. So you have something called a verifier that makes sure that your program is safe, I'll talk about it. And then you have a virtual machine, and then how it works is it has a couple of hooks. So how hooks into the subsystem, kernel networking subsystem. Not networking, but subsystem, kernel, subsystem. So let's say you have your kernel code and if that code is traversed, you will have your BPF program executed at that time. And that BPF program will be run inside the virtual machine. And then whatever you want to do, it will do that. And then if you want to interact with the user space and the kernel space, you have something called eBPF maps. Maps is data structures, I'll talk about it also. Which lets you interact with the user space and the kernel space in having a user space program and let's you interact with the kernel space. So it's a two-way communication. So the BPF system call looks something like this. It lets you have the ability to load the program and create maps, which are data structures. And it will take attributes for what the program types are and what the map types are, since it's a data structure size and all that stuff. So maps are basically data structures, again, it's a key value pair. So it will have hash types, per-CPU arrays, per-F arrays, lots of things, histograms, lots of things. So it returns a file descriptor back to the program in the user space program. So you can use that file descriptor to interact with the kernel, kernel space program that you have just loaded. And it provides some kernel, in kernel helper function. These functions are implemented in kernel, I'll talk about it also. One thing is that you can have multiple maps for each program and each program can access multiple maps. All right, so map types are just mentioned. You have hash, arrays, perf event array, things like that, stack. So you access your map with proper functions, since it's very hard to do directly with the BPF. These are just helper functions to create the map. Internally, it compiles down to the BPF sys call that I've just shown. And the attribute that it takes are like map type, key size and all that stuff, which will be supplied to the BPF system call. All right, and then you have your helper function to do operations on the map. So this is a user space program, and the map is residing in the kernel. And you are accessing the map from a user space program. All right, so the helper functions are there to ease out the task that can be considered hard with the BPF. So you don't want to do a lot of assembly code or the instruction that the BPF VM has, you don't want to do that. So that's why it's a bit hard and people have implemented a lot of internal helper functions. Also, as mentioned, there are a couple of program types. So each program with specific use cases such as XTPs is one use cases, C group, SOC is another use case. Each will have their hook into some subsystem, which they want to connect to. And whenever that hook, whenever that code travels, the BPF program is run and it's running inside the VM. So the program types are socket filter, you also get to interact with the traffic classifier, both event, yeah. Loading the program, you again have a wrapper function. So there is a library called libBPF inside the kernel, which provides this wrapper functions to ease out the task. The struct looks like this, you have an instruction count. So there is a limitation with BPF on the amount of instruction that you can run, which is I think 4K bytes, 4K instructions. But with pseudo program or root access you can do as much as 1 million instructions. You need to write this program in GPL licenses. And you need to specify the kernel version so that you can use what features are available with the kernel. So it's running inside the kernel. So will you consider it safe? I don't think so. It's running inside a VM, still no. So that's where Verifier comes in. It ensures that there is a memory safety and the program is terminated safely. There are a couple of stages of EPPF Verifier. So the first stage is it does DAG check, which means that it checks for the control flow and ensures that there are no loops, the program terminates definitely. And it checks for the next stages for checking registers and stack changes. It's what it tried to do that it will simulate the entire execution. And it will try to see if the program is trying to do maybe unreachable instruction or trying to read from an uninitialized register or insecure mode. If it's trying to do some point arithmetic and memory access, out of bound memory access it will check. So it will complain all the time. It's a very complaining thing. So you need to ensure that if you're writing a BBF program, you need to ensure that you do your checks correctly on your user space program itself, check all the register and check all the return value that it's doing. So I hope the architecture is clear now. So how will you use a BBPF? I mentioned a lot of assembly and instruction and all that stuff, see. It seems to be very complex. So first thing you need to ensure that you need to have your updated kernel version, get the latest one and enable the kernel configs as present here. Why I need to, why you guys need to have updated kernel version? Because the features are added in stages. People are coming up with more features day by day, because it's an active area of development. The original classic BBF looks something like this.  And the program would look something like this. This is a C program like fragment. And then you will load the program with the S or attach filter. And yeah, it will load the program.  But you don't want to, it doesn't make sense for anyone to write this. So you have your eBPF instructions. Again, you don't want to write this. So LLVM added support for BPF. So there is a eBPF compiler in the back end for LLVM. You are able to write a subset of C. You can write C program to load the program. So what this program is doing is exactly the same as this one. It's doing a lookup. And you have even more tools to ease out the development. There are BCC tools. BCC tools are libraries that allow you to write your program much more easily than writing assembly instructions or things like that. So BPC program looks something like this. You have some inline code for running your application, which will do the tracing or in case of networking, you can do that. And for processing your data, you can use Python or Go or pretty much, I think Rust, do lots of languages right now supporting. The map creation is much more simpler here. You just tell what maps you need and you will get that. And you do the formatting afterwards. So the tool set with BCC are increasing day by day. I can show some examples for this. Let's say you want to do a virtual file system. What you can do is you can see what all the virtual file system are doing read operations. So it's a tracing example. So it would trace the VFS read function call. It's tracing, it would take some time. So I can stop whenever I want. So if you're running some application and you want to check whether at this particular time, what's the VFS read doing? How many time it taking? So you can run that specific interval and specify your control C. I can hit control C at any time and end the program. So in this case, you can see there is a histogram. So it enables you to find where the outliers are, meaning that if some application is taking a lot of time, in this case, there is one function call that is taking like four microseconds to eight microseconds. And rest of the applications are working perfectly. It's 65 major one. So you can do that. So another networking example I can give is a TCP drop. So the thing is that many people can write their program on their own. So all these programs are, I think, close to 200 to 300 lines of code and most of it is like command line processing because it's a command line application. You have your passing, argument processing and things like that. So your logic is very less and you can write, you know, replacement for strays and all the frays and all that things. Due to the limitation, I'm not talking about those tools as of now. So TCP drop is not mentioned here because people are developing tools every day. The future for TCP drop is that it tracks something, it tracks a function called TCP-drop. It was added in Linux 4.8 recently. So that means if you find a function that you want to trace, you can do that easily. So it will do some network stack tracing and the good thing about BPF is that you can access the kernel data structures as it is. So in this case, you have a socket state, but now it's close. So even if you don't understand this, if your application are receiving some drops and you can at least try to see what has led to these drops. For example, in this case, this layer three is working fine. We have something in layer four and the drop is happening at this stage because this is a function that called TCP drop and then you can slowly trace back to where exactly the problem occurred. So this is a very good tracing tool that people just write whenever use case are coming up. All right. So even more easier way to write BPF program is via BPF trace. BPF trace is a high level DSL. That means like my SQL you have from star select statement, BPF trace also helps you with writing E, help you with easing your ability to write BPF program. So in this case, you have your one-liners and you can in this case, you're trying to trace the enter system call and trying to count how many has happened. You can even write in the scripting manner so that you can do much more formatting for the user. And if you're aware of system tab, it's supposed to be a very widely used tool for call tracing and debugging. But it supposedly crashes a lot of your kernel. You cannot use this on production. It's very dangerous, you can say. So with the version 3.2 release, system tab now supports BPF internally. So whatever system tab instruction is created, it will now run inside a virtual machine. So it's much more safer. All right, so the next segment is XTP. I'll just mention that I'll be working, I was working with XTP at Red Hat for a while and we were able to do a couple of tests and I'll show just now. So a brief is that XTP is a hook of BPF. So that means it's a BPF program which the hook, where the hook exists, it's very early in the network stack. So it's straight out of the driver. That means when the driver receives the packets, the XTP program kicks in. So what it allows is it allows you to do very fast packet processing. So in the load balancing talk you, if you are able to use XTP for your load balancing purposes as I talked about that Facebook is using, you can get much more than 80K TPS without having to crash your systems. So how it works is you have your general packet processing at layer four which is the IP tables, layer three, which is the IP tables. So if let's say you have a packet which is supposed to be dropped. So it doesn't have to travel all the way up to layer three like creating a SK buff, you have extra memory, you have extra processing that needs to be done. If we can drop the packet simply right here in the XTP hook, we can directly drop that program. So it would save a lot of memory and a lot of processing. That's the idea of XTP. All right, so the good thing about XTP is it doesn't bypass the network stack, meaning that you have whatever the kernel stack security with you and the packet that, if you don't know what to do with the packet, it would just return the packet back to the kernel. It doesn't take over the whole NIC. You can design the XTP program as per queue also. There is development happening. So what it means is that you can still use the NIC. So other fast to data path programs basically take over the NIC and you cannot use it. Maybe it's not even shown in the network kernel statistics also. But in this case, with XTP, you don't have that. It's part of the kernel tree. That means there will be more support with vendors. Netronome already supports offloading, BLNXT, lots of network vendors, also already supporting many features, even when it was just starting to grow. And you have a couple of actions. So as to mimic IP tables filtering capability, IP tables also have accept and things like that. You have something called drop. So if packet is not supposed to be on a system, you will just drop it. It's supposed to be transmitted. It will just transmit out the same way it came across. It needs to be directed. It can be directed from one interface to another interface and you don't know what to do, you just abort it or pass it to the kernel stack to do the processing. All right, you have two way to load the program. As mentioned, you have a user space program to interact with the kernel space program, which is the EPPF program that is running inside the VM. And you have another IP Route 2 program that can help you to load the program also. All right, so XTP in real life, we were able to test out some scenario and trying to, at performance team, we were trying to test out its limit. This is very initial test. So numbers can vary a lot in the latest stage because XTP is an activity of development. So DDoS, we were able to test a certain DDoS scenario. So we were able to compare it with IP tables, which is the existing network filter. IP tables is actually using the net filter back in because it's the latest kernel. By default, it's using the net filter back in, which is also an implementation. The system we had was on Unix with 40 gigs capability. The kernel was 4.18. So our test setup looks something like this. We have two system connected back to back. They are connected via wires. We have two flows that are bi-direction. That means both the interfaces are sending traffic. What you have is you have your TCP flow, that is 90% of the stream, and you have your UDP flow. What we are doing on the device under test is we have a network filter. One time, we will load the XTP program, and then at the other time, we will load the IP tables program and do the filtering. We will simply drop the IP tables TCP protocol packets and pass UDP packets. And at the traffic generator side, we will measure that how many packets of UDP have we got. So we have certain criteria for the test to pass. We have mentioned that only 0.002% of drop UDP packets have been dropped and TCP packets are received on the interface. So one by one, we load the program and these are the results for single queue. So what that means is single queue means whatever packets you receive will be processed by only single CPU. So with IP tables, we have raw mode, which is the fastest one, which kicks in very early. So with IP tables raw mode, we were able to see close to two million packets per second. This is million packets per second. And with XTP, we are able to see five out six, so which is a great game when we try to test out the DDoS scenario. And if you want to see scalability, IP tables does perform a lot, but XTP because of the simple idea of processing your packets very early in the network stack, it is very fast. With offloading support, it's breaking barriers way high with smartNICs coming up with Netronome and all that windows. So one interesting thing is that there is a BPF filter branch in the kernel Git tree. So the work that is happening there is IP tables is supposed to be replaced. So the newer implementation is net filter that is I think 2016 if I'm not wrong, but still people are still using IP tables and Kubernetes has like a lot of problem with IP tables and you have like 100,000 rules of IP tables. So with the BPF, it's trying to solve that problem, but you have that with IP tables rule will now be converted into BPF rules internally. So there will be no net filter. So imagine if it's added support for XTP. So XTP, as we've seen, the results are just staggering. So with this, we can see that IP tables will have a lot of performance gain in the future. Offloading support is there. You can check out this Netronome blog. They did a few tests with the offloading and yeah. So BPF is exciting, the future is exciting. Many people have been using it apart from networking and tracing use cases such as this research paper presented at a little scorn. If you're aware of fuse file system, SRSF, things like that. So these programs are user space file system. So that means it has a lot of overhead of conduct switches. So somebody tried to do a research with the BPF. They, what they did was why don't we do the operation in the kernel only with the BPF. So they were able to see a lot of performance gain because of conduct switches. And then you can use BPF in Android since Android has a Linux kernel, but it's not safe to directly do changes in it. So what people are doing it, you can extend the kernel features with the BPF and do whatever you want to do. It's free to do. So I'm reaching the end of my talk, way ahead of time.  There are a lot of tools. So you can even trace your user space program. If you're aware of K-Probes, URED Probes, USDT, all of these programs can be used. These are all existing kernel infrastructure. There is minimal reinventing the wheel. People are using the existing in the kernel infrastructure to do their tracing and other things. With XTP, you can write your programs and you can play with it if you want. So a couple of resources to take a look. If you search for BPF on the internet, you will get a lot of resources, but this compilation have many presentation talks, documentation, blogs, a lot of things. So you can take a look at this also. All right, thanks so much. Do we have questions? If anybody has questions, they can raise their hands and ask questions. Okay, we have one, wait, let me come. I see that you did benchmarking with the IP tables. Have you considered benchmarking with NF tables, which I believe is a lot more performant given the fact that it has data structures like sets and stuff, isn't it? So this is 4.18, right? So as I mentioned, it's using net filters as a backend. NF tables, yeah. Oh, so it's using NF tables, not IP tables. So basically you have a parameter to change whether you want NF table backend or IP tables backend. So with the newer kernels, by default, NF tables. So this is an incremental implementation that you're talking about. I mentioned that. And second question I had was, what is IP tables and IP tables raw in one of the slides? So, all right, so what you have is, with IP tables, you have five tables, raw, filter, mangle, all that. So one of the table is raw. So the raw mode actually kicks in very early. It doesn't, it comes in very early than connection tracking, not bridge checking, but yeah, it comes in very early. So if you have to do the drop, it can be done very early. So I just wanted to give a, because XDP hasn't, anyway I have an edge because it's running very early. So that's why I was trying to do with raw modes. But the, yeah. General mode, which is a filter mode, is the one with 1.33 million brackets per second. Cool?


we shall see this will be kind of a little surprise. Hey guys, so as I was trying to clean up my puzzle room I realized that not only do I have like a pile of empty boxes sat in a corner but near that pile I have developed quite another pile of actual puzzles here. Now hit that like button if you're like me and you tend to get piles of empty boxes or you know puzzle boxes stacking up in random places throughout the house. I've been so busy recently that I haven't just had the time to break down these boxes and and get rid of them. But anyways I'm going to be taking care of that today. So I figured you know what why not you know take it out of that corner and share them with you. So the first one that I want to share with you guys is a package that I received for another collaboration and this company is called Playview Brands Puzzles and they've been around for over 20 years and represent a line of different puzzle brands. They also carry enigma art puzzles and key puzzles. Key, kite, I hope I said that right I most likely got that wrong. But anyway let's open up this box very carefully without you know slicing my hand open and let's see I don't actually remember which ones I requested but we shall see this will be kind of a little surprise. All right oh oh this is cute. So we have a small one here actually we have two small 100 piece count puzzles and the first one here is called I don't actually think it has a name but the artist looks to be Karen Burke. This is 100 pieces and this is one of their 10 minute puzzles and this image is really cute look you got little chicks try to learn how to swim that's probably the concerned mother hen you know hoping nothing happens to her babies this is super cute and then we have another 10 minute puzzle here and this one is actually Playview branded that's interesting now this puzzle doesn't have a name to it but I already know what this is this one's called Mandy and her coffee and look there's my cat right there too you know that's me actually there must be something wrong with me here I don't wear earrings that big there must be something in that coffee I don't know that coffee's making me do strange things but anyways this is going to be some real quick good fun I'm really excited to try these and see what the quality is like the next puzzle that we have here is called Ben's Confectionary the artist is Rosalind Solomon it is 550 pieces and it is 24 by 18 inches when it's completed now from what I see here there's also a poster included in this box so that's great and you know I'm crazy about this image I mean look at us we're we're we're out of bakery there I am with my daughter you know picking some pastries and stuff they have some good-looking food in these cases I came to the right place I can imagine it's probably a bit loud in here too because of all the children but you know that's okay I won't be here for long actually is that a girl or is that a doll she looks a little strange she don't she don't look all right anyways this image looks like it's going to be so much fun to put together and I'm really excited to try this new brand as well I haven't gotten puzzles from different brands in a while so this is exciting and oh this is nice the next one we have here is called Midnight in San Francisco it's 1000 pieces and it is 27 inches by 20 inches when it's completed and this is also from key puzzles kite puzzles now I absolutely love the colors in this image for one I've never been to San Francisco so this is definitely a you know a go to vacation for me I don't know it might not look this colorful and fun in real life but you know who knows this would definitely get me excited to go there it's hard for me to decide which house I would pick to buy here it would probably be the yellow one in the middle here because you know there's a nice pie on the window I do love to bake but who knows I could live in each of these houses they're all beautiful I love the artwork here this is so adorable and then the last one from this company is called Amalfi Sunset it is 300 pieces and it's 21 by 21 inches when it's completed and the artist is Reed James and again we have a beautiful image here I don't think there's anything more beautiful than a sunset and this town looks beautiful I'm just visiting but again the use of colors the artwork this is beautiful so this is exciting I'm really looking forward to trying all these puzzle sets and seeing what I think about them now the next puzzle that I have here I actually picked up from Walmart recently and this is too exciting even though it's like from Seco which is you know not the greatest brand but still it's the image it's the image that did it for me this one is called Disney 100th celebration it is 1000 pieces and it is from Thomas Kincaid Studios Disney 100 collection and it's 26.6 by 19 inches when it's completed now again do I really have to explain why I bought this even though it is a Seco I mean come on for one Disney is celebrating their 100th anniversary why would I pass up an image like this especially since it's one of Thomas Kincaid Studios newest images I'd love to be celebrating with them this is a huge party we got Mickey Minnie we have all the friends here we even got Clara Bell in the background I'm so in love with this image but I do know just by looking at it that this is probably gonna be quite difficult for me to complete because for some reason I struggle with putting together Thomas Kincaid images but you know what once they're all done they're so worth it and they're so beautiful the next puzzle that I have here is also a Seco puzzle but this one was sent to me by Kathy and this one is called Mickey and Minnie in Hawaii it is 750 pieces and for some reason I can't seem to find the dimensions on the box but anyways as I said this is from Seco and it is from Disney's Thomas Kincaid Studios and you know that I seriously want to be in this image here because for one the beach looks amazing we got Mickey Minnie and friends here we're just gonna have an awesome time at the beach I seriously need to go to Hawaii one of my bucket list items is to go stay at the Alani resort which is Disney's resort in Hawaii but yeah that'll probably never happen and then the next two puzzle sets that I have here were both sent to me by Christy and this one is called Morning Brew a Coffee World Tour the artist is Cynthia Cliff it is 500 pieces and it's 24 by 18 inches when it's completed and this is by the True South Puzzle Company now this is great because not only have I you know never tried a puzzle from this brand but I've actually never heard of it so you know this is gonna be really interesting but I already absolutely love this image because you know me and coffee I go to bed at night thinking about my morning coffee and breakfast too I look forward to that stuff but we have a lovely collage here coffee cups from all over the world look we even got some bacon slices I mean yeah of course it's probably gonna make me very hungry when I put it together but you know what this is really cool and then the other set that Christy sent me was another I've tried the brand before but I've never tried this particular collection so this is gonna be really interesting and this one is called I don't actually know what this one's called I don't see a name but anyways it is 500 pieces and I don't know what the dimensions are but that's okay what I do know and what is very interesting about this is this is from Buffalo Games Blank Collection and some of you have actually mentioned this collection to me so I'm really looking forward to checking out the quality and you know having the whole puzzling experience with that and I love this image because we just have a whole bunch of ingredients here so you know we're gonna be making something good out of this I'm really hungry now but anyways thank you Christy and thank you Kathy for these puzzle sets I've you know been on a bit of a a break for the last few weeks so I haven't really gotten down to working on another puzzle since the haunted mansion so I'm really excited to finally you know get started on something new and more colorful and you know hopefully I can do that as soon as I get my room cleans up now that I've opened up this this box I can get rid of this now and you know put this in my to-do pile so be on the lookout for those videos coming out very soon the next challenge that I have is making some more space on my shelf to fit in these new sets which is fun I do love organizing my puzzle shelves so here's to hoping that I do it nice enough so that it looks good and organized but anyways guys let me know down below if you've tried any of these puzzle brands or collections and let me know what you think to them and if you're looking for a place to share your own puzzle halls with other puzzlers and myself I do have a puzzling community that you can join and I'm going to leave a link to that video down below if you're interested and be sure you're subscribed if you want to see me put these puzzles together and hear what I have to say about them anyways guys I hope you're all doing well and that you're enjoying the beautiful fall season special thank you to Christy and Kathy again and to every single one of you for all your support and I will see you in the next one