본문 바로가기

이것저것 스터디📚/CS 스터디

OSI 7계층

1. OSI(Open System Interconnection) 7계층이란?

국제 표준화 기구 (ISO)가 1984년에 발표한 것으로 컴퓨터 통신 구조의 모델과 앞으로 개발될 프로토콜의 표준적인 뼈대를 제공하기 위해 개발된 참조 모델이다.

쉽게 말해서 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.

 

2. OSI 7계층을 나눈 이유는?

통신이 일어나는 과정을 단계별로 파악하기 위함이다.

7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠수 있기 때문이다.

OSI 7 계층

3. OSI 7 계층에 대한 설명

 

* 데이터가 만들어지는 과정은 7, 6, 5계층을 통해서 만들어진다.

 

3.1 7계층 - 응용 계층(Application Layer)

 

- 이 계층은 사용자 인터페이스의 역할을 담당하는 계층이다.

- 최종 목적지로서 HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있다.

- 우리가 사용하는 브라우저, 메일 프로그램은 프로토콜을 쉽게 사용하게 해주는 응용 프로그램이다. 즉, 모든 통신의 양 끝단은 HTTP와 같은 프로토콜이지 응용프로그램이 아니다.

- 이 계층에서 패킷은 Message라고 한다

 

- 네트워크 소프트웨어 UI 부분, 사용자의 입출력(I/O)부분

 

* gpt : 7계층은 OSI(Open Systems Interconnection) 모델에서의 최상위 계층으로, 응용 계층(Application Layer)이라고 불립니다. 이 계층은 최종 사용자와 네트워크 사이의 상호 작용을 다루며, 사용자에게 서비스를 제공하고 응용 프로그램 간의 데이터 교환을 관리합니다. 이 계층은 사용자의 요구와 응용 프로그램 사이의 다리 역할을 수행합니다.

7계층의 주요 기능
1. 응용 프로그램 서비스 제공: 사용자 및 응용 프로그램에 다양한 서비스를 제공합니다. 예를 들어, 이메일, 파일 전송, 웹 브라우징 등의 서비스가 여기에 속합니다.
2. 프로토콜 변환: 각 응용 프로그램은 서로 다른 프로토콜을 사용할 수 있습니다. 응용 계층은 데이터를 적절한 형식으로 변환하고 해석하여 프로토콜 간의 호환성을 유지합니다.
3. 사용자 인터페이스: 사용자와 컴퓨터 네트워크 간의 상호 작용을 위한 인터페이스를 제공합니다. 예를 들어, 웹 브라우저를 통한 웹 사이트 접속이나 이메일 클라이언트를 통한 이메일 송수신이 여기에 해당합니다.
4. 데이터 압축 및 암호화: 데이터를 보안성 있게 전송하기 위해 암호화를 수행하거나 데이터를 압축하여 효율적인 통신을 지원합니다.

7계층은 사용자에게 직접적인 영향을 미치는 계층으로, 사용자가 원하는 서비스와 응용 프로그램을 제공하고 관리하기 위한 계층입니다. 예를 들어, 웹 브라우저를 통해 웹 사이트에 접속하거나 메시징 애플리케이션을 사용할 때 사용자가 상호 작용하는 부분이 응용 계층에 해당합니다.

 

3.2 6계층 - 표현 계층(Presentaion Layer)

 

- 이 계층은 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고, 암호화한다. 즉, 전송하는 데이터의 Format(구성 방식)을 결정한다.

- 다양한 데이터 Format을 일관되게 상호 변환, 압축 및 암호화, 복호화 기능을 수행한다. ex) ASCII, JPEG, AVI, MPEG 등

- 이 계층에서 패킷은 Message라고 한다

 

* gpt : 6계층은 프레젠테이션 계층(Presentation Layer)입니다. 이 계층은 데이터를 응용 계층과 네트워크 계층 간에 상호 변환하고 암호화, 복호화, 압축 등의 작업을 수행하여 데이터의 형식과 구조를 맞추는 역할을 합니다.

