Tekken 8 is the most addictive fighting game I have ever played, which is exactly why even though I completed my original goal, I still have to keep going. So now that I'm back to Leo, the first order of business is one, I have to learn the character, but two, to catch back up and rank to King. And these videos are gonna stop until I hit blue rank, at least. I can't believe I'm all the way back in the green ranks, bro. I gotta get my Tekken power up. Bro, just when I hit red ranks, I put down the, oh, it's a promo match! I'm starting things off with a promotion match! Nice leather jacket, though. Chad, how do you start with Leo? I'm just gonna... Oh, let's go. So Leo has this amazing poke, sidestep one plus two. I'm gonna be trying to do that a lot. If you see the armor move come out after a sidestep, it's because I messed up the input. Okay, I'll respect you. Let me see something. Oh, I could have punished it. Oh, come on! Oh, I dropped the combo.  There we go. Look at the range on that poke! Oh, that was beautiful. We're playing Tekken, baby. We're playing Tekken. I just need a hop kick. I need a hop kick to complete the Tekken formula. Hop kick! Here we go! Hop kick! Who ordered the hop kick? Was it you? Was it you, Brian? I got a hop kick right here. Straight off the presses. Hop kick round start. So nice I had to get it twice. Oh God, I couldn't get the dash and do it again. I could have done so much more. Oh, it's just a field day. Oh, it's just a field day. I'm just having a spicy day out here. A nice spicy hop kick coming your way. Oh, let me play a little bit of Leo again. Oh, yeah, I definitely deserve that. Oh, let's go.  Check the long counter hit. No, I'll get it.   Crouch. Come here. Okay. What was that wishful thinking? How negative is that move chat? Can I get it? Oh, armor move. That time I did it on purpose. Oh my goodness. Oh my good. I'm just checking. I'm just checking. Oh, I could get in the states. Oh. Never mind. Leo is so fun, dude. Leo feels like just the most welcoming character of all time. Now I am getting hit with a rage art, charring on. Yeah, that's fine. I don't want to end this. Side step one, two. Side step one, two. Oh, neutral spacing. Neutral spacing. Give me the promo. Hello, yellow ranks. Can I see red ranks today? Can I see red ranks? That's all I want to do. Isn't it because Leo is a pretty boy? I choose to believe that Leo is just the, you know, Leo is just a pretty boy. That's my personal interpretation. Oh, that was, that was supposed to be the, let me check them lows. Counter hit. Okay. I could have done so much more if I was good at Leo. If I was good at Leo, I could have done so much more. Is that negative? How negative is that? You got it. Oh, you got to take the punishment. Actually don't know what Leo side step moves are, if I'm being honest. Oh my goodness. If I could react to a low, I would never be hitting this game. If I actually had a good reaction time, I might be up there with the Tekken goats. Give me a grab. Give me a grab. I'm done playing the game. Okay. All right. I didn't need to grab. I didn't need to grab. To be honest, I'm playing Tekken 7 Leo. I have no idea what the, what the heat engagers are or anything like that. But you know, Tekken 7 Leo is going to get me pretty far today. I'm hoping. Let me see if I can't get a big launcher. Big time is what I would say if I could make the most of it. All right. Oh, you can't. Oh, hold on. Let me just get a few loops in here. Oh, dude. Oh, you got to watch the, you got to watch everything out here. It's the Mead streets. Leo is just the overwatch of the Mead streets. You can't play the game. Hop kick. Here we go. Okay. Launcher. I'm going for the long run again. We're going on a walk. Oh, me and you are going for a walk. Nevermind. Walk ended. Oh. All right. You can do what you got to do. I'm also going to use the heat mode. Again, I'm on Tekken 7. So I'm not using any heat engager. Bro, I don't even know what's happening. What can I do after heat? Maybe a little bit of, nope. I don't even know. I'm just making sound. Heat move. That's what I can do after heat. A heat move. I'm out of here. Cartwheel. Grapple gun. Nevermind. I thought you used the grapple gun in the outcher. Or heat. You know what? I'm just going to go back and forth. I'm going to go back and forth all day. Tell me my boy don't got the saw. A motorcycle. Oh, he's got a shotgun too. Hold on. I got to watch out. Neutral. All right. Okay. Oh my God. Why'd you do that? So you're going to throw some lows at me. What are you doing if I just launch you? All right. I probably shouldn't have done that. That's fair. No, I want it to go into stance. Oh, check them legs. You actually block low. Then what are you going to do if I just, what are you going to do if I get crazy with it? I knew you were a low blocker, bro, but what are you going to do if I get, oh, you're not blocking low no more. Oh, you're not blocking low no more. You're afraid. I can sense the fear. Don't challenge me to a staring contest into the void.  All right. Oh, I've never even, I've never even seen that cake. Yeah. I shouldn't have done that. All right. Are we going to see another low? Oh, I wanted to go on a walk. I just wanted to take him for a walk. I'm a duck. Oh, yes. I'll take the duck. Oh, almost all the way to the wall. I got so much more to learn. I dude, Leo can just run people over for real low. No low. Okay. I got to stop crouching. I'm going to crouch. Oh, the crouch would have been so. I got to stop crouching. Crouch. Oh, oh. A little bit of armor goes a long way. Oh, God. Why am I kicking out here? Low. You got to watch. Oh, but you can't go low every time. You can't go low every time.  Random heat attack. All right. Well, I regret it. Oh, God. Damn it. Okay. I'll take it. Give me a grab. Give me a grab. I need to run up and grab just to, you know, set the pace a little bit.  Oh, God. Why did I get off me? Oh, my God. It does so much damage to the rage. It's safe. It's too good. Give me the points. I told you, we're going all the way to red rank. This is going to be an easier journey than King. Don't ask me why. Oh, God. What a whiff. I've never seen a whiff like that. All right. I got to stop trying that. Dude. I'm so bad at that input. I need to make like a one plus two macro. What are you doing over there? Oh, you crouched it. I've never seen it. All right. Come on. We're going for a walk. I missed. Dude. Leo just has all the quick buttons. When I play Leo. I feel in control. Don't ignore this loss. Ignore this loss. But when I play Leo, I'm in control. Give me a grab. Oh, I don't even know how that hit. It looked like he crouched it. Poke. All right.  Hold the phone. Hold the phone. Oh. Oh, yeah. We're going on a walk. We're going on a walk. Oh, yeah. We're going on a walk. We're going on a walk. Oh, yeah. Oh, welcome to the real world. Oh, you blocked it. I need something negative. How negative is that? Not, not too safe. Heat attack. Hold back though. That was risky. I'm going to do it again. Sometimes you've got to let it fly. Sometimes you've got to let it fly. Mid kick. Oh, yeah. Oh, we're going on another walk. Oh, we're going to. Oh, yeah. Ouch. Oh, I thought I had to read. Armor. Keep in the corner. Low. You got a block low. Oh, God. Oh, God.  Block low. I thought, I thought in the clutch, they want to get a low. I, that was my mistake. That was my mistake. Hop kick random. Dude. All right.  So you're kind of just God like at the game sometimes. All right. Well, this is really bad. Oh, no. This is, we're going to get to, we're going to get to turbo bad territory. There goes the win streak. That was, that was turbo bad, but you know what? We're still making good progress. The death of win streak. We just got a week. We got to let it up. We can still go positive. We're not going to win every game chat. Mom said I'm turbo bad. Oh, no. Oh, yeah. Dude. I just want to get that three. Oh, yeah. Oh, no. Oh, yes. Again. Dude, I love when that hits. Give me that love. Perfect. How many golden letters are on screen? Even I need a one plus two macro. I'm trash. I'm actually trashed the game. Give me that. Where's my, no, my stance. Oh, he just bodied me. Okay. All right. All right. You got that. All right. I wasn't blocking all of that. Oh, how did I not reach? Oh, and I was just, I was impatient. Oh, give me this. All right. I'm going to heat. Okay. I wasted it, but, you know, I was afraid. Oh, no. Went to block low.   I got, I need him sweating. Oh, there we go. You know what? I only lost that last round because I want every round to be a perfect for me. You know what? That challenge, that challenge was lame anyway. I'm not, I'm not doing that challenge no more. Oh, that was just nasty spacing. That was just nasty spacing. I'm going to be honest. I got it. I got it to my own horror on that one. Oh, I could have done so much more armor up.  Heat attack just to keep the spacing up. Yeah.   I just wanted, I shouldn't, I knew I was going to mess it up. I shouldn't have tried it, but in the spirit of practice, I had to go for it. I wanted the perfect anyway, if I'm being honest. Oh, damn. Well, now I truly have nothing. Wow. Now I have really nothing. Well, things are getting a tad bit scary for me. Had bit scary. We got to lock in. Oh, that's a combo starter. Oh my God. It's looking over and it is over. Damn. Ah, the throws. That was a lot of ranked points too. Oh, the sale job. That was, that was a pretty huge sales job. All right. We're in a mirror match. So the very least I can do is maybe, you know, maybe we could steal some tech. Oh my God.  Anybody else not a fan of this character dude? Like what? Okay. So you can dash after that. Oh, I'm launched. I'm cooked. I'm cooked. Wait, maybe I'm not. I still, I still want to practice going for that combo. Even if I do drop that dash a lot. All right. So it's just a matter of practice makes perfect. Even when could I have won that round if I kept things simple? Maybe. Oh, wow. Oh, huge. Oh, huge. Counter hit at every day. I'm an armor up here. Oh, so you're using the cheap low. Who would ever, who honestly uses that move dude? Like low. God damn, Leo has some cheap fast lows. Leo, Leo smokes me.  I'm not alive. Okay. Oh, huge. Oh, I wanted the big launcher the big time. Whoa. Whoa. Let's chill with that. Nice big time. Run up grab. Thank you. Boom, boom, bam. Little three Ps for you. Oh, you wanted a drink. Hold on. My bad. I didn't know you needed a drink. All right. No, that's it. All right. Nice heat attack. They make it for men. I'm blocking. I'm blocking. Can I punish with that? I mean, I can just do two, but I wanted to try the launcher. Final round. Yes, sir. Yes, sir. Oh, I messed up a little bit of armor, but we should be fine because I'm going to armor up right now. Oh yeah. Oh yeah. Come here. Big mistake. All right. You got a low? I didn't know. I didn't know we had lows like that. Get them off me. Oh, the poke was nice though. I don't want to risk it again. I'll just take a grab. Thank you. I'll take the points. Thank you. I'll take the points. No selling this time. Up in a lag. I think. I think this match may be getting canceled. All right. Well, I'll do the next one. All right. I want to just to check if this improves my accuracy. Oh yeah. Oh yeah. Oh my God. Chad, did you know you can cheat in this game legally? Look at me cheating. So when I don't have that button, my inputs aren't cleaning. I mean, I could just, I could just be better at the game. I'm not going to lie. But sometimes I'll be getting this armor move. Look at the range on this chat. I don't know where the actual range is. So this is going to be embarrassing.  Look at this range. Oh wait. We're going to get the special intro. Coffee queen. Block that. Oh yeah. We're just in the best connection I've ever seen. Oh yeah. The best connection I've ever seen personally. It's actually not that bad. Big launcher. I don't know why. We were both playing neutral there. And I was just the first guy that said, hey, what if I was stupid? What if, what if I did something dumb? Give me the grab. Oh, so you kind of know the game. Wow. That was just lucky. I even blocked the low. Oh, and I just didn't get up because I thought it was safer on the ground. Okay. Okay. Okay. We're doing fine. Oh my God. Yes. That was sick. Didn't do much with it, but that's just me. Okay. We're going on a walk. Can't ever get that dash for some reason, man.   Can I please just, my God, I'm just the, I'm the world's worst like player when it comes to adapting to my surroundings. Oh yes. I love having that macro. Oh my God. That macro, never use that move. That macro is terrible. Damn. All right. Tough. Oh yeah. Give me that. Oh, at that time I got the dash and I just didn't play the game. Still taking it though. Oh, you block low. Wait, you're so low. I should have just went for the, I should have just went for the neutral. Let me out. Let me out. No way that combos. Nope. Nope. That was made up. That's made up. No coffees doing that. No coffees doing that. Tsunade. Tsunade type beat. Anyway, I can, I can win two rounds. I can win two rounds. All right. We got a whole advertisement. How much do I have to pay for tech and where I don't have the advertisement? Let's go. Let's go. Oh, you're supposed to dash after that. That's two drops by the way. So you're playing with like, I don't know, like double the health you should have. I love that macro. Oh, stay down, stay down. Well, now I'm really fighting for my life out here. Reach far as hell. All right. All right. Sloppy game, sloppy game. I still think we've got some, we can win two, two games here. No shot. We don't win this set. Right. I mean, the wind pose does look pretty good with the hat. I'm not going to lie. I went crazy. Rage is nuts. That rage is nuts. Okay. All right. All right. What are we doing here? Oh, damn. Oh, I could have blocked that. All right. I'll take the free love. I'll take the free love. I'm struggling with putting this game away or ever getting like a solid lead to begin with. Oh, I could have been huge. All right. Well, that's just, I hate, I hate when I get a lot of David off that because that's literally nothing. Lowl pair. Okay.  You do be known the game. Damn. That move is so good. That move is so good. I'll take it. Let's go. I don't want to, I don't want to take any. Oh my goodness. Don't be tested with that. Let's go. Big time. Small time. Let's go. All right. All right. Come on. No way. Can I get a free love? My life. I'm alive. That's all I care about. I'm blocking that. Okay. I missed. I missed. I missed. That was fine. That was fine. A little miss, you know, that's just going to bring us to two.  Will you perform? That's what I got to know. Well, I really got to stop doing that. All right. You know, when it works, it just feels so good. But sometimes it doesn't work. There's no way you're always low parrying that now. You just know I'm going to go for that every time. And this is, this is what you get for that. Oh, I just have to block that.  I wouldn't. No shot. That was so fast. So insanely fast. Oh, another loss.  That's that. Damn.  I've never seen. That's the, that's the craziest part of Tekken, bro. I've played against like a hundred thousand victors. Never once seen that move.   You only go low. I understand that. That's my bad. I understand. Hop. Okay. All right. I was trying to, I was trying to cheese out a hop kick. Hold on. Let me stop. Now, should I block low knowing what I know? Probably. Why does that last problem? You went low again. Is that your, is Victor's low? He go only go low. I'll take that. All right. Well now I'm going low. Yes. Okay. Oh, I gotta, I gotta start blocking. Gotta start blocking. He, he stays, he stays perma crouched. Oh, damn. No way. Oh my God. That was so risky. I'm blocking that. Surely. And you can't punish with that. I, I, I literally tried to block low. I knew it. I knew it. Damn. These lows are cooking me. Get more off of that.  Okay. You can, you can hit me. If you hit me mid honestly at this point, at this point, I just accept that. But I'm never getting off the ground. Oh. Okay. I should stop trying to range that too. Oh, did I stand up? All right. That's fine. Let's go again. Let's go again. I can't believe I'm stuck mid-worry. I did not expect this. I did not expect this. All right. Well, we have the easy solution board, right? Just don't, just don't not be blocking low. Block the low. I was going to say. Oh God. Just block low. Just block low. If you, if he wants to do anything else, I'm okay with that at this point. Oh God. Block low. Block low. When in doubt, block low it out. Now, can you block low that? I'm blocking low, dude. I'm blocking low. We're going on. Oh, me and you are going on a walk. Me and you are going on a walk. I am staying firmly planted on the ground. You can do anything else. Anything else is totally legal. God, I'm out here kicking. I'm out here kicking. All right. Just a measly lot of damage. No. Always be blocking low. You got it. You got to do something else. No. I'm blocking low.  I stood up. I'm blocking low. No. I block low. We out here blocking low. That's the strat. Let's run it back. I can do it again. All right. Same strategy. I'm going to crouch, crouch. I don't know what to do off that. I'm going to be honest. Oh, oh no. Block low. I'm blocking low. I'm blocking low. Oh, and there it is. And there it is. Knee cancel into two. Four. All right. I'll do that. Block and low. Oh, he clicked me. Block low. Yep. I'm just, I'm going to be out here blocking low. You know, not to sound like a, uh, like I'm a bit low parry. I wasn't even supposed to be low. And there it is again. Now me personally, I'm going to.  I hit a button first. I had a button. No. Come on. Don't do that. Damn. I got to watch a whole cut scene now. Now you got me watching a whole cut scene. My streamer is a spammer. I'm spamming crouch. Oh, should I ran into that?  Cause I'm crouching. The mix up. Okay. No, no, no. All right. The mix up didn't work. The mix up didn't work. Crouch. All right. There we go. All right. I respect that. Crouch. Okay. You got me. You got me. You got me. Crouch. Oh, you got me again. You got me again. What's the mix? It's all actual optimal combos. All right. I'm crouching. What's next?  I'm crouching. All right. We poking. We're poking. All right. All right. All to the next one. All to the next one. We needed the training session anyway. Oh, promo glitch. I need to win. I told you, I'm trying to get all the way to red. I know Paul stands in my way though. All right. Now we got to... Hold on. I got so used to just crouching. Oh god. A little bit of lag. A little bit of lag. We're going to be okay. We're going to be okay. I went in doubt. Oh, I'm trash at the game. Why am I trash? All right, so we've got like 10 seconds left. I'm willing to just wait this one out. Okay, this is why patience gets you nowhere, except for actual victory. This is why patience gets you nowhere, except for across the finish line. I'm gonna armor. I don't know why I felt that was the move. Take that trade every day of the week. Look at the health bar difference. I'll take that again. Okay, you don't wanna miss that move.  Hey, have you got a lot off that? I thought I was gonna lose to the lag. Now, most people would be like, oh, that was kind of laggy. I probably won't rematch. But, and maybe if I lost, but because I won, we're gonna rematch that and I'm gonna try to get some more points. Oh, you know, I actually shouldn't be surprised. I agree, I agree. I literally would have done the same thing. I'm not sure why I'm pissed. Amy's got the crow. Oh, why did I get up? Okay, all right, all right. Not a great match for me. Oh, that was terrible. I haven't gotten a clean hit in here. Oh, can't crush that. All right, all right, all right, that was, you know, that's a loss. That's a loss. Sometimes you get a loss and that's just it. All right, now we're just playing terrible. Why am I random hop kicking? My God, have you no, have you no shame me? All right, I was looking for a place to crouch.  All right, I understand. I double understand, heat attack, I'm just dead. Not dead?  You should have killed me, bro. You should have, Leo, hit him with the, no, all right, and now I gotta watch a whole cutscene. I, Chad, if that move kills you, they gotta end the round, bro. I can't watch a cutscene every time. Actually, that was one of the shorter cutscenes. It was one of the shorter cutscenes. I'm getting cooked. Oh, the low, I don't know why I wanna grab him. All right, I'm not sure how that kick hit, but I'll take it. Okay, can I actually come back? Not if I crouch. I'll take that. I thought, the only reason I did that, I thought it was the punish. Let me check your legs real quick. I gotta check those, he didn't block low again. I think we just go low. I think when in doubt, we just low it out. Let's go. It won't, nevermind. Get off me. Armor? Oh, we blocked that. All right, just a couple of twos, and we stand a chance now. Now we stand a chance. I'm just gonna, yeah, big damage. Oh, the slowest low in the world, I can't see it. He actually blocked low. All right, well, I can't block low, so it's meaningless. Oh, if we lose to a slow low like that, that is, all right. Let's go, I'm not dead yet.  God damn, all right, we'll lose some points there. We'll lose some points there. All right, I can't be doing that. Okay, I have to react to that. That's the killer for me. I can't believe we're losing round one like this again. I keep trying to crouch. All right, I was about to say we'll take the loss here, but never give up. Never give up. I give up. Ooh, big damage, I'll take it. Stop blocking low, stop blocking low me. No, thank you. Stop blocking low, damn. I don't know why the fear is there when, no thanks. There it is, that's the reason I block low. Damn, I'll block low. Okay, hold on, hold on. Adjust, just adjust. There's no adjusting. The adjustments are not being made. The adjustments were not made. Block low. I could have just, that was a frustrating set. Damn, no, I give me to the next one. Give me to the next one. I just need a less, I need a confidence round. After that frustrating one, I just need a confidence. All right, so we're, it's a pretty peaceful round actually. Let me get a grab. Let me be the annoying one this time. Oh my God. All right, all right, chase down, chase down. Let me get a few quick ones in here. I ran into that one. Oh, no counter hit, I was fishing. Fish for it, okay. Fish, oh, he's not giving it to me. He's hands off my arm, buddy.  Now your arm, that's free game, that's free game. Give me a limb legs. Round three, can we put it away? I'm feeling decently confident, I'm not gonna lie. All right, well, wow.  All right. I'm low on health, but they don't wanna put me away. I don't know if that was real. I have no idea what you just tried to do. Oh, please let my foot get there first. Thank you, I was so afraid. I was so afraid I couldn't take it. Let me get 150 points real quick. I need to win both these sets and then go on a winning streak. All right, one win, what's the, can we get to a good streak? What am I doing? Oh, get off of my arm. Leg check, oh no, my arm, my arm. Okay, that was, I feel like that was a little after the fact, not gonna lie. Leg check, leg check, leg check? All right, I just wanted, whoa, whoa, two, two, buddy, two, two. Okay, I almost got the distance there. I feel like these pokes, they're gonna serve me well. Oh, damn. Armor, I like that. Oh, look at that range. All right, and then, you know, sometimes it's not gonna work out, but the range is still all that matters. Let's go. I mean, I could have done, I could have done so much more.  All right, one, two, one, I'll take it. I'll take it. No. All right, well, we blocked that and can I launch here? Told you we needed that win. Now we need to go on a little bit of a win streak here. I wanna at least get the Dominator. Oh, brother. Check the legs.  I'm not doing all that. Oh, big hit. I hit buttons. I thought they were trying to go for a little moon there. I thought maybe I could mash. That was my mistake. Oh, what do you mean? What do you mean? Hold on, what do you mean? I'm still not sure what you mean. Roll away, roll away, Leo. Oh, God, we're punished for that. All right, I got the mid. I finally blocked it. I finally ducked into a block. And then I stood up. Oh, God. Damn, so much range. All right, go next. All right, rough first round, but what happens if I keep the pressure? All right, one more match before I practice. One more match and then we practice a little bit. Oh, whoa, the motion, man. Hold the phone. Just cause I've been slipping up a little bit, you got me messed up, man. Okay, I gotta stop crouching. I'm addicted to crouching, though.  All right, I'm just, I'm trying to go for a cheap win here. Get, whoa, get off of, what? You jumped out of my loving arm.  All right, we're bar for bar, bar for bar. All right, we'll just eat that. Oh, I should have gotten up. I should have gotten up. Wow, out of my heat move. Okay, I need two wins in a row, two wins in a row. Is that really that difficult? No. Okay, so you have to block that thing. I didn't know that. You would think I played this character a little bit. I went, it's looking bad. Oh no, oh God, I'm scared. I was terrified. I'm terrified. I was terrified. Damn, demoted. Oh, but this, you know what, this is actually a strat. You know what? You get demoted so that you can promote back up to the mid-rank. Don't quit. Okay, good. Damn, every time in Tekken, my confidence always goes up.  All right, what the fuck?  Okay, cheap stuff. The merchandise. Run into the loving arms. No, hands off, hands off again. That was a grab.  Hey, whoa, whoa, whoa. I still got a little life in me. I still got a little life in me. And I got hit by a jump up kick. No, no, no, no, no, no, no. That was probably a one plus two grab. Oh God, bro, just let me get this win. All right, and you knew I was gonna be cheap. Oh, come on, we're going on a walk. We're going on a walk, you and I. I'm taking the round, I'm taking the round. Promo chance, back up. Oh, tell me that wasn't the strat. Mid assassin right here, I come. One last match, what do we got? Oh, yes. No. Whoa, whoa. Oh, damn, so much damage. He's gonna do the get up kick. No? All right. Ha, ha, ha.  Oh, I'll take that. Sit down. I do your thing. I couldn't stand up. All right, heat attack. We're safe, get a little bit of that health back. All right, all right. Okay, you got out of it this time. I can't believe it. I can't believe it. I can't believe it. That is unfortunate. Oh, we're down two rounds. We're down two rounds. This is a damn moment.  I'm gonna get that positive note. Okay, or maybe cooked. Hades off the shades. Oh, let's go. I didn't even know. All right, we'll block those. Oh, you just went for it right away. You didn't even use the sprint. Sit down. Let's go. I could have called one off that. I'm blocking that, two, two. Two, two, bang, bang. Okay, now we're even. Now we're even. Don't let me get the reverse three-oh.  Now you do yours. You do your. I know you, I know you want to do yours. I'm literally, I don't want to play until it's gone. Okay, it's gone.  Armor. Let's go. Let's go. Okay, now you're gonna use your rage art. Yeah, and there it is. And there it is. And I'm going to the training mode. I'll see you in training mode, bro. Get out of here. Get out of here. I'm out. Couple of back flips. I mean, I'm due for a training arc and that's exactly what we're gonna do right now.


