네트워크 관련된 글을 작성하는 이유는 지금껏 공부한 내용을 총 정리하기 위함도 있다. 앞으로 얼마나 걸릴지는 모르겠지만, 네트워크 지식을 쌓기 위해 필요한 지식들을 간략하게 짚고 넘어가 보자. 인터넷은 무엇인가? 이 질문에 대해 답하기 위한 방법은 두 가지가 존재한다. 첫 번째는 인터넷의 구성요소를 기술하는 것으로, 인터넷을 구성하는 기본적인 하드웨어와 소프트웨어 요소를 기술하는 방법이다. 두 번째 방법은 분산 애플리케이션에 서비스를 제공하는 인프라 구조 관점에서 인터넷을 기술하는 방법이 있다. 먼저 구성요소의 관점으로 인터넷에 대해 정의해보기로 하자. 구성요소로 본 인터넷 인터넷 용어로, 인터넷에 연결되는 모든 장치는 '호스트' 혹은 '종단 시스템'이라고 부른다. 따라서 우리가 사용하는 노트북, 데스크..
이제부터 스위치가 존재하는 근거리 네트워크 통신은 어떻게 이뤄지는지 알아볼 것이고, ARP 프로토콜이 왜 필요하고 어떻게 동작하는지 알아보겠습니다. 시작하기 앞서 스위치가 왜 필요한지?에 대해서 먼저 생각을 해보겠습니다. 컴퓨터가 통신할 수 있다는 것은 컴퓨터가 연결되어 있다는 의미입니다. 여러대의 컴퓨터를 연결하는 가장 단순한 방법은 무엇일까요? 바로 전부 연결해주면 됩니다. 하지만, 이 접근법은 너무 비용이 크다는 단점이 명확합니다. 연결한 선을 간단한 전선이라고 생각해봅시다. 그러면 100대의 컴퓨터가 서로 통신하고 싶은 상황에서 전선은 N * (N-1) / 2개가 필요합니다. 문제를 개선하기위해 위와같은 접근을 떠올렸습니다. 바로 어떤 허브를 두고, 모든 통신은 허브를 거쳐가도록 만드는 것이에요...
네트워크 계층의 핵심은 '송신 호스트에서 수신 호스트로 패킷을 전달'을 수행한다는 것입니다. 네트워크 계층의 역할이 끝나면, 데이터그램은 일련의 유무선 통신 링크와 스위치들을 거친 뒤에 목적지 호스트에 도달하게 됩니다. 그리고 이제부터 프로토콜 스택상 네트워크 계층에서 '링크 계층'으로 내려옵니다. 링크 계층이 어떻게 동작하는지 이해하기 앞서 몇가지 용어와 링크 계층이 수행하는 역할이 무엇인지 먼저 알아보겠습니다. 링크 계층 프로토콜을 실행하는 장치들을 '노드(node)'라고 부르고 여기에는 호스트, 라우터, 스위치 등이 포함됩니다. 또한 통신 경로상의 노드들을 연결하는 통신 채널을 '링크(link)'라고 부릅니다. 링크 계층의 기본 서비스는 통신 링크를 이용해 데이터그램을 한 노드에서 인접 노드로 이동..