프레젠테이션 계층의 주요 목적은 다양한 데이터 형식이나 인코딩 방식을 지원하여 서로 다른 응용 프로그램 간에 데이터 교환을 가능하게 만드는 것입니다. 예를 들어, 한 응용 프로그램은 텍스트로 데이터를 주고받아야 하고, 다른 응용 프로그램은 이미지 데이터를 주고받아야 할 수 있습니다. 이때 프레젠테이션 계층은 텍스트 데이터를 압축하고 이미지 데이터를 인코딩하여, 서로 다른 형식의 데이터를 상호 변환하여 통신이 가능하도록 합니다.

또한 보안적인 측면에서도 프레젠테이션 계층은 중요한 역할을 합니다. 데이터의 암호화와 복호화 작업을 수행하여 안전한 통신을 유지하며, 데이터의 무결성을 보장하기 위해 체크섬 등의 메커니즘을 사용할 수 있습니다.

프레젠테이션 계층은 네트워크 계층으로부터 받은 데이터를 응용 계층으로 전달하기 전에 필요한 변환과 보안 작업을 수행하여, 다양한 응용 프로그램 간에 데이터 교환을 가능하게 합니다.

 


3.3 5계층 -세션 계층(Session Layer)

 

- 이 계층에서는 데이터가 통신하기 위한 논리적인 연결을 한다. 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다.

- 하지만, 4계층에서도 연결을 맺고 종료할 수 있기 때문에 우리가 어느 계층에서 통신이 끊어졌는지 판단하기는 한계가 있다.

- 따라서, 세션 계층은 4계층(전송계층)과 무관하게 응용 프로그램 관점에서 봐야한다.

- 이 계층의 기능에는 세션 설정, 유지, 종료, 전송 중단시 복구 등의 기능이 있다.

- 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(full duplex)의 통신과 함께 체크포인팅과 유휴, 종료, 다시 시작 과정 등을 수행한다.

- 이 계층에서 패킷은 Message라고 한다

 

* gpt : 5계층은 세션 계층(Session Layer)으로, OSI 7계층 중의 하나입니다. 세션 계층은 양 끝단의 응용 프로세스 간의 통신을 설정하고 관리하는 역할을 합니다. 이 계층은 데이터의 흐름을 제어하고, 데이터 교환의 동기화와 복구를 담당합니다.

세션 계층의 주요 기능
1. 다이얼로그 제어 (Dialog Control): 세션 계층은 양 끝단 간의 통신을 다이얼로그(Dialog)로 분할하고 관리합니다. 이를 통해 통신이 시작되고 종료되는 방식을 조정하며, 다이얼로그 내에서 데이터의 흐름과 순서를 관리합니다.
2. 동기화 (Synchronization): 세션 계층은 데이터의 전송과 응답을 동기화하여 데이터 손실이나 중복을 방지합니다. 이를 통해 정확한 데이터 교환을 유지하고 효율적인 통신을 보장합니다.
3. 체크 포인팅 및 복구 (Checkpointing and Recovery): 세션 계층은 통신 과정에서 발생하는 장애에 대비하여 체크 포인트를 설정하고 복구 작업을 수행합니다. 이를 통해 데이터 손실이나 통신 중단 시 데이터를 복구할 수 있습니다.
4. 통신 관리 (Communication Management): 세션 계층은 통신 세션의 생성, 유지, 종료 등을 관리합니다. 예를 들어, 웹 브라우징 세션에서 다양한 웹 페이지를 탐색하는 동안 세션을 관리하여 이전 페이지와의 연결을 유지하거나 새로운 페이지와의 연결을 설정합니다.

세션 계층은 네트워크 계층에서 수신한 패킷을 정확하게 구분하고, 응용 프로세스 간의 세션을 설정하고 관리하여 데이터 통신을 안정적으로 수행할 수 있도록 도와줍니다.

 

