OSI(Open Systems Interconnection) 7계층은 컴퓨터 네트워크에서 데이터 통신을 위해 사용되는 프로토콜 스택을 기반으로 한 참조 모델입니다.
물리 계층(Physical Layer)
: 네트워크의 물리적인 연결과 관련된 계층입니다. 비트 단위의 데이터를 전송하고, 전압, 전류, 케이블, 무선 등과 같은 물리적 매체를 다룹니다.
데이터 링크 계층(Data Link Layer)
: 물리 계층에서 전송된 데이터를 프레임으로 분할하고, 오류 검출 및 수정을 수행합니다. MAC(Media Access Control) 주소를 사용하여 네트워크 장치를 식별합니다.
네트워크 계층(Network Layer)
: 패킷을 이동시키고 목적지까지의 경로 선택과 라우팅을 수행합니다. 라우터가 이 계층에서 동작하며, IP(Internet Protocol) 주소를 사용하여 패킷을 전달합니다.
전송 계층(Transport Layer)
: 호스트 간의 신뢰성 있는 데이터 전송을 담당합니다. 데이터의 세그먼트화, 오류 제어, 흐름 제어, 재전송 등의 기능을 제공합니다. TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)가 이 계층에서 동작합니다.
세션 계층(Session Layer)
: 통신 세션을 설정, 유지, 종료하는 역할을 합니다. 세션 계층은 동기화, 대화 관리, 체크 포인트 등의 기능을 제공합니다.
표현 계층(Presentation Layer)
: 데이터를 애플리케이션에 맞는 형식으로 변환하고, 암호화, 압축, 인코딩, 형식 변환 등의 작업을 수행합니다. 데이터의 표현 방식과 구조를 정의합니다.
응용 계층(Application Layer)
: 최종 사용자에게 네트워크 서비스를 제공합니다. 일반적으로 HTTP, FTP, SMTP, DNS 등과 같은 프로토콜이 이 계층에서 동작하며, 사용자
TCP/IP 모델은 OSI 모델과는 다른 네트워크 프로토콜 아키텍처로, 인터넷 프로토콜 스위트의 기반이 됩니다. TCP/IP 모델은 4개의 계층으로 구성되어 있습니다.
네트워크 인터페이스 계층(Network Interface Layer) 또는 네트워크 접근 계층(Network Access Layer)
: 이 계층은 물리적인 네트워크와의 인터페이스를 제공하고, 데이터를 프레임으로 분할하고 전송합니다. 또한, 이 계층은 네트워크 카드, 이더넷 등과 같은 하드웨어 장치와 관련된 프로토콜을 다룹니다.
인터넷 계층(Internet Layer)
: 이 계층은 IP(Internet Protocol) 프로토콜을 기반으로 동작합니다. IP는 패킷을 송수신하고, 패킷의 경로 선택과 라우팅을 담당합니다. 또한, IP 주소를 사용하여 패킷을 목적지에 전달합니다.
전송 계층(Transport Layer)
: 이 계층에서는 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)와 같은 프로토콜이 동작합니다. TCP는 신뢰성 있는 연결 기반의 데이터 전송을 담당하고, 데이터의 분할, 순서화, 오류 제어, 흐름 제어 등을 수행합니다. UDP는 비연결성이며, 데이터의 신뢰성보다는 속도와 간단함을 우선시하여 사용됩니다.
응용 계층(Application Layer)
: 이 계층은 최종 사용자에게 네트워크 서비스를 제공합니다. 응용 프로토콜(예: HTTP, FTP, SMTP, DNS)은 이 계층에서 동작하며, 데이터의 포맷과 규칙을 정의합니다. 이 계층은 사용자 애플리케이션과 네트워크 인프라 간의 상호작용을 담당합니다.
TCP/IP 모델은 OSI 모델과 다르게 계층의 수가 적고, 계층 간의 구분이 상대적으로 덜 엄격합니다.
: 인터넷으로 통신하기 위해서는 수신처의 IP 주소를 알고 있어야합니다. 하지만 IP를 기억하고 있는 것은 매우 어렵고 기록한다. 하더라도 무슨 IP 주소인지 매번 적어야할 것입니다. 그래서 나온게 DNS 라는 개념이고 DNS 는 Domain Name System의 약자로 도메인의 이름을 IP 주소로 변환하는 역할을 수행하는 시스템 입니다.
DNS는 도메인 이름을 IP 주소로 매핑하는 분산 데이터베이스 시스템으로 동작합니다. 도메인 이름을 사용자가 입력하면, DNS 서버는 해당 도메인 이름에 대응하는 IP 주소를 찾아서 반환합니다. 이를 통해 사용자는 도메인 이름을 사용하여 웹 사이트에 접속하거나 이메일을 보낼 수 있습니다.
DNS는 계층적인 구조를 가지고 있습니다. 최상위 계층은 최상위 도메인(Top-Level Domain)으로, 예를 들어 ".com", ".net", ".org"와 같은 도메인들이 있습니다. 그 아래로는 도메인 계층 구조가 있으며, 도메인 이름은 오른쪽에서 왼쪽으로 점으로 구분되어 계층적으로 구성됩니다. 가장 오른쪽의 도메인은 최하위 도메인이며, DNS 서버는 계층을 따라 도메인 이름을 해석하여 IP 주소를 찾습니다.
DNS는 전 세계적으로 분산된 여러 DNS 서버들로 구성되어 있습니다. DNS 쿼리(Query)를 수행하는 클라이언트는 로컬 DNS 서버에 도메인 이름을 전달하고, 로컬 DNS 서버는 계층적인 구조를 따라 도메인 이름을 해석하기 위해 다른 DNS 서버들과 통신합니다. 최종적으로 IP 주소를 찾아서 클라이언트에게 반환하게 됩니다.
DNS는 인터넷의 핵심적인 서비스로, 도메인 이름을 사용하여 사용자들이 웹 사이트를 찾고 통신할 수 있도록 도와줍니다.
사용자가 웹 브라우저나 애플리케이션을 통해 도메인 이름을 입력합니다. 예를 들어, "www.example.com"이라는 도메인 이름을 입력합니다.
사용자의 컴퓨터는 우선 로컬 DNS 캐시에 저장된 IP 주소를 확인합니다. 로컬 DNS 캐시는 이전에 방문한 도메인 이름에 대한 IP 주소를 저장하여 다시 검색할 필요 없이 빠르게 액세스할 수 있도록 합니다.
로컬 DNS 캐시에 해당 도메인의 IP 주소가 없거나 만료된 경우, 사용자의 컴퓨터는 사전에 설정된 기본 DNS 서버에 DNS 쿼리를 보냅니다. 일반적으로 ISP(Internet Service Provider)가 제공하는 DNS 서버를 사용합니다.
기본 DNS 서버는 도메인 이름을 가지고 있는 최상위 도메인(Top-Level Domain) 서버에게 쿼리를 전달합니다. 예를 들어, ".com" 도메인을 처리하는 최상위 도메인 서버에게 쿼리를 전송합니다.
최상위 도메인 서버는 도메인 이름에 해당하는 도메인 등록 정보를 가지고 있는 네임 서버(Name Server)의 주소를 반환합니다.
기본 DNS 서버는 네임 서버에게 쿼리를 전송하여 도메인에 대한 IP 주소를 요청합니다.
네임 서버는 해당 도메인에 대한 IP 주소를 가지고 있거나, 다른 네임 서버에게 쿼리를 전달하여 IP 주소를 찾습니다. 이 과정은 계층적인 구조를 따라 도메인 계층을 거슬러 올라가며 진행됩니다.
최종적으로 도메인에 대한 IP 주소를 가지고 있는 네임 서버는 IP 주소를 기본 DNS 서버로 전송합니다.
기본 DNS 서버는 IP 주소를 로컬 DNS 캐시에 저장하고, 사용자의 컴퓨터에 IP 주소를 반환합니다.
사용자의 컴퓨터는 이제 도메인 이름 대신 IP 주소를 사용하여 원하는 웹 서버에 연결합니다. 이를 통해 웹 페이지를 요청하고, 서버는 해당 IP 주소에서 올바른 웹 페이지를 전송합니다.