📌 OSI 7 Layers
- OSI(Open System Interconnection, 개방형 시스템 간 상호 접속)
- 초기에는 정해진 약속 없이 데이터 통신이 이루어졌지만 인터넷의 사용자가 늘어남에 따라 제각각으로 데이터를 전송하다보니 혼란이 발생함
- 이 혼란을 막고 다른 시스템 간에도 원활한 통신을 하기 위해 ISO(국제 표준화 기구)에서 제안한 통신 규약 (Protocol)
- 네트워크가 통신하는 구조를 계층으로 구분하여 각 계층간 데이터 통신하는 방식을 정해놓은 약속
- 정해진 약속을 통해 서로 다른 시스템 간 원활한 데이터 통신이 주 목적
- 1~4 계층(하위 계층) : 주요 통신 기능 구현
- 5~7 계층(상위 계층) : 애플리케이션 기능 구현
- OSI 각 계층별 데이터들을 PDU(Process Data Unit)이라고 하고, PDU는 각 계층별로 이름이 다름
- 문제 해결(트러블 슈팅)을 위해 알아야 할 주요 개념
1 계층 - 물리 계층(Physical Layer)
- 데이터 전송을 위한 물리적 연결을 담당(하드웨어적 특성)
- 물리적 매체를 정의(랜선, 동출케이블 등)
- 데이터를 전기적 특성(ON/OFF, 0 or 1)을 이용하여 물리적 매체를 통해 전송할 수 있도록 함
- 송신 측에서 수신 측에 데이터를 전송하기 위해 송신 측에서는 0 or 1로 이루어진 데이터를 아날로그 신호로 바꿔서(Encoding) 전선으로 보내고 수신 측에서는 아날로그 신호를 0 or 1로 이루어진 데이터로 변환(Decoding)
- 데이터 전송 단위 : 비트(bit)
- 사용되는 네트워크 장비 : 리피터, 허브, 케이블
2 계층 - 데이터 링크 계층(Data Link Layer)
- 근접한 컴퓨터 간에 신뢰성 있는 데이터를 전송
- 물리 계층에서 1:1 이였던 통신이 1:N으로 늘어났을 경우에 발생하는 문제(정확한 목적지를 찾지 못하는)를 해결하기 위한 방법을 제공
- 다수의 호스트들을 구별하기 위한 MAC(Media Access Control)주소를 기반으로 호스트들을 구별하고 목적지에 데이터를 전송
- 흐름제어(Flow contorl) : 송신측에서 수신측의 처리속도를 고려하여 데이터를 전송
- 프레임동기화(Framing) : 물리 계층으로부터 들어온 비트들을 프레임(Frame)이라는 논리적 단위로 변환
- 오류제어(Error control) : Framing과정에서 발생하는 오류들을 검출하고 오류 발생 시 재전송 요청
- 데이터 전송 단위 : 프레임(Frame)
- 사용되는 네트워크 장비 : L2 스위치
- 프로토콜 : 이더넷(Ethernet)
L2 스위치가 수신한 데이터(010111)를 확인하고 목적지에 해당하는 MAC 주소에 데이터 전달하고 L2 스위치는 연결된 장비들의 MAC 주소를 알고 있기 때문에 MAC 주소에 따라 올바른 목적지에 데이터 전송 가능
3 계층 - 네트워크 계층(Network Layer)
- 시스템 간의 네트워크 연결, 유지, 해제를 담당하는 계층
- IP 주소를 기반으로 네트워크 상 호스트에게 데이터를 전송
- 올바른 목적지에 데이터를 전송하기 위해서 최적의 경로를 찾고 (Routing) 해당 IP 주소를 가진 목적지에 데이터 전달
- 데이터 전송 단위 : 패킷(Packet)
- 사용되는 네트워크 장비 : 라우터(Router) , L3 스위치
- 프로토콜 : IP(Internet Protocol) , ARP, RARP, IPsec, ICMP
- COM A에서 COM E로 데이터를 전송할 때 데이터와 IP 주소를 묶어 Router X에게 패킷을 전송
- Router X는 라우팅 테이블(Routing Table) 을 참조하여 COM E에게 데이터를 전송하기 위해서는 거쳐야 할 다음 라우터가 Router Y라는 것을 확인하고 Router Y에게 전송
- Router Y는 패킷의 IP 주소를 확인한 후 COM E에게 데이터 전송
4 계층 - 전송 계층(Transport Layer)
- 송, 수신측 간 신뢰성 있는 데이터 전송을 담당
- 네트워크 계층에서 정보를 전달하기 위한 최적의 경로를 찾는 것(Routing)이 주 목적이였다면 전송 계층은 데이터의 손실을 최소화하여 전송하는 것이 주 목적
- 손실이 발생하더라도 그에 대한 대비책을 마련
- 응용프로그램들을 구분하기 위한 포트(Port)번호사용(Ex, HTTP : 80 / HTTPS : 443)
- 트래픽 과부하를 방지하기 위한 부하 분산 (로드밸런싱, Load Balancing)
- 데이터 전송 단위 : 세그먼트(Segment)
- 사용되는 네트워크 장비 : L4 스위치
- 프로토콜 : TCP(Transmission Control Protocol) , UDP(User Datagram Protocol)
- 포트번호가 없이 네트워크 계층에서 IP 주소로만 데이터 전송을 하게되면 수신 측은 카카오톡으로 데이터를 보낼지, 페이스북으로 데이터를 보낼 지 모르게 됨
- 이 때 구분하기 위한 포트번호를 통해 수신측은 해당 포트번호에 맞는 응용프로그램에 데이터를 전달함
5 계층 - 세션 계층(Session Layer)
6 계층 - 표현 계층(Presentation Layer)
- 데이터를 이해할 수 있는 형식에 맞게 변환
- 문자열 변환, 데이터 압축 등 데이터를 어떻게 변환하고 표현할 지 다루는 계층
7 계층 - 응용 계층(Application Layer)
- 응용프로그램별 서비스 제공(Ex, 웹 서비스를 이용하기 위한 구글 크롬)
- 데이터 전송 단위 : 데이터(Data), 메시지(Message)
- 프로토콜 : HTTP/HTTPS, FTP, SSH