OSI 7 layers가 도덕책 뭘까 ...

송명규·2023년 8월 22일
1
post-thumbnail

네트워크 관련 일을 하다보면 당연히 듣게 되는 OSI 7 layer 이녀석을 파해쳐보자.

OSI 7 layers

osi 7 layers는 한 컴퓨터에서 다른 컴퓨터로 갈때 지나가는 layers를 7개의 계층으로 나누어 놓은 것이다.
각 계층을 통과할때 캡슐화를 하게 된다.
좀 더 자세히 그리면,
(1) 응용 계층

  • 우리가 입력한 데이터가 들어가게 된다.

(2) 표현 계층

  • 데이터를 압축, 인코딩, 암호화를 하게 되는 계층이다.

(3) 세션 계층

  • TCP/IP 계층을 만들고 없애는 역할을 담당하게 된다.

(4) 전송 계층

  • TCP, UDP 프로토콜이 있는 계층이다.
    주로 TCP는 3-way, 4-way handshake를 하게되고,UDP는 오류제어와 관계 없이 일단 데이터를 전송하는데에 초점을 맞추게 된다.(이는 추후에 포스팅 예정)

(5) 네트워크 계층

  • 네트워크 계층에서는 IP를 사용하게 된다.
    이 안에서 A,B,C,D 로 나누어 지게 되지만 추후에 포스팅을 하겠다.

(6) 데이터 링크 계층

  • 이 계층에서는 MAC 주소를 사용하게 된다.
    Point to Point 간의 신뢰성 있는 전송을 보장하기 위한 계층이며, CRC 오류제어가 필요하다.

(7) 물리 계층

  • 말 그대로 물리적인, 비트단위의 정보를 전송하는 계층이다.
    여기서는 단순히 정보를 전달할뿐, 보장하기 위해서 어떠한 것도 하지 않는다.

위 7개의 계층을 따라가면서 7,6,5,4,3,2,1 단계 -> 1,2,3,4,5,6,7 단계를 거치며 데이터가 전송이 된다.

OSI 7 layers를 왜 쓸까?

(1) 모듈화

  • 각 layer는 독립적이기 때문에, 만약 특정 layer에서 문제가 생겼다면 문제가 생긴 layer만 바꿔주면 된다!

(2) 표준화

  • 각 layer를 표준화함으로서 데이터 전송의 기준을 정한다! 사실 1번보다 더 중요한 이유라고 생각한다.

OSI 7 layers를 통해 예시를 들어보자!

예를 들어 django로 예시를 드는 case를 만들어보겠다.

  1. 응용 계층 (Application Layer):

클라이언트에서 HTTP GET 요청이 시작된다.
브라우저나 다른 클라이언트 응용 프로그램이 해당 요청을 생성하여 리소스의 URI를 지정한다.
("111.111.111.111/apis/something")

  1. 표현 계층 (Presentation Layer):

이 계층에서 데이터 형식이나 인코딩이 결정된다
예를 들어, 텍스트 데이터가 UTF-8로 인코딩될 수 있다!
UTF-8 인코딩에 관련해서는 이전 포스팅 참조!
[https://velog.io/@harrysong961205/1%EB%B0%94%EC%9D%B4%ED%8A%B8%EB%8A%94-%EC%99%9C-16%EB%B9%84%ED%8A%B8%EB%8F%84-%EC%95%84%EB%8B%88%EA%B3%A0-4%EB%B9%84%ED%8A%B8%EB%8F%84-%EC%95%84%EB%8B%88%EA%B3%A0-8%EB%B9%84%ED%8A%B8%EC%9D%BC%EA%B9%8C]

  1. 세션 계층 (Session Layer):

클라이언트와 서버 간의 연결을 관리한다
필요한 경우 세션을 설정하고 유지하는 단계!
(세션을 어떻게 안전하고 지속적으로 유지할 수 있나여 -> 추후 포스팅)

  1. 전송 계층 (Transport Layer):

클라이언트와 서버 간에 TCP 연결이 설정되고, GET 요청이 서버로 전송된다.

  1. 네트워크 계층 (Network Layer):

IP 프로토콜을 통해 데이터 패킷이 목적지 서버로 라우팅된다.
이 과정에서 라우터가 패킷을 적절한 경로로 전달한다.
(패킷이 뭔데요! -> 추후 포스팅)
6. 데이터 링크 계층 (Data Link Layer):

이 계층에서는 물리적 네트워크 경로를 통해 프레임이 전송된다.
이웃 노드 간의 연결 및 에러 검출이 이루어집니다.
(과정과 이웃 노드 연결, 에러검출 -> 추후 포스팅)

  1. 물리 계층 (Physical Layer):

물리적 매체(예: 케이블)를 통해 비트가 전송됩니다.
전기적인 신호로 변환되어 목적지 서버로 전달됩니다.
(전기적인 신호는 도대체 어떻게 연결되는가 -> 추후 포스팅)

profile
안녕하세요

0개의 댓글