* 동시 송수신 방식(duplex) : 통신 장치가 동시에 양방향으로 데이터를 송신하고 수신할 수 있는 방식을 의미합니다. 이 방식은 데이터의 송신과 수신이 독립적으로 이루어지며, 두 장치 간의 통신이 양방향으로 동시에 이루어질 수 있습니다. 

* 반이중 방식(half-duplex) : 반이중 방식은 통신을 하는 두 장치 중 하나가 특정 시간에만 데이터를 송신하거나 수신할 수 있는 방식입니다. 즉, 동시에 데이터를 송신하고 수신할 수 없으며, 한 번에 한 방향으로만 데이터 통신이 가능합니다. 무선 라디오나 대부분의 무선 통신 장치에서 사용되는 방식입니다.

* 전이중 방식(full duplex) : 전이중 방식은 통신을 하는 두 장치가 동시에 양방향으로 데이터를 송신하고 수신할 수 있는 방식입니다. 동시에 송수신이 가능하므로 두 방향으로의 데이터 흐름이 독립적으로 이루어집니다. 전화 통화나 유선 랜 통신 등에서 사용됩니다.


3.4 4계층 - 전송 계층(Transport Layer)

 

- 이 계층은 통신을 활성화하기 위한 계층으로 양 끝단(End to End) 통신을 다루는 최하위 계층으로 종단간 신뢰성 있고 효츌적인 데이터를 전송하며, 오류 검출 및 복구와 흐름제어, 중복검사 등을 수행한다.

- 보통 TCP 프로토콜을 이용하며, 포트를 열어서 응용프로그램들이 전송을 할 수 있게 한다.

 

- 만약 데이터가 수신되면 4계층에서 해당 데이터를 하나로 합쳐서 5계층에 전달한다.

- 이 계층은 양 끝단(End to End)의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해주기 때문에, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다.

- 이 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고, 연결 기반이다. 이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다.

- 이 계층의 전송 단위는 Segment이다.

 

* gpt : 4계층은 OSI 7 계층 모델에서 "전송 계층"으로 불리며, 종단 간(End-to-End) 통신을 관리하고 데이터의 신뢰성과 효율성을 제공합니다. 전송 계층은 데이터의 분할, 재조립, 오류 검출 및 복구, 흐름 제어와 같은 기능을 제공하여 프로세스 간 통신을 관리합니다. 이 계층은 호스트 간의 연결을 제어하고, 데이터가 안전하게 전달되도록 보장합니다.

전송 계층의 주요 기능
1. 세그먼트화 및 재조립: 큰 데이터를 작은 세그먼트로 분할하고, 수신 측에서 다시 세그먼트를 조립하여 전체 데이터로 복원합니다.
2. 오류 검출 및 복구: 데이터 전송 중에 발생할 수 있는 오류를 검출하고, 필요한 경우 복구합니다. 이를 위해 일부 프로토콜은 체크섬과 같은 메커니즘을 사용합니다.
3. 흐름 제어: 송신 측과 수신 측 간의 데이터 흐름을 조절하여, 데이터의 과도한 전송을 방지하고 수신 측의 버퍼 오버플로우를 방지합니다.
4. 멀티플렉싱과 디멀티플렉싱: 하나의 통신 링크를 여러 개의 연결로 공유하여 데이터를 동시에 전송하거나 수신하는 기능을 제공합니다.
5. 연결 관리: 연결 지향적인 프로토콜에서 연결을 설정하고 종료하는 과정을 관리합니다. 예를 들어 TCP(Transmission Control Protocol)가 이에 해당합니다.
6. 포트 지정: 송신자와 수신자 간의 프로세스를 식별하기 위해 포트 번호를 사용합니다.

전송 계층의 주요 프로토콜로는 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)가 있습니다. TCP는 신뢰성 있는 데이터 전송을 보장하며, 오류 검출 및 복구, 흐름 제어, 연결 관리 등의 기능을 제공합니다. UDP는 비신뢰성 전송을 담당하며, 데이터 전송 속도가 빠르지만 데이터의 신뢰성을 보장하지 않습니다. 전송 계층은 네트워크의 신뢰성과 안정성을 제공하며, 애플리케이션 간의 효율적인 데이터 교환을 담당합니다.


