OSI 7 계층

강민승·2023년 5월 1일
0

네트워크

목록 보기
1/12

OSI 7 계층



7계층은 왜 나눌까?

통신이 일어나는 과정을 단계별로 알 수 있고, 특정한 곳에 이상이 생기면 그 단계만 수정할 수 있기 때문이다.


1) 물리(Physical)

리피터, 케이블, 허브 등

단지 데이터 전기적인 신호로 변환해서 주고받는 기능을 진행하는 공간

즉, 데이터를 전송하는 역할만 진행한다.


브릿지, 스위치 등

물리 계층으로 송수신되는 정보를 관리하여 안전하게 전달되도록 도와주는 역할

Mac 주소를 통해 통신한다. 프레임에 Mac 주소를 부여하고 에러검출, 재전송, 흐름제어를 진행한다.

데이터 계층에서 브릿지와 스위치는?

데이터 링크 계층에서 브릿지와 스위치는 네트워크에서 데이터를 전송하기 위한 중계 장비입니다. 두 장비는 기능적으로 유사하지만, 네트워크에서 사용되는 위치와 기술적인 면에서 차이가 있습니다.

브릿지는 이더넷 네트워크에서 여러 개의 세그먼트를 연결하기 위해 사용되는 장비입니다. 브릿지는 이더넷 프레임의 충돌을 감지하고, 충돌을 방지하기 위해 이더넷 세그먼트 간에 프레임을 필터링하거나 전달합니다. 브릿지는 MAC 주소를 사용하여 프레임을 필터링하므로, MAC 주소를 기반으로 한 라우팅 결정을 수행합니다. 브릿지는 이더넷 네트워크에서 사용되며, 비교적 작은 규모의 네트워크에서 사용됩니다.

스위치는 브릿지와 유사한 기능을 수행하지만, 브릿지보다 더 복잡한 네트워크에서 사용됩니다. 스위치는 브릿지와 달리, 매우 빠른 속도로 프레임을 필터링하고 전달할 수 있습니다. 스위치는 포트별로 독립적인 충돌 도메인을 형성하여, 이더넷 세그먼트 간에 프레임 충돌을 방지합니다. 스위치는 라우팅 결정을 수행하기 위해 IP 주소와 같은 고급 계층 정보를 사용합니다. 스위치는 대규모 이더넷 네트워크에서 사용되며, 브릿지보다 더 높은 성능과 확장성을 제공합니다.

브릿지와 스위치는 모두 데이터링크 계층에서 중계 장비로서, 네트워크에서 데이터 전송을 보다 안정적이고 빠르게 수행하기 위해 사용됩니다.

이더넷?

이더넷(Ethernet)은 유선 LAN(Local Area Network)에서 가장 널리 사용되는 통신 기술 중 하나입니다. 이더넷은 데이터를 전송하기 위한 프로토콜과 물리적인 네트워크 구성 요소로 이루어져 있습니다.

이더넷은 CSMA/CD(Carrier Sense Multiple Access with Collision Detection)라고 불리는 통신 방식을 사용합니다. 이 방식은 여러 개의 컴퓨터가 같은 통신 매체(예: 케이블)를 공유하면서, 각 컴퓨터가 데이터를 전송하기 전에 다른 컴퓨터가 통신하고 있는지를 감지하고 충돌을 방지하기 위해 경쟁합니다. 이더넷은 이러한 충돌을 감지하고 처리하기 위한 기술을 내장하고 있습니다.

이더넷은 일반적으로 10Mbps, 100Mbps, 1Gbps, 10Gbps 등의 속도로 데이터를 전송할 수 있습니다. 이더넷은 UTP(Unshielded Twisted Pair) 케이블을 사용하여 데이터를 전송하며, 광케이블을 사용하는 광 이더넷도 있습니다.