So host mobility, we're going to look at mobile IPs. So in this set of lecture notes, there are in fact three topics. There's one on mobile IP, one on NEMO, network mobility, and one on ad hoc networks. This year, this course, we're just going to look at the first one. The second two, we will not go into details of how they work. So we'll focus and go straight into the topic on, how do we support mobile computers in the internet? So the situation is that you have a phone, a laptop, some mobile device. Let's say you have wireless LAN access. So you can associate with an access point. You can transfer data with that access point. That's fine. That provides us wireless access. But then you move. So you move.  And you want to have continual internet access. You don't want a disruption if you're streaming a YouTube video, or you're in a voice chat with someone, or you're just browsing websites.  So that's desirable. You don't want to have disruptions when you move. So this is about mobility of hosts. Hosts here, we refer to the end user device, a laptop, a mobile phone, a tablet, a computing device. And as they move in the internet, how do we handle that? Well, what happens if you move inside SIT? Does your wireless access still work? I think so. I think if you have your phone and you're using the wireless LAN, you're associated with an access point in the corridor. If things are set up well, you walk out here.  Maybe you're downloading a file. It will continue downloading as you walk, and maybe through the corridor. And as the signal to this access point gets weaker, if the network is set up well, then your phone will start to try and find another nearby access point and associate with that. Perform a handover from one access point to another, and then you associate with the second access point, and you keep downloading that data but via the second access point. So if we have access points providing coverage across the campus, across the buildings, as we move around, we have continued wireless coverage, and we can continue to download our file. You get in your car, and you start driving.  You put your phone in some hands-free setup. You're in your car, and you start driving into the center of Bangkok. You would like to still have internet access, no disruption. Does it work? What would be a problem there? Interference, well, the first, in fact, out of range. That'll be the first thing. Here, you're using the WSIT, the SIT wireless LAN. You're associated with an access point, so you're part of the SIT wireless LAN. You get into your car, you've got some coverage out in the car park, but you start driving, and you're out of coverage of the SIT wireless LAN. So what happens next? What could your mobile device do then? If you don't have coverage from SIT access points, what's a potential option for your mobile device? OK, it could switch to a different network technology. Because your mobile phone also has a 3G capabilities. So ideally, you're in your car, you start driving, you lose access to the SIT wireless LAN. You'd like to keep downloading your data or continue your voice conversation via the 3G connection without any disruption. That's what the user would like. So as you start driving, your data transfer is now via the 3G connection. Has anyone tried that? Does it work? Most people may not have tried it. It's not so seamless at the moment. Seamless means that from the user's perspective, you don't notice the change. In most cases in such a situation, you would notice the change that you disconnect or effectively disconnect from the wireless LAN. You do not have internet access. And then you connect to the 3G network. And then you get internet access again. So there may be some disruption in a nice situation for hundreds of milliseconds in maybe the normal situation, maybe multiple seconds or even worse, that you don't have internet access. We'd like to provide seamless mobility where from the user's perspective, the disruption is unnoticeable in the order of tens of milliseconds maybe so that it automatically switches to the other network interface and continue using the internet. We'd like to support mobility of hosts in the internet. There's a problem. Even if my mobile phone has Wi-Fi and 3G and the device can automatically switch from one to another when the Wi-Fi is disabled, there's a problem with how we deal with internet addresses. And that's what we're going to go through in this topic and see that the solution to this problem is a protocol called Mobile IP. And we'll explain how the solution works. The lecture notes we're going to go through covers Mobile IP. Well, first the problem in Mobile IP, but I've also got a handout. Does everyone have it? It's hopefully after this topic. Have a look in your lecture notes and see if you've got this handout called Mobile IP Example. Did I include it? I hope so, yeah. So at the end of this topic, there's this handout on Mobile IP Example. In fact, during the lecture, I'll switch between them. So we'll use this as an example to illustrate some of the issues and then how Mobile IP works. So when I show you some pictures on the screen, some of them will be taken from this example. We need to make some assumptions to discuss how we support mobility in the internet. The first thing to simplify things, we're going to say, we're going to ignore the details of the access networks. So in this picture, here's say the SIT wireless LAN. There's a router inside SIT that connects to the rest of the internet. There's some switches. All right, here's just one switch. But there are multiple switches in SIT and there are multiple access points. Okay, so there's one in almost every floor in this building. And here are our hosts. We'd like them to be mobile. Within SIT, we can think of this as one access network. And that when we're, if this host x.a is associated with this access point, it has wireless access here and then via the wired LAN out to the router and then out to the internet. As the host moves, it may move outside the coverage of the first access point and hopefully inside the coverage of another access point, re-associate with that other access point and continue receiving data via the router by the second access point. So that's what we'd say mobility of a host inside one subnet. So for our example, inside SIT, we can be mobile, switching between wireless LAN access points. Most of the examples I'm gonna talk about, I'll talk about Wi-Fi, wireless LAN. But it doesn't have to be. This doesn't have to be a wireless LAN access point. It could be via 3G. It could be via any wireless technology. We know best about wireless LAN, but it could be other technologies. What we're going to assume is that inside one IP subnet, that's this entire network here, hosts can be mobile. If there's multiple access points, they can switch between them seamlessly. And that's not too difficult to do. And I think you could test that inside SIT. You could continue downloading a file while you're moving across the building or across the campus. So first, the wireless technologies, or what we call the layer two technologies, the physical layer and specifically the data link layer, layer two in our stack, they provide the wireless access to our hosts. They may be wireless LAN, GSM, 3G, in general, satellite, any wireless technology in general. So that provides us our wireless access. We're going to assume that the technology, that wireless technology, supports us moving between access points. It's not a problem to do so. In 802.11 wireless LANs, you can do that in that there are specific ways that you can move between access points and the access point and you can do a re-association at the new access point. We're not going to explain how that works in detail, not yet, but we'll assume no matter what wireless technology we can move inside this one subnet. What we're going to look at is the situation if we have wireless LAN here and another subnet using 3G, often run by a different organization, wireless LAN by SIT, your 3G by AIS for example, different organizations. They have different IP address ranges. What we would like is to move from the SIT wireless LAN into the AIS 3G network seamlessly. And that's a different challenge and that's what this entire topic's about. It's difficult because we're moving between different technologies. Moving from Wi-Fi to 3G requires different techniques than moving from a Wi-Fi access point to another Wi-Fi access point. Different owners of the network. Moving inside SIT's wireless LAN is okay. SIT built the wireless LAN to allow you to do that. But to switch your device from SIT's network to AIS's network requires some different techniques or maybe some even agreement between the operators so that you can do that and things like payments become an issue. In these slides, we're going to start to look at IP addresses of devices. But to keep things a little bit simpler in these slides, instead of writing the full IP address, say here are four different IP hosts, instead of writing the full IP address, sometimes I'll just use this shorthand notation, two letters, where the uppercase letter means the subnet address, the network portion of the IP address and the lowercase letter, so followed by a dot and a lowercase letter means the host portion of the address. Recall, I hope you can recall, an IP address is a 32-bit value. We often represent it in dot a decimal notation like, let's see, on my laptop. We don't need that. What's my IP address? In my laptop, my IP address for my wireless LAN interface is 10, 10, 97, 1, 5, 0. It's actually a 32-bit address. That is, we convert each of those four decimal numbers into an 8-bit value, becomes 32 bits. Importantly, this address identifies two things. It identifies my laptop inside SIT's network and it also identifies SIT's network inside the internet. How do we tell which part of this identifies my host and which part identifies the subnet or the network? What do I need? The subnet mask, this mask here. 255, 255, 248.0. The subnet mask, this other address, tells us that some parts of my IP address identify the network. I call it the network portion of the address. And the remaining part identifies the host on that network. And the way that we read it is that when we convert this to binary, the corresponding ones, when there's a one in the subnet mask corresponding to the network and when we have a zero, it's the host. This one's a harder one to deal with. Let's simplify it so I can quickly calculate. Let's say instead of 248, let's say it was 255. Makes my life easier. What that would mean is that 10.10.97 identifies our network and the 150 identifies the host. So a subnet mask tells us which parts of the IP address identify the network and which parts identify the host. Your tablet or your mobile phone, which is also on SIT's wireless LAN, will have the same 10.10.97 because you're in the same network, okay? But you'll have a different number here. You will not be 150 because my host is 150. You'll have a unique host part of the address. Everyone inside SIT's wireless LAN is going to start with 10.10.97 and the other part will be unique. And then in a different network, not SIT's wireless LAN, in the network from AIS, from DTAC, or for someone else, they would have a different network portion. So in a different IP network, we have unique network portions. Inside the one IP network, we have the same network portion and unique host portions of the address. A lot of you, I think most of you have seen this in previous topics. The point of this, at this point, is not to explain how this works. Hopefully you'll remember it. The point is, in some of my slides, instead of writing a full IP address, I'll say instead of 10.10.97, just use a letter, an uppercase letter, and instead of 150, let's say a lowercase letter. That's just the notation to simplify things in the example. If you look on the other example, the other handout, I actually use full IP addresses, just in these slides. So I'd say x.a is a host, host a on network x. x.b is a host b, also on network x. So these four hosts are all on the same subnet, the same IP network. Any questions before we move on? Some more assumptions? So let's simplify our view of the internet. Let's go back a slide. So here's my simple wireless LAN, two access points, a switch, and a router. This is all one subnet. Let's call it subnet x. And it's attached to a router that also has an IP address. Our internet is made up of multiple subnets joined together via routers. So instead of me drawing these access points and switches, let's just represent it as just one cloud. Call it access network x. And somehow these hosts are attached to the router. From our perspective, we don't care whether it's Wi-Fi, whether it's 3G, but some technology allows us to connect x.a, b, c, and d to the router. That's one access network or subnet. And then our internet is made up of multiple access networks joined via one or more core networks. In this small diagram, I've got one core network here. So here's our access network x, which would have some hosts inside it. And two other access networks. See if we can not freak people out with a change of colors. Three different access networks in this small internet and connected via some larger network, which is made up of different routers. So think of this as our backbone or multiple core networks. What we want to allow is a host in one access network to move to another access network without any disruption to the user. It's not too hard to allow hosts within an access network to move. That's like moving within SIT. But to move from SIT's network seamlessly to AIS's network without the user noticing is much harder. So moving from one access network to another is what we want to deal with. But why is it difficult? Let's see why it's difficult. Here's our example, internet. So focusing on the diagram. We have in network x some hosts and we have some other networks. And let's say our host xB wants to move into this other access network. This is SIT's wireless LAN. This other access network, network y, is the AIS 3G network. These hosts have IP addresses. Here it's x.b, or for example, 10.10.97.something, 151. As it moves into another network, what IP address should it have? It should be y.something. Why? Why? Because this is access network y, okay? If we move from one to another, the way the internet and IP addresses are used is that inside one IP subnet, we have the same network portion in the address. Here they're all x.something. Here they're all y.something. That's how IP addresses are assigned. So if we move here, we'd expect this to be y.something. y.g, for example. As long as there's something that g is unique inside here, it should be okay. Why do we need that? What happens if, all right, let's say what if we didn't do that? What if, as it moved, it maintained the address x.b? What would happen? It's not, we know it's not valid if it's x.b, but why is it not? What's the problem if this is x.b? No service, why? What if someone sends data to it? Let's say this host z.a is sending data to us. So we're dealing with a case where, let's say some host is sending data to us. Maybe this is the YouTube web server. It's streaming a video to my phone. As I move, I wanna keep watching the video, continue streaming. So this one is sending data. The destination address is x.b. When I connect to the YouTube web server, it starts sending to x.b. If I move to this access network and I'm still x.b, what happens? The data will keep going to here. The reason being is that the way internet routing and forwarding works in that this one doesn't send to x.b. In fact, it sends to the router and the router sends to the next router such that it will be delivered eventually to network x. The way that routing works in the internet is they route not to individual hosts, but we route to networks or subnets. So what normally would happen, z.a sends to its router, this router would send to another router and the routing tables in those routers would be configured such that that data will be delivered to subnet x. So for example, this is created at the source, z.a. It's an IP datagram, IP header, some data. Inside the IP header is a source address. What is the value? This is created by our YouTube web server, z.a. Creates an IP datagram containing some video, sends it. x.b is still here at the start. What's the source address? Okay. What's the destination address? x.b, that's normal. This IP datagram is sent to the first router. The router looks in its routing table and realizes, okay, the destination is some host on network x. It doesn't care that it's x.b or x.a or c, it just cares that it's on network x. Uses its routing table to determine to send to the next router, looks, sees, ah, I need to get this to x. Keeps going. Eventually it gets to the router for network x. So this arrives at the router for network x. The router sees, ah, the destination is x.b, x.b is on my network. I manage network x, so sends it to x.b. That's the normal situation. Now, if x.b is moved to this new access network and the same thing happens, we'd send it, that datagram will be delivered to router x and now what does that do? Well, we have a problem because if the data gets here and the host is no longer on the subnet, then how we cannot deliver the data to that host. We cannot route that data to the host because it's somewhere else. Unless somehow this router knows it's somewhere else, we'd not be able to receive the data. So that's why, and as people correctly identified, if we move here, we need to change our address to y.something. What's the problem with changing your address? The problem with changing your address, so my phone was x.b, I move into AIS network and now I get a new address, y.g. My, the YouTube web server doesn't know that, okay? It doesn't know that I've changed my address. Why would the YouTube web server know that my device has just moved from one network to another? If it had to keep track of that, it would be very difficult. So to be seamless from the sender's perspective, it shouldn't care whether someone has moved or not. You shouldn't even know that someone has moved. So if I change my address here, for most applications, the application will end, at least the session will end. You'll have to stop receiving the data and have to, so if I change my address to y.g, I would not receive any data from this source. I'd have to then establish a new connection to this source and tell them my new address is y.g and then I'd start receiving the data, okay? That's a problem because again, it's not seamless. What we'd like is as we move, there's no disruption of the service. This disruption of stopping, let's say stopping the video stream, contacting the server again and starting the video stream, is too much of a disruption for some applications and we want to avoid that. So we've got two problems. If we move the source, we'll keep sending it to here and we will not receive the data because we're no longer here in network X. If we move and change our address to y.g, then we must somehow inform the source and that's also a problem because that takes some time and it disrupts our data transfer. So what's the solution? What do you do to fix this? If we move and z.a keeps sending to x.b, they're gonna send to here. We cannot change our IP address and tell them because that's too much of a disruption. So what do we do? How can we solve this? What's the solution? Tell who? Okay, first solution. If I move here and I get y.g, tell z.a I've changed. Possible, but too slow because what that means is effectively my, because almost all applications use the source and destination address to maintain some state. And if you change those addresses, effectively you've got to stop that application or stop the TCP connection, for example, and then start again. That disrupts the service and it can be a disruption of hundreds of milliseconds, seconds in some case. It's possible, but often too slow for what we need. So if we cannot tell z.a that I've changed my address, what can I do? Redirect. Tell router x to redirect. Okay, that's the solution. x.b has moved to this network. z.a is still sending over here. Okay, it just keeps thinking it's sending to x.b. It's arriving here, the data. So what we should do is as we move into a new network, tell our old router that I've moved and tell them to redirect it to my new network. So z.a will send the data. It would arrive at the router x.z which will then forward or redirect the data into subnet y and then we'd receive the data. And that's it, that's mobile IP. Mobile IP does that. We just need to study the mechanisms for how it does that and look at some of the issues. It's this concept of redirecting. And if you change the network again, let's say to another subnet here, then you tell your router I've now moved from y to w. And if you change again, you tell them again. And we'll see that there is a performance issues here that what happens is that the source here is always sending to our home network, our original network, and then that forwards onto our new network, also called a foreign network as opposed to going direct and that can lead to some performance problems which we'll cover. Yep. So that's the simple concept of what mobile IP will do. If we move, tell our home network, especially the router at the home network that we've moved and tell them to redirect or forward the data to our new network. Yep. What if x.b moves into subnet z? Well, let's say we use the same approach. We tell our home network z.a sends to here and then this one sends all the way back to us here. Would work but very inefficient. So there's also a way that when we move into here, this router would know that we're in here. So when this one sends, it could redirect immediately back here, a special case condition. The routers have to have some special functionality to recognize that. Yep. So that's a special case and there are a few other special cases too. But in general, when you move into a new subnet, tell your home router that you've moved and tell them where you've moved to and they will redirect the traffic. It's the same as you can do with your postal mail, your snail mail. You've got an address at home. You tell the post office for the next six months of temporarily changed addresses. And that post office will, when it receives mail, will forward it to your next, your new address. So we need to go through the details of how it works. Just to make sure we're clear. This slide is just about discussing the fact that if we change our address, it disrupts the application. And normally that's bad if we want seamless mobility. So just some discussion saying, if we do change the address and we have to tell the source, that usually incurs too much of a delay such that we disrupt the streaming or the data transfer. We're talking about mobility that should be, we say seamless. We're talking about delays in order of tens of milliseconds. So as I move from one network to another, there may be some small delay of setting up the new connection. Tens of milliseconds, hundreds of milliseconds in some cases, what's desirable. Much more and the user starts to notice and that can be a problem. We've looked just at going from Z to our device. Of course, we're also transferring data in the opposite direction. What happens? We'll see that this device, as we move into the new network, it maintains its old address, X.B and gets a second IP address, a care of address. And it can use that care of address and the old one. And we'll see, we'll not explain how yet, but we'll see that it can send back in this direction. When it's uploading or sending back to this fixed node, it doesn't have to go via our router here. We'll see why those two cases are different in a moment or shortly. So again, we must support the transfer in both directions. We'll see that the download normally needs to go via our home router, but with upload, we can bypass that and go direct. Let's make sure people understand why the data goes from here to the home network, to this router and how the basic routing in the internet works. I think most of you do, but some may not recall from previous subjects. So we'll look at our example. This is the first picture you have in your example. So if you flick through some slides, this is the example network that we're gonna deal with to show some aspects of mobile IP. I have real addresses. Well, the full IP address, they may not be realistic, but just to demonstrate what happens, not just using letters. How many subnets in this example, internet? All right, to answer that, let's explain the notation use. The circles are routers. Remember, routers connect subnets together. We have an access point. We're gonna use in this example, wireless LAN. We have our mobile node. It's initially associated with access point one. We have some routers, A through to F. This is just a LAN switch, and this is our other node that we're gonna communicate with. We're corresponding, in our example, we're gonna correspond between our mobile node, so your mobile phone, and some fixed node on the internet, let's say the YouTube server, called the correspondent node in general. The node we're corresponding with. How many subnets in this internet? Eight. And the numbers of the IP addresses give you a hint. The subnets are, and let's try and draw it in a slightly different picture. All right, actually, to be quick, we can see, here's one subnet that contains the access point in our initial mobile node. Let's call that subnet <IP_ADDRESS>. In all of these IP addresses, the subnet mask is a slash 24 or a 255, 255, 255.0. Just for simplicity, that means the first three numbers identify the network or the subnet. The last number identifies the host on that subnet. If the last number is a zero, we use that as a special case to identify that subnet. So I could say the subnet <IP_ADDRESS> is here. This is a second subnet between A and B. Subnet <IP_ADDRESS>. 3.36, sorry, six between C and F. F has a subnet seven there, four, five and eight. So we have our eight different subnets in this example internet. Okay, so what else do we see here? We see these single digits here. These are just interfaces. So I'll use them to refer to the specific IP address of that router interface. So remember a router connects two subnets. Look at router B, for example. Router B connects this subnet with this subnet. A router has an IP address on each subnet. So let's say that this IP address would be <IP_ADDRESS>. And this IP address on the other side of router B would be <IP_ADDRESS>. And similar this router A has <IP_ADDRESS> as an IP address and <IP_ADDRESS> as an IP address. So these are the interfaces and we'll use them as the specific IP address just to save some space. What else are we missing on this diagram? So we're gonna look first, how do we get data from correspondent node to mobile node? And initially the mobile node is on this subnet. And each mobile node has a home, a home network, a home subnet. So it's where they're initially connected to the internet. So we're assuming the home subnet for MN is here, <IP_ADDRESS>. And its IP address is <IP_ADDRESS>. And that's its home. And we'll see later it was going to move and we'll see what happens when it moves. First thing is when it's home, how do we get data from correspondent node to mobile node? Well, we create an IP datagram at the source and follow the routing tables. Towards the end of your handout, I've created some routing tables on page seven. So you, sorry, this picture, all right? They're the routing tables for each of those nodes. So the routing table for mobile node, MN, the routing table for the correspondent node and for those routers, A through to F. A simple view of the routing table where it says if the destination of a datagram matches what's given in the first column, then send it to the next node as specified by the second column. Now, correspondent node wants to send to, you look at the routing tables. I'll show this one. Correspondent node wants to send to mobile node. Assume it knows its IP address, okay? Correspondent node creates an IP datagram. So this is at CN, creates an IP datagram, has some data, source address, source address. The correspondent node is sending to MN. So the source address is anyone? Louder? Okay, all right, easy. And destination, where does CN's now? Follow your routing tables. Now, this is a very simple network. So there's not many paths to take, but just so you understand how the routing works, follow the routing tables to see where it goes, where the CN send it. So CN, here's the routing table for CN. It has an IP datagram. All it does is checks the destination address, one, one, one, 100, and looks up its routing table. Doesn't match one of the values, one of the rows in the left column, in the destination column. All right, it doesn't match 8, 8, 8, 0. It doesn't start with 8, 8, 8. So it doesn't match the first row. The second row, the star means any other value. Okay, star's a wild card. So yes, it does match that. So CN looks and sees the destination is one, one, one, dot something, all right? Not the first row, therefore must be the second row. Therefore, I need to send this datagram to 8, 8, 8, 1, okay? And then sends on to 8, 8, 8, 1, and that follows its routing table. Check where it sends. We're not at MN yet. So first, these are the routing table. So if MN is your mobile phone, it stores this information in the mobile phone. Let's first focus on, we're sending data from CN to MN, okay? We'll get to MN in a moment. Start at CN for this example. So CN sends it to 8, 8, 8, 1, which is here, 8, 8, 8, interface 1, okay? So it sends it to its router E. And then where does E send it to? So look in the routing table. We send it to 8, 8, 8, 1 in the first case, and what does E do when it receives it? Here's the routing table for E down the bottom. Which row matches? Let's quickly go through. Which row? Third row in this case, it's not. Remember, this is the destination. It's always the same in this IP datagram. We send the datagram to the first router. The router looks at the destination, which doesn't change. 1, 1, 1.something. Not the first, not the second. Third row we send to 5, 5, 5, 1. And then, so E sends to D. I've created the routing tables as you may expect that it's gonna go in the right direction. And you look up the routing table for D, and D should send to C. And then look in the routing table for C. D will send a 4, 4, 4, 4. That's this entry. C will receive it. Where does C send to? Which row matches? The fourth row here. You see that destination, now the way that we, and I've simplified the routing tables just to keep them small, the way we read this, we're assuming everything says subnet, the same subnet mask as here, that the first three identify the subnet, if it's a zero at the end, it means it matches any value at the end. Our destination is 1, 1, 1, 100. Which is on the subnet, 1, 1, 1, 0. Therefore this one matches. And we send a 3, 3, 3, 2. Now in real routing, the routing tables are more complex than what we see here. There's some information about the subnet mask that's important. So 3, 3, 3, 2, which is B. And then of course B will send to A. And as you expect A, B sends to A, 2, 2, 2, 2. What does A do? Router A receives, direct. I use that to mean, you don't send to another router, you send to the host which is on your subnet. That's what I mean by direct here. So use the layer two technology, Wi-Fi and send direct to that host. So because the destination is 1, 1, 1, matches. So each router knows about the hosts in its subnet. It can send direct to there. And then we've delivered the data. How does it send direct? Well in our case if we're using wireless LAN it would send via the access point which would then send to the mobile node. That's easy, that's the normal case, no mobility. If mobile node moved to this subnet for F7770 subnet, you can I think easily see that we would not deliver the data to the destination if we didn't have anything special. If we moved here and we maintain the address 1, 1, 1, 100, then according to our routing tables, CN keeps sending to 1, 1, 1, 100. It will send to E to D to C to B, B will send to A and unless we tell A that we've moved, A cannot send to the mobile node. So that's our problem here that we need to somehow tell A, router A that we've moved. We cannot expect the routing tables to be updated every time someone moves. So another option would be to somehow say that mobile node moves here and somehow inform C that 1, 1, 1, 1, 100 is in this direction. Would work in theory but in practice it's not manageable because when you have millions of mobile nodes, you cannot efficiently update the routing tables of routers in the internet because your internet is much more complex than five or six routers. There are hundreds of thousands of routers. So we need mobile IP in this case. Let's go through how mobile IP works. So the internet protocol version four is in widespread use, has been around for a long time and the organization that maintains IP started working on a way to handle mobility in the early 90s. So what's that, more than 20 years ago. And they come up originally as a request for comments as standards number 3344 and it's generally referred to as mobile IP. So there's IP and mobile IP. There's been a lot of research over those years to improve it and to provide some new features about security, improving the performance, improving the speed for dealing with some of the things we cover in mobile IP. Mobile IP was first developed with IP version four. There's also IP version six and a mobile IP version six. Okay, because in this course I'm assuming you know about IP version four mainly, we focus on mobile IP version four but there's also a mobile IP version six. The concepts are similar. Some of the terminology is different. And there's some specialized cases and we will not cover them, network and mobility and ad hoc networks. Mobile IP is optional. We'll see that for mobile IP to work, you need some extra functionality in your mobile device, your phone, your laptop and in the routers, normally the routers. So that extra functionality is not required, it's optional. In mobile IP version six, the functionality is required. Why? Well, one reason is to make sure it's more widespread in use. In practice, and we'll summarize at the end of this topic in practice, mobile IP version four is not so common. But mobile IP version six is now required in future mobile phone networks. 4G mobile networks make use of mobile IP version six. So that's where it's quite important. It's not so much for you and I with our laptops. It didn't become widespread but in terms of mobile phones and future mobile phone networks, mobile IP is quite important. Let's look at mobile IP version four, the basics. And we've sort of said some of this already. As you move to a new network, you need to inform your old router that you've moved. Oh, what's this second? All right, this is another moving. Ignore this one. Let's focus on just the first move from X to Y. As we move, what we're going to do is inform the old router that we've moved. So some terminology that we use in this case, we refer to our home network. Every mobile device has a home network. For example, my SIT laptop, it's home network where it gets its original IP addresses SIT's network. If I move into another network, the other network is a foreign network. Okay? So from the perspective of X.B, this is its home network. This is a foreign network. Every other network, in fact, is a foreign network to X. So we have home and foreign networks. The routers normally play some special role in, for example, the home router keeps track of who has moved out of its network. And the formal name is a home agent, HA. It's a piece of software that runs normally on this router that is used in mobile IP. We refer to it as a home agent. And on foreign networks, there's a similar extra piece of software, a foreign agent, home agent and foreign agent. These, this terminology on the next slides, so I listed here, home agent, foreign agent. So some of the terminology is on these slides. Let's explain it via this example. So here's our mobile node. The one that we're communicating with, we had Z.A. We call the correspondent node. We're corresponding with that. It's usually fixed. As we move into a foreign network, we maintain our IP address, we can call that our home IP address, our original IP address, X dot B, but we get a secondary IP address, a temporary IP address. It's called our care of address. And that is allocated according to the foreign network we're on. So in this foreign network Y, we would get a care of address Y dot something. In this example, Y dot M. So in fact, our mobile device will have two IP addresses. Home IP and every foreign network it's in a care of address. If this blue one moves into another foreign network, it would still have X dot B and get a new care of address, for example, Z dot T. So now we have a care of address, a visiting address. Our data delivery works is that our applications, for example, my web browser, and the YouTube web server when we're communicating, we keep using the home IP address. So we don't change that from the application perspective because if we do change the address, it usually means we have to disrupt that application. So we keep using the home address even as we move into a different network. And what happens is that Z dot A keeps sending to X dot B, so it sends across here and somehow we tell our home agent when we've moved into a new foreign network, what foreign network we're in. So as X dot B moves into foreign network Y, it will tell its home agent, I am in network Y. So now when Z dot A sends data, it would arrive at this router, the home agent recognizes, this data is destined to X dot B, but I know X dot B has moved. Its current care of address is Y dot M. So it will start to forward the data to network Y and eventually to the host here. So two important things there. As we move, tell the home agent we've moved and as data arrives, the home agent forwards that data to the foreign network where we're currently located. Any questions on how the basics of mobile IP work? And again, the terminology is on the next two slides. What did I miss? That's all right, it's old election notes. So this is some of the terminology or the components. So we talk about nodes or hosts, so mobile node, which is a node that uses mobile IP. So mobile IP is a piece of software. If my laptop wants to be mobile, it has to have in the operating system some mobile IP functionality, some software. Correspondent node is some, any node on the internet, it may not, it doesn't have to have mobile IP. So most computers on the internet do not support mobile IP. It's only those computers that we want to allow them to be mobile. For example, laptops, mobile phones. Every node has a home network, one home network. From the perspective of that node, all other networks are foreign networks. I have one home, everyone else is foreign. Every, the networks that support mobile IP have home agents. Usually they're on routers. So usually the router is a home agent. Doesn't have to be, but in most cases. So some software, some server software that keeps track of where the mobile nodes are. We'll see that there's some data structure or some table that lists which of my mobile nodes are visiting which foreign networks. It's a mobility binding table. We'll see that later. And there are foreign agents, usually again on routers. They keep track of the mobile nodes that are visiting their network. And they provide addresses to those visiting nodes and forward the data to those visiting nodes. So home networks, foreign networks, home agents, foreign agents. Two types of addresses. Every node has a home IP address, that's normal. But as a node moves into a foreign network, it also gets a foreign address, a care of address. And the care of address is within the appropriate address range for that foreign network. So if the foreign network, for example, is 172, 16, 37.0, the care of address may be 172, 16, 37.0, something. 65 in this case. And in some cases, we'll maybe try to avoid this detail, but it's possible that the care of address of a mobile node is in fact the same as the IP address of the foreign agent. That's a special case, which is a bit different from what we know, but it's possible that the care of address of this x.b is in fact y.z, which is the same as this router address. That's allowed. But the other one is that it gets its own care of address, y.m. As long as it's y.something. So let's look at how, so there are many steps involved in mobile IP. The most important ones are telling the home agent that you've moved and forwarding data. What have we got? Let's just finish today with this slide. How do we forward data in mobile IP? So this assumes our mobile node has moved into a foreign network and is somehow told its home agent that it's moved. So the home agent keeps a database of which nodes have moved and where are they? So what happens when we look at both directions? The blue direction is when our correspondent node is sending data to the mobile node. Normally it sends to here. But in this case, it's sending, it doesn't, the correspondent node doesn't know the mobile node has moved. The YouTube web server doesn't know your mobile phone has changed from one network to another, nor should it need to know. It sends the data is routed across the internet to network x. The home agent at network x realizes this data is destined to x.b, but currently x.b is visiting a foreign network and its care of address is y.m. So there must be some data here so that this can record that. Therefore, I will start sending the data to y.m. It will go to the foreign agent on router y.z and which then delivers it to y.m, our original mobile node. In the other direction, uploading data to the server, for example, we send our data, what's the, our mobile node sends data? What's the source address? Oh, simpler, what's the destination address in the red direction? Our laptop is sending data to the correspondent node. What's the destination address? What's the destination address? We're sending to the CN, so ZA. What's the source address? Two to choose from, you chose the wrong one. x.b, and just to remind us, in the other direction, sending from CN to the mobile node, from the CN to the mobile node, the source address will be Z.A and the destination will be what? From CN to mobile node, the blue direction. From here, source is Z.A, of course, is one sending it, where's it sending to? x.b, and when we reply, same pair of addresses just reversed. That's what we'd expect. Our application, it would be strange if it was something different. My web browser receives, and it's coming from Z.A to x.b, and when I send back, I send it back to Z.A from x.b. So, by using the same addresses, we say it's the change of addresses and the mobility of the node is hidden from the application. The applications that are sending this data still see it as x.b, communicating with Z.A. Even though this has a care of address, when we create the data, we set the, when we're sending the red one up, we set the source as x.b, and we send it to this foreign agent. This one knows it's a special case. It's coming from this mobile node, and we simply send across the internet, destination Z.A. It doesn't have to go through the home agent. It's only in the download direction that it has to go through the home agent. Because at this router, destination is Z.something, it will go through the internet to router Z and to the correspondent node. We can avoid the home agent. So in the blue direction, we go via the home agent, so in the download, from correspondent node to mobile node, but upload from mobile node to correspondent node, the red direction we go direct, we don't have to go via the home agent. Going via the home agent is potentially bad for performance. It is needed for mobile IP, but as you may imagine, normally the shortest path would be go to direct, but to send to some router and then have that forward to some other network can be bad for performance, like introduce extra delay. So we'll see later that this blue path is what we may say is suboptimal. Between source and destination, it's not the best path and can lead to bad performance in some cases. Any questions on mobile IP so far? What we'll do tomorrow is go through the details of how this forwarding works and the steps before that. How do we tell the home agent that we've moved and a few other features? Any questions in the last couple of minutes? That's not a question. It's complex, but the concepts, the ideas are rather simple. Move, tell someone we've moved and they will forward the data to us. The details of how it works is a bit more complex.


