🪄 네트워크 기기, 계층별로 한눈에 정리하기!
·
Computer Science/Network
네트워크에는 여러 가지 장비들이 있는데요,이 장비들은 OSI 7계층 또는 TCP/IP 4계층 중 어느 계층을 처리하느냐에 따라 역할이 달라집니다.즉, 어떤 기기는 물리 계층만 처리하고, 어떤 기기는 애플리케이션 계층까지 처리할 수 있어요.👉 참고로 상위 계층을 처리할 수 있는 장비는 하위 계층도 처리 가능하지만, 그 반대는 불가능하다는 점도 알아두면 좋아요!애플리케이션 계층 : L7 스위치인터넷 계층 : L3 스위치데이터 링크 계층 : L2 스위치, 브리지물리 계층 : NIC, 리피터, API🖥️ 애플리케이션(application) 계층을 처리하는 기기🌈 L7 스위치(로드 밸런서)L7 스위치는 흔히 로드 밸런서라고 부릅니다. 여러 서버에 클라이언트 요청을 골고루 분산시켜주는 장치예요.즉, 트래픽이 ..
📚 PDU
·
Computer Science/Network
네트워크에서 데이터가 전송될 때, 한 계층에서 다른 계층으로 전달되는 단위를 PDU (Protocol Data Unit) 라고 합니다.PDU는 제어 정보가 담긴 헤더(Header) 와 실제 데이터인 페이로드(Payload) 로 구성되어 있으며, 각 계층마다 부르는 이름이 조금씩 다릅니다.애플리케이션 계층 : 메시지전송 계층 : 세그먼트(TCP), 데이터그램(UDP)인터넷 계층 : 패킷링크 계층 : 프레임(데이터 링크 계층), 비트(물리 계층)
🧩 TCP/IP 4계층과 OSI 7계층의 차이
·
Computer Science/Network
인터넷 프로토콜 스위트는 인터넷에서 컴퓨터들이 서로 정보를 주고받기 위해 사용되는 프로토콜의 집합이에요. 이를 TCP/IP 4계층 모델로 설명하거나, 좀 더 세분화한 OSI 7계층 모델로 설명하기도 합니다. 이 계층 모델은 네트워크에서 사용되는 통신 프로토콜들을 기능에 따라 구분한 구조로, 프로토콜의 역할과 네트워킹 범위에 따라 4개의 추상화 계층으로 구성되어 있습니다.TCP/IP 계층과 달리 OSI 모델은애플리케이션 계층을 세 개(응용, 표현, 세션 계층)로 나누고링크 계층을 데이터 링크 계층과 물리 계층으로 세분화합니다.또한, TCP/IP의 인터넷 계층은 OSI 모델에서 네트워크 계층이라고 부릅니다.이러한 계층 구조는 한 계층이 변경되어도 다른 계층에 영향을 주지 않도록 설계되어 있어요.🖥️ 애플리..
🤝 네트워크 프로토콜: 전 세계 컴퓨터의 약속
·
Computer Science/Network
네트워크 프로토콜(Protocol)이란 서로 다른 장치들이 통신하기 위해 만든 공통된 규칙이자 약속입니다.우리가 처음 만나는 외국인과 대화하려면 '영어'라는 공통된 언어를 사용해야 하듯, 삼성 노트북이 Apple 서버에 접속하거나 LG 스마트폰이 데이터를 보내려면 서로가 알아들을 수 있는 공통된 '컴퓨터 언어'가 필요합니다. 이 언어가 바로 프로토콜입니다.🔌 왜 표준화가 필요한가요?만약 모든 회사가 각자 자기들만의 통신 규칙을 만든다면 어떻게 될까요? 아마 삼성 기기는 삼성 기기끼리만, 애플 기기는 애플 기기끼리만 통신이 되는 끔찍한 상황이 벌어질 겁니다.이러한 혼란을 막고, 어떤 제조사가 만든 장비든 서로 문제없이 통신할 수 있도록 하기 위해 '표준화'가 필요합니다. 이 표준을 정하는 대표적인 단체..
🕵️‍♂️ 내 서비스가 느려졌을 때! 네트워크 병목 현상 찾는 명령어 4가지
·
Computer Science/Network
내 코드는 완벽한데 사용자가 데이터를 못 받아온다고요? 축하합니다. 범인은 '네트워크 병목 현상'일 확률이 높습니다. 병목 현상은 도로의 차선이 갑자기 줄어들 때 차가 막히는 것처럼, 네트워크의 특정 구간 때문에 전체 속도가 느려지는 현상을 말해요.원인은 부족한 대역폭(데이터가 다니는 길의 너비), 비효율적인 네트워크 구조(토폴로지), 서버의 과부하 등 다양합니다. 이제부터 이 범인을 잡기 위한 4가지 탐정 도구(명령어)를 알아봅시다!👋 핑 (ping): "거기 잘 있나요?" 신호 보내보기핵심 기능: 특정 서버(IP 주소나 도메인)가 네트워크상에서 응답하는지 확인하는 가장 기본적인 명령어입니다.쉬운 비유: 동굴에 대고 "야호!" 하고 외친 다음, 메아리가 얼마나 빨리 돌아오는지 듣는 것과 같아요. pi..
📶 네트워크 분류
·
Computer Science/Network
네트워크는 규모를 기반으로 분류할 수 있습니다. 가장 대표적인 분류가 바로 LAN, MAN, WAN입니다.🏢 LAN (Local Area Network)의미: 근거리 통신망. 이름처럼 가까운 거리를 연결하는 네트워크입니다.규모: 사무실, 건물, 대학 캠퍼스 등 비교적 좁고 한정된 공간에서 사용됩니다. 우리가 흔히 사용하는 '와이파이'나 '내부망'이 대표적인 LAN입니다.특징: 연결 거리가 짧아 전송 속도가 매우 빠르고, 사용자가 제한적이어서 혼잡도가 낮습니다.🏙️ MAN (Metropolitan Area Network)의미: 대도시 지역 통신망. LAN보다는 크고 WAN보다는 작은, 도시 규모의 네트워크입니다.규모: 하나의 도시 전체 또는 매우 넓은 캠퍼스 등 LAN이 여러 개 모인 규모를 담당합니다..
🗺️ 네트워크 토폴로지와 병목 현상
·
Computer Science/Network
네트워크 토폴로지(Topology)란 컴퓨터 네트워크의 요소들(노드, 링크)이 물리적으로 또는 논리적으로 어떻게 배치되어 있는가에 대한 방식, 즉 연결 형태를 의미합니다. 이 연결 방식에 따라 네트워크의 효율성과 안정성이 크게 달라집니다.🚌 버스 (Bus) 토폴로지중앙 통신 회선(버스) 하나에 여러 개의 노드가 연결되어 데이터를 공유하는 가장 기본적인 구성입니다. 주로 근거리 통신망(LAN)에 사용됩니다.장점: 설치 비용이 저렴하고, 중앙 선에 노드를 추가하거나 제거하기가 쉽습니다.단점: 중앙 회선에 문제가 생기면 전체 네트워크가 마비될 수 있으며, 스푸핑에 취약할 수 있습니다.용어 설명:스푸핑 (Spoofing) : 스푸핑은 네트워크상의 데이터를 훔쳐보는 행위입니다. 버스 토폴로지에서는 모든 데이터가..
📡 좋은 네트워크의 조건: 처리량과 지연 시간
·
Computer Science/Network
우리가 사용하는 네트워크를 자동차가 다니는 '도로'라고 상상해 볼까요? 어떤 도로가 '좋은 도로'일까요? 아마도 차가 많이 다닐 수 있고(많은 처리량), 막힘없이 빠르게(낮은 지연 시간) 달릴 수 있으며, 사고가 적고(적은 장애 빈도) 안전한(좋은 보안) 도로일 것입니다.이처럼 '좋은 네트워크'란 여러 조건을 만족해야 하지만, 그중에서도 성능을 나타내는 가장 중요한 두 가지 지표는 바로 처리량(Throughput)과 지연 시간(Latency)입니다.🛣️ 처리량 (Throughput): 얼마나 많이 처리하는가?처리량은 네트워크 링크를 통해 성공적으로 전달된 데이터의 양을 의미합니다. 도로의 비유를 다시 가져오자면, 특정 시간 동안 얼마나 많은 차가 도로를 지나갔는지를 나타내는 '교통량'과 같습니다. 즉,..
🌐 네트워크의 기초: 디지털 세상을 잇는 연결망
·
Computer Science/Network
우리가 스마트폰으로 웹 서핑을 하거나, 컴퓨터로 게임을 하거나, 심지어 IoT 기기가 작동하는 모든 순간에는 네트워크라는 거대한 연결망이 작동하고 있습니다. 그렇다면 네트워크란 정확히 무엇일까요?네트워크는 간단히 말해, 컴퓨터와 같은 장치들이 통신 기술을 활용하여 서로 연결되어 리소스(자원)를 공유하는 집합을 의미합니다. 이러한 네트워크를 구성하는 핵심 요소는 바로 노드(Node)와 링크(Link)입니다.네트워크를 하나의 거대한 거미줄이라고 상상해 보세요.노드 (Node): 거미줄의 매듭에 해당합니다. 네트워크에 연결된 모든 장치를 지칭하는 용어로, 데이터를 생산하거나 소비하고 전달하는 역할을 합니다.예시: 서버, 개인용 컴퓨터(PC), 스마트폰, 라우터, 스위치, 허브 등링크 (Link): 거미줄의 실..
📜 절차지향 프로그래밍: 순서대로 차근차근
·
Computer Science/Programming Paradigm
절차지향 프로그래밍(Procedural Programming)은 일이 처리되는 논리적인 순서에 따라 코드를 작성하는 패러다임입니다. 물이 위에서 아래로 흐르듯, 프로그램이 정해진 순서대로 한 단계씩 계산 과정을 수행하죠.코드가 실행되는 방식 그대로를 코드로 구현하기 때문에 가독성이 높고 실행 속도가 빠르다는 장점이 있습니다. 이 때문에 복잡한 계산이 많은 작업에 효과적입니다.반면에, 모든 것이 유기적으로 연결되어 있어 기능을 별도의 모듈로 나누기 어렵고, 이로 인해 유지보수성이 떨어진다는 단점이 있습니다.const list = [1, 2, 3, 4, 5, 11, 12];let max = 0; // 최댓값을 저장할 변수를 선언// 배열의 첫 요소부터 마지막까지 순서대로 반복for (let i = 0; i ..