3-5. 3계층 - 네트워크 계층(Network Layer)

 

- 이 계층에서 가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)이다.

- 이 계층은 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해주는 역할을 한다.

- 이 계층의 대표적인 장비는 라우터이며, 요즘은 2계층의 장비 중 스위치라는 장비에 라우팅 기능을 장착한 Layer 3 스위치도 있다.(여기서 IP 주소를 사용)

 

- 이 계층은 여러개의 노드를 거칠때마다 경로를 찾아주는 역할을 하는 계층이다.

- 다양한 길이의 데이터를 네트워크를 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 제공하기 위한 기능적, 절차적 수단을 제공한다.

- 이 계층의 전송 단위는 Packet이다.

 

* gpt : 3계층은 OSI 7 계층 모델에서 "네트워크 계층"으로 불리며, 여러 개의 논리적인 네트워크를 상호 연결하고 경로를 선택하여 패킷의 전송을 관리합니다. 네트워크 계층은 호스트 간의 통신을 위해 최적의 경로를 선택하고, 라우팅(Routing) 및 패킷 전달을 담당합니다. 이 계층의 주요 목표는 데이터 전송의 최적화와 라우팅을 통해 패킷이 목적지까지 정확하게 도달하도록 보장하는 것입니다.

네트워크 계층의 역할
1. 라우팅: 패킷이 출발지에서 목적지로 가는 경로를 선택하는 프로세스입니다. 라우터들은 경로 선택에 따라 패킷을 전달하고 중계합니다.
2. 패킷 전달: 패킷을 송신자와 수신자 사이에서 전달하는 역할을 합니다. 각 패킷에는 목적지 주소 정보가 포함되어 있어야 합니다.
3. 분할 및 조립: 데이터를 패킷으로 분할하거나 패킷을 합쳐 원래의 데이터로 조립합니다.
4. 서브넷 구성: 네트워크를 서브넷(Subnet)으로 나누어 관리하고, 각 서브넷 간의 통신을 중재합니다.
5. 오류 검출 및 복구: 패킷이 전송 도중에 손상되거나 유실된 경우 오류를 검출하고 복구합니다.
6. 주소 지정: IP 주소와 같은 주소 체계를 사용하여 호스트나 네트워크를 식별하고 찾을 수 있도록 합니다.

 

* 라우터 : 둘 이상의 패킷 전환 네트워크 또는 서브네트워크를 연결하는 장치이다. 라우터는 데이터 패킷을 의도한 IP 주소로 전달하여 네트워크 간의 트래픽을 관리하고, 여러 장치가 동일한 인터넷 연결을 사용할 수 있도록 한다.

* 서비스 품질(QoS) : 응용 프로그램, 사용자, 데이터 흐름 등에 우선 순위를 정하여 데이터 전송에 특정 수준의 성능을 보장하기 위한 능력.


3-6. 2계층 - 데이터 링크계층(DataLink Layer)

 

- 이 계층에서는 1계층- 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할을 한다.( 통신에서의 오류도 찾아주고 재전송도 하는 기능을 가지고 있음)

- 이 계층에서는 맥 주소를 가지고 통신하게 된다.

- 이 계층에서 전송되는 단위를 프레임이라고 하고, 대표적인 장비로는 브리지, 스위치 등이 있다(여기서 맥 주소를 사용한다)

- 브릿지나 스위치를 통해 맥 주소를 가지고 물리계층에서 받은 정보를 전달한다.

 

- 이 계층은 포인트 투 포인트(Point to Point) 간 신뢰성있는 전송을 보장하기 위한 계층으로 CRC 기반의 오류 제어와 흐름 제어가 필요하다.

- 이 계층은 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아내고 수정하는데 필요한 기능적, 절차적 수단을 제공한다.

 