이더넷은 LAN에서 가장 널리 사용되는 기술 중 하나이며, 인터넷의 발전과 함께 네트워크 기술의 중요성이 증가함에 따라 계속해서 발전해 왔습니다. 현재 이더넷은 무선 LAN 기술인 Wi-Fi와 함께 가정용, 기업용 등 다양한 네트워크에서 사용되고 있습니다.


3) 네트워크(Network)

라우터, IP

데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능을 담당한다.

라우터를 통해 이동할 경로를 선택하여 IP 주소를 지정하고, 해당 경로에 따라 패킷을 전달해준다.

라우팅, 흐름 제어, 오류 제어, 세그먼테이션 등을 수행한다.

네트워크 계층의 심화

네트워크 계층(Network Layer)은 OSI 7계층 모델에서 3번째 계층으로, 다른 네트워크와 통신을 하기 위해 필요한 논리적인 주소와 라우팅 등을 다룹니다.

네트워크 계층은 데이터를 패킷 단위로 분할하고, 이를 목적지까지 전달하기 위해 라우팅 결정을 수행합니다. 라우팅 결정은 목적지까지 가장 효율적인 경로를 선택하는 과정으로, 이를 위해 라우터나 스위치와 같은 중계 장비를 사용합니다.

네트워크 계층에서는 IP(Internet Protocol) 프로토콜을 사용하여 데이터를 주고받습니다. IP 주소는 네트워크 계층에서 사용되는 논리적인 주소이며, 이 주소를 통해 목적지를 식별하고 경로를 결정합니다. IP 주소는 IPv4와 IPv6 두 가지 버전이 있으며, 각각 32비트와 128비트로 구성됩니다.

네트워크 계층에서는 또한 ICMP(Internet Control Message Protocol) 프로토콜을 사용하여 오류 메시지를 전송하고, ARP(Address Resolution Protocol)를 사용하여 IP 주소를 물리적인 MAC 주소로 변환합니다.

네트워크 계층은 인터넷과 같은 대규모 네트워크에서 매우 중요한 역할을 합니다. IP 주소를 사용하여 데이터 패킷을 목적지까지 안전하고 신속하게 전달하고, 라우팅 결정을 수행하여 최적의 경로를 선택합니다. 이를 통해 인터넷에서 전 세계적인 데이터 통신이 가능해졌으며, 이는 현대 사회에서 매우 중요한 역할을 합니다.

라우터란?

라우터(Router)는 인터넷이나 네트워크에서 데이터를 전송할 때, 데이터의 최적 경로를 찾아주는 네트워크 장비입니다. 라우터는 OSI 7계층 모델에서 네트워크 계층에서 동작합니다.

라우터는 IP 주소를 기반으로 데이터 패킷을 받아들이고, 패킷을 전송할 때 목적지 IP 주소를 참조하여 패킷을 전달할 다음 라우터나 최종 목적지로 전송합니다. 라우터는 이러한 작업을 수행하기 위해 라우팅 테이블이라는 데이터베이스를 사용합니다. 라우팅 테이블은 목적지 IP 주소를 어떤 인터페이스를 통해 전송해야 하는지, 다음에 연결할 라우터의 IP 주소는 무엇인지 등의 정보를 담고 있습니다.

라우터는 여러 개의 네트워크 간을 중계하는 중계 장치로서, 각 네트워크는 라우터를 통해 다른 네트워크와 통신할 수 있습니다. 라우터는 패킷의 충돌을 방지하기 위해 패킷의 대기열을 관리하고, 패킷의 우선순위에 따라 전송하는 기능을 제공합니다.

라우터는 인터넷이나 대규모 기업 내부에서 많이 사용되며, 여러 개의 네트워크 간을 중계하면서 안정적인 데이터 전송을 지원합니다. 또한 라우터는 패킷 필터링과 같은 보안 기능도 제공하여 네트워크 보안을 강화할 수 있습니다.

라우터는 대규모에서만? 중소,중견은 뭐써?

