studyHard
article thumbnail

OSI 7 계층을 설명해 주세요.

OSI 7 계층은 통신이 일어나는 과정을 7단계로 정의한 국제 통신 표준 규약이다.
각 계층은 물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용 계층으로 구성되어 있다.

물리 계층의 통신단위는 비트로, 0과 1로 구성된 데이터를 선으로 전달할 수 있도록 전기적인 신호로 변환시켜 주는 역할을 합니다. 대표적인 장치로 통신 케이블, 리피터, 허브 등이 있다.

데이터 링크 계층은 같은 LAN안의 연결된 컴퓨터들끼리 MAC (Media Access Control Address) 주소로
통신이 가능하게 해 줍니다. 데이터 전송은 Point-To-Point의 신뢰성을 보장하고, 전송되는 단위를 프레임이라 한다. 이더넷, 투 포인트 프로토콜, 근거리 네트워크 프로토콜 등이 해당된다.

네트워크 계층 라우터 장비를 이용해 데이터를 목적지까지 최적의 경로로 전달해 주는 역할을 한다.
IP 주소를 정하고, 경로(Route)를 선택해서 데이터를 전달
하는 핵심 계층이다.
데이터 단위를 패킷이라고 칭하며 대표적인 장비로 라우터, 스위치가 해당되며 IP 주소가 활용되는 계층이다.

전송 계층은 양 끝단(End to End)의 사용자들이 데이터를 통신하도록 신뢰성을 확보하는 계층이자, 통신이 활성화되는 계층입니다. 대표적으로 TCP, UDP 같은 프로토콜이 적용되는 계층이다.
데이터 전송을 위해 Port 번호가 활용된다.

세션 계층 논리적인 연결을 관리, 지속시켜주는 계층이다. 데이터를 만들어내는 영역이라고 생각할 수 있다.
이를 위해 세션(통신장치 간의 반영구적 연결상태 다이얼로그)을 만들고 유지하며,
특히 TCP/IP 기반으로 만들어지고 통신하는 사용자들을 동기화하고 오류복구를 진행한다.

표현 계층은 데이터 표현에 대한 독립성 제공과 암호화 역할을 담당합니다.

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

TCP와 UDP의 차이점에 대해 설명하세요.

같은 전송 계층 프로토콜이지만 TCP은 연결형 프로토콜이고 UDP은 비연결형 프로토콜입니다.
TCP는 ACK을 통해서 데이터의 수신 여부를 확인하여 신뢰성이 높은 프로토콜이지만 그만큼 속도가 느리다는 특징이 있습니다. 반면 UDP는 수신 여부를 확인하지 않아 속도가 빠르지만 신뢰성이 낮다는 특징이 있습니다.

그래서 TCP는 파일전송과 같은 신뢰성이 중요한 서비스에 사용되고,
UDP는 스트리밍, RTP (실시간 전송 프로토콜)와 같이 연속성이 더 중요한 서비스에 사용됩니다.

TCP : 신뢰성있는 통신 보장(오류제어, 흐름제어 등). 데이터 전송을 보장하는 연결성 프로토콜로, 동기화(SYN 패킷), 확인(ACK 패킷)을 3번 진행하는 3-way handshaking 방식으로 상호연결을 설정한다. 
전송단위는 Segment 라고 칭한다.

UDP : 비연결성 프로토콜로, 데이터를 빠르게 전달하는 데 초점을 둔다. 전송만 하면 종료되므로 오버헤드가 적으며, 신뢰성보단 스트리밍같이 연속적인 특성을 갖는 서비스에 주로 이용. 
전송단위는 Datagram 이라고 칭한다.

UDP 자체는 신뢰성을 보장하지 않지만, 추가적인 정의를 통해 신뢰성을 보장받을 수 있음.

OSI 모델의 한계는 무엇인가요?

OSI 모델은 네트워크 통신에서 데이터가 어떻게 전송되는지를 설명하는 모델이지만, 네트워크 프로토콜의 복잡성이나 실제 구현의 어려움, 그리고 네트워크 통신의 동적성을 다루지 못합니다. 따라서, OSI 모델은 네트워크 기본 개념을 이해하는 데 도움이 되지만, 실제 네트워크 구현과 관련된 복잡한 문제를 다루기 어렵습니다.

OSI 모델이 왜 중요한가요?

OSI 모델은 네트워크 통신에 대한 표준화된 모델입니다. 이 모델은 각 계층이 다른 계층과 어떻게 상호작용하는지에 대한 일반적인 프레임워크를 제공하여 다른 기술들과 통합될 수 있도록 도와줍니다. 각 계층은 특정 기능을 수행하며, 이를 통해 전체 시스템이 안정적이고 효율적으로 작동할 수 있습니다. 또한 OSI 모델은 문제가 발생할 경우 해당 계층에서 문제를 해결할 수 있습니다. 이는 전체 시스템을 파악하고 문제를 해결하는 데 도움이 됩니다.

OSI 7, TCP/IP 차이

TCP/IP는 실제 인터넷 통신을 반영하기에 현실적이며, 인터넷 개발 이후 계속 표준화되어 신뢰성이 우수하다.
반면, OSI 모델은 계층을 정확히 구분한 표준이긴 하나 실질적으로 적용되는 예시가 적어 신뢰성이 보장되지 못한다.
즉, 네트워크 전송 시 데이터 표준을 정리한 것이 OSI 7 계층, 이 이론을 실제 사용하는 인터넷 표준이 TCP/IP 4 계층이다.

TCP/IP

TCP/IP는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화된 모형이다
OSI 7 계층을 4 계층으로 분류하여 적용할 수 있다.

