IT recording...

[Network] 2. OSI 7계층 본문

Network

[Network] 2. OSI 7계층

I-one 2022. 5. 16. 00:07

[그림과 함께 편하게 보려면 여기로]

https://adorable-aspen-d23.notion.site/Network-2-OSI-7-3b0e36c05caa4141a6849045ec466af9

 

[Network] 2. OSI 7계층

0. 현대 인터넷

adorable-aspen-d23.notion.site

0. 현대 인터넷

1. OSI 7계층

  • 국제표준화기구(ISO)에서 개발한 모델
  • 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명
  • 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것
  • 물리,데이터 링크,네트워크,전송,세션,표현,응용 계층
  • 왜 7계층으로 나눴나요?
    • 통신이 일어나는 과정을 단계별로 알 수 있음
    • 7단계 중 특정한 곳에 이상이 생기면 다른 단계와 독립적으로 그 단계만 수정할 수 있기 때문
    • 예시
      1. 모든 PC에 문제가 있다→ 3계층 : 라우터의 문제 (PC방이라는 한 네트워크의 모든 컴퓨터에 이상이 있기 때문에 이 네트워크로 제대로 전달이 안된 것이라는 합리적인 추측 가능)
      2. → 1계층 : 광랜을 제공하는 회사의 회선 문제 (광랜은 모든 컴퓨터에 다 연결되어 있다.)
      3. 한 PC만 문제가 있다.
        1. 오버워치 소프트웨어에 문제가 있다. → 7계층
        2. 오버워치 소프트웨어에는 문제가 없고, 스위치에 문제가 있다. → 2계층
    • PC방에서 오버워치를 하는데 연결이 끊겼다.

2. TCP/IP 4계층

  • 링크,인터넷,전송,응용계층
  • 세션,표현 계층의 경우는 응용프로그램에서 제공하는 경우가 많아 요즘은 5,6,7계층을 합쳐서 사용한다.

3. 프로토콜

  • 메시지를 주고 받는 양식이나 규칙
    • 통신규약
  • 프로토콜은 왜 필요할까?
    • 시스템 간 메시지를 주고 받을 때 한쪽에서 보낸 메시지를 이해할 수 있어야 한다.
    • 통신 모델에서도 메시지를 주고 받으며 통신할 때 그 언어와 대화 방법에 대한 규칙이 있어야 의사소통이 가능하다.
  • 프로토콜은 계층별로 다르게 존재한다.
  • 구성요소
    1. 구문(Syntax) : 무엇을 전송할지
      • 데이터의 형식(Format), 부호화(Coding), 신호 레벨(Signal Level) 등을 규정
    2. 의미(Semantics) : 어떻게 동작할지
      • 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정
    3. 타이밍(Timing) : 언제 전송할지
      • 통신 속도, 메시지의 순서 제어 등을 규정

4. 계층 별 데이터 단위, 프로토콜

데이터 단위 프로토콜

1. 물리 계층 bit DSL,ISDN 두 대의 컴퓨터가 통신하려면?
2. 데이터 링크 계층 frame PPP,Ethernet,Token ring, IEE 802.11(wifi) 같은 네트워크 상에서 컴퓨터를 찾아가려면?
3. 네트워크 계층 datagram, packet IP,ICMP,ARP,RIP,BGP 해당하는 네트워크를 찾아가려면?
4. 전송 계층 segment TCP,UDP,SCTP 어떤 프로세스를 사용하는지 알려면?
5. 세션 계층 message NetBIOS,TLS  
6. 표현 계층 message ASCII,MPEG,JPEG,MIDI  
7. 응용 계층 message HTTP,SMTP,FTP,SIP,Telnet 프로토콜을 응용프로그램이 편하게 사용하도록 하려면?

1. Physical Layer (물리 계층)

: 전기적, 기계적, 기능적인 특성을 이용해 통신 케이블로 데이터를 전송한다.

