컴퓨터 네트워크?
여러 대의 컴퓨터와 기기가 연결되어 데이터와 리소스를 공유하고 통신하는 인프라 또는 시스템을 의미합니다.
즉, 분산된 컴퓨터를 통신망으로 연결한 것을 의미합니다.
네트워크에서 여러 장치들은 노드(네트워크에 속한 컴퓨터 또는 통신 장비) 간 연결을 사용하여 서로 데이터를 교환합니다.
스위치?
스위치는 로컬 네트워크에서 데이터 흐름을 관리하고 패킷을 전달하는 데 사용됩니다.
메시지의 목적지를 확인해서 전달하는 일을 수행합니다.
스위치의 역할
- MAC 주소를 기반으로 데이터 패킷을 정확한 대상 기기로 전달한다.
- MAC 주소란? 네트워크 인터페이스 카드(NIC)에 할당된 고유 식별자로, 물리적인 주소.
라우터?
라우터는 다른 네트워크 사이에서 데이터를 라우팅하고 연결하는 역할을 합니다.
스위치와 스위치를 연결해서 서로 다른 네트워크에 속한 컴퓨터끼리 통신이 가능하게 해주는 장비를 라우터라고 합니다.
여러 네트워크 간에 데이터를 전송하는 중요한 역할을 합니다.
- 라우터의 역할
- 라우팅: IP주소를 기반으로 데이터 패킷을 올바른 목적지로 전송하며, 라우팅 테이블을 사용하여 최적의 경로를 선택함
- IP주소? 네트워크 상의 장치들이 위치를 식별하는 데 사용되는 식별자로, 논리적인 주소.
- 보안: 방화벽 및 보안 기능을 제공하여 네트워크를 보호하고 악의적인 트래픽 차단
- QoS: 네트워크 트래픽의 우선순위를 관리
- 라우팅: IP주소를 기반으로 데이터 패킷을 올바른 목적지로 전송하며, 라우팅 테이블을 사용하여 최적의 경로를 선택함
라우터와 스위치는 함께 사용되어 효율적인 데이터 전송 및 네트워크 관리를 지원함.
일반적으로 라우터는 다른 네트워크 간의 통신을 관리하고, 스위치는 로컬 네트워크 내에서 트래픽을 관리함
공유기?
공유기는 무선(Wi-Fi) 기능을 갖춘 라우터이다.
로컬 네트워크에서 유선 및 무선 기기 간의 연결을 관리하고 데이터를 분배한다.
OSI 7 Layer?
거대한 네트워크 소프트웨어의 구조를 설명하는 것.
1계층 Physical Layer
출처: https://www.youtube.com/watch?v=1pfTxp25MA8
- 물리적으로 연결된 두 대의 컴퓨터가 데이터를 송수신할 수 있게 해주는 모듈
- 컴퓨터와 통신하려고 할 때마다 물리적으로 전선으로 연결해야 한다는 한계점 발생
-> 통신하려는 컴퓨터가 많아질수록 비용 면에서 비효율적 - 1계층 기술만으로 여러 대의 컴퓨터가 통신하도록 만들 수가 없음
- 컴퓨터와 통신하려고 할 때마다 물리적으로 전선으로 연결해야 한다는 한계점 발생
2계층 Data-Link Layer
출처: https://www.youtube.com/watch?v=1pfTxp25MA8
- 같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고받기 위해서 필요한 모듈
- 데이터를 끊어 읽는 Framing은 Data-link Layer에 속하는 작업들 중 하나
3계층 Network Layer
출처: https://www.youtube.com/watch?v=1pfTxp25MA8
- IP주소를 이용해 서로 다른 네트워크에 속한 컴퓨터들끼리 데이터를 주고받게 해주는 것
- 더 많은 컴퓨터들 사이의 통신을 위해 데이터 앞에 목적지 주소(IP주소)를 붙임 (패킷: IP주소 + 데이터)
- 메시지를 보내기 위해서는 상대방의 IP주소를 알고 있어야 함
- 상대방의 IP주소를 아는 법? -> DNS 공부
- IP주소를 이용하여 해당 목적지의 위치를 아는 법? -> 라우팅 공부
4계층 Transport Layer
출처: https://www.youtube.com/watch?v=1pfTxp25MA8
- Port number(포트 번호)를 사용하여 도착지
컴퓨터의 최종 도착지인 프로세스까지 데이터가 도달하게 하는 모듈- HTTP 서버-클라이언트 통신은 일반적으로 포트 80 사용
- 컴퓨터 내부에서는 여러 프로그램이 실행되고 있음(프로세스)
- 컴퓨터가 수신한 데이터를 어떤 프로세스에게 줘야할지?
- 데이터를 받고자 하는 프로세스는 포트 번호 (port number)를 가져야 함
- 포트 번호는 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야 하는 정수 값
- 데이터를 보내는 컴퓨터는 수신자 컴퓨터 프로세스의 포트번호를 붙여서 보냄
- TCP / UDP 프로토콜
- 가장 널리 사용되는 Transport Layer 프로토콜로, 데이터의 전송을 관리하는 역할을 한다.
- TCP: 연결 지향적이며, 신뢰성 있는 프로토콜. 데이터의 순서를 보장하고, 오류 검출 및 복구를 수행.
- 주로 웹 브라우징, 이메일, 파일 전송 및 데이터베이스 액세스와 같은 응용 프로그램에서 사용됨
- UDP: 비연결 지향적이며, 빠른 데이터 전송이 가능하지만 낮은 신뢰성의 프로토콜.
- 주로 음성 및 비디오 스트리밍, 온라인 게임 및 DNS와 같은 실시간 응용 프로그램에서 사용됨
5계층 Application Layer
- 네트워크를 통해 송수신된 이진 데이터를 인코딩, 디코딩 하는 방법(메타 정보)을 넘겨주는 것
- 최종 사용자 및 응용프로그램과 네트워크 간의 상호작용 관리
- 사용자 인터페이스와 응용 프로그램 간의 통신을 제공
- TCP/IP 소켓 프로그래밍 (네트워크 프로그래밍)
: 운영체제의 Transport Layer에서 제공하는 API를 활용하여 통신 가능한 프로그램을 만드는 것.
TCP/IP?
현대의 인터넷은 OSI 모델이 아닌 TCP/IP 모델을 따르고 있음.
TCP/IP 모델도 OSI 모델과 마찬가지로 네트워크 시스템에 대한 모델임.
- 1계층 Physical Layer
- 2계층 Data-Link Layer
- 3계층 Network Layer
- 4계층 Transport Layer
- 5계층 Application Layer
프로토콜들을 계층화하는 모델(OSI 7 Layer 또는 TCP/IP 모델)을 사용하면,
특정 계층에서 문제가 발생하면 해당 계층만 수정하거나 교체할 수 있으므로
네트워크 전체에 영향을 미치지 않는다는 장점이 있음
'CS' 카테고리의 다른 글
[네트워크] IP 프로토콜 (2) | 2023.11.29 |
---|---|
[네트워크] TCP (2) | 2023.11.22 |
[네트워크] DNS, UDP (0) | 2023.11.15 |
[네트워크] HTTPS (0) | 2023.11.13 |
[네트워크] HTTP 프로토콜 (0) | 2023.11.08 |