본문 바로가기

학교 수업/컴퓨터 네트워크14

Network layer :: 3-1. IP addressing, CIDR, DHCP 자. 오늘 이야기하고 싶은건, IP addressing에 관해서야. 이게 뭐냐면, 단순한데 각 단말들에게 주소를 부여하는것을 addressing이라고 해. 그러니까 각 단말들한테 IP 주소를 부여하는게 IP addressing이겠지? 우리가 흔히 사용하는 IP주소는 32비트 바이너리 형식으로 표현이 되어 있어. 자 그런데, 32비트면 예를 들어서, 11011111 00000001 00000001 00000001 이런 형식으로 표현이 되겠지? 근데 이건 우리가 평소에 보는 주소 형태가 아니란 말이지. 이걸 우리는 보기 쉽게 223.1.1.1이라고 표현을 하는거야 윈도우를 사용하고 있으면 콘솔창을 열어서 ipconfig 명령어를 치면 컴퓨터의 IP 주소를 확인 할 수 있어 위 사진에서 잘 보면, 같은 하나의.. 2020. 6. 17.
Network layer :: 2. 라우터 내부에는 무엇이 있을까? 자, 앞부분에서 네트워크 레이어의 근본적인 역할은 바로 송신 호스트에서 수신 호스트로 패킷을 전달하는거야. 이 역할을 수행하기 위해 두가지 기능이 있는데, 그게 바로 포워딩과 라우팅이라고 했어. 자 라우터에 패킷이 도착 했어. 그러면 라우터는 패킷의 IP 헤더를 보고 어디로 내 보낼지 결정할거야. 그러면 헤더를 보고 어떻게 결정을 할까? IP 헤더에는 목적지 IP 주소에 해당하는 정보가 담겨 있어, 이 목적지 IP 주소와, 라우터가 가지고있는 forwarding table을 비교해서 Longest Prefix Match를 통해서 보내. 위의 표처럼 생긴게 포워딩 테이블이야. 그냥 가장 길게 매칭되는 곳으로 보내는거지 예를 들어 11001000 00010111 00010100 11000111이 목적지 IP.. 2020. 6. 11.
Network layer :: 1. 개요 정리 이번에는 네트워크 레이어의 개요를 살펴볼거야. 자 먼저, 네트워크 레이어의 근본적인 역할은 바로 송신 호스트에서 수신 호스트로 패킷을 전달하는거야. 이 역할을 수행하기 위해 두가지 기능이 있는데, 그게 바로 포워딩과 라우팅이야. 자. 포워딩(Forwading)은 그냥 단순하게, 인풋으로 들어온 패킷을 아웃풋으로 내보내는 역할을 해. 그러면 들어온건 그렇다 치고, 어떻게 적절한 아웃풋으로 내보낼까? 이게 중요하거든 그래서 필요한게 라우팅(Routing)이야. 라우팅은 목적지까지 가는데 어느 경로로 가는게 가장 좋은지 결정하는 역할을 해. 이걸 책에서는 포워딩은 하드웨어에서 이루어지고, 교차로를 지나는 과정이고 라우팅은 소프트웨어에서 이루어지고, 네비게이션 역할이다. 이런 식으로 말을하는데, 사실 잘 안와닿.. 2020. 6. 5.
Transport layor - 4. TCP Congestion control 자, 예전에 TCP가 하는 일 중에는 congestion control이 있다 그랬어 Congestion이 뭘까? 해석하면 혼잡이야 혼잡 제어 알고리즘이거든 TCP의 보내는 쪽은, 윈도우를 가지고 있어서, 윈도우가 허락하는 만큼 데이터를 연속으로 보낼 수 있다 그랬었는데, 그러면 "이 윈도우의 크기를 어떻게 결정할건가?"에 대한게 이번 주제의 핵심이야. 이걸 알아보기 위해서 옛날 버전의 TCP를 살펴볼거야. 자 보면 y축은 TCP 보내는쪽의 Congestion window size라고 되어있어, x축은 시간이야 그래프를 따라가다보면 점점점 window의 크기를 늘리다가 손실이 발생하는 순간 반으로 감소시켜서 보내 이런 매커니즘을 AIMD라고 불러, Additive Increase Multiplicativ.. 2020. 5. 9.
Transport layor - 3. TCP fast retransmit TCP는 앞에서 말했지만, 세그먼트를 보내고 나서 일정 시간이 지나도 ACK가 안오면 재전송을 한다고 했었어 그러면 한번 생각해보자. 그림을 보면 두번째 세그먼트가 도착을 못했어, 그런데 1,3,4,5는 도착했거든, 1번을 받으면 1번 세그먼트의 ACK인 100으로 피드백 해줄거야 어? 근데 왜 ACK 100일까? 92번 seq인데 그럼 92가 되어야 하는게아냐? 라고 생각 할 수 있는데, TCP는 앞에서 했던거랑 조금 다른게, ACK 100의 의미는 "나 99번까진 잘 받았는데, 100번을 기다리고있을게"라는 의미야. 아무튼, 2번이 도착못했는데 3,4,5번이 도착했어, 그러면 받는 쪽 입장에서는, "어? 아니 나 100번 기다리고있다니까? X3"을 반복하는거야. 그러면 타임 아웃이 되지 않았는데도, .. 2020. 5. 8.