라우터는 네트워크 상에서 데이터를 전달하기 위한 장치이며, 대규모 기업에서는 인터넷 연결이나 네트워크 관리 등에 많이 사용됩니다. 하지만, 소규모나 중견기업에서도 라우터를 사용하는 경우가 많습니다.

하지만, 규모가 작은 기업에서는 라우터 대신 스위치(Switch)를 사용하기도 합니다. 스위치는 라우터와 달리 같은 네트워크 상에서 데이터를 전송하기 때문에, 네트워크 분할이 필요하지 않은 경우에 많이 사용됩니다. 또한, 가격도 라우터보다 저렴하며, 관리도 간편합니다.

따라서, 기업의 규모나 필요에 따라 적절한 장비를 선택하여 사용하는 것이 중요합니다.

4) 전송(Transport)

TCP, UDP

TCP와 UDP 프로토콜을 통해 통신을 활성화한다. 포트를 열어두고, 프로그램들이 전송을 할 수 있도록 제공해준다.

  • TCP : 신뢰성, 연결지향적

  • UDP : 비신뢰성, 비연결성, 실시간

전송계층의 TCP와 UDP에 대해서 자세하게 설명

전송 계층(Transport Layer)에서는 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol) 두 가지 프로토콜이 사용됩니다. 이 두 프로토콜은 인터넷에서 데이터를 전송하는 데 사용됩니다.

TCP는 연결 지향적인 프로토콜로, 신뢰성 있는 데이터 전송을 보장합니다. TCP는 데이터를 송수신하는 애플리케이션 간의 연결을 설정하고, 데이터를 세그먼트 단위로 나누어 전송합니다. TCP는 데이터를 수신한 측이 제대로 수신했는지 확인하고, 제대로 수신하지 못한 경우 재전송을 요청하는 기능을 제공합니다. 이러한 기능으로 인해 TCP는 안정적인 데이터 전송을 보장하지만, 전송 시간이 느릴 수 있다는 단점이 있습니다.

UDP는 비연결형 프로토콜로, TCP와 달리 데이터 전송에 대한 신뢰성을 보장하지 않습니다. UDP는 데이터를 패킷 단위로 전송하며, 패킷이 제대로 수신되었는지 확인하지 않고 다음 패킷을 전송합니다. UDP는 데이터를 빠르게 전송하기 위해 사용되며, 속도가 빠르지만 신뢰성은 떨어집니다.

TCP와 UDP는 각각의 장단점을 가지고 있으며, 애플리케이션에 따라 적합한 프로토콜을 선택하여 사용해야 합니다. 예를 들어, 웹 브라우저에서는 HTTP 프로토콜을 사용하는데, HTTP는 기본적으로 TCP를 사용합니다. 이는 웹 페이지를 안정적으로 전송하기 위해 신뢰성 있는 데이터 전송이 필요하기 때문입니다. 반면, DNS(Domain Name System) 서비스는 UDP를 사용하는데, 이는 DNS 쿼리를 빠르게 처리하기 위해 신뢰성을 보장하지 않아도 되기 때문입니다.


5) 세션(Session)

API, Socket

데이터가 통신하기 위한 논리적 연결을 담당한다. TCP/IP 세션을 만들고 없애는 책임을 지니고 있다.

API 와 Socket에 대해서

세션 계층(Session Layer)은 네트워크에서 애플리케이션 간의 연결을 관리하고, 데이터 전송 세션을 설정하고 유지하는 역할을 합니다. 세션 계층에서는 애플리케이션 간의 데이터 통신을 제어하기 위한 여러 가지 API(Application Programming Interface)와 Socket이 제공됩니다.

API는 세션 계층에서 제공하는 프로그래밍 인터페이스로, 애플리케이션이 세션 계층과 상호 작용하기 위한 기능을 제공합니다. API는 애플리케이션이 데이터 전송 세션을 설정하고, 데이터 전송 중에 발생하는 오류를 처리하는 등의 기능을 수행합니다. 예를 들어, 소켓을 만들고 연결 요청을 보내는 기능을 수행할 수 있습니다.