A World Health Organization scientist Petru Teblanche says the B-A2 sub variant of Omicron has been found in five African countries. She expressed concern about the development because samples of the B-A2 may not be spotted as a form of Omicron. The B-A2 sub variant has begun to replace Omicron's more common original B-A1 variant in countries such as Denmark. Our data from there suggests no difference in disease severity according to another WHO official. DERNA sequence 1273 discovered by Stanford University and being completely in the public domain and we forward integrate making a vaccine with our own processes partnering with its university, our own knowledge base and public domain information that the team would extract, interpret and utilize. This project shows that Africa can take cutting-edge technology and produce cutting-edge products with it that will banish this idea Africa can't do it and I hope that will really change the global mindset around Africa and understanding that yes this is about empowering Africa this is not about her philanthropy to Africa Africans when I talk to them don't want things given to them they want an opportunity to produce things.


Yeah, how do you think that your skill set has kind of shown up for doing what you've been able to do?  So I think, uh, just the coaches had faith in me to do that.  And lastly, just with this being the last game, how much is it I need to do well versus I'm just going to go out and have a whole lot of fun. I think you should have fun regardless, you know, doing well is having fun, you know.  Do you feel like there's more on just, hey, I got a cue for that? I'm not focused on making the team right now. Just focused on, you know, being the best version of myself that I can be. So actually, I just see my mom like, uh, hugged my mom for the first time on Monday. Since, uh, this all started with camp and stuff like that. But yeah, mom came to the game in Chicago. I had some family in Minnesota that had came and then now mom's here in Tennessee for this week. So yeah, it's been nice to have my family around. I'm the first to do it in, uh, Dwajak. So it's really nice to, you know, be able to show the love and support from others.  You know, I'm not the person who makes that decision or anything like that, but I am the person who goes out there and plays. So I think I'm more so just focused on, you know, putting out good tape, being a good, uh, good character. Having a good character and then, you know, just being myself. Just putting on the uniform and playing against another opponent is always fun. So just going out there with a mindset of preparing to win, but also putting good stuff on for them. How do you keep for maybe looking at, all right, they may keep X amount of guys in my position? Like, how do you block that? I haven't even checked. Honestly, I'm just coming out here every day to work. You know, if I'm good enough, I make the team. They'll, I'm not, well, more work to be putting in. But either way it goes, I always rent a room for improvement. Always trying to put in more work to just keep getting better each and every week. Is there a point Saturday or Sunday where you thought the injury was going to be more serious or you thought you were going to miss some time? Oh, yeah. I, I, I scared myself, honestly, when it happened. But, you know, just lifting the God hands, just prayed about it. And I was able to go today just felt good. Just now just keeps stacking days. Feeling 100% right now? Feel good. Yeah, I feel good. You gave the point to be first. Cause I see in things or was that something you wanted to show? I mean, I at least try to always be in the front. You know, even if I'm not the first guy, at least the first three guys, you know, just make sure I'm in the front, just trying to be seen, you know, you can't be evaluated if you're not getting rep. So trying to make sure I put my best foot forward, you know, just knowing that whatever I put on film, that's, that's who I am as a player. So yeah, they're going to do something, but I'm just trying to make sure I'm good enough to go. And I think today I was able to do a lot more than I thought I was. So I'm excited. No, it's exciting because you see these guys all, all last four or five weeks, especially OTAs as well, you know, they're grinding and trying to make a career or trying to make a living for themselves. And, you know, you want everyone to go out there and ball out, whether they stay here or where they have other teams looking at them as well. You just want those guys to do well. Yeah, just do the right things. Stack your days. I mean, you can't have these up and down days.  So those guys will be doing a great job and I expect them to do the same thing. Any stamps for tonight? We'll see. Yeah, we'll see. I'm not sure yet. Yeah, yeah, definitely antsy. You know, especially when we're on the sideline watching in person. It's like, we can't wait to get out there, but we understand that, you know, we got time and we'll wait till then.


