OSI 7계층

hyyyynjn·2021년 11월 16일
1
post-thumbnail

물리 계층

  • 0과 1의 나열을 아날로그 신호로 바꾸어 전선으로 흘려보내고 아날로그 신호가 들어오면 0과1의 나열로 해석한다.

물리 계층은 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고받을 수 있게 해주는 모듈이다.

  • 하드웨어적으로 구현되어있다.

데이터 링크 계층

  • 전선 하나를 가지고 여러 대의 컴퓨터와 통신할 방법을 모색해야 한다
    • 전선 하나에 여러 컴퓨터를 연결할 경우, 모든 컴퓨터가 전선에 흐르는 아날로그 신호를 들을 수 있다.
    • 스위치를 통해 특정 목적지로만 신호를 전달할 수 있다. → 하나의 스위치로 연결된 망을 네트워크라고 한다
    • 서로 다른 네트워크에서 데이터를 주고 받고 싶다면 → 서로 다른 네트워크를 연결할 수 있도록 스위치를 라우터로 바꾸면 된다. (공유기가 바로 라우터)
    • 전세계의 여러 라우터들을 계층구조로 연결한 것을 인터넷이라고 한다
      • 여러 나라의 네트워크를 연결하기 위해 해저 테이블을 설치한다
  • 물리 계층만으로 여러대의 컴퓨터가 통신할 수 없다
    • 여러 컴퓨터는 하나의 스위치로 연결할 수 있다.
    • 여러 컴퓨터들이 하나의 컴퓨터에 데이터를 보내면 → 수신측은 데이터를 잘 끊어서 읽어야 한다.
      • 0과 1로 이뤄진 신호의 앞 뒤를 특정 규칙으로 묶는다
        • 0000(신호의 시작) + 0과1의 신호 + 1111(신호의 끝)
        • 이렇게 원본 데이터를 감싸는 것을 프레이밍이라고 한다.

데이터 링크 계층은 같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고 받기 위해 필요한 모듈이다

  • 랜카드에 구현되어있다 (하드웨어적으로 구현되어 있다)

네트워크 계층

  • 서로 다른 네트워크의 컴퓨터에서 A, B가 데이터를 주고 받을 경우, A는 데이터 앞에 B의 IP주소를 담아 전송한다. → (목적지 IP 주소 + 데이터) = 패킷
    • IP 주소는 DNS Lookup 과정을 통해서 얻는다.
  • 전송된 패킷은 목적지까지 연결된 경로의 여러 라우터를 거친다.
    • 그 과정에서 라우터들은 패킷의 목적지 IP 주소를 확인한다
    • 자신과 직접적으로 연결된 장치 중에 해당 패킷의 목적지 주소에 매핑되는 장치가 없다면 → 자신과 연결된 다른 라우터에게 패킷을 전달한다
    • 라우팅 과정을 통해 목적지 IP로 가는 경로에 있는 주변 라우터에게 패킷을 전달한다.
  • 수많은 네트워크들의 연결로 이루어지는 inter-network 속에서 어딘가에 있는 목적지 컴퓨터로 데이터를 전송해야한다
  • IP 주소를 이용하여 길을 찾고 (라우팅)
  • 자신의 다음 라우터에게 데이터를 넘겨주어 (포워딩) 목적지 컴퓨터로 전송한다.
    • 운영체제 커널에 소프트웨어적으로 구현되어있다

전송 계층

  • 인터넷 상의 모든 컴퓨터가 서로와 통신이 가능하게 되었다 (1,2,3 계층 덕분)
    • 전송지에서 데이터를 수신지로 전송한 경우
    • 수신 컴퓨터에는 여러 프로세스가 실행중이다. → 어떤 프로세스에 데이터를 전송해야할지 알 수 있을까?
    • 수신 컴퓨터의 데이터를 받고자 하는 프로세스들은 Port 넘버를 가져야 한다.
      • Port 번호 : 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야하는 정수 값
    • 송신자는 데이터를 보낼 떄, 데이터를 받을 수신 컴퓨터에 있는 프로세스의 포트 번호를 붙여서 보낸다.
      • 송신자는 그 포트번호를 미리 알고 있어야 한다.

전송 계층은 Port 번호를 사용하여 수신지 컴퓨터의 최종 도착지인 프로세스로 데이터가 도달할 수 있게하는 모듈이다.

  • 운영체제의 커널에 소프트웨어적으로 구현되어있다

응용 계층

  • 세션 계층, 표현 계층을 건너 뛰었다
    • 사실 현대의 인터넷은 OSI 모델이 아니라 TCP/IP 모델을 따른다 (이 두 모델 모두 네트워크 시스템에 대한 모델이다)
      • TCP/IP 모델을 따르는 이유는 OSI 모델이 TCP/IP 모델과의 시장 점유 싸움에서 졌기 떄문이다.
    • TCP/IP 모델
      • 네트워크 인터페이스 계층, 인터넷 계층, 전송 계층, 응용 계층

      • 오늘날에는 Original TCP/IP 모델보다 Updated TCP/IP 모델이 더 많이 사용된다.

  • TCP/IP 소켓 프로그래밍 : 운영체제의 전송계층에서 제공하는 API를 활용하여 통신 가능한 프로그램을 만드는 것을 말한다.
    • TCP/IP 소켓 프로그래밍을 이용하여 자신만의 응용계층 인코더, 디코더를 만들 수 있다
    • 즉, 누구든지 자신만의 응용계층 프로토콜을 만들 수 있다는 의미이다.
  • 응용계층에서도 다른 계층과 마찬가지로 인코더와 디코더가 있다.
    • 대표적인 응용계층 프로토콜 HTTP로 인코딩, 디코딩을 살펴보자

0개의 댓글