네트워크의 가장 핵심장비인 스위치는 2계층 주소인 MAC 주소를 기반으로 동작한다. 이번에는 스위치가 MAC 주소를 어떻게 이해하고 활용하는지에 대해 다뤄볼 예정 스위치는 네트워크 중간에서 패킷을 받아 필요한 곳에만 보내주는 네트워크의 중재자 역할 아무 설정 없이 네트워크에 연결해도 MAC 주소를 기반으로 패킷을 전달하는 기본 동작을 수행할 수 있다. 스위치의 기능 기본 동작 : MAC 주소를 인식하고 패킷을 전달 VLAN 기능 : 한 대의 장비에서 논리적으로 네트워크를 분리 스패닝 트리 프로토콜(STP) : 네트워크의 루프를 방지 이번 포스팅에선 이 셋 중 기본 동작에 대해 알아보자 참고: 패킷? 프레임? 더보기 각 계층에서 헤더와 데이터를 합친 부분을 PDU(Protocol Data Unit)라고 부..
초기 네트워크는 로컬 네트워크(LAN)을 고려해 설계되어 간단했으나, 기술의 발달로 먼 거리에 있는 다른 LAN 간의 통신이 중요해졌다.같은 네트워크 내에서의 통신과 달리, 원격지 네트워크 간의 통신은 게이트웨이라고 하는 장비를 써야 하며, 3계층 장비(라우터, L3 스위치)가 이 역할을 할 수 있다.서브넷과 게이트웨이의 용도로컬 네트워크 내에서는 ARP 브로드캐스트를 이용해 통신할 수 있지만,브로드캐스트는 네트워크를 넘어 전달되지 못함따라서 원격 네트워크에서는 장비의 도움이 필요하며, 이 장비를 게이트웨이(Gateway)라 한다. 게이트웨이에 대한 정보를 PC나 네트워크 장비에 설정하는 항목이 기본 게이트웨이(Default Gateway) 이다. 기본 게이트웨이는 3계층 장비가 수행하며 여러 네트워크와..
1. ARP(Address Resolution Protocol)ARP(Address Resolution Protocol) : 상대방의 MAC 주소를 알아내기 위해 사용되는 프로토콜간단하게 말하면 IP주소로 MAC 주소를 알아내는 건데, 따라서 ARP에 대해 이해하려면 IP 주소와 MAC 주소에 대한 개념, 즉 2, 3 계층에 대한 개념이 있어야 한다.참고하면 좋은 글 : OSI 7계층 - 2계층, 3계층 [네트워크] OSI 7계층과 TCP/IP참고 ⌜IT 엔지니어를 위한 네트워크 입문⌟ 길벗, 2023 [1장] 네트워크 시작하기 | 1.3 OSI 7계층과 TCP/IP, 1.4 OSI 7계층별 이해하기 (p.25~35) *책을 참고해 필요한 내용을 정리한 것이므로, 책의 내용과chaeyami.tistory..
보기 전 참고 : OSI 7계층 - 4계층 : 전송 계층 (Transport Layer) [네트워크] OSI 7계층과 TCP/IP참고 ⌜IT 엔지니어를 위한 네트워크 입문⌟ 길벗, 2023 [1장] 네트워크 시작하기 | 1.3 OSI 7계층과 TCP/IP, 1.4 OSI 7계층별 이해하기 (p.25~35) *책을 참고해 필요한 내용을 정리한 것이므로, 책의 내용과chaeyami.tistory.com 앞에서 배웠던 2, 3계층은 목적지를 정확히 찾아가기 위한 주소 제공이 목적이었지만, 4계층에서 동작하는 프로토콜은 만들어진 목적이 조금 다르다.목적지 단말 안에서 동작하는 여러 애플리케이선 프로세스 중 통신해야 할 목적지 프로세스를 정확히 찾아가고 패킷 순서가 바뀌지 않도록 잘 조합해 원래 데이터를 만들어내..
2계층(데이터 링크 계층) : 물리 주소(MAC 주소) 사용3계층(네트워크 계층) : 논리 주소(IP 주소) 사용1. MAC 주소 (물리 주소)OSI 7계층에 대해 다룰 때, 2계층(데이터 링크 계층)에서 사용하는 것이 MAC 주소라고 배웠었다.참고 : OSI 7계층 - 데이터 링크 계층MAC : Media Access Control장비(네트워크 인터페이스)에 할당된 고유 식별자 → 고유하지 않을 경우 충돌하기 때문에 IEEE에서 관리 중2계층에서 통신(데이터를 주고 받을 때)에 사용한다.물리적인 연결 상에서만 유효, 다른 네트워크로 데이터 전송시에는 논리주소(IP) 사용48비트 16진수 12자리OUI : IEEE가 제조사에 할당하는 부분IEEE : MAC 주소의 제조사 코드를 할당하고 관리하는 기구장비..
LAN, WAN? 네트워크는 규모와 관리 범위에 따라 LAN, MAN, WAN 세 가지로 구분된다. 예전에는 LAN, MAN, WAN 에서 사용하는 기술이 모두 달라 사용하는 프로토콜이나 전송 기술에 다라 쉽게 구분할 수 있었습니다. 현재는 대부분의 기술이 이더넷으로 통합되면서 사용자가 전송 기술을 구분하는 것은 무의미해져 관리 범위 기준으로 LAN, MAN, WAN 을 구분합니다. LAN(Local Area Network) 근거리 통신망 사용자 내부 네트워크 한 건물 또는 작은 지역 커버 MAN(Metro Area Network) 한 도시 정도를 연결하고 관리하는 네트워크 WAN(Wide Area Network) 광역 네트워크 멀리 떨어진 LAN 을 연결해주는 네트워크 광대역 네트워크. LAN에 비해 ..
OSI 7계층과 TCP/IPOSI 7계층 : 사용자에게 전달되기까지 데이터의 흐름을 역할별로 나누어 단계화함. 층마다 흐르는 데이터의 형태가 변한다.현대 네트워크 프로토콜이 대부분 실제로 TCP/IP 규약을 따름에 따라서, OSI 7계층은 실제보단 개념적이고 형상화된 모형이라고 이해하면 됨.TCP/IP : 현대 네트워크 대부분을 이루고 있는 프로토콜 스택. 대부분 TCP/IP와 이더넷으로 이루어져 있는데, 이론보다는 실용성에 중점을 둔 프로토콜.TCP 와 IP는 별도 계층에서 동작하는 프로토콜이지만, 함께 사용하고 있어 프로토콜 묶음 → TCP/IP 프로토콜 스택이라고 부른다.4계층으로 구분한다.* 1계층 → Layer 1 → L1 이라고 부릅니다. 편하게 쓰기 위해 이 글에서도 자주 사용할 예정이니 헷..
문제 https://www.acmicpc.net/problem/25192 25192번: 인사성 밝은 곰곰이 첫번째 새로운 사람이 들어온 뒤 pjshwa, chansol, chogahui05은 모두 곰곰티콘으로 인사했다. 두번째 새로운 사람이 들어온 뒤 pjshwa와 chansol은 다시 곰곰티콘으로 인사했다. www.acmicpc.net 더보기 문제 알고리즘 입문방 오픈 채팅방에서는 새로운 분들이 입장을 할 때마다 곰곰티콘을 사용해 인사를 한다. 이를 본 문자열 킬러 임스는 채팅방의 기록을 수집해 그 중 곰곰티콘이 사용된 횟수를 구해 보기로 했다. ENTER는 새로운 사람이 채팅방에 입장했음을 나타낸다. 그 외는 채팅을 입력한 유저의 닉네임을 나타낸다. 닉네임은 숫자 또는 영문 대소문자로 구성되어 있다...
문제 https://www.acmicpc.net/problem/24511 24511번: queuestack 첫째 줄에 queuestack을 구성하는 자료구조의 개수 $N$이 주어진다. ($1 \leq N \leq 100\,000$) 둘째 줄에 길이 $N$의 수열 $A$가 주어진다. $i$번 자료구조가 큐라면 $A_i = 0$, 스택이라면 $A_i = 1$이다. 셋째 줄 www.acmicpc.net 더보기 문제 한가롭게 방학에 놀고 있던 도현이는 갑자기 재밌는 자료구조를 생각해냈다. 그 자료구조의 이름은 queuestack이다. queuestack의 구조는 다음과 같다. 1번, 2번, ... , N번의 자료구조(queue 혹은 stack)가 나열되어있으며, 각각의 자료구조에는 한 개의 원소가 들어있다. q..
문제 https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 더보기 문제 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다. 출력 첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다. 예제 입력 1 7 1 6 6 3 3 5 4 1 2 4 4 7 예제 출력 1 4 6 ..
BFS 개념 Breadth First Search 노드를 방문하고 너비 우선으로 인접한 노드를 방문한다. 인접한 노드 중 방문하지 않은 모든 노드들을 저장 후 가장 처음에 넣은 노드를 꺼내서 탐색 가장 처음에 넣은 노드 -> 큐(Queue) 이용하는 것이 적합 1. 루트 노드를 큐에 저장 2. 현재 큐의 노드를 빼서 visited 에 추가 (방문처리) 3. 현재 방문한 노드와 인접한 노드 중 방문하지 않은 노드를 큐에 추가 4. 2부터 반복. 5. 큐가 비면 탐색 종료 BFS 구현 조금 더 확실히 하기 위해 각 노드에 붙은 숫자를 섞어보았다. 위와 같이 DFS인 척 하는 그래프가 있다고 해보자. 우리는 이 그래프를 BFS로 탐색하려고 한다. 그러면 탐색 순서는 이러한 형태가 되어야 할 것이다. 이를 딕셔..
문제 https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 더보기 문제 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 ..
문제 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 더보기 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 테스트 케이스마다, n을 1,..
https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 문제 더보기 문제 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구..
https://school.programmers.co.kr/learn/courses/30/lessons/42883?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 더보기 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. n..