CS

CS/자료구조

트리(Tree) 개념 및 구현

트리는 말 그대로 나무와 유사한 자료구조를 말한다. 이는 사회나 컴퓨터공학에서 흔히 사용되고 있다. 예를 들어보자면 회사 조직도가 있다. 회사의 사장이 나무의 뿌리에 해당한다고 하면, 사장 밑에 있는 각 부서의 부장들은 뿌리에서 뻗어 나온 가지라고 할 수 있다. 부장 밑에 있는 차장, 과장, 대리 등은 부장이라는 가지에서 뻗어 나온 잔 가지가 된다. 컴퓨터 공학에서도 활용도가 높은 자료구조인데 우선 운영체제의 파일 시스템이 트리 구조로 이루어져 있고, HTML이나 XML 문서를 다룰 때 사용하는 DOM(Document Object Model)도 트리 구조이다. 이뿐만 아니라 검색 엔진이나 데이터베이스도 트리 자료구조에 기반해서 구현된다. 트리의 구성 요소 트리는 그림과 같이 뿌리(Root), 가지(Bra..

CS/네트워크

서브넷과 게이트웨이

최근 인터넷의 발달로 작은 LAN 네트워크들이 하나의 큰 네트워크로 묶이면서 먼 거리에 있는 다른 LAN 간의 통신이 중요해졌다. 즉 원격지 네트워크와 통신이 중요해졌는데 이때 필요한 장비를 게이트웨이라고 부르며 3계층 장비(라우터, 스위치)가 이 역할을 할 수 있다. 서브넷과 게이트웨이의 용도 로컬 네트워크에서는 ARP 브로드캐스트를 이용해 도착지 MAC 주소를 학습할 수 있고 이 MAC 주소를 이용해 직접 통신할 수 있지만 원격 네트워크 통신을 하려면 게이트웨이라는 장비가 필요하다. 이 게이트웨이에 대한 정보를 PC나 네트워크 장비에 설정하는 항목이 기본 게이트웨이이다. 기본 게이트웨이는 3계층 장비가 수행하고 여러 네트워크와 연결되면서 적절한 경로를 지정해주는 역할을 한다. 통신하려는 목적지가 로컬..

CS/자료구조

큐(Queue) 개념 및 구현

스택은 데이터의 입력과 출력이 이루어지는 공간이 top 하나뿐이고 FILO or LIFO 인 자료구조이다. 큐는 이와 반대로 입력과 출력 공간이 따로 존재하고 제일 먼저 들어간 데이터가 제일 먼저 나오는(FIFO) 자료구조이다. 그렇다면 큐를 왜 사용하는 것일까? 데이터 입력이 폭주하는 경우를 생각해보자. 먼저 입력받은 데이터의 처리가 안 끝났는데 그 뒤에 새로운 데이터가 계속 입력되면 그 데이터는 보관할 곳이 없기때문에 모두 버리게 된다. 이때 밀려드는 데이터를 저장하기위해 큐를 쓴다. 우리는 이런 구조를 자바에서 쉽게 찾아볼 수 있다. 바로 버퍼(Buffer)가 큐를 사용한다. 큐의 주요 기능 : 삽입과 제거 큐의 기본적인 구조는 아래와 같다. 큐는 삽입은 후단(rear), 제거는 전단(front) ..

CS/네트워크

ARP(Address Resolution Protocol)

ARP란 통신은 IP 주소 기반으로 일어나고 MAC 주소는 상대방의 주소를 자동으로 알아내 통신하게 된다. 이때 상대방의 MAC 주소를 알아내기 위해 사용되는 프로토콜이 ARP(Address Resolution Protocol)이다. 상대방의 MAC 주소를 알아내려면 ARP 브로드캐스트를 이용해 네트워크 전체에 상대방의 MAC 주소를 질의해야 한다. ARP 브로드캐스트를 받은 목적지는 ARP 프로토콜을 통해 자신의 MAC 주소를 응답한다. 이 작업이 완료되면 출발지, 목적지 둘 다 상대방에 대한 MAC 주소를 학습하고 이후 패킷이 정상적으로 인캡슐레이션 되어 상대방에게 전달될 수 있다. 이때 패킷을 보낼 때마다 ARP 브로드캐스트를 수행하면 네트워크 통신의 효율성이 저하되므로 메모리에 이 정보(ARP 테..

CS/네트워크

TCP와 UDP

IP, MAC 주소는 목적지를 정확히 찾아가기 위한 주소제공이 목적이었지만 4계층에서 동작하는 프로토콜은 목적지 프로세스를 정확히 찾아가고 패킷 순서가 바뀌지 않도록 잘 조합해 원래 데이터를 잘 만들어내기 위한 역할을 한다. 4계층 프로토콜(TCP, UDP)과 서비스 포트 인캡슐레이션, 디캡슐레이션 과정에 각 계층에서 정의하는 헤더가 추가되고 여러가지 정보가 들어간다. 이중 가장 중요한 정보는 아래와 같다. 각 계층에서 정의하는 정보 : 수신 측의 계층에서 사용하기 위한 정보 상위 프로토콜 지시자 정보 : 디캡슐레이션 과정에서 상위 계층의 프로토콜이나 프로세스를 찾기 위한 정보 TCP/IP 프로토콜 스택에서 4계층은 TCP, UDP가 담당한다. 4계층에서 패킷을 분할하고 조립하는데 이때 시퀀스번호와 AC..

CS/네트워크

IP 주소란

IP 주소 2 계층의 물리 주소인 MAC 주소와 달리 IP 주소는 3 계층의 논리 주소를 사용한다. 대부분의 네트워크가 TCP/IP로 동작하므로 IP 주소체계를 이해하는 것이 네트워크 이해에 매주 중요하다. IP 주소는 아래와 같은 특징을 가진다. 사용자가 변경 가능한 논리 주소 주소에 레벨 존재, 그룹을 의미하는 네트워크 주소와 호스트 주소로 나뉨 IP 주소 체계 우리가 흔히 사용하는 IP 주소는 32 비트인 IPv4 주소이다. IPv6도 존재하는데 이는 128비트이다. MAC 주소는 16진수로 표기된 것과 달리 IP 주소는 10진수로 표기한다. 여기에 옥텟이라는 8비트 단위로 나눈 값이 존재하는데 각 단위마다 0~255의 값을 쓸 수 있다. IP 주소는 MAC 주소가 OUI, UAA로 구성된것과 비슷..

CS/네트워크

MAC 주소란

MAC(Media Access Control) 주소 2 계층(데이터링크)에서 통신을 위해 네트워크 인터페이스에 할당된 고유 식별자, 네트워크에 접속하는 모든 장비는 MAC 주소라는 물리적 주소가 있어야 하고 이 주소를 이용해 서로 통신한다. MAC 주소 체계 모든 네트워크 장비 제조업체에서 장비가 출하될 때마다 매번 주소의 할당 여부를 확인할 수 없기 때문에 한 제조업체에 하나 이상의 주소 풀을 주고 그 풀 안에서 각 제조업체가 자체적으로 MAC 주소를 할당한다. 이를 제조사 코드라 하고 이 주소는 국제기구인 IEEE가 관리한다. MAC 주소는 48비트의 16진수 12자리로 표현된다. 48비트는 다시 앞의 24비트와 뒤 24비트로 나뉘며 앞은 제조사 코드인 OUI(Organizational Unique ..

CS/네트워크

유니캐스트, 멀티캐스트, 브로드캐스트, 애니캐스트

네트워크에서 출발지에서 목적지로 데이터를 전송할 때 사용하는 통신 방식에는 아래와 같이 존재한다 유니캐스트(Unicast) : 1대1 통신, 출발지와 목적지가 1대1 통신 브로드캐스트(Broadcast) : 1대 모든통신, 동일 네트워크에 존재하는 모든 호스트가 목적지 멀티캐스트(Multicast) : 1대 그룹(멀티캐스트 구독 호스트) 통신, 하나의 출발지에서 다수의 특정 목적지로 데이터 전송 애니캐스트(Anycast) : 1대1 통신(목적지는 동일 그룹 내의 1개 호스트), 다수의 동일 그룹 중 가장 가까운 호스트에서 응답, IPv4에서는 일부 기능 구현, IPv6은 모두 구현가능 유니캐스트(Unicast) 유니캐스트는 출발지와 목적지가 명확히 하나로 정해져 있는 1:1 통신방식이다. 실제로 사용하는..

옥탑방고래
'CS' 카테고리의 글 목록 (3 Page)