본문 바로가기
Computer Science/Network

2. OSI 7계층

by weero 2020. 8. 7.

1. 물리 계층(Physical layer)

- 물리 통신을 담당한다.

- 통신 케이블을 통해 데이터를 전송하는 계층

   - 데이터 링크 계층의 데이터는 물리 계층에 의해 변환된다.

   - 데이터와 신호는 아날로그 형태 또는 디지털 형태로 변환된다.

- 전송 단위 : bit

- 장비 : 리피터, 허브

 

2. 데이터-링크 계층(Data-link layer)

- 바로 옆 노드와의 통신을 컨트롤한다. (node-to-node, 1 hop)

- 송수신하는 정보가 안전하게 전달되도록 서비스하는 계층

- 전송 단위 : Frame

- 프로토콜 : Ethernet, PPP

- MAC address로 통신

- 장비 : 브릿지, 스위치

2-1. 메인 서비스

1) Framing

   보낼 데이터를 정해진 사이즈만큼 쪼갠다. (Protocol Data Unit = Payload)

2) Flow Control(흐름제어)

   Receiver가 받을 수 있는 Capability 범위 내에서 보낸다.

   정해진 size보다 많이 들어오면 전부 버리거나, Sender에게 피드백을 보낸다.

   4 계층에도 흐름제어가 존재한다. multi-hop인 4계층에 비해 2 계층은 1 hop이다.

3) Error Control(오류 검출)

   CRC, Checksum, parity 등을 이용해 오류 탐지

   깨진 것은 버리고 재전송(3번까지)

2-2. MAC Addressing (Media Access Control Address)

MAC address = link-layer address = link address = physical address

- IP 주소만을 이용해 목적지까지 데이터그램을 전달하는 것은 힘들다.

   (IP 주소는 종단을 정의하지만, 어떤 링크를 패킷이 통과해야 하는지는 정의하지 않기 때문)

- 최소한 LAN 안에서는 유일해야 한다.

- LAN 카드 안에 존재

- ARP Protocol : 3 계층(네트워크 계층)에서 MAC 주소를 알기 위한 프로토콜

 

3. 네트워크 계층(Network layer)

- 데이터를 목적지까지 최적의 경로를 선택해, 빠르게 전달하는 역할

- Host-to-host

   - 불완전한 전달

   - 올바른 프로세스에 의해 메세지를 처리해야 함 → 전송 계층이 담당

- 전송 단위 : Packet

- 프로토콜 : IP, ICMP, IPSec, IGMP

- IP address로 통신

- 장비 : L3 스위치, 라우터

3-1. 메인 서비스

1) Packetizing

- The destination host : decapsulation

- The source host : encapsulation

2) 라우팅(Routing)

목적지로 가는 최적의 루트를 찾아 fast switching

3) 포워딩(Forwarding)

헤더의 destination address 또는 label을 이용해 라우팅 테이블의 적합한 output interface number를 찾아낸다.

4) 오류 제어(Error Control)

네트워크 계층은 직접적으로 오류 제어를 하지 않는다.

   - 패킷들이 각 라우터에 조각나 있기 때문에, 오류 검출이 비효율적이다.

ICMP : 오류 제어 제공하는 프로토콜

5) 혼잡 제어(Congestion Control) ≠ Flow Control

혼잡은 source로부터 보내진 datagrams의 수가 네트워크나 라우터의 용량을 넘어갈 때 발생한다.

- 이런 경우, 어떤 라우터들은 datagrams 중 몇몇을 버린다.

- 더 많은 datagrams가 버려질 수록, 상황은 나빠진다.

   - 상위 계층의 오류 제어 메카니즘 때문에, sender가 잃어버린 패킷의 복사본을 보낼 수 있기 때문이다.

- 혼잡이 계속 되면 System collapses가 발생해 datagrams가 전달되지 못하게 될 수도 있다.

5-1) 발생 전 방지

- 피기배킹(piggybacking) : 데이터에 ACK를 실어보냄

- 덜 민감한 패킷들을 버리는 방법

- 혼잡이 발생했을 때 Windows 사이즈를 줄이고, 해결되면 늘리는 방법

- 라우터에서 막아버리는 방법

5-2) 발생 후 해결

- Backpressure : 혼잡이 발생했을 때 1 hop씩 줄여달라는 feedback을 보냄

- Choke packet : 혼잡이 발생한 라우터에서 Source에 직접적으로 경고 메세지를 보냄

- 명시적 시그널 : Source와 혼잡이 발생한 노드 사이에 통신이 없을 때, Source에서 혼잡을 예상하는 것이다.

 

4. 전송 계층(Transport layer)

- 데이터의 전송을 위한 논리적 연결

- 두 애플리케이션 레이어 사이 process-to-procee 통신을 제공한다. (End-to-End)

   - 프로세스 : transport 계층의 서비스를 사용하는 application 계층의 entity 

   - 적절한 프로세스에 메세지 전달

- 프로토콜 : TCP(신뢰성, 연결지향적), UDP(비신뢰성, 비연결성, 실시간)

- Port Numbers로 addressing

   - local host, remote host의 통신 : IP address에 의해 정의된다.

   - local process, remote process의 통신 : port numbers에 의해 정의된다.

- 장비 : L4 스위치, 게이트웨이

4-1. 메인 서비스

1) 흐름 제어(Flow Control)

Sender가 Receiver에게 너무 빠르게 전송하지 못하도록 한다.

- Pushing and pulling

2) 오류 제어(Error Control)

충돌된 패킷을 탐지하고 버린다.

lost and discarded packets를 추적해서 재전송중복된 패킷을 인지하고 버린다.잃어버린 패킷이 도착할 때까지 순서에 맞지 않는 패킷을 버퍼에 담는다.

3) 혼잡 제어(Congestion Control)

송신자의 전송속도를 줄인다.

 

==> 1, 2, 3, 4 계층은 데이터 전송과 관련된 계층

==> 5, 6, 7 계층은 애플리케이션과 관련 있는 서비스 제공

 

5. 세션 계층(Session layer)

- 애플리케이션 간 세션을 구축하고 관리, 종료하는 역할

- 포트(Port) 연결

- 프로토콜 : SSH, TLS

- API's, Sockets, WinSock

 

6. 표현 계층(Presentation layer)

- 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고 암호화하는 역할

- 이해할 수 있는 포맷으로 변환

- 파일 인코딩, 명령어 포장, 압축, 암호화

- Syntax layer

- 다루고 있는 데이터가 text인지, image 인지 등을 구분

- 프로토콜 : SSL, SSH, IMAP, FTP, MPEG, JPEG

6-1. 메인 서비스

1) 파일 인코딩 2) 명령어 포장 3) 압축  4) 암호화

 

7.애플리케이션 계층(Application layer)

- 가장 유저와 가까운 층

- 상대방이 보낸 데이터의 최종 목적지로 일반적인 응용 서비스를 수행

- 프로토콜 : HTTP, FTP, SMTP, IRC, SSH, DNS 등

- L7 스위치