OSI 7계층, TCP/IP 4계층

갱두·2021년 10월 17일
0

📚 네트워크

목록 보기
9/15
post-thumbnail

OSI 7계층

OSI 7계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말함
네트워크 통신을 구성하는 요소를 7개의 계층으로 표준화 한 것으로 개방형 시스템 상호 연결 모델의 표준이다.

목적

통신이 일어나는 과정을 단계별로 파악하기 위해서
그렇게 되면 흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 떄문임

특징


✔️ 전송 시 각 계층마다 인식할 수 있는 헤더를 붙임 = 캡슐화
✔️ 수신하면 헤더 떼어냄 = 디캡슐화
✔️ 계층 간 상하 구조를 가짐
✔️ 각 계층은 독립성을 띄고 있음

📌 각 계층에서 전송되는 단위

  • 1계층 (물리) : Bits
  • 2계층 (데이터링크) : Frames
  • 3계층 (네트워크) : Packets
  • 4계층 (전송) : Segments
  • 5~7계층 (세션,표현,응용) : Data

OSI 7계층 별 특징

현재 사용하는 모델은 TCP/IP Updated 입니다!
결국 위에 Application, Presentation, Session 부분만 합쳐져서 사용을 하고 있는 셈

✔️ Application layer는 어플리케이션 개발자에 의해 컨트롤 되지만, 나머지 계층들은 OS에 의해 컨트롤된다.

1. Physical Layer

- 하는 일 : 물리적 매체를 통해 0과 1의 비트 흐름을 전송하기 위해 요구되는 기능들을 조정함
- 장비 : 케이블, 리피터, 허브

결국,
0과 1의 나열을 아날로그 신호로 변환하여 전선으로 흘려보내고 -> encoding
아날로그 신호가 들어오면 0과 1의 나열로 해석하여 -> decoding
물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고 받을 수 있게 해주는 모듈

✅ Physical Layer는 어디에 구현되어 있을까 ..?
✔️ PHY 칩
✔️ 결론적으로 하드웨어적으로 구현되어 있는 것
✔️ 위에서 언급한 encoding decoding 모두 회로적으로 설계가 되어있다는 것

- 하는 일 : 데이터 통신 과정에서 오류가 없도록 노드 대 노드 간 정보 전송의 신뢰성을 보장함
- 장비 : 브릿지, 스위치

우리는 물리 계층을 통해서 두 대의 컴퓨터가 어떻게 통신하는지 알 수 있었음.
하지만 이 물리 계층만으로는 여러 대의 컴퓨터가 통신하도록 할 수 없음

이렇게 여러 컴퓨터가 거의 동시에 데이터를 보냈을 때 제대로 된 데이터를 추출할 수 있게 해주는 것

결국,
데이터 링크는 같은 네트워크에 있는 여러 대의 컴퓨터들이 신뢰성 있게 데이터를 주고 받기 위해서 필요한 모듈. 그냥 간단하게 데이터 전송을 하는 역할을 한다.

  • 같은 네트워크 : 스위치 하나로 연결된 아이들을 말하는 것

✅ 데이터 링크의 특징

  • 데이터 링크 계층은 데이터 전송 + 오류 없이 데이터를 전송하고자 함

    • 전송의 경우 : 네트워크 계층에서 전달받은 데이터에 그 정보의 주소와 제어 정보를 붙임.(패킷프레임으로 구성)
  • 데이터 링크 계층의 대표적인 장비인 스위치는 각 장치마다 MAC주소 를 두어 정확한 장치로 데이터를 전송할 수 있게 함

✅ Data Link Layer는 어디에 구현되어 있을까 ..?
✔️ 랜카드
✔️ Data Link Layer도 Physical layer처럼 하드웨어적으로 구현되어 있는 것

3. Network Layer

- 하는 일 : 다중 네트워크 링크에서 패킷을 발신지로부터 목적지까지 성공적이고 효과적으로 전달함
- 주요 프로토콜 : IP, ICMP, IGMP, ARP
- 장비 : 라우터