1. 두 대의 컴퓨터가 통신하려면?

  • 장치 간 전기적 신호 전달
    • 두 대의 컴퓨터가 통신하려면 0과1로 이루어진 bit를 보내야한다.
    • But, 전선으로 bit를 주고받을 수는 없다.
      • 주파수 0~무한대 어쩌구 저쩌구...
    • 아날로그 신호로 보내야 한다.

1. 전송 방법

: 데이터 프레임 내부의 각 bit를 한 노드에서 다음 노드로 실제로 이동

  • 하드웨어적으로 구현
    • Encoding : bit → 아날로그 신호
    • Decoding : 아날로그 신호 → bit
    • 결론
      • 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고받을 수 있게 해주는 모듈

2. Data Link Layer (데이터 링크 계층)

: 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하며,

point to point 간 안전한 정보의 전달을 수행할 수 있도록 도와준다.

1. 여러 대의 컴퓨터가 통신하려면?

  • 다 전선을 꽂아야 할까? → NO! 매우 비효율적, 전선 하나를 가지고 여러 컴퓨터와 통신하는 방법을 알아보자
    • 스위치, 브릿지
      • 여러 컴퓨터를 연결, 데이터를 주고 받을 수 있다.
      • 메시지에 목적지를 설정하여 지정된 수신자만 받을 수 있게 한다.
    • 하나의 스위치로 연결된 컴퓨터들 = 네트워크

1. 전송 방법

  • 데이터를 Frame단위로 한 네트워크 요소에서 → 이웃 네트워크 요소로 전송한다.
    • 전송, 수신 MAC주소를 붙여서 Frame 생성
      • 출발지의 MAC주소, 가장 가까운 라우터의 MAC주소를 붙인다.
        • 왜 B의 MAC주소를 붙이지 않을까?
          • A는 B의 맥주소를 모르기 대문
        • → DHCP, ARP를 통해 라우터의 IP를 바꿔 IP를 맥주소로 변환한 후에 라우터에 대한 도착지 맥어드레스를 만들어 헤더에 넣어줌
    • 물리 계층을 이용해 전송 (하드웨어 적으로 구현)
  • Ethernet 을 이용하여 데이터 전송
    • LAN에서 데이터를 주고받기 위한 규칙
      • 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고받을 때 사용
    • 비연결성 모드, 전송속도 10Mbps 이상
    • MAC 주소 이용 (Media Access Control Address)
      • 컴퓨터 네트워크에서 각각의 기기를 구분하기 위해 사용하는 주소, 이더넷의 물리적인 주소
      • Node-to-Node, Point-to-Point 프레임 전송
    • 이더넷 유형유형 번호 (16진수) 프로토콜
      0800 IPv4
      0806 ARP
      8035 RARP
      814C SNMP over Ethernet
      86DD IPv6
    • : 이더넷으로 전송되는 상위 계층 프로토콜의 종류
    • 단점
      • 허브에 연결된 컴퓨터들이 동시에 데이터를 보낸다면 충돌(collision) 발생 가능

2. 기능

  • CRC 기반 오류제어
    • 프레임에 오류가 나면 바로 버려버린다.
      • cf) 전송 계층의 오류 제어는 다시 요청, 복구까지 수행
  • CRC 기반 흐름제어
  • 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아내며, 수정하는 데 필요한 기능적, 절차적 수단을 제공한다.

3. Nework Layer (네트워크 계층)

: 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)

1. 서로 다른 네트워크 계층이 통신을 하려면?

1. 전송방법

  • 서로 다른 네트워크(inter-network)들은 라우터로 연결되어 있다.
    • Routing : IP주소를 이용해서 길을 찾는다.
    • Forwarding : 자신 다음 라우터에게 데이터를 넘겨준다.
  • 송신IP, 수신IP 를 붙여 패킷을 만든다.
  • 라우터를 통해 이동할 경로를 선택하여 IP주소를 지정하고, 해당 경로에 따라 패킷을 전달한다.
  • 운영체제의 커널에 소프트웨어적으로 구현