- 이 계층의 가장 잘 알려진 예는 이더넷, HDLC, ADCCP 같은 포인트 투 포인트(Point to Point) 프로토콜이나 패킷 스위칭 네트워크나 LLC, ALOHA 같은 근거리 네트워크용 프로토콜이 있다.

- 네트워크 브릿지나 스위치 등이 이 계층에서 동작하며, 직접 물리적으로 이어진 곳에만 연결할 수 있다.

- 이 계층의 전송 단위는 Frame(프레임)이다.

 

* gpt : 네트워크 상에서 인접한 두 장치 사이의 직접적인 통신을 관리하는 역할을 합니다. 데이터 링크 계층은 물리적인 링크(데이터 전송 경로) 위에서 데이터의 프레임(Frame) 단위로 통신을 관리하고 제어합니다. 이 계층은 주로 스위치와 같은 네트워크 장비들 사이의 통신을 다루며, 맥 어드레스(MAC Address)를 사용하여 장치들을 식별합니다.

 

데이터 링크 계층의 역할

1. 프레임 송수신 : 데이터를 프레임 단위로 나누어 송수신하고, 프레임에 헤더와 트레일러를 추가하여 데이터의 무결성을 보장

2. 물리적인 매체 제어 : 공유 매체(이더넷, Wi-Fi 등)를 효율적으로 사용하기 위해 충돌을 감지하고 제어

3. 주소 할당 및 확인 : 맥 어드레스를 사용하여 네트워크 장치를 식별하고, 목적지 장치를 확인

4. 오류 감지 및 수정 : 프레임의 무결성을 검사하고, 오류가 발생한 경우에는 복구 또는 폐기

5. 흐름 제어 : 빠른 송수신 장치와 느린 수신 장치 간의 데이터 흐름을 조절하여 과부하를 방지

 

* CRC : 순환 중복검사로 네트워크 등을 통하여 데이터를 전송할 때 전송된 데이터에 오류가 있는지를 확인하기 위한 체크값을 결정하는 방식을 말한다. 송신측에서는 CRC값을 데이터에 붙인 코드워드를 전송하며, 수신측에서는 수신된 코드워드에서 CRC값을 이용하여 에러를 확인한다.

* 맥 주소 : 단 하나의 고유한 주소를 부여해서 통신을 할 수 있도록 만든 일종의 하드웨어 주소다. 계층이 없는 단일 구조다.


3-7. 1계층 - 물리계층(Physical Layer)

 

- 한마디로, 전기적 신호가 나가는 물리적인 장비이다.

- 이 계층에서는 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송한다.

- 이 계층에서는 단지 데이터를 전달만 할뿐 전송하려는(또는 받으려는) 데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경쓰지 않는다.

- 이 계층에 속하는 대표적인 장비는 통신 케이블, 리피터, 허브 등이 있다.

- 이 계층의 전송 단위는 비트이다.


학습 단계로 잘못된 정보가 있을 수 있습니다. 잘못된 부분에 대해 알려주시면 정정하도록 하겠습니다.

참고 : https://m.blog.naver.com/wood0513/222084400286

          https://shlee0882.tistory.com/110

          https://tar-cvzf-studybackup-tar-gz.tistory.com/37

          https://blog.skby.net/%EC%88%9C%ED%99%98-%EC%A4%91%EB%B3%B5-%EA%B2%80%EC%82%AC-crc-cyclic-redundancy-check/

          https://www.cloudflare.com/ko-kr/learning/network-layer/what-is-a-router/

          https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-OSI-7%EA%B3%84%EC%B8%B5-%EC%A0%95%EB%A6%AC

'이것저것 스터디📚 > CS 스터디' 카테고리의 다른 글

TCP 헤더  (0) 2023.09.11
TCP와 UDP  (0) 2023.09.11
'www.google.com'을 브라우저에 입력하면 일어나는 일  (0) 2023.09.04
DNS란?  (0) 2023.09.04
TCP/IP 4계층  (0) 2023.09.04