네트워크 액세스 계층 (Network Interface or Network Access Layer)
OSI 1,2 계층에 해당. 데이터를 전기신호로 변환, 물리적인 주소인 MAC 주소를 사용해 알맞은 기기로 데이터를 전달하는 계층
 
2. 인터넷 계층(Internet Layer)
OSI 3 계층에 해당하며, 패킷을 최종 목적지까지 라우팅 하는 계층이다.
 
3. 전송 계층(Transport Layer)
OSI 3,4 계층에 해당하며, 통신 노드 간 신뢰성 있는 데이터 전송을 보장하는 계층이다.
역캡슐화 과정에서, 포트 번호를 사용해 데이터를 정확한 애플리케이션에 전달하는 역할도 한다.
네트워크 액세스 계층과 인터넷 계층을 통해, 데이터가 목적지 기기까지 정상적으로 도착했다면,
전송 계층은 포트 번호를 사용해, 데이터를 목적지 기기 내 적절한 애플리케이션으로 전달한다.

 
4. 응용 프로그램 계층(Application Layer)
OSI 5,6,7 계층에 해당하며, 사용자와 가장 가까운 계층으로, 사용자-소프트웨어 간 소통을 담당하는 계층이고,
애플리케이션을 실행하기 위한 데이터 형식이 작성된다.

캡슐화와 역캡슐화에 관해 설명해 주세요.

캡슐화와 역캡슐화는 각 계층에서의 데이터 변환과정에서 일어나는 개념입니다.
TCP/IP 4 계층의 경우, 송신자 측에서 HTTP로 특정한 메시지를 전송하면
애플리케이션 계층 => 전송계층 => 인터넷 계층 => 네트워크 액세스계층을 거쳐 캡슐화를 진행하게 됩니다.
이때 캡슐화는 데이터 전송을 각 계층에서 포트 정보, IP 주소 등의 헤더를 추가하는 것입니다.
그리고 수신 측에서 전송된 데이터는 역캡슐화 단계를 거치게 되고 최종적으로 모든 헤더가 제거된 원본 데이터를 확인 가능합니다. OSI 계층도 같은 방식으로 캡슐화와 역캡슐화가 진행됩니다.

각 계층에서 일어나는 데이터 변환과정을 설명해 주세요.

OSI 7 계층에서 각 계층은 데이터의 전달을 위해 특정한 역할을 담당하며, 이러한 계층들은 데이터를 전달하면서 각 계층에서 필요한 정보를 추가하거나 제거하여 데이터 변환 과정이 일어납니다.
물리 계층은 (Physical layer) 전기, 빛, 무선 등의 물리적 신호로 데이터를 전송데이터 비트를 전기 신호로 변환하여 전송하고, 수신된 전기 신호를 데이터 비트로 복원
데이터 링크 계층은 (Data Link layer) 물리 계층에서 전송된 데이터 프레임을 통해 에러 검사 및 제어데이터 프레임에 헤더와 트레일러를 추가하여 송수신자 간의 통신을 보장
네트워크 계층은 (Network layer) 데이터를 송신자에서 수신자까지의 경로를 결정하여 데이터를 전달패킷에 출발지와 목적지 주소를 추가하여 데이터를 전달
전송 계층은 (Transport layer) 논리적인 연결을 제공하여 데이터 전송을 관리세그먼트를 이용하여 데이터를 나누어 전송하고, 수신 측에서 다시 조립하여 데이터 전송 보장
세션 계층은 (Session layer) 데이터 송수신간의 대화 관리 및 동기화세션을 설정하여 데이터를 전송하고, 세션을 종료하여 데이터 송수신을 마무리
표현 계층은 (Presentation layer) 데이터의 형식을 변환하여 응용 계층에서 사용 가능한 형식으로 제공데이터를 암호화하거나 압축하여 표현 계층에서 응용 계층으로 전달
응용 계층은 (Application layer) 사용자가 네트워크 서비스에 접근할 수 있도록 인터페이스 제공사용자가 필요한 서비스를 요청하고, 서비스를 제공하는 서버와 통신하여 데이터 전달

3-way Handshaking, 4-way Handshaking

3-way Handshaking

데이터를 전송하기 전, 두 컴퓨터 사이를 연결하는 과정으로 제어 비트 중 SYN, ACK이 사용됩니다. 먼저 클라이언트 쪽에서 SYN이 담긴 데이터를 보내 연결 요청을 합니다. 서버에서 연결을 할 수 있다면 SYN과 ACK이 담긴 데이터를 보냅니다. 이 데이터를 받은 클라이언트 쪽에서 ACK이 담긴 데이터를 보내면 두 컴퓨터 사이의 연결이 완료됩니다.

4-way Handshaking

데이터 전송이 끝난 뒤, 두 컴퓨터 사이의 연결을 끊기 위한 과정으로 제어 비트의 FIN과 ACK이 사용됩니다. 클라이언트가 연결 종료를 요청하는 의미로 FIN이 담긴 데이터를 보냅니다. 이를 받은 서버는 FIN에 대한 응답으로 ACK이 담긴 데이터를 보냅니다. 이후 서버에서도 FIN이 담긴 데이터를 보내고 이에 대한 응답으로 클라이언트에서 ACK이 담긴 데이터를 보내면 두 컴퓨터 사이의 연결이 종료됩니다.

 

꼬리질문 답변 못 한 것

 

네트워크 계층에서 사용되는 프로토콜

왜 HTTP는 TCP 사용하나요?

profile

studyHard

@언젠간코딩잘함

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!