10/25 컴네 - Class Notes PDF
Document Details
배혜진
Tags
Summary
These notes cover a computer networking lecture on October 25, 2024. The discussion centers around the concepts of Reliable Data Transport (RDT) protocols, specifically RDT 1.0 and RDT 2.0, and their relationship to TCP and control messages. The lecture also touches upon how these protocols function in real-world data centers.
Full Transcript
10/25 컴네 2024.10.25 금 오전 9:01 ・ 134분 13초 배혜진 참석자 1 01:00 쉬는 시간에 내려가서 밀에 가서 건전지 가져 올게요. 참석자 1 01:19 이렇게 강의실에 놔두면 훔쳐가는 사람 있는 거 알아 깜짝 놀랐다. 저번 주에 여기 7003 이렇게 가는데 우리 세미나하고 하려고 애플 TV랑 이렇게 해놨는데 본 사람도 있잖...
10/25 컴네 2024.10.25 금 오전 9:01 ・ 134분 13초 배혜진 참석자 1 01:00 쉬는 시간에 내려가서 밀에 가서 건전지 가져 올게요. 참석자 1 01:19 이렇게 강의실에 놔두면 훔쳐가는 사람 있는 거 알아 깜짝 놀랐다. 저번 주에 여기 7003 이렇게 가는데 우리 세미나하고 하려고 애플 TV랑 이렇게 해놨는데 본 사람도 있잖아요. 나는 한 한 달 정도 뭐 갈 일이 없어서 안 가다가 갔는데 애플 TV가 없어 누가 훔쳐갔어 정말 근데 학교에서 그거 할 때 분명히 나 우리가 그때 한 두 명한테 경고를 주셨거든. 이렇게 오픈해 놓으면 금방 훔쳐갑니다. 그랬는데 사실 안 믿었는데 애플 TV 와서 훔쳐갔더라고요. 근데 우리 과 학생이라고 믿고 싶지 않아. 근데 내가 그거 파이마 뭐지? 애플인가 그거 해놨거든 그래서 내가 조만간 잡으러 갈 겁니다. 와이마의 맥인가 이거 해놓은 거 훔쳐가지고 요즘에 쓰지도 못하지. 참석자 1 02:27 Anyway I'm sorry running out the battery So I will get the battery during break. Let's see. So we do have a midterm next Friday right? So 9 am 참석자 1 02:53 ah okay so yeah that's yeah So we're going to We're going to sit like that on next Friday. Ah that's pretty tight ah So that's Friday. I will discuss a little bit about your midtime today. Hopefully I uploaded some VI called study questions but I changed the vile a little bit so I will show you one more time today. Let's click up where we left off from last week. Your midron will be covering up with this r 참석자 1 03:27 Hopefully we can finish this slide six and then see the order. We can have some time to pick a little bit of the TCP protoco headers etcetera every week I wanted to show you this I keep forgetting about this. Hopefully we can try today if you have a chance okay so this was what we discussed last week. Again just like you I also forgot what we discussed last week every single week I come back I forgot what we discussed So I just try to look back. 참석자 1 04:04 So this was we try to build some fake protocol called RDT right? It's referring to as reliable data transport protocol. It's a fate protocol that we like to make in transport layer. The idea was hopefully this transport air protocol will handle the packets being exchanged between sender and receiver assuming the underlying channel that lower layers are using the techniques that they don't guarantee any delivery of the messages. So it's an unreliable channel 참석자 1 04:40 means that they could lose my packet or they could their error can be happening in the underlying channels. So if the lower layer protocols are not very stable I like to make my upper layer layer 4 transport layer protocol a bit more robust so we can handle all those packet losses or errors in this way. So we like to think of the algorithms how they behave 참석자 1 05:06 in order to save those packets. So this a sender side receiver side behavior and I kind of already told you that RDT is a simpler version of TCP that we use. This is what exactly TCP. TCP does try to send the receive packets without losing them without having error messages in it. So one of the ways of making this algorithm sender side receiver side we decided to use something called one of the ways of representing algorithms of something. And this FSM is a quite nice way of 참석자 1 05:49 how how we do stuff when something happens. So we start writing things like on top of this edges this this one is referring to some type of event and the bottom is some type of actions when this happens right So obviously this was one of the examples of RDT 1 0 which was our very first protocol assuming that underlying channel is perfect. So if we go back to this slide so we're talking about this so 참석자 1 06:28 application layer transport layer so transport layer we're talking about the algorithms up here right and the layer two layer three are unreliable. So we'd like to build a nice ivoridom for this guy sender receiver ser and RDT 1 0 was assuming that this channel is perfect. So they are making very simple protocol assuming that this is not unreliable this is reliable. Then what do I have to do for each side? 참석자 1 07:01 In this case it was quite simple because this is perfect. All they had to do is just send and wait this one receive and wait because every single time that I send something it will get there in one piece. Every single time I receive something it's guaranteed to be perfect so I don't need to do much That's what they are saying in the first setup of the So 참석자 1 07:29 when they have certain data to send which they are receiving the message from application layer when they receive the data all they have to do is make the data into a smaller pieces smaller packets and then you're going to send but this is a perfect function so there is nothing you can do more so you just need to wait one more time you're waiting for another message from the top layer. Likewise receiver when they receive a packet from this guy 참석자 1 07:59 and it's because it's a perfect packet you merge those packets into one message and then you extract the message from the packet data and you deliver the message up to the top. So this was going down that was going up so this one was waiting for a message from the lower layer this one was waiting for message from the top layer. So again multiplexing demultiplexing but they like to put more details on how these algorithm should work. So that was a 참석자 1 08:32 quite a quick and easy thing RDT 1.0 and they start adding a few more details like we need another set of protocol because we're gonna assume at this time this channel below will show you some error messages. The error messages they were referring to was um 뭐야 like this there is simple error messages zero become a one one become a zero type of errors can happen on the below lay lower layers. So what happens what do we have to do if the error happens on the light layer? 참석자 1 09:11 What RDT argorithm has to do at this time? RDT 2 What do we have to do? What was the solution? They usually go this way here's a perfect channel here's a simple algorithm Now I'm gonna make this a bit more difficult channels and here is the solution and then after that but those won't perfect so there's another problem I like to add more algorithm to this 참석자 1 09:37 and then continue on. So what was a solution to this problem? What happens if the error occurs when you send a packet to between receiver and sent 참석자 1 09:52 How do human beings are recovered from errors? We would like a simple mechanism so sender send the packet receiver has to tell the sender that I receive okay or sender send the packet receiver didn't hear you receiver must have to tell you I didn't hear you okay two messages two messages they suggested that RDT 2.0 protocol should have that's why they start mentioning something like academic We did this last week right 다 아는 건데 나도 까먹어서 참석자 1 10:28 다시 한 번 보는 거예요. Act and neck right? ACT messages are something called receiving okay neck means negative I didn't hear you okay every single time you receive these two messages sender react differently when sender receive an egg because it's okay I need to send the next set of messages. When sender receive an NG it means something went wrong so sender has to resend the previous packets right 참석자 1 10:58 E and neck and we started calling this as a control messages control messages which TCP also does similar however in the actual TCP they don't have a neck in the actual TCP implementation they actually figure out the way of not using a neck and using egg only is okay to handle the situation there was in there but we try to build a simple one aconet is the case and then they say this is good. Here's a following a facet for handling academic right? This is exactly what we discussed 참석자 1 11:48 when receiving when you send a packet which is similar to the RT 10 This time 이가 책상 What was the purpose of a 책상? 책상을 왜 한다 그랬죠? 말이 빠른 것 같아요. 참석자 1 12:19 What was the purpose of a chechong in here transport layer 책상이 뭐였어? Simple ways of verifying whether a received message was okay or not. So we use the example like adding a bunch of numbers and provide a sum of those numbers and then you send it to the receiver receiver recalculate those numbers if the number the sender sent equals the number they computed then okay so we even had 참석자 1 12:49 small checks some field that the UDP have right where they write down the sum of all those summations all those numbers because we're checking for air met we check some is extra functions that we're going to do it here. So when you send your packets you compute the check sum and send it over to this guy. When I send I probably have to wait we an ie here means sender sender has to wait for either act or neck. If they receive a neck means something went wrong right 참석자 1 13:22 so you have to send again the same packet you have sent before. If everything was fine then you receive an EG. If this is true receive packet is an act there's nothing you can do you don't need to do anything you just need to go back to the initial state waiting for another message to send. So in theory you could have another state for A and egg but act state is probably the same as snsday so Tuesday few more actions are fine. 참석자 1 13:57 Receiver side it's even simpler every single time they receive a packet all they have to do is either sending a or send it NE sending neck sending EG when do you send the neck when the checksum does not equal to the Czechsm they compute it when you're not sending when you're sending an AD means that checks some equals and I will need an extra state because every single time I just need to do two actions from a single state. 참석자 1 14:31 Relatedly simpler RDT 2 0 because what they do is simpler than well it's only one case error messages. And then I think the slides show you more like a sequence diagram of if this function is called how the receiver reacts sending a message back and etcetera etcetera. Again here at the beginning of this slide they say this is a unidirectional communication that sender only sends something to the receiver 참석자 1 15:07 but also they made a small assumption that control messages can be sent from a receiver to the sender. So that's one small exception and they started using control messages and data messages. Those terms can be used exactly in the data center architecture that we saw last week. We saw a few slides about those big machines 참석자 1 15:30 operated by those big companies connecting all the servers and switches. When they have those large machines they also need from time to time need to send a small message to the devices to configure something even for configuring IP addresses configuring small devices. Um those type of packets they usually call it as control packets and they refer to the term more like control planes 참석자 1 16:02 the packet that is being exchange among these large devices for configuring monitoring purposes like those a neck control plane other packets that actually carrying the data set is more like. 참석자 1 16:23 So these two concepts also came from this TCP IP or transport control messages ac the actual data is data messes. So when you later when you see this type of DCS or networking you're probably running into terms like this. Often these big companies or network operators like to see a small number of control messages. They don't want to fill up their network with all this act and neck because it's a waste. They wanted to use their network more for the actual data transfer. So 참석자 1 17:04 you might be able to see that there is an issue how to reduce the control messages in the control plane how to increase the data size. 실제로 만약에 보면 여기서 나온 콘셉트이 이렇게 앱 보내고 내 보내고 이런 사실 데이터를 주고받기 위한 건 아니 데이터가 왔다 갔다 하는 건 아니고 데이터를 잘 주고받기 위해서 서로 주고받는 짧은 메시지잖아요. BC 같은 데도 장비가 많으니까 뭐 이렇게 컴퓨터라고 그러죠 뭐 이렇게 명령어도 내리고 이런 일이 많은데 그게 너무 많아지 런 컨트롤 메시지가 많아지면 네트워크가 그걸로 또 막 차요. 그럼 별로 안 좋아해요. 실제로 네트워크하는 데이터만 데이터를 잘 왔다 갔다 하고자 하는 건데 거기에 컨트롤 메시지가 더 많고 그러면 좀 비효율적으로 전달 되다. 컨트롤 플레임 메시지를 어떻게 좀 줄이느냐 이런 것도 이슈가 있는 경우도 있어요. 참석자 1 18:08 좀 나중에 이 다음에 나오는 트랜스미션 가면 컨트롤 메시지가 정말 많은 경우가 있어요. 액만 찾는 경우 네트워크 그러면 조금 받으면 어때? Eventually we will see some situations that your network is filled up with an AX which is not an ideal case 참석자 1 18:36 yeah so this is more like a sequential diagram of how they behave between the two. What was the problem? Next problem after they say this academic can help us to solve this error occurring situations and they say this isn't perfect It's not a perfect approach yet. What was the problem with this approach last week? 이거 분들 마이 타 킹트 맛있어 우리 집에 나만 맨날 거기다 대고 얘기하는 것 같아. 모든 과목이 그래요. 익숙한데 참석자 1 19:18 근데 사람들이 착각하는 게 있잖아. 외국이라고 막 외국 애들은 막 미국 애들은 막 이렇게 자유롭게 의사 표현하고 막 그럴 것 같잖아. 고등학교는 그런 애들이 있을 수 있어요. 고등학교는 약간 그런 분위기라 근데 선생님들이 싫어해요. 근데 고등학교는 그럴 수 있는데 대학에서는 우리랑 비슷해요. 대학교에서 뭐 이런 컴퓨터나 엔지니어 과목에서 막 손 그거 뭐 이렇게 그러면 교수님이 나가라 그래요. 여기서 똑같아요. 질문 잘 없고 질문이 거의 없죠. 근데 이제 문과는 안 그렇다고 그러긴 하대. 나 들어본 적이 없어서 우리도 인문 계열 수업들은 막 토론하고 그런데 뭐 들어본 사람 있어요? 없죠 우리 그거 관심이 없죠. 그래서 너무 뭐 대답 안 한다고 내가 그냥 뭐라 그러는 거니까 너무 신경 쓰지 마요. 나도 한 번도 대답한 적이 없어서. 참석자 1 20:24 What was the problem after this? They say what if your control messages got corrupted? What if it had an error? But if you got your control messages corrupted that's more serious problem like if your neck got corrupted become a neck a got corrupted become a neg It's a complete chaos all right so they say it's not perfect because your control packets can be corrupted. So how do we do this? How do we handle the duplicate and except T 참석자 1 20:55 solution they start suggesting is adding a sequence numbers. So from this time on every time I send the packet we're gonna we're gonna check them with a number. This is packet number zero This is packet number 1 and in this case they wanted to make it simpler because they wanted to avoid any situation. They received two different packets because in the current algorithm there is no no cases how to handle those packets that arrived twice. So they wanted to exclude the situation 참석자 1 21:29 so they just simply use zero one zero one zero one sequence packets to distinguish what was the last packet they have sent. So they say a sequence number could be a solution and here they just simply start adding a sequence number zero and 1 this is sender side Obviously your asset gets large your finite state machine needs to have a more state because at least there are two more cases. So so same thing after you send packet zero you're also waiting for nack or egg if 참석자 1 22:08 everything is fine you're sending a packet number 1 If everything is fine you go back to packet number 0 So you keep spinning here again It's not perfect right? What if you start keep losing if you keep losing packet zero and 1 at the same time what if your next packet jero is referring to your first packet zero? So there will be some cases this isn't perfect right? In terms of midterm purposes Um I usually ask this type of question in the mid term like I give you FSM or I ask you to fill out 참석자 1 22:49 thatsm. So some people try to memorize it but this may be okay RDT 21 may be okay but RDT 30 is too many options we're not even able to write it down in a single page. Um so my suggestion is I mean this is a very still 2.1 It is a simple case that Um if you know what's going to if you have an understanding of what you try to handle 1 pet zero you don't really need to memorize this right if you understand the concept of what they try to do ah So I wouldn't say you should memorize but 참석자 1 23:32 if you don't want to spend your time making these things understandable just memorize it for purposes. 이게 사실 외우면 더 안 외워질 거예요. 차라리 이해해서 하는 게 훨씬 나은데 이해하기 싫은 사람들은 그래도 뭐 어쩔 수 없지. 근데 이거 넘어가면 외울 수도 없어요. 너무 커져서 do you think you can memorize the finite state machine for actual TCP implementation? Impossible huge in terms of sequence number in the actual TCP implementation TCP actually used a sequence number increasing sequence number 참석자 1 24:16 they will like packet journal packet number zero one two three four five six they keep increasing during its transmission. I think they have to let the other guys know the sequence. So it's actually define the TCP header in the TCP header unlike the UDP header that we have seen TCP header has a one large four byte field saying a sequence t so it's a four byte so that's thirty two bits so that's 232. In theory that's a big number for sequence number. 참석자 1 24:55 TCP는 실제로 0 10 1이 아니라 실제로 시퀀스 넘버를 계속 증가시켜면서 봐줄 거예요. 1번 2번 3번 4번 5번 이런 식으로 그러니까 적어서 알려줘야 돼요. 리시버한테도 나 이번 시퀀스는 이거다. 그래서 그 필드는 4바이트로 이렇게 딱 4바이트 맞을 거예요. 4 바이트로 이렇게 딱 돼 있어요. Of course if you increase the sequence numbers um it will be a bit more complicated because you will be dealing with large numbers. So hopefully later if we turn on that 이렇게 다 after TCP. Anyway that's RDT 21 for handling adding a sequence number to try to avoid this problem with the academ 참석자 1 25:49 this is receiver side I'm not gonna even try how to explain it. 너무 많아 이거 어떻게 외워요? I don't think it's possible to memorize. 차라리 이해하려고 하는 게 훨씬 빠른 거예요. 그래봐야 케이스 몇 개 안 되잖아요. Or just a couple of cases whether you receive the ADM sorry whether they receive a packet number zero and you send either A or neck or packet number zero. When you receive packet number 1 you just send a packet app for packet number 1 or a net for packet only two stick. This is handling for act 4 zero act 41 참석자 1 26:35 못 외우지 어떻게 외워요? It's perfect. It's RDT 21 is good enough to add the older error cases probably not. 참석자 1 26:56 So again simply saying it's not perfect because there will be a consecutive loss of packet zero and one. What happens to a packet number zero in in a sequence so it's not a perfect waste and then they wanted to suggest one more It may be possible to use a only Maybe we don't need a nack to do all this neck free program because we wanted to have a less number of traffic in control plane. We like to use our network more efficiently delivering actual data instead of controlling. 참석자 1 27:34 So instead of nagged receiver sends an AD for last act received okay receiver must explicitly include sequence packet being duplicate acts and send the result to the same action as A. If you read this it's a bit hard to see 나는 그 일부는 잘 이해가 잘 안 썼어요. But if you draw a figure simply what they're saying is this is sender receiver so sender send a 보여요? 오케이 sender send the packet number 1 and receiver usually send you a 참석자 1 28:18 packet number 1 so indicating that they receive a packet number 1 okay and then they send packet number two because everything is fine. Recever send for packet one two right and continue continue. What they're saying is if something happens if if they send a packet number three a receiver somehow didn't receive it or found an error. In this case we haven't discussed about the laws so this channel in the between can have you 참석자 1 28:57 error. So when sender sent a packet number three receiver found an error in packet number three error. So instead of sending E for P3 instead of sending ang they say I am sending your E for P2 one more time. 참석자 1 29:23 That's what they say. Instead of sending an NG receiver sends neg for the last packet receive okay from a sender side they expect to receive a P3 but instead they receive a P2 twice act for P2 they also receive act for P2 duplicated app to same app receive so sender can know there must be something wrong because we don't have a lab anymore. So receiving two consecutive to same acts is an indication of 참석자 1 30:01 of a sender that maybe something inv. So from this point on instead of sending a P4 I'm gonna send a P3 one more time because it's telling me there is a S problem so duplicate act at the sender will be the same meaning for next. So so we don't need the neck anymore TCP doesn't doesn't have a neck. They just handle this type of situation whether they receive a multiple packets multiple same acts if they receive a three same acts 참석자 1 30:38 and the indication is something is seriously wrong so they start resending everything these things will help us to understand. So not everything that we built before is going to be implemented is actual TCP. So TCP when you have an app on it looks simple right because we tell you this is the way to do it. Imagine someone trying to come up with the idea in the first place. It's must be really difficult. 지금은 이게 별거 아닌 것 같이 느껴질 수도 있죠. 이거 뭐 이렇게 하면 되네 뭐 별로 어렵지 않네 싶은데 처음 만든 사람이 내을 어떻게 없앨까 얼마나 참석자 1 31:20 고민했는지 생각해 보시면 어마어마하게 고민이 많이 들어가는 겁니다. 이게 그렇지 않을까? 이렇게 정답을 주고 나니까 쉬워 보이지? 이 정답 만들기까지 얼마나 많은 석질들을 대부분 프로토콜들이 그래요. 처음에 누가 이렇게 만들어 놓고 우리 거 좋은 거 같아 했는데 누가 테스트 몇 개 시퀀스 해 시퀀스 깨지는데 이러면 망했다. 그리고 그다음 거저 봐야 그거를 수 없이 반복하다가 나온 거라고 보시면 돼요. 그러니까 그냥 어느 날 갑자기 툭 튀어나온 게 아니에요. 어렵지 사실 저렇게 하려고 그러면 어마어마하게 깨지는 케이스를 많이 찾아낼 수 있을 거예요. 또 네트워크잖아 중간에 어떤 일이나면 끊기는 경우도 있을 수 있고 갑자기 느려지는 경우도 있었어요. 그러니까 어마어마한 케이스들이 많이 나왔어요. All I'm saying is we're giving you a solution. It looks easy but 참석자 1 32:16 it's not that easy to come up with a solution at this stage. It's evolution of protocols and and some will finally make it work. So that free protocol for 2.2 must be difficult. It they are not even trying to give you the entire picture of FSN 2 22 at this point. It's just simply add the point for where you're taking this 뭐야 참석자 1 32:52 whether they have received before double checking whether they have the same sequence at numbers. 참석자 1 33:03 이걸 글루 쓴다고 생각해 봐요. Instead of using an FSM you try to write down a UDO code a lot of if cases T스 플멘테이션 액도 말 이 케이스가 엄청 많이 들어가 있어요. 참석자 1 33:28 Finally last one I we don't even need to read this now we have everything in it. Now underlying channels channels in the between here loss means that they can lose my packet in this picture maybe this is gone not even deliver not just an error This one just gone. What do we have to do when this guy says something to this guy? Sender expect to receive something but they didn't receive it. What might be a quick solution to this sender sends something 참석자 1 34:15 Receiver has to send something When the sender received this guy they can send the next one but this one is gone in the between What's the option for a sender? This 이분이 만약에 이렇게 돼 있으면 샌더가 보내고 리스트버가 뭘 보내야 그다음 걸 보내는데 아무 대답이 안 와 그럼 뭐 하면 돼요? 샌더가 참석자 1 34:44 yeah just simply resent. The question is when I can just resent every single time it's there right? So it must have some type of time period maybe S will be waiting for this much time until they rescent something. If they hear something between this time they're not gonna rescend so why I'm waiting? This message got there so I don't need to send it again 참석자 1 35:21 so it's a simple solution We just need to do a retransmission based on some of the waiting time. This is what we need for loss This is called tiger mechanism So every single time you send the packet you put a timer 1 minute timer send wait for 1 minute during this 1 minute if I receive an act okay if I don't receive any messages I'm gonna send it again without waiting anymore. So a lot of retransmissions can happen. 참석자 1 35:51 Question is how long is 1 minute long enough thirty seconds 2 seconds If I have a really long time out what happens if I have a really long time out 정말 오래 기다리 and your network is cracked they keep losing everything in the B we have a really long waiting time. It means that your communication speed will really slow because if you send one package you wait for like 10 minutes to send the next so the bandwidth they will be using it is really really small. 참석자 1 36:30 많이 빨리 주고받고 못하겠죠 하나 보내고 10분 기다렸다 네트워크 계속 잃어버리는 이런 경우가 있을까? 네트워크가 계속 잃어버리는 경우 Is there a cases that your network keep losing your packets in the between? 참석자 1 36:57 전화기 들고 어디 구석탱이에 가서 인터넷 하면 느리잖아요. 계속 잃는 겁니다. 중간에 이거는 우리는 뭐야 매개체가 없잖아요. 중간에 케이블이 있는 게 아니라 에어로 가잖아요. 그러니까 어디 부석형에 가서 막 이렇게 가리고 이렇게 하면 안테나 막고 하면 계속 중간에서 그게 잃어버리는 거예요. 그럼 얘가 계속 유치원 심션 때리고 걔네들 유치원 심션 때리면 그 전에도 한 번 얘기했죠 그래서 배털이 금방 났다고 그렇죠 그래서 배털이 금방 되는 거예요. 하나의 이유 중에 하나예요. 패켓을 계속 보내려면 계속 커널에다가 보내 보내 보내야 하니까 커널 시스템 콜 때리면 당연히 CPU 계속 때리고 CPU 자꾸 때리면 CPU가 전력 많이 먹으니까 가는 거예요. 그래서 통신 프로토콜 잘못 자면 그냥 다 쓰레기 전기도 많이 먹고 열만 엄청 많고 열이 맞나? 내가 열 받는 게 아니라 열만 엄청 많고 물론 우리도 열 받죠. 참석자 1 38:08 New assumption underlying channels can also lose packets even data even with the control messages everything can be done. Approach standard weight reasonable amount of time for act re transmission retransmit If no AD received in this time 1 minute 30 seconds 2 seconds 어떻게 잡을까? Later how do they determine? One minute twenty second thirty second? What is the big amount of time that we should wait? 어렵지 that's not an easy problem because every network is 참석자 1 38:41 but there was one way that we have seen to measure the time it takes to send one packet receive something from the center. What was the What was the What was the name for the time that we measured last time things like when we did the trace route and etcetera 그 주고 돌아오는 데까지 걸리는 시간이 뭐라고 그랬죠? What was the term could be a mum question Typical networking metum question like we give you this description What is this What is this mechanism or the other way around 참석자 1 39:19 this mechanism is helping to do a re transmission. What is this? Explain define what this mechanism I think the one that we're discussing the time it takes to send and receive subtract RTT return trip time Maybe we can use an RTT to to set up a more proper appropriate values to weight because every network has a different entity that's what TCP do. TCP actually take a look at the RTT every single time they sent and they try to figure out what is a reasonable amount of time they should wait. 참석자 1 40:00 Anyway we got the idea delayed loss retransmission date use the sequence number receiver must receive a sequence from packet 블라블라블라 카운터 타이머 되면 되는 거죠. 길다 it's up to you 가 안 물어볼 거야 because we will discuss more in the TCP I don't think I'm gonna ask you 3 zer but for your references 지금 얘기한 거 그대로 적어놓은 것 뿐이에요. 참석자 1 40:50 But if your time out is too short or lost 참석자 1 41:04 this one sends P1 again what if your time out is really short? 참석자 1 41:16 It's still coming but you couldn't wait because your time out is this much you keep sending eventually it what we get here after two more re transmissions 타임아웃 잡고 쓰면 모르겠 생각보다 it's actually more than you think there are more return. I think right now in this room your laptops your smartphones we exchange the packets in this way using the of course this is layer two but if you count how many retransmissions on this air probably more than 10 percent of your packet is retransmission. 참석자 1 41:54 If your network is really bad it can easily goes up to thirty to fifty percent. If it says fifty percent re transmission every packet that I send I need to send more that's twice as much. 걔도 위트 렌스비션이 절반 이상 나면 패킷 하나 정상적으로 보이려면 두 개씩. 예전에 혹시 기억나는지 모르겠는데 I don't know if you guys remember how do they charge you in mobile phones Nowadays you guys are usually unlimited plans for data usage right? 뭐야 뭐 10기가 20기가 뭐 아니면 무제한 이 문제 쓰고 못 들었는데 지금도 잘 보면 참석자 1 42:37 after you reach the limits of your data some companies they still charge you by the packet. We will charge you packet 얼마 되나? 0 메가 05 1 for a single packet so they actually measured by the packet. So if you exceed the limit of your data usage after that they start counting your number of packets they're receiving and sending and then they multiply by the HOMER stage charging a while ago. Back then they didn't actually make a distinction between retransmission packet or just a packet. 참석자 1 43:20 그러니까 예전에 지금도 그런 요금제 있을 거예요. 넘어가면 그다음부터는 패켓 당 얼마 이렇게 매기는 요금제들도 있어요. 근데 예전에는 패켓당 얼마 위 트랜스미션까지 같이 계속 곱하기로 한 거야. 사기지. 정확하게 얘기하면 그 나는 실제로 10개 주고 받으면 끝나는 건데 위 트랜스솔루션 때문에 예를 들어 15개 주고 받았으면 그렇잖아 5개는 위트랜스솔루션이니까. 그럼 나는 50% 더 내고 있는 예전에는 위 트랜스미션 패켓을 이렇게 걸러내지 않았어요. 원래 원래 팩팩당 차지 이렇게 할 때 나도 그걸 어떻게 알았냐면 어떻게 안 게 아니고 당연히 그럴 거라고 생각을 했는데 실제로 이제 그렇게 안 하는 거는 이제 한 번 이것도 또 회사명으로 밝힐 수 없고 예전에 그런 게 요즘도 그 단어를 쓰는지 모르겠는데 BMT라는 단어를 쓰는지 모르겠어요. 이렇게 참석자 1 44:21 장비 같은 걸 회사에 큰 회사에 납품을 하고 싶으면 이렇게 회사들이 공고를 내고 큰 회사 공고를 내고 그 안에 회사들이 자기 장비를 들고 가서 실제 망에 몰려서 테스팅을 해요. 그래서 그 테스팅을 통과하면서 제일 좋은 점수를 받은 사람을 1순위 그리고 1순위가 이제 계약 조건을 하다가 나가게 되면 2순위 이렇게 하고 하는 그걸 BMT라고 하는데 실제로 가서 이렇게 울리는데 그 조건 사항에 그게 없었어요. 위 트랜스미션 패켓을 구분하는 기능은 없어도 됩니다 였어요. 그게 무슨 뜻이냐 그냥 돈 다 막겠다는 뜻이야. 참석자 1 45:01 그럼 중요할 수도 있죠. 여러분들 잘 몰라서 그렇지 그런 거 요즘도 그럴 거야. KT 같은 데는 핸드폰 쓰고 KT 내비게이션 쓰면 KT 내비게이션 쓰는 트래픽은 돈 안 된다. 이렇게 얘기하지 않아요. 여 내비게이션을 안 써도 잘 모를 것 같아요. 팀앱인가 티앱을 쓰면 SKT 사용자는 팀 앱을 쓰는 데이터 비용은 갈 거서 공짜로 해준다. 그래서 그거 어떻게 해 팀 에스앤드 왔다 갔다는 패킷을 구분하지 못하면 돈을 이렇게 뺄 수가 없잖아. 여기 지금 그걸 다 하고 있다는 얘기. 사실 빼주고 있는지 안 빼주고 있는 건지 알 수는 없어요. 왜냐하면 데이터 장비에서 오류 나서 어 이때 오류 났네요. 그러면 증거를 가져오세요. 이런 게 없으니까. 참석자 1 46:01 자꾸 통신사에 대해서 되게 부정적인 이야기만 하는데 그렇지 않습니다. 귀하게 부정적인 얘기하는 사람들 볼까 내가 신문 하나 참석자 1 46:27 네이버 이제 다음은 검색 따위가 되지 않으니까 I was looking for I saw some article. I 가 어떻게 차려야 되는 거 참석자 1 46:50 그래 뭐 뭐 이런 게 나오는데 어제 나온 그거던데 나 됐어 이거 참석자 1 47:03 그거 안 참석자 1 47:09 I'm gonna do the trans after reading in Korean it says um I don't know what to do. They all the elementary schools in Korea they will be using a I don't know if it's stuck using a textbook no paper books anymore. Starting from next year they will give a tablet to every student and then so no papers in schools. So that's a planned for next year. So they are gonna replace everything. In order to do that 참석자 1 47:43 the first thing they had to do is upgrade the internet speed of every elementary school across the country. So they four thousand I guess 4 thousand so they try to increase the internet speed of the skull so they try to do that. So this is almost November so they have two three months to upgrade everything so they can start the school next March 뭐 이러 하나 so they're rushing into it and if you read it through it says 참석자 1 48:19 the current school net is I guess it's a 1 gigabits per second link for the school. They were thinking about upgrading to 10 gigabits per second link. We don't even have a 10 gigabits per second like in Hyan University. So every high school every elementary school they try to upgrade this they say for 얼마더라? 7 years 1600억이면 얼마? 1 six billion dollars for seven years of internet usage among the elementary school that's a huge amount of M 참석자 1 49:00 and they're saying some schools because 10 giga b is 5 k I don't know where the 5 P came from. 10ga is the link to go for 이거 한다길래 좋은 거죠. It's a good thing doing an upgrade of a backbone to a 10g a good thing but not even university have a 10gig backbone thing. So I was thinking maybe we're falling really behind. 이거 이렇게 하게 되면 스위치나 장비들은 또 이런 학교에 들어가는 거 공공 교육에 들어가는 건 외산 장비가 못 들어가요. 거의 다 국산 장비로만 들어가요. 국산 장비만 밖에 법이 되어 있어요. 그래서 이제 중소기업 꽤 큰 몇 군데에서 하는데 라우터 같은 거는 조금 참석자 1 49:55 조금 못 믿어서 못 하고 이제 레이어 2 레어 3 디바이스 정도는 다 들어가는데 이제 걔네만 이제 돈 잔치 하는 거죠. 이 쉽기가 이렇게 깐다고 물론 해야 되는 건 하는데 이거 보면서 나도 저런 거 스위치 팔아야 되는데 이러면서 참석자 1 50:19 six months to do. So 통신회사들이 이런 데서 그냥 하는 거죠. 참석자 1 50:34 돈이 많은가 봐 그렇지 대답도 좀 이렇게 해주지. 참석자 1 50:42 NI라는 기관 들어봤어요? NI가 이런 거 하는 거 하도 이런 거 아예 막아 대서 정보 사회 지능 했는데 뭐 또 이름이 다를 거예요. nia is like organization doing an infra large government project doing 이거 아마 분명히 next year we will see another news that school net went down because of to rush into upgrade too fast that they didn't do any much testing. 아마 스쿨에 다운 이런 얘기 나올 거예요. 애들 집에 감 뭐 이런 거 서 내 얘기 할까 내가 맞을 것 같은 느낌. 내년에 AI 국과수 나오고 서버는 멀쩡한데 인터넷이 안 돼서 다 이틀 동안 등교 못하고 이런 뉴스 나올 거고요. 태블릿도 싸게 해갖고 태블릿 애들 다 떨어서 고장 내고 참석자 1 51:58 나 같으면 어떻게 할 것 같아요 내가 만약에 저 책임자요 네트워크 책임자 난 초등학교 인터넷 다 끊어버릴 거야. 아예 결혼 안 시킬 거야. 그 돈으로 대학이나 차라리 고등학교 참석자 1 52:21 내가 애들 그런 적이 한 번 있거든. 무슨 회의를 들어가는데 NFT 한참 막 이슈 되고 이럴 때가 작년이죠. 그래서 무슨 회의체라고 만들었다고 내가 다른 과목도 얘기한 거 이렇게 만들었다고 전화가 어디서 오는데 뭐 자기네들 회의하는데 좀 와줄 수 있냐 시간이 되냐 없는데요. 그랬더니 자기네들이 한 8명인가 이렇게 나라에서 뭘 만들라고 그래서 모였는데 8명 중에 컴퓨터 전공이 한 명도 없다는 거야. 다들 바쁘시다고 안 온다고 그러는데 그렇게 나도 잘 모르는데요. 그래도 시간 되면 잠깐 교통비 주나요? 내가 물어봤거든. 그래요 역삼역이랑 가깝긴 하더라고요. 가는데 정말 9명인가 8명이가 앉아 있는데 다 변호사가 앉아 있는 1명은 특허청인가 이제 정부에서 나온 한 두 명 앉아 있고 나머지 그 미원이라고 하는데 다 다 변호사예요. 다 법하는 사람이에요 컴퓨터 하는 사람이죠. 에스티를 어떻게 기대하면서 참석자 1 53:25 여기서 코인 사 보신 분 있어요? 그랬더니 아 손을 안 들어요. 그래서 뭐 하는 거야 막 이러면서 그래서 NFT를 어떻게 막아야 되냐고 막 이렇게 얘기하길래 막 자기네들끼리 막 법령이니까 나는 잘 모르고 뭐 하다가 이걸 어떻게 규제를 해야 되냐 그랬어요. 나중에 그랬어요. 그냥 오픈 시라고 되게 크게 NFT 팔고 이런 사이트들이 있거든요. 오픈 시 그냥 막아버려요. 이게 되더라고. 그렇게 시간 낭비해 갖고 열심히 봄 얘기하는데 그냥 사이트 막아버리면 간단해요. 못 싸게 팔고 하면 될 거 아니냐고 그랬더니 어떻게 컴퓨터 하는 사람이 그렇게 얘기할 수 있네 참석자 1 54:06 그거 만큼 확실한 솔루션이에요. 나라에서 유에 사이트 막듯이 nf 사업 하는 사이트 막으면 간단한 얘기를 왜 여기서 이러고 있냐 막 만들어가지고 그 당시에는 BH라고 그러더라. 뭐 위에 보고해야 한다고 막 그냥 결국에는 NFT 많이 따라 나죠. 마음은 간단해요. 참석자 1 54:30 이렇게 못 왔다 갔다 하게 하면 될 거 아니야 나도 이상한 사람 쳐다보듯이 하기는 하더라고. 그러 가서 너무 싫어. 무 컴퓨터 하는 사람 한 명도 없이 범하는 사람들 여기 앉아 갖고 뭐 기술이 어떻게 돼 가지고 네트워크 어떻게 돼 이따 얘기하고 있으니까 막 속에서 열불이 나가지고 근데 너무 막 유명한 법률에서 김앤장 율천 이런 사람들이 있길래 가만히 있어야지 하고 한마디만 던지고 왔어요. 근데 다음부터 안 부르더라고요. 안 가지 참석자 1 55:13 This is a case that I try to drop up here but if you lost what if your time out is too short? You're sending packet even before you receive an act So there are certain cases that's why they called loss a premature too short time out and etc etc. So RDT of 2 RDT 3.0 is covering error cases as well as packet loss cases Okay is this perfect? Are we going to use an RDT 30 to exchange packet in the real INT? Any problem with the RDT 3.0 it seems to be covering now error and loss everything right 참석자 1 56:03 The problem of this approach is too slow. You send wait you send wait you send. If you need to send 100 packets then you have to wait for 100 RTT which is going to be really slow. So they do a quick computation. We don't need to know what the thing they say if you given this link if you compute the transmission delay which was the size of your pack at the speed of the length that we know simple division It says transmission delay is about 8 microseconds. 참석자 1 56:40 If you are given the situation we computed the RDT If you use the RDT 30 they computed some value like zero point 00 27 that's in terms of percentage that's zero point zero 27 percent and they say utilization It means that if you are given a 1 gigavis link if you use this protocol you only use 1 gigabit times 0 0 0 0 0 2 7 That's really low that's really low given a 1 gigabit second link you're using like kilobyte. So what they're saying is just too slow it's very inefficient okay 여기 나오네 참석자 1 57:21 if you have this 30 millisecond RTT the maximum speed that you can get is thirty three kil bits per second x 이거 b라서bytes per second wasting 99 99 eighty percent of the link. That's what utilization means if you use a 1 gigabit second link during the fixed amount of time you use a 500 mega bits per second that's a 50 percent utilization of the 참석자 1 57:52 they usually measure how efficient how much that we're using a network in terms of utilization that's the how much utilization that we can get from this particular program. So that's really bad even though it's handling every error cases and and error cases and losses but it's still because the picture says so 우리 식이 이거죠 1 RTT Another RTT this is transmission delay of the packet it's a long How do you make this faster and using this as well? 어떻게 하면 더 빨라져요? 참석자 1 58:53 Simple that stand without waiting sand stand without waiting for the L the picture says it's called a pipelining. So instead of sending a one packet waiting for act you keep sending sending sending sending sending and these are the older E on his play So don't waiting keep sending However we cannot send send infinite number of pack there must be some type of limits maybe I can send maximum 5 packets at a time maybe I can send 10 packets 참석자 1 59:29 at a time so we need to adjust that ratio but the idea is we keep sending it that's called as pipeline protocols. So you're combining RDT3 with pipelining architecture. If you put these two together that's what TCP does 이 그래서 in your textbook they actually use the analogy of of a plane airport. I think it's the US right 이 미국 지도 같지 LA to New York The when you try to take a flight from here to here 참석자 1 1:00:06 there are many different flight right so they don't go one and then if they arrive here they don't start them they don't do this plan. There's a lot of plane on the air. What's the risk of doing? So what if you have sending a lot of flight on the air? What is the risk? 위에 비행기 엄청 많이 하늘을 떠돌고 있잖아요. 가끔 문제 생기는 경우 뭐가 있어요? What is a typical 참석자 1 1:00:40 I don't know how to describe rescending a packet in terms of flight but I think the right case resending his own problem. I was going for a bit simpler problem like what if you have a lot of packets on the air a lot of flight on the air What if your airport is what? They don't have enough space to land all this aircraft What happens? They usually circle around the air to get a chance right? And airport usually have a certain limit of pack certain limit of flight. They can 참석자 1 1:01:12 they can have maximum like we can have 1 thousand plane at a time. What if we have 1 thousand 1 planes on the air? So limitation on the airport is like a buffer spaces the maximum amount of memory they can have received and sent that's a buffer spaces exact same thing for our packets. In order to receive a packet in this pipeline architecture each sender receiver needs to have a small memory space in the buffer. 참석자 1 1:01:43 If the buffer space is large we can send a lot. If the buffer space is small we need to send to fit that buffer spaces. So that might be another performance factor in this pipeline architecture. 막 비행기 와서 뜨고 있다가 공항에 더 이상 내릴 때 없으면 비행기도 위에서 비행기 돌죠 비행기는 못 내리면 다 죽으니까 패켓을 그렇게 빈빈 놓면 그냥 다 죽여버리면 되는데 비비가 안 되어. 책에서 비행기 예제로 이 파이프라인을 설명하려고 그랬는데 약간 좀 무리하는 부분도 좀 있어요. 그래서 감안하시고 보시라고요. 그래서 각 공항마다 100개 최대 100개 500개 정도 비행기가 착륙할 수 있다 이런 게 있는데 그 이상 넘어가면 사실 더 이상 보내면 안 되죠. 참석자 1 1:02:32 그게 TCP 하는 거랑 똑같아요. TCP later will figure out what's the maximum number of packets that this guy can have. So that will send just enough number of packets to receive for this guys to receive it. If you send more you're making this guy go crazy. Exact same buffer controlling mechanism is implemented in a TCP. So pipelining plus buffering at the end put all this together TCP 참석자 1 1:03:02 so like I told you from the beginning if you start with an RT this is basically how the TCP works. Let's let's take a quick break 한 50분만 쉬었다가 let me finish up. 참석자 1 1:12:57 난 너무 네거티브한가 봐. 모든 게 약간 부정적이야. 그러면 안 되겠네요. 그러면 안 참석자 1 1:13:14 나는 내가 한 번도 공대 성향이라고 생각해 본 적이 없었는데 지금까지도 가끔 뭐 이제 인문이나 이런 데 사는 거 보면 내가 공대 성형이 맞긴 맞나 봐. 그런 데는 진짜 못 앉아 있어. 커션하고 말도 안 되는 얘기 해야 되고 막 이러는 거 보면 막 나이가 먹어갖고 뒤틀리는데 못 앉았겠어 막 박차고 나가고 싶고 아니면 변호사를 했어야 되는데 변호사는 공부를 못해서 변호사를 못 했을 것 같아. 참석자 1 1:13:53 여러분들도 부모님 말 잘 들어요. 지금도 늦지 않았어요. 우리 아버지가 그날 그날 때 무조건 곱대 가라 막 이러셨는데 그만 이렇게 깔끔하게 무시하고 내 마음대로 갔다가 그러고 구 잘 들어. 참석자 1 1:14:19 Let's 8이님 파이님 let me quickly finish up the slide that I will discuss a little bit about your midterm piping. So sending a lot of packets buffering buffering at the sender receiver spaces that you can receive and send sequence number flight number one two three four because that seems to be reasonable right 참석자 1 1:14:48 because we're sending many packets at a time. So in order to distinguish which packet is which packet we're going to use sequence number but sequence number that will be increasing no more zero one zero 1 zero 1 It's if you don't want these three four five six seven sequence number including sequence number buffering at the sender receiver again this is how the TCP works 참석자 1 1:15:13 and in terms of a two pipeline protocol they have actually two different approaches Go back in and selective repeat this is a one of the to top algorithms that didn't use to sending a lot of packets. How do they do that? The next slide that I actually try to explain sorry 이거 먼저 오케이 So from compared to the previous one last time we just send one and wait this time we're sending without waiting for the A so simply 참석자 1 1:15:50 efficiency multiply multiply by three so it's three times better than previous stop and stop and wight protocol 1 by 1 now 3 if you send 10 probably 10 times better than previous one all right so we wanted to have a utilization high so we can send more packets faster and they try to give you the go back end this is go back and for architecture this is elector repeat they try to explain in words 참석자 1 1:16:21 however if you read this it's a bit hard to see they even have a diagram the next page but it's hard to see just quickly 참석자 1 1:16:36 here are individual acts that's two different features of how this two algorithm works. So before we actually start reading that let's take a look at the quick animation they provide and the next slide they actually give you this if you click on the link then this is what you will see. 참석자 1 1:17:09 Let me repeat Go back and 이자 this much better reading textbook difficult this much better to go back and let's try go back in first and here are a couple of configurations that we can make. The first window says this first one says window size of five sets the window size for the windows. What is a window? This is indicating how many packets I'm going to set 참석자 1 1:17:32 at the same time we'll be calling this as a window size. This is the exact name that we're using and TCP proheader window size so currently default is five so if I increase this to 10 then 10 packets will be sent without waiting for the L to end delay how much time it takes to travel from one point to the other because we try to make a simulation we just put some values okay time time 하든요 the time had to wait until you don't hear anything right so they actually give the 참석자 1 1:18:06 some relative time out in this first scenario. So if you change this value maybe too short you will be seeing a lot of retransmission before you see the neck okay so I'm gonna just use the default values and this is the speed of the simulation. Let me let me just start it and see how they work and then you can try a few times. So I'm gonna try go back in window size five and that's the delay from sender to receiver and time out of a sender is 참석자 1 1:18:41 in those five. You can see that there's one big timer for window side five act is going up. This is an act of the sender receiver every packet that you send this guy will send an act for each packet they receive okay but they do that by this window and this window is sliding so this is another example of sliding window 할 거거든요. So if I made the size 10 10 window sliding on my mind it's it's everything is fine situation. So what if I changed a little bit? I mean let me just start it again 참석자 1 1:19:40 you can see that the other packets received okay but they're still acting. The last correctly received packets keep doing this even though there was this one this one arrived okay and when the tim out happened they send everything one more time so cumulated act just like the previous example they only send slight over you kill it one more time. What if I kill this guy will be ex of packet 1 even though they receive their packet okay they're not gonna act the packet they receive accumulative act 참석자 1 1:20:21 after this point they probably send everything one more time. 참석자 1 1:20:38 There is a missing packet in the vine but still it's okay. You can still send many packets at once 참석자 1 1:21:03 window size 10 now end to end delay is huge increased time out and this start you will see chaos time out too fast time out too fast keep sending this is so if you screw up this volume you can see that you're filling up with the network with the unnecessary retransmission especially this approach they have a one timer for entire 도 이러면 이제 네트워크가 꽉 차기 시작하죠. 그러면 갑자기 네트워크가 늘어지는 느낌이 날 거예요. 얘네도 복잡해져요. 지금 고백현에서는 이거 받아봐야 다 버려야 되거든요. 중간에 없어지면 그렇죠 참석자 1 1:22:07 이건 완전 꼬였네 This is totally messed up so let's go back What about the lenticpit? So let's go back to here Sender can have up to and on packets in a pipeline 5 and here was 5 The second example was 10 receiver only send a cumulated AX doesn't act the packets if there is a gap 제가 하나 준비해 드렸습니다. There was a missing one they only act the packets of the previously 참석자 1 1:22:45 receive Okay What so sender receiving a multiple act of the same guy that's probably another sign to the sender that there must be something wrong no NG here Everything is an app 내 없죠 Sender has a timer for the oldest ONG packets. If timer expires retransmit all UNC packets at the same time the entire window going down Timulate back What about selective repeat? We see the selective repeat I choose say select to repeat I use the same fine I'm gonna reduce a little bit 참석자 1 1:23:38 So this is selective repeat 오 왜 이렇게 빨라 every time for every single packet They said not the oldest one okay movie movie This is too fast 참석자 1 1:24:00 and then I'm gonna ke a sum of it Okay started again to make things 이지요 참석자 1 1:24:10 and select to repeat window size five and start and I'm gonna kill this guy What happens? Previous go back and they probably act this guy but this time we're going to act this guy so they will be acting for individual packets They have received So there is still a gap right This one will be received Why is this looks a bit better or what do we need to do this If this is the case 참석자 1 1:24:40 because it's acting the packet that is not received only so maybe there is a less number of retransmissions in the case Plus it also means that they have they will be saving the packet they received after so they wait until they receive the previous packet okay and then they probably probably merge it and then send it to the application there. 참석자 1 1:25:05 So this one has more buffer space they're going to store the packets that have arrived even after the missing packets because they're doing an individual act of the every packet that you received and sent 참석자 1 1:25:22 because I kill this guy this one should be acting its own right and then they have saved these four and then first one came they move to the next. So individual I 참석자 1 1:25:46 sender can have up to and on packet in the pipeline receiver send IND packet to Cul. LG sender maintains the timer for each ONLG packets. When the timer expires we transmit. Obviously the biggest difference between the two is selective repeat will store those packets that arrive in out of order they simply discarded. 그니까 고백엔에서는 순서 뒤엉켜서 오는 패켓은 어차피 샌드에서 다시 보내니까 다 버려요. 셀렉트 핏은 순서 뒤바뀌어 온 것도 가지고 있다가 앞에 빈 순서 오면 기다렸다가 다시 뭉쳐가지고 메시지 해서 위로 올릴 거예요. 참석자 1 1:26:30 So in terms of igorithm and buffer spaces selective repeat is probably a bit more complicated than go back in 그래서 이렇게 써놨는데 I never understood by reading this slide or textbook the animation always helps to understand. 참석자 1 1:26:55 This is sender side FSM for go back again. I'm not gonna even try out of order packets for cube again no receiver buffering they're not gonna store it they highlight that okay react the package with the high or in order sequence. In order means they arrive in order. If there is a missing that will be out of order 참석자 1 1:27:29 Yeah so this is the exact case that we saw and we killed one of them and they keep acting the previous arrive on. Instead of doing this we keep acting this one until they receive the one that is missing. Elect your repeat receiver individually acknowledge or correctly receive packets buffers packets store those packets as min for eventually in order delivery to our upper layer sender only resends the packets for which acts not received 참석자 1 1:28:08 sender window and consecutive sequence numbers again limit the sequence number of the sender ong 굳이 헷갈리면 안 보셔도 돼요. Anyway the main idea is sequence number keep increasing you only add the numbers that you received okay and you can temporarily store those pikets to U until they receive the missing part biggest difference between the two if I understand correctly I may be wrong. The TCP used both 참석자 1 1:28:40 they're not just using selected repeat or go back again a little bit of H. So TCP used these two approaches depending on the situation. That's what I remember from okay So just don't think of a selective repeat is a good approach okay selectiveity is one of the ways that we can handle it. In fact TCP has multiple different versions of TCP. The current TCP that we use is normal TCP popul TPAO and etc. When you install Menux Linux actually comes up with the 참석자 1 1:29:11 a few different versions of TCP in that Linux community approved. So Linux community look at the many different TCP implementation they just take this one it's it's been proven it's working so it will be included as a default next version but we don't we don't usually touch that right we just instilled us. So in case um if you wanted to use some special TCP 참석자 1 1:29:36 then you can enable those TCP protocol not the one that using it and then you can use to whatever. Why do we have a different version of TCP? Because sometimes we like to send large data really fast okay if you wanted to do that maybe using the conventional TCP we like to use a specialized TCP that sending and window size really big at the beginning TCP도 여러 가지 버전이 있어서 우리가 그냥 쓰는 거는 그냥 일반적인 버전이고요. 리눅스 같은 거 깔면 이 TCP 버전을 고를 수 있게 기본적으로 디폴트로 들어와 있는 TCP 버전들이 있어요. 그런데 우리는 대부분 이렇게 선택해서 안 쓰니까 참석자 1 1:30:18 필요한 경우에는 선택해서 예를 들어 데이터를 갑자기 엄청 많이 보내야 된다. 쉽게 얘기하면 윈도우 사이즈가 초반부터 엄청 커야 된다. 이런 식으로 데이터를 많이 보내야 되는 경우면 TCP 빅 이런 애들이 있어요. 그러면 양쪽에서 TCP 빅으로 이제 클라이언트 서버가 주고 받게 된다든가 그 목적에 따라서 TCP가 조금 다르게 행동하는 애들은 이제 이런 알고리즘을 좀 섞어 쓰겠죠 리눅스에 TCP 버전 들어가는 건 엄청 어려운 거지. 미눅스를 커뮤니티에서 다 이렇게 보고 확인해서 들어가도 된다. 이런 거니까 실제로 나중에 window 사이즈로 스피드를 많이 조절을 할 겁니다. And the actual TCP implementation window size is one of the ways to control the speed. 참석자 1 1:31:07 How do we control this window size? Should we use a window size really large window size at the beginning or should I use a very small window size at the beginning or and then increasing or which way is better depending on the property of how we design those stuff we determine the special 참석자 1 1:31:31 비교하면 이게 다야 out of order in order comering or not timer e etc etc. 보다 보니까 갑자기 생각이 난 건데 혹시 looking at this and um I thought I remember this blog actually I actually giving this blog to other classes as an example of what should be a technical blog like those of you Who's taking 뭐 AI right this term I think one of the examples that I gave you was this bot 뭐 이렇게 해갖고 this is what 뭐냐 Technical blog should be 참석자 1 1:32:15 title of this blog is this How to receive a million packets per second and a normal limits So he talked about the normal Linux and you just make up sokuets and try to receive a packet. So the other guy send a really large number of packets try to receive it in your Linux your Linux probably 참석자 1 1:32:45 often you cannot receive more than like fifty thousand packets per second that's very high. 한 5만 개 이상도 이렇게 패키지 넘어으면 법 없대요. 커너에서 올려오면 so this guy looking at it and maybe he has a need to receive this large number of packets. So he would like to change a few configurations in the Linux to receiving 1 million UDP packets to his machine. If you if your computer receive 1 million packets per second 요 루징 99 퍼센도 밝겠지 사실 그렇게 못 받아 올려요. 인터페이스에서 올리지도 커널까지 올라가지도 못하고 그냥 다 죽어요. 100만 개가 초당 100만 개가 올라오는 거요. 참석자 1 1:33:31 사이즈는 처치하더라고요. So he actually showed you how he tried. Again I actually give you give this blog to other courses or as a sample of what the technical blog looked like but this one is actually related to networking so he actually should 뭐 이렇게 쓸까요? 여기 써놨네 실제로 해보니 50k 5만 PPS per core is the limit of the even for now. 요즘은 조금 나아질 수도 있겠지만 나도 똑같이 실험해 보면 5만 개 넘기가 쉽지가 않아. 패켓을 5만 개 보내는 것도 쉽지 않아요. 나가는 건 더 해요. 예를 들어 5만 참석자 1 1:34:15 여러분들 두 번째 숙제가 뭐였지? What was your second assignment? What was the last question of your second assignment? I ask you to try how many packet that you can send to the server that's the exact same thing. So I talked to some of you sometimes it seems to be getting responses even though you send a lot of almost no 1 millisecond apart for each pack in a wildom but you're still getting responses. You're thinking like 참석자 1 1:34:45 how do I respond to this? Because server says I'm only allowed to send a maybe 100 packets 100 requests per second but I'm sending more. How do I still get the responses? First reason is because your machine your mag lindux windows wasn't able to send that many packets in the first place. So you think you're sending that much but you're not sending that much so server still accept your request. 이 비슷한 얘기. 숙제 두 번째 하면 막 엄청 뽀득 돌려가지고 막 리스컬 하나씩 보내는 것 같으면 저쪽에서 참석자 1 1:35:22 분명히 리미트 걸렸다고 내 거 패킷을 떨어내야 될 것 같은데 그런 메시지가 안 오는 경우도 있었을 거잖아요. 그럼 무슨 뜻이냐면 자기 무릎에서 그만큼 패키지 나가지도 못하고 있다. 지금 리눅스 그만큼 보낼 수가 없어요. 아무것도 안 하고 하면 얘도 똑같은 거예요. 받는 것도 50만 개는 안 되고 보내는 것도 여러분들 머시어 하면 2만 개 3만 개 정도 하면 더 이상 나가지 못해요. 그냥 이렇게 해갖고 하면 유즈 스페이스에서 커널 가서 커널에서 인터페이스까지 거쳐서 했던데 또 같이 놨어요. So he tried so this actually requires a bit more understanding of 이렇게 하네. So he tried to send a precisely thirty two byte of uw payload 참석자 1 1:36:12 so 74 byte in total so 32 byte of UDP UDP had eight bytes so that's 40 byte. Also IP around 20 bytes so ethernet is around eight bytes. So if you add it up eventually he want he will be sending a 74 byte packet size receiving it sending and then this is his computer to processor. 지온이면 여러분들은 지온은 잘 안 쓰. 여러분들 CPU는 뭐지? 인텔 거 What's your current CPU for your INTEL? 이름이 뭐니? 무슨 무슨 무슨 레이크 뭐 이렇지 않아 이름은 잘 모르겠지 What is the difference between those CPUs in your laptops things like this 참석자 1 1:37:10 in terms of speed your things probably a lot higher. 뭐 그건 뭐 3 5 막 이렇게 할 건데 이런 거는 서버 형이랑 2점 이를 코어가 안정적이라고 해서 코어가 많고요. CP 벌처 코어가 많고 걔네들이 이렇게 똑같이 동작하는 데 좀 최소한 서버에 많이 들어가는 안정적으로 도는 데 많이 들어가야 돼요. 퍼포먼스가 되게 높지 않고 퍼포먼스를 조금 줄이는 대신에 많은 양을 처리할 수 있게 안정적으로 여러분들 CPU는 코어가 많아 보여도 코어마다 조금씩 성능이 달라요. 그래서 안정적으로 분산하기가 좀 힘든 CPU입니다. 그래서 depending on the CPU the how much data they can handle is different. So typical networking latest herbers are using a processors expensive ones to do so so it says 24 processors 참석자 1 1:38:02 and he wrote a UDP sender receiver 그래가지고 이렇게 한 거야. This is look familiar 어디서 많이 본 것 같죠? Look like what simple soket server that we tried with the Python and then I think he tried to send us small amount of packets for each part in the same machine. 이거 뭐겠어요? What is this? If you don't know what this is you cannot write a mid term at this point you will go at 참석자 1 1:38:45 폴 던 거 아닐까? It says fine port number local host connecting local number another server maybe client server another side port number 4 3 2 1 6500 아마 저거는 OS에 리퀘스트 하는 방법 중에 하나일 거예요. 아예 달라고. So we just try to send the 10 times in two packets and then he tried it just like our previous example Mada sender made a receiver so sender keeps sending to this receiver will be receiving this number of packets PGPS 참석자 1 1:39:24 and then you multiply by how many packets you received by 75 bytes 74 bytes and that's how much data is being transferred. 이렇게 하면 at some point you not receiving that many 그 이렇게 하니까 리미트를 찾은 거예요. 이렇게 하다 보니까 안 되더라. 더 이상 받지 못하더래요. 참석자 1 1:39:47 And then he was looking at the solution possible. What is the what does this look like? So he try simple UDP sender receiver you realize that it's not receiving that many packets as you hoped. 이거 뭐야? 뭐처럼 생겼어요? 몇 번 했는데 다른 거 뭐 있어? 뭐 했어 안 했어? How many of you taking a systems with me? What would it look like? 이게 뭐야? 프로그램 어? HTP H top show you the CP utilization of your system. 이렇게 하잖아. 우리 처음 보는 사람처럼 이럴 거야. 참석자 1 1:40:33 이거 옛날에 워스트에서 비슷하게 했어요. 물론 네트워크 좋아하는지 so each machine says he has a twenty four cores so CPU number 6 is 300 percent. So the problem we found that is when those UDP sender receiver on the same machine when you have one process is working on your system these processes will be randomly assigned to the CPU and then you're switching around the CPU. 실제로 프로그램이 프로세스를 이렇게 돌면 이 프로세스가 이번에는 6번 CPU에서 돌다가 잠깐 쉬었다가 7번 CPU에 돌다가 10번을 치웠다가 프로세스 계속 CPU 스케줄링을 해요. 그렇지 러닝 스테이 웨이팅 스테이 기억나요? 참석자 1 1:41:23 How do you describe the process state if there are five state that discussed 똑같아요. But that time we had a one CPU process goes in and the actual multiprocessing environment you programmed is keep back and forth. He realized that if he does that when because of this switching time he will be losing a lot of packets. So solution one of the solution he tried is he liked to set this program into a just using one of these CPU only. So 참석자 1 1:41:57 why we're switching? Make sure we're not losing that any packets. 실제로 리시버 UDP 리시버라고 패켓을 받는 프로그램을 하나는데 이게 계속 CPU랑 계속 스위치 해서 다니면 스위치 하는 시간 그 짧은 시간에도 패켓을 계속 잊어버려요. 그래서 여기다 이렇게 얘기를 해줘요. 이 프로그램은 8번 CPU만 써요 겠다. 그러면 CPU 스위칭 하는 데 시간을 덜 쓰게 되니까 타켓을 그만큼 더 많이 받아 올릴 수 있게 이렇게 하는 거예요. 뭐 하는 solution approaches 이게 좋아요. So they actually actually did this. 뉴마 이런 건 메모리 매핑 해야지 참석자 1 1:42:44 리눅스에서 많이 있어요. 리스 What's a system command for test set? I know this is a bit more advanced than our networking courses but this is this packet receiving. 어떻게 스et Anybody remember what task set does in Vix? 찍어봐 찍어 봐. 참석자 1 1:43:10 원래 네트워크 하다 보면 다 나옵니다. 특히 이렇게 빨리 패킷을 알아서 올리고 이런 쪽으로 가면 일단 OS 먼저 스키닉이 있어야 되고 OS를 이해하려면 또 CPU 멀티코 어떻게 돌어가는지도 좀 이해가 돼야 되고 버퍼 비워주는 건데 그러니까 막 커널하고 막 섞여서 나와요. 나중에 문제가 되는 건 또 이제 디스크 쪽 문제가 나와요. 이렇게 1ml씩 패켓을 받아갖고 메모리에 쓰면 디스크에 써갖고 저장을 했는데 디스크가 빠르지가 않아요. 그렇잖아요 메모리가 빠르지 디스크를 또 가는 건 또 느리니까 그럼 디스크에 가다가 또 패켓이 없어져요. 이게 쉬운 문제가 아니에요. 요즘 디스크는 워낙에 좋으니까 SSD 같은 건 많이 봐. 그래도 그냥 쓰면 시스템에서 없어지고 테스 셋 모니터 테스 참석자 1 1:43:59 It's one of the Linux command that telling this program this UDP sender UDP sender should be using a CPU number 1 and 2 only. So we're going to assign this program a CPU 1 and 2 only so this UNP sender will not go to other s. This will make things fit faster. 보내는 것도 문제잖아. Sending one unit back He's testing it because they were able to do this because the Lin' current interfaces for network that actually have this 실제로 이렇게 돼 있대요. So internet cable packet coming in your nic your WI fi card 참석자 1 1:44:42 actually each CPU have its own buffer spaces buffer that we discussed 큐잖아요 buffer is a cue packet comes in. So sometimes if the receiver program running by the CPU number zero the packets were stored in if the switch the CPU 2 packets in here but we want all those packets in the one place. 이렇다 보니까 멀티큐로 하니까 와 따 갔다 하다가 100에서 다 못 받는 거예요. 그래서 이 중에 하나만 딱 이렇게 그런데 이렇게 딱 하나만 하면 문제가 뭐가 돼요? 이 CP 1 to do this what might be the problem of this? 어지 참석자 1 1:45:20 buffer is not big enough. One million pair the single buffer cannot have it. So later approaches he assigned this programmed to fix by a single CPU and then you try to figure out ways of making this CEUE larger which you might be able to do in Linux configurations. You can tell the Linux that I like to increase my network buffer size. You can actually configure that in any common. So this blog how he failed how we make it work. So this is still a nice 참석자 1 1:45:58 technical block. Even years not much has been changed in the wind sets. 사실 이거 블로그 보고 이렇게 하면 되게 좋죠 전반적으로 네트워크랑 오스랑 이렇게 짬뽕으로 할 수 있으니까 난 처음에 보고 되게 좋다 그랬어요. 나도 똑같은 짓을 했었거든요. 똑같은 짓을 했는데 짜증이 나요 안 돼. 일단 보내는 것부터가 잘 안 되기 때문에 보내는 거 프로그램 차단하면 안 되는 나중에 비싼 장비 사요. 켓 밀리언 이렇게 하드웨어에서 찍어서 보내줄 수 있는 장비들이 있어요. 결국엔 그렇게 하고 근데 리시버 쪽도 미닉스 코너만 만져갖고는 또 이렇게 원한 성능이 잘 나오지 않아서 나중에 또 장비를 또 사요. 비싼 하드웨어가 그런 식으로 많이 하는데 커널에 있는 거에서 해결하는 어프로치는 뭐 꼭 이것 때문에 보완하는 건 아니고 커널이 어떻게 돌아가는지 커널 큐가 어떻게 되어 있는지 이런 걸 이해하는 데는 참석자 1 1:46:54 되게 좋아요. So I really liked it to see the entire structure of your conner to the networking. So how do we make this fast in terms of buffer space? 참석자 1 1:47:19 Maybe I can share this link on the KaKao talk. Those of you are taking other courses you and this link maybe when you have time you can read through. So that part is it is after we make this work making things much faster the processes that include all this 참석자 1 1:47:44 되게 재밌어요. 저런 걸 하다 보면 시스템하고 막 싸우다 보면 사실 막 커널 책 읽어봐도 잘 안 날라와요. 책을 읽을 필요도 없고 하다가 막히면 해보고 이래야지 커널 감이 잡히지. 그런 경우도 꽤 많아요. 다른 학교들 우리 과는 커널 관련된 과목은 없으니까 원래 잘 없어요. 컴공이나 이런 데 가면 커널 관련된 감독들이 있는 데도 있고 없는 데도 있고 하는데 그런데 가도 잘 몰라요. 뭐 뭐 하는지 몰라. 가도 맨날 버퍼 뭐 늘리고 하는데 이게 이해하기가 그렇게 쉽지가 않거든요. 근데 차라리 이런 예제로 접근하면 전반적인 그림 잡는 데는 훨씬 더 도움이 됩니다. 참석자 1 1:48:35 Anyway so that was the most important. I know I talked about a little bit that is a bit outside of this course but it is somewhat related to how we big change packets and memory scales. Hopefully that is helpful for some of you. I'm gonna share the link on the KaKao talk so you can double check but important part we have done error handling protocol loss handling protocol combined with the pipelining protocol to make things faster. 참석자 1 1:49:08 This all combined to make a TCP at the end which is our next chapter Before I go into a S 7 Your midtern will be covering up two 이건 빼고 let's not do the pipelining so your midterm will be up to arit okay not the part for the pipeline okay finite state machine So it's pretty much whatever we discussed last week is going to be 참석자 1 1:50:01 It's not fun protocol not fun It isdp TCP 이거 이 more boring than RT stuff. Oh before I move on to the next one before I forget 다 없어져 버렸는데 가끔씩 이러더라 참석자 1 1:50:28 one 여기서 잘못 누르면 시험지 나옵니다. 니트 비켜 참석자 1 1:50:53 Yeah I uploaded the study question file last week but I changed it couple of days ago so you should take a look at the new once Okay It's nothing but possible what the questions maybe look like which is very similar to some of your textbook questions right? First one is is a slightly programming question looked like I'm not gonna ask you to write an entire program in the exam Okay but I just wanted to show you this is a quick ways of creating a squat. If you know how to do this 참석자 1 1:51:29 in your computers then it might be helpful to answer a few questions in the mid terms Okay the rest of the questions is pretty much straightforward like simple short answers. What information is used by processing running on a host to identify a process running on different host? How do you distinguish a process in different machines? What information do you need to find the process to process communication? 참석자 1 1:52:04 If you don't know what it is copy and PPT will tell you 피티에 아마 가르쳐줄 거예요. 근데 뭐 뭘 것 같아? 마이 What information do you need to figure out which process to talk to port dumber 자 process process to process communication is there for we need more than IP addresses so we can figure out which process to talk to port number is the one So okay simple answer but the other two questions bit more of 참석자 1 1:52:38 a little bit of calculating delay There always four different type of delays that you can use. They usually give you a number you're using a 1 megabits per second name If F that you need to send is 100 bytes How long does it take? Sometimes I'll give you the number sometimes I can just ask you to use these symbols RBPC sorry R as total trunk size bandwidth and if the propagation speed is this how do you write this down in terms of total delay? 참석자 1 1:53:11 The next question is more like actually using a number to compute a certain speed or probability of something. Do you need a calculator? No type of math that I would if I ask you mathematical questions if you know how to do a addition and very simple multiplication would be okay okay Assuming you know how to do a division as well you don't need a copul later. I'm not gonna ask you a very high high power computation and I'm not gonna ask you to compute the calculus or logs nothing like that. 참석자 1 1:53:49 If I ask you to compute that I'm just gonna simply ask you to leave that in the formula. Don't do all those tiny computation okay so that's questions like this four and five is using this number to try so in the actual few examples like mostly short questions 어 이건 뭐야? Give your reasons for using a layer protocol architecture. Why do we use a layered architecture in your own words right? If I ask you something like this 참석자 1 1:54:22 If you're writing more than a two sentence you're doing something seriously wrong. I usually looking for a keyword maybe one sentence back 뭐 이거 What is the purpose of checks in transport? 참석자 1 1:55:02 Explain to me how you compute the check. Summer I didn't I never asked you to how to compute a chechsll. I simply asked you what's the purpose of using a chechsll? Sometimes I see if I ask you a question I see your responses like without explaining what checksum is there for you're actually explaining how to compute the czechsm. That's 내가 책상을 어떻게 구하는지 물어보는 게 아니라 책상이 왜 필요한지 물어봤는데 책상 구하는 거 다 적어놓고 끝나버려 그러면 되게 애매해요. 점수 주기가 되게 애매해요. 참석자 1 1:55:42 그러니까 what is a 책성이라고 물어본 것도 아니고 what is the purpose of 책성이 So don't just try to explain everything what you see in the questions that's what I meant. Usually short answers that I give you are usually looking for quick responses to the question so if you're writing too much you should sit back. So these are the typical type of questions that I used to ask and testing questions look like and your assignment I don't think in the exam I don't think I'm gonna ask you questions like 참석자 1 1:56:22 I asked you an assignment one and two it was more like a programming questions Ah so questions that we expect to see is more like this one and I will also Of course I will take your assignment as the final grading but do not try to memorize any that you wrote in your sign Don't need to do that If I were you I look at this sample questions I go back to the slide and maybe try to 참석자 1 1:56:52 figure out the things that I should remember Okay because many of the questions will be like short answers Let me tell you 그 참석자 1 1:57:11 이상하게 수업만 하면 이렇게 나를 찾는 사람들이 많지. 수업이 끝나면 아무도 안 찾는데 참석자 1 1:57:21 오전에 수업 했으면 오전에 하고 비즈니스 전화기에 메시지가 오고 전화가 와 있고 막 이러는데 수업이 끝나면 아무도 안 찾아요. 집에 갈 때까지 참석자 1 1:57:32 I am looking for your 참석자 1 1:57:39 Where is it where is it? 그렇게 막 어렵고 그렇지는 않아 참석자 1 1:58:01 number of questions There will be 10 questions 10 questions first question have true falses and small multiple choices Stupid true false questions 뭐 뭐가 있을까? What is a stupid true false questions? TCP is better than UDP true false That's a stupid question That question is a very bad question I don't know 뭐가 있을까? 참석자 1 1:58:41 DNS protocol used a UDP for the transport air true false You should look it up right? Tackle questions like that I'm not asking difficult ones anything that we discuss in class quickly. DNS us a what protocol as a track for there DNS는 무슨 프로 있어요? DNS is what? 애플리케이션 에어 로col right trashboolera What's their combination? 참석자 1 1:59:25 애플리케이션 이 DNS is application a protocol DNS must be using some transport air protocol. What's their choices for transport air protocol? DNS가 애플리케이션 프로니까 DNS를 쓰기 위해서는 트랜스포트 에어 프로그램도 필요하잖아요 그럼 DNS가 쓰는 트랜스폰 레프 그런 모습 아무도 노바리 리디오 참석자 1 1:59:57 It's probably the very first page of a DNS in your textbook. DNS는 and to end like you said it doesn't require to be have the end to end you just send in wait for responses So UDP seems to be a proper choice. 엄마 책은 있어요? Do you have your text book anywhere? So those questions like that true false and multiple choices a couple of multiple choices in your assignment one I'm sorry question one question two three four at least like six questions more like a short answers What is this? He explained 참석자 1 2:00:39 six question short answers and these two questions look a little bit like these ones like five four computing a small number What's the probability of 10 person using an internet? Each probability is P What's the probability of three of them using the internet at the same time? Simple probability questions So the ones that we did in very first few classes Is there any challenging questions? No no except for the last one I'm still thinking about I made a question 10 참석자 1 2:01:17 Maybe I will ask you to depending on the situation I will ask you to not into question 10 I will make것 my mind next week. 맨 마지막 문제를 굳이 안 물어봐도 될 것 같은데 일단 프린트는 맡겨놨는데 만약에 그날 보고 내가 마음이 변하면 10분 문제는 하지 마세요. 이럴 수도 있어요. 들어가는 걸로 기분이 안 좋으면 그냥 다 해라. 이럴 수도 있고 고민이 될 것 같은데 일단 프린트는 문제 같고요. I'm gonna give you around 70 minutes to complete your depending on a minimum 70 minutes but like I told the other people I don't think you need a 70 minutes half an hour Probably 참석자 1 2:01:59 a lot of people finishing up within half an hour when you're done you can leave okay but 70 minutes will be so 9 am until 10 10 참석자 1 2:02:22 As long as you do an assignment submit something for your assignment be here for your mid term and final I'm not giving you enough no chance if you receive C or C plus from me in this course it means that you did really really bad on everything worn here. It's probably equivalent of an F in other causes if you receive a B then then maybe you submit something for your assignment nothing works and your midterm 참석자 1 2:02:59 maybe you got ten out of fifty then maybe B or if you give me nothing then probably C. So it means that it's quite easy to get anything above B plus so so it should be Don't worry too much about it okay 너무 걱정하지 마요. 어렵고 막 그런 거. Course the exam could be written in English 한국말로. 아직까지도 내가 우리 과에서 이렇게 얘기를 해야 되는지 모르겠는데 가끔 보면 한국말로 다 적어놓은 사람도 답을 3년 4년 내내 그렇게 적지 말라고 했는데 편지 쓰지 말고 제발 내 얼굴 안 그리셔도 됩니다. 매 학기 얘기해도 매 학기 발생하는 일이에요. 나를 그리워하고 잘 그리지도 못해서. 교수님 재수강 때 뵙겠습니다. 오래만에. 참석자 1 2:04:03 Anyway that's what the questions look like. So that's will be on LMS so we can double check it. Any other questions regarding? 참석자 1 2:04:21 It's just one of those courses that you have to memorize certain part from this line. Like many many computer science courses they don't ask you to memorize much they ask you to understand but this is one of the courses that you might have to memorize certain definitions concept which is a very similar to an OS system operating system. They also ask you to memorize many different mechanisms so unfortunately we need to take a look at a few. 참석자 1 2:04:57 Finally PPP it's relatively short because many detail has been covered in the ray. 참석자 1 2:05:10 I think after the mid term we might have to have like really full classes every couple classes we have to have more than three hour classes because we bit lazy before the mid term so until then I'm not gonna I'm not gonna do entire three hours stay. 좀 느슨하게 했더니 후반부에는 조금 비디오도 같이 추고 좀 좀 길게 해야 될 필요도 있는 것 같아요. 되는 대로 합시다. Before we actually start doing this let's quickly go into this guy. So this actually explains everything okay again I'm not going to start this slide today. 참석자 1 2:05:51 What is this? What does it look like? It's a simple description of TCP header compared to UDP UDP had only two lines right two line and everything was a body body here 이제 application data from this point on sometimes we use the term like payload the actual messages actual body we often refer to them as a payo data and this is tather data that needs to be used for control play messages here are data play messages the actual payo 참석자 1 2:06:31 Let's see since still this is a trend for the protocol we still need port numbers 32 bits so two byte 2 bye sequence number that we start using it right in pipelining or even before sequence number packets that's a four byte that's a 2 dd32 that's a huge number 3이 거 굉장히 커요 I'm not so sure we'll be able to do it today maybe quickly acknowledgment required you see there's no neck like I told you neck is not being used in 참석자 1 2:07:10 disappear but we know how to deal with the situation without the neck. Multiple duplicate triple duplicate acts will be equivalent to the neck and then you see the tiny things like oh wind더사 five ten twenty hundred so this actually later is being negotiated like receiver tells the sender fill up this thing my window size is 10 so sender no okay I cannot send more than 10 Okay so this there is a small field to 참석자 1 2:07:51 negotiate the window size between the two however they don't use like 10 2000 they actually use the bite sequence it's telling them how many buffer space do I have left in terms of last bite they've being used so but to make things easier we just often use number like 10 20 30 OK and then there are smaller fields check some easier like there was VDP and there are something like header length that's half of it maybe around half so that's an eight bit 참석자 1 2:08:30 sixteen eight four bit four bit rest of the eight bits but this is only taken one bit each because there is something called as a flag information which require for TCP connection management bit layer. So there are many maybe control packets being used in here okay head links unlike the UDP TCP minimum sized header is around 20 bytes. If they require if they have more things to say in the header they can extend more. 참석자 1 2:09:04 So there is some empty field optional field that you can make this header bigger. If your header bigger then you're gonna have to increase the number here so heather size can be changed. However in many cases TCP header disfield information is being ignored it says it's being used but in the actual implementations sometimes they ignore it 뭐 이런 거 실제로 TCP 헤드에는 다 디파인이 되어 있고 구현이 돼 있는데 받아들이고 하는 쪽에서 실제 쓰지 않는 필드들도 꽤 있어요. 받아도 그냥 무시하고 참석자 1 2:09:39 So there are certain fields that is being ignored not being used. So sometimes the smart hackers use this extra space too sending their information data they use the optional TCP field to send their own data for whatever purposes are. So don't think of everything they define is being used by the current TCP It's not. 실제로 많은 필드들은 되게 안 쓰는 경우도 많아요. A lot more right a lot longer complicated if you actually take a look at the TCP implementation 참석자 1 2:10:16 this is TCP H huge compared to the UDP a lot of fields are defined 여기 보면 TCP 윈도우 사이즈 오 윈도우 사이즈 뭐 윈도우 사이즈 참석자 1 2:10:36 and assess maximum segmentation size TCP 맥xum window size What was the window size? How big was it? 둘도 사이즈가 얼마나 돼 있었어요? 아까 그 칸에서 I think it's around 2 bytes 6t size. They define this numbers to use it for their compmentations. Anyway compare to udpuge header fines and complicates 훨씬 복잡하죠 훨씬 뭐가 많아요? 나도 다 몰라요. I don't know every field being used 알 필요도 없고 but all the things all the things that you see is how complicated it is. If you just to try to think about 참석자 1 2:11:28 merging RDT with the pipelining. Put it all together in a single header must be complicated. So here are the things that you can take the loop and hopefully next week. 참 다음 주에 수업이었구나 시험이구나. 언제 다 하지? 참석자 1 2:11:51 Maybe after the exam next week maybe I can dig up some previous video previous recording just for you to start take a look at it. So if I found the video, I will upload it after your exam so you can watch it for in two weeks and then when you come back, I can go a bit faster and then maybe we can move faster. We're almost we're halfway down going to talk about TCP and then try to go down the IP layer quickly routers how they work and then finally enet layer which is contention based protocols. 참석자 1 2:12:29 That's a bit more challenging but 기말고사가 언제 오나 이 많이 있어요 모르겠다. Let's worry about that. After the I think I'm gonna stop here today. 좀 하자 힘들다 Any other questions? 숙제 다 냈니? I have checked out your assignment. 다 낸 사람 다 다 냈어요 어제 어고 어제 오케이 어렵지 않았어 어요 어려웠어요 누구 누가 했어요 누가 했어요 누가 누가 갔다 그랬어? 훨씬 따라하면 그냥 따라하는 대로 되는 거라 맨 마지막 거는 좀 정답이 있는 게 아니라 조금 조금 애매하게 느껴질 수도 있었을 것 같아요. 사실 그렇게 쉽다고 생각하지는 않아요. 첫 번째도 그렇고 두 번째도 그렇고 시간 투자가 돼야 되는 부분도 있고 따라만 한다고 이해하고 하는 건 아니니까 나도 쉬운 숙제라고 생각을 하지는 않아요. 중간 정도 걸리는 숙제 참석자 1 2:13:42 라고 생각을 하니까 TCP 쪽은 미친 듯이 어렵게 만들 수도 있어요. 사실 그럴 이유가 전혀 없고 요즘에 그렇게 할 이유도 없고 알겠습니다 하고 나서 after the MM I will probably give you another set of assignment that is probably something to do with the IP layers. clovanote.naver.com