Okay, I guess now it works right it does okay good recording in progress Okay, so thank you very much for the invitation my name is Mario Geiger and I will talk about group theory in machine learning and I'm postdoc in MIT with professor Tess Schmidt so This talk is about a Q variants neural networks so Imagine you have a task you have to solve that you know it respects some Symmetries so in this example, it's rotation so What you can do? To impose this symmetry from start because you know that this is a stronger bias you have on your problem You can make a neural network an architecture that respects this symmetry so if you rotate the input of your neural network, it will rotate the output the same way and This can be done in such a way that it's always Satisfied for any parameters so even before training actually this Animation I'm showing it has been collected before training So I'm really bad at doing presentations, so I tried to do something to Motivate my talk with a graph of dependencies of what I have to explain to go to my point so I would like to present what a Way to do a current neural networks, and then I will want to present What can improve data efficiency in equivalent neural networks what we did we discovered some interesting learning curves, so They show the generalization error as a function of the Size of the training set and we observe that When you add some Equivalence I will explain that It improves the data efficiency So by following this arrow that shows what I have to explain to go to my point I will have to explain these two architectures that are considered in these two graphics For that I will have to explain what this graph convolution and equivalent network and for that I have to explain some basics of group theory So let's start with what is a group So a group is a set of elements with a binary operation here. You have the Wikipedia definition, so It has to satisfy three rules the first is as associativity So a times b times c is equal to a times b times c The second one is identity you have an element in the in your set such that if you Multiply this element by any other element you stay with the same element And the last one is that for each element of your set There is another element in the set that is the inverse so if you multiply the two you get the identity Now let's move to the representations and because My last point is also about Equivalent neural networks that are equivalent to rotation I will start to show examples of representation of rotations because I think it's good to start with examples because representation is a bit abstract if we start with the definition so the these are few example of Representation of rotations and the simplest one the most common one are vectors So vectors are just three numbers put together and when you make a rotation they are multiplied by a matrix An example another example that is the trivial representation are the scholars so these are numbers that You can have a single number and when your system undergoes a rotation they are unaffected by it and Then let's take a representation that is a little bit more fancy Signal on the sphere is also representation It's a function from the sphere to real numbers and when you rotate it you have You obtain a new function f prime that is the same as the old function, but evaluated somewhere else Related by the rotation matrix once again and Finally, let's say a scalar field is also a representation of rotation it's this time a function from the space R tree to R and You have the same formula to Transform your your scalar field and the rotation So now that that's that's the formal definition of representation It's a it's a tuple of two things you have a function row and a vector space V and Row is a function from the group into Function from V to itself And he has to expect these two properties. First of all, it's that row of G is a linear function and The second one is more interesting. It it has to respect the structure of the group So if you have X an element of your vector space and you transform it with row of G1 and Then you get something again in your vector space V that you transform with row of G2 You can do that in one step. You can just transform X directly with row of G1 Sorry G2 times G1 So now let's move to what are irreducible representation You are you have two types of representation some are reducible and some are irreducible So among the example I showed you for rotation The two first are irreducible and the two last are reducible. What it means is That the two first You cannot find sub vector space that are also representation. So you cannot Make them smaller representation. They are the smallest But these two other these two vector space You can find sub vector space that are also representation. So let's take the example of the scalar field I can take this function and I can decompose it on some basis. This is for instance the orbitals Atomic orbitals and the atomic orbitals are a nice basis with respect to rotation Because then each of these coefficient they transform independently With some irreducible representation. So each of these see Old all these see together Contains the same information as the field itself But each of these see transform independently with an irreducible representation So These are all the irreducible representation of the group of rotations. They are indexed by index L that goes from zero to infinity The the first one L equals zero are the scalars. They are dimension one The second one L equal one of the vector dimension three and then the dimension is always two L type Two times L plus one so five seven and so on and here are some example of Quantities that transform with these irreducible representations So what is interesting with the irreducible representation is that every quantity that is a representation Can be decomposed into irreducible representation take for instance this three by three Object that is a stress tensor of instance it can be decomposed into an L equal one a zero and a two and Now this brings me to the tensor product. It's the last operation. I need to explain you You can take two representation row one and row two and you can create a new representation by multiplying them together and This new representation act on the vector space. That is also the tensor product tensor products of The vector space v1 and v2 and it works this way. So take x that is in the Vector space v1 times v2. So it can be represented as a matrix of dimension v1 times dimension v2 and you simply Rotate this vector by multiplying on the left by row one of g and on the right by row two of g transports and Within this is you can write it like that. There's no more transpose You just have K and L K is contracted with the row one and L is contracted with row two and When you do the tensor product of two representation, it's Typically not not irreducible, so it's typically reducible and You can make a change of basis and decompose as everything can be decomposed into irreducible representation You can also decompose it in a direct sum of irreducible representations So this is a big the picture you have if you have a group that you're interested in You can find the irreducible representation if you go to the library and open the root the right book and then you can Make tensor product of these representation and decompose them into other representations And that's a very great tool that we will use to make equivalent networks So last thing about tensor product is the tensor product For rotation. So this is the rule as that works only for rotation when you do the tensor product of the irreps of index L equal to Time the irreps L equal one you can decompose it into One plus two plus three and the general rule is this one so d of j tensor product with g of k can be decomposing to the the irreps from From j minus k absolute value up to j plus k so now we have all the tools to to make equivalent neural networks and The building blocks to do that are polynomials. So with the tool I presented You can build any Equivariant polynomials and I put a little tita here because you can The the coefficient of this polynomial you can make them learnable. So you have learnable equivalent polynomials, which is The only thing you need to make equivalent neural networks So this is a bit the picture of an equivalent neural network You you have an input that transform according to some Representations and you make a layer with these tensor products and direct some and some parameters and It gives you some internal representation that will also have some representations and You can stack these layers together because the composition of equivalent function gives you an equivalent function so these are a very non-exhaustive list of Equivalent neural networks that exist in in the literature So the the most famous one is the convolutional neural network, which is equivalent to translation then people came up with Equivalent equivalent neural network to the the 90 degrees rotation you have just for rotation It's a very small group then people also did Rotation in 2d. It's a continuous group of dimension one Then there's also the scale that has been done and then 3d rotation also people did the Lorentz group and Probably much more that was what came up into my mind so In my work what I like to do is to make a library called each VNN That allows to do equivalent neural networks for rotation You can just install it pip install e3nn and for instance you can just Create spherical harmonics, which is just an example of polynomial Doctor equivalent to rotations and that is very useful So now I have to explain you what is a graph convolution before I can explain the architecture of necrip that will be related to the first Figure of learning curves. So if you have a graph The graph convolution is Simply that each node sent a signal to each neighbor. So if you focus on for instance this node each node that that is connected to him Sent to him a blue signal Everything is done at the same time So in the architecture on necrip from Simon but but now If you isolate a source node and a destination node this So this this architecture is to make Molecular dynamics so the nodes here are atoms that have a position in space So Given a source node and a destination node you have a relative distance r and the source node has some feature on it and the message is simply the tensor product between the Source feature and the spherical harmonics up to some l of the relative distance In this in this formula there is it's missing the parameters and the radial function but it's not really important for this talk and This is what has been observed. So these are This is the mean average error on the prediction of forces So what they do is that they train a neural network to take a position of Atoms and types types of atom and to predict the force that this atom undergo and On the x-axis you have the number of training data and The different curves correspond to different Maximum order of irreducible representation they use for the features and the messages and They observe that if they use only scholars they get some learning curve. So they can train it, but it's a lot of that that to reduce the Generalization error, but if they use higher order Representation The learning curve has a better slope this other architecture Is a bit more fancy So in this architecture the the message is not just a function of one neighbor But it's new neighbors. So let's say a new equal tree. You have three neighbors So you have the feature of the tree neighbors. You have also these three Relative distance to the destination our one or two are three and you will build this time a big Equivalent polynomial they call f t tight has some parameters That is just a function of all these features multiplied by the spherical harmonics of the relative distance and so In this architecture they have so two parameters this L, which is there the maximum representation Irreducible representation they use to for the features and for the message and they have also this new so how many neighbors you take to create this polynomial here and If you take new equal one, you are in the same case as the neck whip architecture So they observe the same thing L equal one and two is better than L equal zero but now if they increase new and They can even keep L equal to zero they also observe this improvement in the learning curve and What it means is that? Even if the features and the message are just scalars As long as you have enough terms in this polynomial to to have So if you are if you have new equal to two you can for instance take Spherical harmonics and they take it up to L equal three and you can do the the scallop product of two L equal three spherical harmonic and create a scallop and It is Apparently sufficient to improve this Learning curve and have a better Generalization I mean data efficiency so in conclusion Equivalent neural networks are more data efficient if they incorporate tensor product of order One two three four and not only scars But it doesn't need to have the features at each every layer to be L equal To be of higher order as long as you have in in the layers Some tensor product of higher order even though you you you go back to Scala's It's it's fine So thank you for listening and the slides are available online Yes, we do I will start there thanks I Didn't understand the last comment you made on the on the graph of Mace so new It's not just a number of neighbors that you consider for a given destination it's the num so Instead of having just one message per neighbor You will consider if let's say new equal to two For this node you will consider every pair of neighbor So you have this guy and this guy that is a pair of neighbor This guy and and this guy that is a pair This guy and this guy there's a lot of pair of neighbors You consider all of them and each pair of neighbor will send you one message and this message So here I isolate just one a triplet or pair of neighbor and This pair of neighbor will send you a message that is a polynomial of the spherical Harmonics of the relative distance and the feature of on each of these neighbor in this pair Okay, so you're saying that if you're using if you're getting messages from the neighbors from persons Let's say instead of just a single Particles I guess in this case, right? Yes, it's MD. Yes Then you don't need to use vectors in the layers Exactly to have a good you don't to have a good data efficiency. You don't need these Feature H to be a vectors. They can just be scalars but because you have You use two neighbors to create the message you can have a Higher order spherical harmonics of the relative distance that you can scale our product together to get back the scalars and Efficiently rich to have a good data efficiency Okay Thank you So in the neck whip figure Is the so so the task is invariant right at the end of the day Yes, the task is So they want to predict the forces applied on atoms But what they do actually they predict the energy and they then they take the derivative with respect to the energy So, yes, the task the task itself is invariant because because you break the energy Yeah, so and the claim is that even if even if the task is invariant Vector representation is better exactly exactly and can you speculate why this this could be So I have no idea Yeah Exactly so Except that conversions of of Examples that show me that it's like the case I I honestly don't know because It has been proven that You don't need these higher order Operation to be expressive you can be expressive enough with just colors But in practice we observe that it's better for generalization and learning curve and efficiency, I Think this is common and a common thing in neural network. I mean one one hidden layer Fully connected neural network is expressive enough to express anything But still we use deep neural networks with very fancy layers because Expressivity is not enough. We need a data efficiency. I don't know how but it probably induce an implicit bias Helps, but I have no idea So in practice It may seem that simple things may be enough it may seem that having an architecture that respects exactly the Symmetry that you have in your problem is the best choice, but I mean can can we check for example in those in those Plots that you show with the data efficiency as a function of how you construct your equivalent network What if you compare this with Let's say a full-blown overparameterized Not equivalent neural nets, but such a train with that our competition. I mean and and you of course you don't Incorporate the cost of that augmentation in the sample size Do you do you always see that it's better to have to equivalence embedded in the network? so for this particular example this architecture and equip is Right now the state of the art from molecular dynamics, so it's better than any other Concurrent method that is Invariant that does not contain this equivalence with enough data and Augmented data would you learn at some point the equivalence the representation you learn? Would it be would it be like equivalent polynomials at some point or? So with enough data you can always learn the same thing you can reach If you follow this curve can always reach any Efficiency One difference is that if you look here We impose a structure that every layer is an equivalent polynomial If your neural network does not impose a key equivalence, and it's just Common neural network by training it you will it will learn to be equivalent end-to-end so from the Input to the output it will be equivalent But the intermediary layers will not be equivalent so you will not have these polynomials in it Probably it will Make take all the layers to in the end make something Equivion that it will learn to become to any other comment or questions Okay, this on what was touched upon in the previous questions, so I wonder since you're essentially adding structures with this Can you say anything about the interpretability of this kind of networks? Yes, I For sure it adds interpretability because now Your internal presentation is He has a structure and has has types so you can you can look at these internal neurons and Look what they do and look what these guys do and because of the their Representation the the vectors can point in can Go direction the scholar cannot so I don't I don't have Work that has been done that I know that Exploit this extra interpretability, but For sure, it's it can lead to better interpretability I'm just wondering if there is a simple example that you tried Where you actually saw that I don't know neural number one does this neural number two does that and they implement some specific operations? Yeah, unfortunately, I have nothing in mind like that Thanks. All right, so Maybe we can move to a speaker. Thank you a lot my