# 네트워크 (1) - 네트워크의 기본 개념 ## 네트워크란 ![image](https://i.imgur.com/0I705tf.png) - 네트워크의 정의: 컴퓨터와 다른 장치들이 통신할 수 있도록 연결된 시스템 - 네트워크의 목적: 데이터 공유, 자원 공유, 통신 등 - 네트워크의 장점: 효율성, 접근성, 속도, 비용 절감 - 네트워크의 구성요소 1. 노드 (컴퓨터, 휴대폰 등) 2. 전송 매체 (랜선, 와이파이 등) 3. 네트워크 장비 (스위치, 라우터 등) ![image](https://i.imgur.com/wttiQgW.png) ## 네트워크 유형 ![image](https://i.imgur.com/CodFi7G.png) - PAN (Personal Area Network): 개인이 사용하는 가까운 거리의 기기들을 연결하는 네트워크 (예: 스마트폰, 스마트 워치, 블루투스 헤드셋) - LAN (Local Area Network): 건물 내부나 가까운 거리에 위치한 기기들을 연결하는 소규모 네트워크 (예: 가정, 사무실) - MAN (Metropolitan Area Network): 도시 전체를 커버하는 네트워크 (예: 케이블 TV, 도시 내 고속 인터넷 연결) - WAN (Wide Area Network): 지리적으로 떨어진 네트워크들을 연결하는 대규모 네트워크 (예: 인터넷, 기업의 여러 지점 연결) ### 네트워크의 구성요소와 기본 용어 - 노드(Node): 네트워크에 연결된 컴퓨터나 장치 (예: PC, 스마트폰, 프린터) - 링크(Link): 노드들을 연결하는 통신 경로 (예: 이더넷 케이블, 무선 신호) - 프로토콜(Protocol): 노드 간 통신 규약 (예: HTTP, TCP/IP) - 대역폭(Bandwidth): 네트워크에서 전송할 수 있는 최대 데이터 용량 (예: 100Mbps, 1Gbps) - 지연 시간(Latency): 데이터가 한 노드에서 다른 노드로 전송되는데 걸리는 시간 ## 네트워크 토폴로지 ![image](https://i.imgur.com/obZY5Oi.png) ### 버스(Bus) 토폴로지 - 특징: 모든 노드가 버스라는 하나의 공통 케이블에 연결된 형태, 전송 데이터는 모든 노드에 전달되며 각 노드에서 전달된 데이터의 수신 여부를 결정, 둘 이상의 노드가 동시에 데이터를 전송할 때 발생하는 충돌에 대한 관리가 요구됨 - 장점: 구축이 간단하고 설치 비용이 저렴함 - 단점: 네트워크를 확장할수록 많은 트래픽이 발생하여 성능이 급격히 저하됨, 장애 발생 시 문제점의 발견과 해결이 어려움, 공통 케이블에 장애가 발생하면 네트워크 통신이 부분적으로 불가능해짐 ### 링(Ring) 토폴로지 - 특징: 모든 노드가 이웃한 두 노드에만 연결되어 루프 형태를 이루는 형태, 데이터는 링크를 따라 한 방향으로만 전달되며 데이터를 전달하기 전에 신호를 증폭함, 데이터 전송 권리를 나타내는 토큰을 이용하여 매체 접근을 제어 - 장점: 거리 제약이 적어 네트워크 범위를 넓힐 수 있음, 충돌이 발생하지 않음 - 단점: 노드의 추가 및 삭제가 어려움, 설치와 관리가 어렵고 설치 비용이 많이 들어감, 특정 노드에 장애 발생 시 전체 네트워크 사용 불가 ### 스타(Star) 토폴로지 - 특징: 모든 노드가 중앙의 집속 장치에 연결된 형태, 전송 데이터는 항상 중앙의 집속 장치를 통하여 각 노드로 전달됨, 현재 LAN 구축 시 가장 많이 사용하는 방식 - 장점: 특정 노드나 링크에 장애가 발생해도 전체 네트워크 사용에는 영향을 주지 않음, 노드의 추가 및 삭제가 쉬움, 장애 발생 시 문제점의 발견과 해결이 쉬움 - 단점: 집속 장치와 케이블링에 상대적으로 높은 비용 발생, 중앙의 주 노드에 장애 발생 시 전체 네트워크 사용 불가 ### 메시(Mesh) 토폴로지 - 특징: 모든 노드가 서로 일대일로 연결된 그물망 형태. LAN보다는 WAN 환경에서 주로 이용됨 - 장점: 여분의 경로(Redundant Path)가 있어 장애에 유연한 대처가 가능하고 안정성이 높음, 경로 선택이 가능하여 가용성과 효율성이 좋음 - 단점: 설치 비용이 비싸고 관리가 어려움, 새로운 노드 추가 시 비용 부담 발생 ### 트리(Tree) 토폴로지 - 특징: 다수의 스타형 네트워크를 서로 연결한 형태, LAN보다는 WAN 환경에서 주로 이용됨, 분산 처리 시스템에 이용됨 - 장점: 네트워크 관리가 쉽고 확장이 편리함, 노드를 분류하여 관리하거나 우선순위를 부여할 수 있음 - 단점: 네트워크를 너무 확장하여 특정 노드에 트래픽이 집중되면 병목 현상 발생, 상위 계층에 장애 발생 시 하위 계층에 연결된 모든 노드에 영향을 줌 ## 인터넷과 주소 그리고 포트 ### 인터넷 - 전 세계의 컴퓨터 네트워크들이 서로 연결되어 정보와 자원을 공유할 수 있도록 설계된 글로벌 네트워크 시스템 - 인터넷은 원래 미국 국방부의 연구 프로젝트로 시작되었으며, ARPANET이라는 이름으로 1960년대 후반에 처음 개발되었다 - 인터넷은 TCP/IP라는 표준 프로토콜을 사용하여 서로 다른 네트워크들을 연결하고, 데이터를 주고받을 수 있게 한다 ### Mac 주소 (Media Access Control Address) - **네트워크 인터페이스 카드(NIC)에 할당**된 고유한 식별자 - 이더넷과 같은 LAN(Local Area Network)에서 사용되는 주소 - MAC 주소는 OSI 모델의 데이터 링크 계층에서 사용되며, 네트워크상에서 장치들 간의 통신을 가능하게 한다. - MAC 주소는 48비트의 길이로 구성되어 있으며, 보통 12자리의 16진수로 표시된다 (예: AA:BB:CC:11:22:33). - 이 주소는 네트워크 **하드웨어 제조사에 의해 할당**되며, 각 네트워크 장치에 고유한 값이 지정된다. - 데이터 링크 계층에서 통신을 위해 사용되며, 같은 네트워크 내에서 장치 간 식별과 데이터 전송을 관리한다. - MAC 주소는 물리적 네트워크 연결에서 중요한 역할을 하지만, 데이터 링크 계층을 벗어나 라우터를 통해 다른 네트워크로 전달될 때는 사용되지 않는다. (이 경우 IP 주소가 사용된다.) ### IP 주소 (Internet Protocol Address) - **네트워크**에 연결된 장치에 할당된 고유한 숫자 주소. - 인터넷 상의 장치들은 IP 주소를 할당 받는다 - 네트워크 계층에서 통신을 위해 사용되며, 인터넷을 통한 장치 간 데이터 전송 및 라우팅을 관리한다. - IP 주소는 인터넷에 연결된 장치들을 식별할 수 있도록 해주고, 인터넷상의 다른 장치들이 특정 장치를 찾을 수 있도록 해준다 - IPv4는 32비트 주소로, 4개의 0~255 사이의 숫자로 구성되며, 점으로 구분된다 (예: `192.168.1.1`). - IPv6는 128비트 주소로, 8개의 4자리 16진수 그룹으로 구성되며, 콜론으로 구분된다 (예: `2001:0db8:85a3:0000:0000:8a2e:0370:7334`). ### 포트 번호(Port Number) - 네트워크 통신에서 특정 **프로세스 또는 서비스**를 구분하기 위한 16비트 숫자. - 포트 번호의 범위는 0 ~ 65535이며, 이 중 0 ~ 1023번은 잘 알려진 포트(well-known ports)로 예약되어 있다. - 예를 들어, HTTP 통신은 TCP 포트 80을 사용하고, HTTPS 통신은 TCP 포트 443을 사용한다. - 전송 계층에서 사용되며, TCP(Transmission Control Protocol) 및 UDP(User Datagram Protocol) 통신을 통해 데이터가 올바른 프로세스나 서비스로 전달될 수 있도록 관리한다. ## 스위치 / 라우터 ![image](https://i.imgur.com/xhhOZbM.png) ### 스위치 (Switch) - 여러대의 단말을 연결하여 하나의 네트워크를 만들고, 그 네트워크 안에서 데이터를 전송하는 장치. - 데이터 링크 계층 (OSI 2계층)에서 작동하는 네트워크 장치. - LAN (Local Area Network) 내에서 통신하는 장치들을 연결하며, 프레임 단위의 데이터 전송을 처리한다. - MAC 주소를 사용하여 연결된 장치들을 식별하고, 데이터를 올바른 목적지로 전송한다. - 목적지 MAC 주소를 기반으로 데이터를 전달하기 때문에, 허브와 달리 불필요한 트래픽을 줄여 네트워크의 효율성을 높인다. ### 라우터 (Router) - 네트워크와 네트워크를 연결하여 서로 다른 네트워크 간에 데이터를 전송하는 장치. - 네트워크 계층 (OSI 3계층)에서 작동하는 네트워크 장치. - 서로 다른 네트워크 간의 연결을 중계하며, 패킷 단위의 데이터 전송을 처리한다. - IP 주소를 사용하여 연결된 장치들을 식별하고, 데이터를 올바른 목적지로 전송한다. - 라우팅 테이블과 라우팅 알고리즘을 사용하여 가장 효율적인 경로로 패킷을 전달한다. 이를 통해 네트워크 내에서 트래픽 관리와 데이터 전송 속도를 최적화한다. ![image](https://i.imgur.com/quSAC3D.png) #### 라우팅 테이블 - 라우터는 **각 데이터 패킷이 목적지 IP 주소에 따라 어디로 보내져야 하는지**를 알 수 있도록 만들어져 있다. - 이 정보들은 대체로 **라우팅 테이블**에 저장되어 있으며, 라우터는 **IP 주소의 앞 숫자들을 보고, 패킷을 어느 방향으로 보내야 할지를 판단**한다. > - 라우터는 데이터 패킷이 목적지까지 도달하는 데 필요한 정확한 경로 정보를 갖고 있지 않아도 된다. > - 라우터는 그저 패킷을 목적지까지 한 단계 더 가까이 보내주고 나머지 일은 다음 라우터에게 맡긴다. 또한 일반적으로 데이터가 인터넷의 한 지점에서 다른 지점으로 가기 위한 경로는 하나가 아니다. 라우터는 같은 목적지의 데이터 패킷들을 서로 다른 경로로 보낸다. > **인터넷 공유기** > 스위치, 라우터, 무선 AP의 기능을 1대에 내장한 기기 > > ![image](https://i.imgur.com/lOIwtJZ.png) --- > Q : 우리는 전국의 인터넷 사이트를 오갈 수 있다. 바다 너머의 다른 대륙은 어떻게 인터넷으로 통신할 수 있는 걸까? > > ![image](https://i.imgur.com/KjoJTt0.png) > > A : 전 세계를 연결시켜 놓았습니다. (마법은 없다..) ## 네트워킹 프로토콜과 OSI 모델, TCP/IP 모델 ### 네트워킹 프로토콜 - 네트워크에서 데이터를 주고 받기 위해 컴퓨터와 네트워크 장비들이 지켜야 하는 규칙 - 네트워크에서 데이터를 성공적으로 전송하기 위해서는 컴퓨터와 네트워크 장비들이 같은 프로토콜 조합을 사용해야 한다. ![image](https://i.imgur.com/24soztC.png) ### OSI 모델과 TCP/IP 모델 OSI 모델과 TCP/IP 모델은 네트워크 통신을 계층별로 설명하기 위한 두 가지 대표적인 모델이다. #### OSI 모델 (Open Systems Interconnection Model) - OSI 모델은 7개의 계층으로 구성되어 있다 (응용 계층, 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층) - OSI 모델은 국제 표준화 기구 (ISO)에서 개발되었으며, 네트워크 프로토콜과 서비스를 계층별로 분리하여 이해하기 쉽게 설명한다. - 이 모델은 네트워크 통신의 각 단계를 명확하게 정의하며, 각 계층에서 사용되는 프로토콜과 기술을 분리하여 설명한다. #### TCP/IP 모델 (Transmission Control Protocol/Internet Protocol Model) - TCP/IP 모델은 4개의 계층으로 구성되어 있다 (응용 계층, 전송 계층, 인터넷 계층, 네트워크 인터페이스 계층) - TCP/IP 모델은 인터넷을 기반으로 한 통신에서 사용되는 프로토콜들을 설명하는 데 초점을 맞추고 있다. - 이 모델은 인터넷의 기반 프로토콜인 TCP와 IP를 중심으로 하여 네트워크 통신을 단순화하여 설명한다. #### OSI 모델과 TCP/IP 모델의 주요 차이점 1. OSI 모델은 7계층 구조로, 통신 프로세스를 더 세분화하여 설명하며, TCP/IP 모델은 4계층 구조로, 인터넷 기반 통신에 초점을 맞춘 단순화된 구조를 가진다. 2. OSI 모델은 표준화 및 **이론적인 설명**에 중점을 두는 반면, TCP/IP 모델은 인터넷 프로토콜 중심의 **실제 네트워크 통신**에 중점을 둔다. 3. 네트워크 전송 시 데이터 표준을 정리한 것이 OSI 7계층. 이 이론을 실제로 사용하는 인터넷 표준이 TCP/IP 4계층이다. ![image](https://i.imgur.com/yLF1UV1.png) ##### OSI 모델의 계층 구조 - 물리 계층 (Physical Layer): 비트 단위의 데이터 전송과 물리적 연결을 관리한다. - 데이터 링크 계층 (Data Link Layer): 프레임 단위의 데이터 전송과 오류 제어를 수행하며, 물리 주소(MAC 주소)를 사용한다. - 네트워크 계층 (Network Layer): 패킷 단위의 데이터 전송과 경로 선택을 수행하며, IP 주소를 사용한다. - 전송 계층 (Transport Layer): 세그먼트 단위의 데이터 전송과 신뢰성 있는 통신을 관리하며, 포트 번호를 사용한다. - 세션 계층 (Session Layer): 통신 세션을 생성, 관리 및 종료한다. - 표현 계층 (Presentation Layer): 데이터 포맷과 인코딩, 암호화 등의 처리를 수행한다. - 응용 계층 (Application Layer): 사용자와 네트워크 간의 인터페이스를 제공하며, 프로토콜 및 서비스를 지원한다. ##### TCP/IP 모델의 계층 구조 - 네트워크 인터페이스 계층 (Network Interface Layer): OSI 모델의 물리 계층과 데이터 링크 계층에 해당하는 역할을 수행한다. - 인터넷 계층 (Internet Layer): OSI 모델의 네트워크 계층과 동일한 역할을 수행하며, IP 주소를 사용하여 패킷 전송과 경로 선택을 관리한다. - 전송 계층 (Transport Layer): OSI 모델의 전송 계층과 동일한 역할을 수행하며, 포트 번호를 사용하여 신뢰성 있는 통신을 관리한다. - 응용 계층 (Application Layer): OSI 모델의 응용 계층, 표현 계층, 세션 계층에 해당하는 역할을 수행하며, 사용자와 네트워크 간의 인터페이스를 제공한다. ### TCP/IP 모델과 주요 프로토콜 ![image](https://i.imgur.com/wRgsAqX.png) ![image](https://i.imgur.com/cWEcvgd.png) > TCP/IP 모델과 데이터 통신 과정 > > ![image](https://i.imgur.com/SU86DVu.png) ## 인터넷의 데이터 전송 과정 ![image](https://i.imgur.com/FOP2l0Y.png) 1. 데이터 생성: 컴퓨터나 기기에서 생성된 데이터가 패킷으로 나누어진다. 2. 패킷 인코딩: 패킷에 헤더와 트레일러가 추가되어, 패킷의 출발지와 목적지, 순서 등 정보가 포함된다. 3. 패킷 전송: 라우터와 스위치를 거쳐 패킷이 목적지로 전송된다. 4. 패킷 도착 및 재조립: 패킷이 목적지에 도착하면, 헤더와 트레일러가 제거되고 원래 데이터로 재조립된다. 5. 데이터 처리: 재조립된 데이터가 수신한 기기에서 처리된다. ### 데이터와 캡슐화/역캡슐화 ![image](https://i.imgur.com/gsqXPBO.png) - 응용 계층 (Application Layer) - 데이터 생성: 사용자가 생성한 원본 데이터는 응용 계층에서 처리되어 프로토콜에 맞게 포맷팅된다. - 캡슐화: 데이터가 전송 계층으로 전달되기 전에 응용 계층 헤더가 추가된다. - 전송 계층 (Transport Layer) - 데이터 분할: 전송 계층에서 데이터는 세그먼트로 분할되어 관리된다. - 캡슐화: 각 세그먼트에 전송 계층 헤더가 추가되며, 이 헤더에는 **포트 번호**와 관련된 정보가 포함된다. - 인터넷 계층 (Internet Layer) - 경로 선택: 인터넷 계층에서는 패킷 전송을 위한 최적의 경로를 결정한다. - 캡슐화: 각 세그먼트에 인터넷 계층 헤더 (**IP 헤더**)가 추가되어 패킷이 생성된다. - 네트워크 인터페이스 계층 (Network Interface Layer) - 캡슐화: 각 패킷에 네트워크 인터페이스 계층 헤더 (이더넷 헤더)가 추가되어 프레임이 생성된다. - 물리 전송: 프레임은 물리 계층을 통해 전송되며, 실제로 전기 신호로 변환되어 네트워크를 통해 전송된다. ![image](https://i.imgur.com/wLiNEG7.png) ### Mac주소, IP주소 Port 번호가 식별하는 것 ![image](https://i.imgur.com/8WTFifW.png)