데이터 링크 계층에서 노드 대 노드의 데이터 전달을 감독했다면 네트워크 계층은 데이터가 최종 목적지까지 어떤 경로를 통해 전달될 지 경로를 설정하는 역할 을 함

패킷을 최종 목적지까지 가장 빠르고 안전하게 전송할 수 있도록 하며 라우터를 사용해서 이 기능을 수행함

결국,
네트워크 레이어는 수많은 네트워크들의 연결로 이루어지는 inter-network 속에서 어딘가에 있는 목적지 컴퓨터로 데이터를 전송하기 위해
IP주소를 사용해서 길을 찾고
-> routing
자신 다음의 라우터에게 데이터를 넘겨주는 것 -> forwarding

  • 수많은 네트워크 : 각자의 네트워크가 라우터끼리의 연결을 통해서 여러 네트워크가 연결이 된 상태

✅ Network Layer는 어디에 구현되어 있을까 ..?
✔️ 운영체제의 커널에
✔️ 소프트웨어적으로 구현되어 있음

🚀 Physical ~ Network 까지

이제 인터넷 상의 모든 컴퓨터가 서로 서로 통신할 수 있게 되었다.

✔️ 이제 데이터를 받는 수신자는 전세계로부터 데이터를 받는다.
✔️ 그리고 컴퓨터에는 여러 프로그램들이 실행되고 있었다.
✔️ 이제 컴퓨터가 저 데이터들을 프로세스들한테 나누어 주려고 한다
=> 어떤 데이터를 어떤 프로세스한테 줄 지 어떻게 알까?

4. 전송 계층

- 하는 일 : 종단 간 정보 전송의 신뢰성을 보장하고 오류를 복구하며 흐름을 제어함
- 주요 프로토콜 : TCP, UDP 등
- 장비 : 게이트웨이

전송 계층에서는 발신지와 목적지, 양 종단 간 정보 전송의 신뢰성을 보장하고 오류를 복구하며 흐름을 제어한다. 또한 데이터 통신 과정에서 오류가 발생했을 경우 이를 해결하고, 각 데이터 전송의 흐름을 제어하는 역할을 하게 됨

✔️ 신뢰성을 보장한다 ?
데이터가 정상적으로 전송됐는지 확인하고 정상적으로 전송되지 못한 데이터가 있다면 이를 재전송하여 누락되는 데이터가 없도록 보장한다는 의미임.

데이터를 제대로 프로세스에게 전달해주기 위해서는 포트번호 가 필요하다

  • 포트번호 : 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야 하는 정수의 값
  • 그래서 송신자는 데이터를 보낼 때 데이터를 받을 수신자 컴퓨터에 있는 프로세스의 포트 번호를 붙여서 보낸다
    • 그럼 송신자는 미리 포트번호를 알고 있나요 ..? Yes

5. 세션 계층

- 하는 일 : 응용 프로세스를 통해 통신 세션을 구성함
- 주요 프로토콜 : TLS, SSH
세션 계층은 포트 연결을 통해 통신 장치 간의 상호작용을 설정하고 유지하며 동기화하는 역할을 한다.

6. 표현 계층

- 하는 일 : 운영체제를 통해 입출력되는 데이터를 다른 표현 형태로 변환함
데이터를 다른 장치 모두가 이해할 수 있도록 번역을 함. 다른 장치에서도 내가 보낸 데이터가 내가 보낸대로 일관되게 출력되도록 하기 위한 계층임

7. 응용 계층

- 하는 일 : 사용자와 직접 상호작용하며 인터페이스 역할을 수행함. 각 프로세스 간의 정보 교환을 담당함.
- 주요 프로토콜 : DNS, HTTP, FTP
우리가 사용하는 대부분의 프로그램들이 있는 계층임. 동영상 재생 프로그램이나 인터넷 브라우저 등 우리가 자주 사용하는 프로그램들 또한 이 계층에 포함되어 사용자가 네트워크에 접근할 수 있도록 도와주는 기능을 수행함.

출처 :

profile
👩🏻‍💻🔥

0개의 댓글