2. 프로토콜

  • IP 프로토콜 (Internet Protocol)
    • 패킷 교환 네트워크에서 정보를 주고 받는데 사용하는 정보 위주의 규약
    • 호스트의 주소지정과 패킷 분할 및 조립 기능 담당
    • 최선 서비스
      • 신뢰성 및 흐름제어 기능이 전혀 없다. (패킷의 완전한 전달 보장X)
      • 이에 TCP와 같은 상위 전송계층에 의존한다.
  • ICMP (Internet Control Message Protocol)
    • TCP/IP에서 IP패킷을 처리할 때 발생되는 문제를 알림(오류보고)
  • IGMP (Internet Group Management Protocol)
    • IP 멀티캐스트를 실현하기 위한 통신 프로토콜

3. 기능

  • 흐름제어
  • 오류제어
  • 세그먼테이션

4. Transport Layer (전송 계층)

이제 인터넷 상의 모든 컴퓨터가 통신할 수 있게 되었다. 포트를 열어서 응용프로그램들이 전송을 할 수 있게 한다.

종단간(end to end) 통신을 다루는 최하위 계층이다.

1. 어떤 데이터를 어떤 프로세스에게 줘야 할지 컴퓨터는 어떻게 알 수 있을까?

1. 전송방법

  • 송신자가 데이터를 보낼 때 데이터를 받을 수신자 컴퓨터에 있는 프로세스의 포트 번호를 붙여서 보낸다.
  • 포트 번호를 이용하여 도착지 컴퓨터의 최종 도착지인 프로세스에까지 데이터가 도달하게 하는 모듈
  • 운영체제의 커널에 소프트웨어적으로 구현

2. 프로토콜

3. 기능

  • 오류제어
    • 손실이 있다면 재요청, 복구
  • 흐름제어
    • Stop&Wait, Sliding window
  • 손실제어
    • Segmentation
      • 메시지가 클 경우 나눠서 전달한다.

5,6 세션 계층, 표현 계층

5. 세션 계층

  • 데이터 교환의 경계와 동기화 제공
  • 연결이 손실되면 연결 복구를 시도
  • 오랜 시간 연결이 되지 않으면 세션 계층의 프로토콜이 연결을 닫고 다시 연결 재개
  • 응용 계층에서 지원하거나 어플리케이션 개발자가 직접 개발해야 한다.
    • TCP/IP 세션을 만들고 없애는 책임

6. 표현 계층

  • 데이터의 암호화, 복호화와 같이 응용 계층에서 교환되는 데이터의 의미를 해석하는 계층
  • 응용 프로그램 ↔  네트워크 간 정해진 형식대로 데이터를 변환, 표현한다.
  • 응용 계층에서 지원하거나 어플리케이션 개발자가 직접 개발해야 한다.
    • 파일 인코딩, 명령어를 포장, 압축, 암호화
    • 예시해당 데이터가 TEXT인지, 그림인지, GIF인지 JPG인지의 구분 등이 표현 계층의 몫이다.
    • 예를 들면, EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것,

7. Application Layer (응용 계층)

: 우리가 사용하는 브라우저나, 메일 프로그램은 해당 응용 계층 프로토콜을 쉽게 사용할 수 있게 해주는 응용 프로그램이다.

  • 통신의 최종 목적지, 응용 프로그램들이 통신으로 활용하는 계층
  • 사용자에게 가장 가까운 계층
    • 웹 브라우저, 응용 프로그램을 통해 사용자와 직접적으로 상호작용
    • 사용자 인터페이스, 전자우편, 데이터베이스 관리 등의 서비스 제공
  • 전체적인 통신흐름 그림

1. 프로토콜

  • HTTP, FTP, SMTP, POP3, IMAP, Telnet 등

[Network] 4. HTTP


참고

https://youtu.be/1pfTxp25MA8

https://shlee0882.tistory.com/110

 

'Network' 카테고리의 다른 글

[Network] 6. 대칭키/공개키  (0) 2022.05.16
[Network] 5. DNS Round Robin  (0) 2022.05.16
[Network] 4. HTTP  (0) 2022.05.16
[Network] 3. TCP, UDP  (0) 2022.05.16
[Network] 1. 인터넷  (0) 2022.05.16
Comments