Socket은 네트워크에서 애플리케이션 간의 연결을 만드는 데 사용되는 인터페이스입니다. 소켓은 IP 주소와 포트 번호로 구성된 네트워크 주소와 함께 사용됩니다. 소켓은 데이터를 전송하기 위한 버퍼를 제공하며, 이 버퍼를 통해 데이터를 보내고 받습니다. 또한, 소켓은 연결 요청, 연결 수락, 연결 종료 등의 기능을 수행합니다.

API와 Socket은 세션 계층에서 제공하는 인터페이스로, 애플리케이션 개발자는 이를 사용하여 데이터 전송 세션을 설정하고, 데이터 전송 중에 발생하는 오류를 처리할 수 있습니다. API와 Socket은 애플리케이션 개발에서 매우 중요한 역할을 하며, 세션 계층에서 제공하는 다양한 프로토콜과 함께 사용되어 네트워크 상에서 안정적이고 효율적인 데이터 통신을 가능하게 합니다.


6) 표현(Presentation)

JPEG, MPEG 등

데이터 표현에 대한 독립성을 제공하고 암호화하는 역할을 담당한다.

파일 인코딩, 명령어를 포장, 압축, 암호화한다.


7) 응용(Application)

HTTP, FTP, DNS 등

최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.

사용자 인터페이스, 전자우편, 데이터베이스 관리 등의 서비스를 제공한다.

OSI 모델은 컴퓨터 네트워크에서 데이터 통신을 위해 개발된 참조 모델입니다. OSI 모델은 7개의 계층으로 구성되며, 각 계층은 데이터 통신에서 특정한 역할을 수행합니다.

물리 계층 (Physical Layer)

전기적, 기계적 신호를 전송하기 위한 물리적 매체를 다룹니다.
비트 스트림을 전기 신호로 변환하여 전송합니다.

직접 연결된 기기 간의 통신을 담당합니다.
물리 계층에서 전송된 데이터를 프레임 단위로 분할하여 주소를 할당하고, 오류 검출 및 수정을 수행합니다.

네트워크 계층 (Network Layer)

다른 네트워크 간의 통신을 담당합니다.
패킷을 라우팅하고, 흐름 제어, 오류 검출 및 복구를 수행합니다.

전송 계층 (Transport Layer)

양 끝단(End-to-end) 간의 통신을 담당합니다.
데이터를 분할하고, 순서화하며, 오류 복구 및 흐름 제어를 수행합니다.

세션 계층 (Session Layer)

통신 세션을 설정하고 유지하는 역할을 합니다.
논리적인 연결을 만들고, 관리하며, 동기화를 수행합니다.

표현 계층 (Presentation Layer)

데이터 형식을 변환하거나 암호화하여 전송 계층에 제공합니다.
데이터를 응용 계층에서 사용할 수 있는 형식으로 변환합니다.

응용 계층 (Application Layer)

최종 사용자가 사용하는 응용 프로그램에 직접적으로 관련된 계층입니다.
프로토콜을 사용하여 데이터를 교환합니다. 예를 들면, HTTP, FTP, SMTP 등이 있습니다.

OSI 모델은 데이터 통신에서 각 계층이 어떤 역할을 수행하고, 어떤 데이터 유형을 다루는지를 명확히 정의하여, 서로 다른 기기나 운영 체제 간의 상호 운용성을 보장합니다.



DNS

DNS(Domain Name System)은 인터넷에서 도메인 이름을 IP 주소로 변환하는 시스템입니다. 도메인 이름은 인터넷 사용자가 쉽게 기억하고 입력할 수 있는 문자열이지만, 컴퓨터 네트워크에서는 IP 주소로 식별합니다.

