탄생 배경
- 1960년대에 미 국방성에서 알파넷이라는 이름으로 최초 네트워크를 개발 후 미국 내에 배포함
- 미국을 시작으로 글로벌 네트워크를 구축 하려니, 네트워크에 규칙이 없어서 난장판 이었음
- 1970년대에 국제 표준화 기구(ISO)에서 OSI 7계층 모델을 만들어서 네트워크 기본 구조를 가이드
- 네트워크를 계층화 한 7개 계층은 각각의 규칙을 가지고 네트워크상에서 데이터를 전달하도록 가이드
- 1980년대에 우리나라를 시작으로 독일 등.. 각국에 글로벌 네트워크가 연결됨
- 그런데, OSI 7계층 모델에 계층별 규칙을 모두 완성해서 구축하려고 했으나 생각보다 오래걸림
- 1990년대에 최종적으로 OSI 7계층 모델보다 먼저 나와 검증완료된 TCP/IP 규칙(프로토콜)이 표준
- 따라서, OSI는 7개의 계층을 가지고 있지만 오래된 TCP/IP 프로토콜은 5개의 계층만 가진다.
계층화?
통신기술의 도입과 통신기능의 확장을 쉽게 하기 위해 규칙(프로토콜)을 몇 개의 계층으로 나누는 것을 “계층화” 라고 함
즉, 기능에 필요한 몇 개의 계층만 표준화하면 정상적으로 통신 가능
각 계층별 역할
7계층 | 👩💻응용 계층(Application) | 애플리케이션 서비스 제공 |
6계층 | 🗂️표현 계층(Presentation) | 문자코드, 압축, 암호화 |
5계층 | ⛳️세션 계층(Session) | 통신 방식 결정 |
4계층 | 🔐전송 계층(Transport) | 신뢰성 있는 통신 구현 |
3계층 | 🎯네트워크 계층(Network) | 다른 네트워크와 통신하기 위한 IP주소 결정 |
2계층 | ⛓️데이터링크 계층(Data Link) | 물리주소 결정 |
1계층 | 📡물리 계층(Physical Layer) | 물리적인 연결과 전기 신호 변환 |
계층간 인터페이스
- 자신의 바로 위 계층에 제공되는 정보와 서비스를 정의
계층기본구조
- 계층1,2,3(네트워크 지원계층)
- 하나의 장치에서 다른 장치로 전송되는 데이터의 물리적인 면을 처리
- 계층5,6,7(사용자 지원계층)
- 관계 없는 소프트웨어 시스템 간 상호 운용성 제공
- 제공4(전송계층)
- 네트워크 지원 계층과 사용자 지원 계층을 서로 연결**.** 네트워크 지원 계층이 전송한 것을 사용자 지원 계층이 사용할 수 있는 형태가 되도록 보장
각 계층 장비의 기준
- 각 계층 장비는 아래 레이어를 포함하는 구조
- 1계층(L1) 장비는 1계층 기능만 가진 장비이다. (랜선, 케이블)
- 2계층(L2) 장비는 1~2계층 기능을 모두 가진 장비이다. (L2스위치 / MAC주소)
- 3계층(L3) 장비는 1~3계층 기능을 모두 가진 장비이다. (라우터 = 중계노드 / IP주소)
- 4계층(L4) 장비는 1~4계층 기능을 모두 가진 장비이다. (L4로드밸런서 / 포트)
- 7계층(L5) 장비는 1~7계층 기능을 모두 가진 장비이다. (컴퓨터, 핸드폰, 카톡서버)
- 네트워크의 물리적인 연결은 케이블(L1 장비)로 L2, L4 장비를 연결해 모두 연결한다.
- L2 스위치가 L3 장비기능도 하고있음
- L5 ~ L7 구간은 논리적인 SW 구간임
물리(Physical) 계층
- 개요
- 물리적으로 연결된 두 대의 컴퓨터가 전선을 통해 직접 데이터를 송수신할 수 있게 해주는 모듈
- 목적
- 들어온 전기 신호를 그대로 잘 전달하는 것
- 동작
- 전기신호를 비트로 서로 변환해주는 기기
- 아날로그 신호 ↔ 디지털 신호
- ∿∿∿ ↔ 010101
- encoding & decoding
- 물리적인 케이블 계층, 비트단위로 전송되는 전기신호
- 규칙
- 물리 계층에서는 두 시스템 간 데이터를 전송하려고 링크를 활성화하고 관리하는 전기적, 기계적, 절차적, 기능적 특성을 정의
데이터 링크(Data Link) 계층
- 개요
- 출발 주소와 도착 주소를 확인하고 자신에게 보낸 데이터인지 아닌지 검사한 후 데이터 처리를 수행한다.
- 목적
- 주소정보를 정의하고 정확한 통신이 되도록 하는 것(이 주소는 IP주소가 아닌 MAC주소임)
- 동작
- framing, switching
- MAC주소를 기반으로 같은 네트워크에 있는 장비들이 데이터들을 주고 받게 해줌
- 물리적인 네트워크를 통해 데이터를 전송하는 기능을 수행
- 전송할때 보낼 데이터를 frame 단위로 쪼개고 순번을 매긴 후 frame 앞뒤에 표시를 함
- 이를 통해 순서도 맞추고 빠진 데이터도 복구함
- 즉, L2 장비 간의 신뢰성 있는 전송을 보장
- 규칙
- 네트워크 접속 장치간 신호를 주고받는 규칙을 정하는 계층
- Frame 데이터가 잘못되었을경우 다시 요청하는 방식으로 복구까지 해줌
- 장비
- 브리지, L2스위치 등…
✋ IP vs MAC
- IP 주소
- 장치가 네트워크에 등록되는 시점에 할당받는 번호 = 이사가는 시점에 할당받는 집주소
- 192.168.0.2 = (대한민국).(경기도).(광명시).(철산로54번지)
- MAC 주소
- 장치가 생산될때 제조사에서 할당해주는 고유번호 = 내가 태어날때 할당받는 주민등록 번호
- ac:d0:74:78:42:07 = (91:08:07):(10:34:13)
- 내 장비의 IP 주소와 MAC 주소는 네트워크 설정에서 쉽게 알 수 있다
- 네트워크에 등록요청하면 네트워크 서버 장비들은 IP 주소를 장비들에게 할당해주고 이것을 MAC 주소와 매핑시켜 준다. 이 매핑정보를 통해 전송경로를 타고간다.
- 네트워크상에서는 IP 주소를 가지고 통신하는것 처럼 보이지만 실제로는 네트워크 장비들끼리 서로 MAC 주소를 알려주면서 연결된다.
- 도착지 IP주소를 찾을때까지 출발 MAC 주소와 도착지 MAC 주소를 계속 업데이트 시키면서 이동
- MAC주소는 L2스위치가, IP주소는 L3라우터가 알고있음
네트워크(Network) 계층
- 개요
- IP 주소를 이용해 서로 다른 네트워크에 속한 컴퓨터끼리 데이터를 주고 받게 해주는 것
- 목적
- IP 주소를 제공하는 역할을 수행
- 동작
- packet, routing, forwarding
- 호스트에 IP주소를 부여하고 도착지 IP까지 최적의 경로를 찾아준다(라우팅)
- 데이터 전송과 경로 선택 기능을 제공하고, 라우팅 프로토콜을 사용하여 최적의 경로를 선택
- 데이터를 전송할 수신측의 주소를 찾고 수신된 데이터 주소를 확인하여 자신의 것이면 위 계층(전송계층)으로 올려줌
- 규칙
- 서로다른 두 네트워크간의 통신을 담당
- 2계층인 데이터링크 계층은 같은 MAC 주소를 기반으로 네트워크 내의 통신을 담당하지만 IP 주소를 기반으로 외부 네트워크와 통신을 담당한다.
- 장비
- 라우터
- 주소 변환 프로토콜(ARP)는 네트워크 계층의 기능
- 3계층의 라우터들이 패킷에 있는 IP 헤더를 보고 가장 가까운 경로로 전달해준다.
전송(Transport) 계층
- 개요
- 프로토콜(TCP, UDP)과 관련된 계층으로 오류 복구와 흐름 제어 등 담당
- 목적
- 두 시스템 간 신뢰성 있는 데이터를 전송하는것이 목적
- 동작
- port
- 네트워크 지원 계층(L1~L3)과 사용자 지원 계층(L5~L7)을 서로 연결**.**
- 네트워크 지원 계층이 전송한 것을 사용자 지원 계층이 사용할 수 있는 형태가 되도록 보장
- 송신부 : 세션 계층의 데이터에 포트번호를 달고 프로토콜 설정 후 네트워크 계층으로 보냄
- 수신부 : 네트워크 계층의 패킷을 프로토콜에 맞게 데이터로 변환 후 세션 계층의 알맞는 어플리케이션 포트로 보냄
- 규칙
- 운영체제(OS)의 커널에 SW 적으로 구현되어 있습니다.
- 규칙 종류 = 프로토콜 종류
- TCP : 오류방지, 데이터 신뢰도가 높은 프로토콜
- UDP : 데이터 손실이 있더라도 데이터를 지속적으로 전송/비디오
- 하위 계층으로 신뢰할 수 있는 데이터를 전송, 송수신자간에 논리적 연결을 수행
- 시퀀스 넘버기반 = 헤더 = 중간에 흐트러진 데이터 체크용
- 장비
- L4 스위치(로드밸런서)
세션(Session) 계층
- 응용 시스템간의 세션을 관리하며 송신자와 수신자간에 동기화 신호를 주고받음
- 통신 방식(단순:TV, 반이중:무전기, 전이중:전화)을 결정
- SSH(22port), TLS(web표준) 등…
- 세션을 열고 닫고를 제공하는 메커니즘의 계층
- 세션 복구도 지원함. 세션복구는 체크포인트를 통해 동기화를 시켜준다. (응용 시스템에서 복구)
- 체크포인트를 5MB마다 설정한다고 헀을때 100MB를 전송하려고 할때 48M 전송후 끊겼다고하면
- 세션계층에서 복구되어 다시 45MB부터 전송할 수 있게 한다.
표현(Presentation) 계층
- encoding, decoding
- 네트워크를 통해 송수신된 이진 데이터를 인코딩, 디코딩 하는 방법(메타 정보)을 넘겨주는 것
- 데이터를 읽을 수 있는 형식으로 변환 (데이터 인코딩, 디코딩, 암호화, 복호화 등의 기능을 수행)
- 데이터 변환, 압축 및 암호화가 이루어지는 계층
- 서로 다른 통신 기기간에 다른 인코딩을 사용할 수 있기 때문에 변환
응용(Application) 계층
- 브라우저, 메일 시스템 등 프로그램들이 해당 프로토콜을 통해 데이터를 전송 할 수 있게 해준다.
- FTP, HTTP, SMTP, Telnet 과같은 프로토콜들이 속한 계층
각 계층별 통신규칙 및 단위
OSI 참조 모델 데이터 전송
- 송신 측 시스템
- 응용 계층에서 하위 계층으로 순차적으로 데이터 송신
- 수신 측 시스템
- 물리 계층에서 상위 계층으로 순차적으로 데이터 수신
- 물리 계층과 응용 계층을 제외한 나머지 계층에서는 데이터 시작 부분과 끝 부분에 헤더나 트레일러 형태로 정보추가
- 층별 통신 단위 = PDU = 프로토콜 데이터 유닛
- 데이터 통신을 하는데 있어서 PDU를 표준으로 통신
- 물리 계층
- 🚦규칙 : Hub, Repeater
- 🧩단위 : 비트 (Bit)
- 데이터 링크 계층
- 🚦규칙 : MAC 주소
- 🧩단위 : 프레임 (Frame)
- 네트워크 계층
- 🚦규칙 : IP
- 🧩단위 : 패킷 (Packet)
- 전송 계층
- 🚦규칙 : TCP, UDP
- 🧩단위 : 세그먼트(Segment)
- 세션 계층
- 🚦규칙 : OS
- 🧩단위 : 데이터(Data)
- 표현 계층
- 🚦규칙 : JPG, MPEG
- 🧩단위 : 데이터(Data)
- 응용 계층
- 🚦규칙 :
- HTTP = 웹 접근 프로토콜
- FTP = 파일 전송 프로토콜
- Telnet = 통신 프로토콜 (단말 접속용)
- 🧩단위 : 데이터(Data)
- 🚦규칙 :
💡 캡슐화 vs 디캡슐화
- 캡슐화 : 하위로 내려갈수록 캡슐화가 진행이된다.
- 디캡슐화 : 상위계층으로 올라갈수록 디캡슐화가 진행된다.
- 송신할때는 캡슐화!
- 수신할때는 디캡슐화(역캡슐화)!
'CS' 카테고리의 다른 글
22.12.09 / CS특강 / DB 기초 (0) | 2022.12.11 |
---|---|
22.12.02 / CS특강 / TCP/IP (1) | 2022.12.11 |
22.12.01 / CS특강 / JavaScript 기초 (0) | 2022.12.11 |
22.12.01 / CS특강 / RestAPI (0) | 2022.12.11 |
22.11.25 / CS특강 / TCP/IP (0) | 2022.12.01 |