DNS는 도메인 이름에 해당하는 IP 주소를 찾기 위해 계층적으로 구성된 이름 공간을 사용합니다. 예를 들어, www.example.com이라는 도메인 이름을 입력하면, 이를 처리하기 위해 먼저 최상위 도메인(com)을 관리하는 DNS 서버에 쿼리를 보내고, 그 다음 레벨에 해당하는 DNS 서버에도 쿼리를 보내면서, 하위 도메인(example.com)과 그에 해당하는 IP 주소를 찾아냅니다.

DNS는 전 세계적으로 분산되어 있는 수많은 DNS 서버들이 연동하여 작동합니다. 인터넷 사용자는 DNS 서버에 직접 접속하는 것이 아니라, ISP(Internet Service Provider)나 Wi-Fi 공유기 등을 통해 자동으로 DNS 서버를 이용하게 됩니다.

DNS는 인터넷 사용자가 도메인 이름을 이용해 웹사이트를 방문하거나 이메일을 보낼 수 있도록 하는 핵심 기술입니다.


FTP, SMTP

FTP(File Transfer Protocol)와 SMTP(Simple Mail Transfer Protocol)는 인터넷에서 파일 전송과 이메일 전송을 위해 사용되는 프로토콜입니다.

FTP는 파일 전송을 위한 프로토콜로, 클라이언트와 서버 사이에서 파일을 주고받기 위한 표준 방법을 정의합니다. FTP를 이용하면, 서버에 있는 파일을 다운로드하거나 클라이언트에서 서버로 파일을 업로드할 수 있습니다. 일반적으로 FTP는 파일을 전송하기 위해 사용되지만, 명령어를 이용해 파일의 삭제, 이동, 이름 변경 등의 작업도 수행할 수 있습니다.

SMTP는 이메일 전송을 위한 프로토콜로, 인터넷을 통해 이메일 메시지를 보내는 방법을 정의합니다. SMTP는 이메일 클라이언트가 메시지를 보낼 때 사용되며, 이메일 서버 간에도 메시지를 전송하는 데 사용됩니다. SMTP는 이메일 주소 지정, 제목 및 본문 형식, 첨부 파일 및 이메일 보안 등 다양한 기능을 제공합니다.

FTP와 SMTP는 모두 인터넷에서 파일 전송과 이메일 전송을 위해 중요한 프로토콜입니다. FTP와 SMTP는 모두 TCP/IP 프로토콜 스택에서 작동하며, 전송하는 데이터의 형식과 전송 방식 등에서 차이가 있습니다.


표현 계층에서 어떻게 암호화..?

표현 계층은 데이터를 응용 계층에서 사용 가능한 형식으로 변환하는 역할을 합니다. 이 때, 암호화는 데이터의 기밀성 및 보안을 유지하기 위해 필요한 기술 중 하나입니다.

표현 계층에서 암호화는 데이터를 암호화하여 응용 계층에서 수신하는 측에게만 해독할 수 있도록 하는 방식으로 이루어집니다. 이를 위해 대칭키 암호화와 공개키 암호화 등의 기술이 사용됩니다.

대칭키 암호화는 암호화와 복호화에 같은 암호화 키를 사용하는 기술입니다. 데이터를 암호화할 때 사용하는 키를 수신하는 측과 공유하고, 이 키를 이용하여 데이터를 복호화합니다. 이러한 대칭키 암호화 방식에는 DES(Data Encryption Standard), AES(Advanced Encryption Standard) 등이 있습니다.

공개키 암호화는 암호화와 복호화에 다른 암호화 키를 사용하는 기술입니다. 데이터를 암호화할 때 사용하는 키를 수신하는 측에게 공개하고, 이 키를 이용하여 암호화된 데이터를 복호화합니다. 공개키 암호화 방식에는 RSA, DSA 등이 있습니다.

표현 계층에서 암호화는 데이터의 기밀성과 보안을 유지하기 위해 필수적인 기술 중 하나입니다. 대칭키 암호화와 공개키 암호화를 이용하여 데이터를 안전하게 전송할 수 있습니다.

profile
Step by Step goes a long way. 꾸준하게 성장하는 개발자 강민승입니다.

0개의 댓글