인터넷에서 네트워크를 공부하다 보면 항상 TCP/IP라고 말하는데 분명 다른 개념인데 왜 이렇게 말하는걸까? 라고 생각해본적이 있다. 그래서 확실하게 개념을 잡고자 정리를 해보았다.
📌 OSI 7계층
OSI 모델은 네트워크에서 일어나는 통신을 7개의 계층으로 나눈 참조 모델이다. 이는 네트워크 프로토콜 설계 및 개발에 표준을 제공하기 위해 만들어졌다.
그럼 어떻게 OSI 7 계층이 만들어졌을까?
네트워크의 시작 : 먼저 서로 다른 컴퓨터 사이에 정보를 주고 받을 수 있었다.
프로토콜의 발전 : 그러면서 자연스럽게 여러 회사에서 각각의 프로토콜(규칙)을 개발하게 되었다. -> 이때 통일된 규정이 없어 문제가 발생하였다. 서로 다른 언어들을 사용한다면 컴퓨터와 컴퓨터간 정보를 알아 들을 수 없게 되었다.
표준의 탄생 : 그래서 국제 표준기구에서 표준 네트워크 프로토콜, OSI가 발표되었.
🤔 왜 계층을 나눴을까?
생각해보면 간단하다. 흐름을 한눈에 알아보기도 쉽고, 특정한 곳에 이상이 생기면 다른 단계의 장비, 소프트웨어를 건들지 않고 이상이 생긴 단계만 고칠 수 있기 때문이다.
그러면 7계층에 대해서 알아보자.
✅ 1계층 - 물리 계층
- 전기적 신호를 물리적 매체를 통해 전송한다. 데이터를 전기적인 신호로 변환해서 주고받는 기능만 있다.
전송단위 : 비트(ex. 010101110)
장비 : 리피터, 허브
허브 : 여러 대의 컴퓨터를 연결하여 네트워크로 보내거나, 하나의 네트워크로 수신된 정보를 여러 대의 컴퓨터로 송신하기 위한 장비(더미 허브)
리피터 : 디지털 신호를 증폭시켜 주는 역할을 하여 신호가 약해지지 않고 컴퓨터로 수신되도록 하는 장비(요새는 다른 네트워크 장비가 리피터 기능을 지원하기에 따로 리피터를 사용할 필요는 없다.)
✅ 2계층 - 데이터 링크 계층
- 물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할을 수행한다.
- 프레임(데이터 링크 계층 전송 단위)에 MAC address(물리 주소)를 부여하고 에러 검출, 재 전송, 흐름 제어를 수행한다.
흐름 관리 : 송신 측과 수신 측의 속도 차이를 조정
오류 제어 : 오류 검출과 회복
순서 제어 : 프레임의 순서적 전송
프레임 동기화 : 프레임의 시작과 끝을 구별하기 위한 동기
전송 단위 : 프레임(Frame)
장비 : 브리지, 스위치,케이블
브리지 : 두 개의 근거리통신망(LAN)을 서로 연결해 주는 통신망 연결 장치
스위치 : 허브의 단점을 개선하기 위해서, 출발지에서 들어온 프레임을 목적지까지 빠르게 전송시키는 장비 (1계층 허브보다 똘똘한 허브)
브리지와 스위치 차이점은 프레임 처리속도나, 가격, 포트 수 이런것들이 있지만 사실 스위치가 브리지 보다 많은 기능을 수행한다고 생각하면 편하다.
✅ 3계층 - 네트워크 계층
- 데이터를 패킷 단위로 분할하여 전송하고, 수신시 합치는 역할을 한다.
- IP주소를 사용하여 데이터를 전송한다.
- 단말기 간 데이터 전송을 위한 최적화된 경로를 제공한다.
- 대표적인 프로토콜은 IP
전송단위 : 패킷(Packet)
장비 : 라우터
✅ 4계층 - 전송 계층
- 양 끝단의 사용자들 간의 신뢰성있는 데이터를 주고 받게 해주는 역할을 한다.
- 패킷을 나누어 전송하고, 실패할 경우 다시 패킷을 보내는 등의 역할을 수행한다.
- 송신자와 수신자 간의 신뢰성있고 효율적인 데이터를 전송하기 위하여 오류검출 및 복구, 흐름제어와 중복검사 등을 수행한다.
- 데이터 전송을 위해서 Port 번호가 사용이 된다. 대표적인 프로토콜은 TCP와 UDP
전송단위 : 세그먼트(Segment)
✅ 5계층 - 세션 계층
- 컴퓨터간 연결인 세션의 생성과 유지를 관리하는 계층이다.
- TCP/IP 세션을 만들고 없애는 역할을 하고 있다.
*세션 : 프로세스들 사이에서 통신을 하기 위해 메세지 교환을 통해 서로를 인식한 이후부터 통신을 마칠 때까지의 시간
ex) 예를들어 내가 100mb의 데이터를 전송하는 도중 연결이 끊기게 되었다. 하지만 체크포인트 덕분에 다시 90mb부터 세션을 재개할 수 있게 된다.
✅ 6계층 - 표현 계층
- 전송하는 데이터의 표현방식을 결정한다. (ex. 데이터 변환 , 압축, 암호화 등)
- 데이터의 인코딩과 디코딩이 이루어진다.
- GIF, JPEG, ASCII
✅ 7계층 - 응용 계층
- 사용자와 가장 가까운 계층이다.
- 응용프로세스와 직접 관계하여 응용 서비스를 수행하는 계층이다.
- 대표적으로 알고있는 프로토콜 HTTP, FTP 등의 프로토콜이 응용 계층에 속한다.
그럼 간단하게 예시를 들어보겠다. 우리가 만약 안녕이라는 메시지 다른 사람에게 보내보겠다.
7.응용 계층 : 그러면 크롬이나 엣지등에서 HTTP/GTTPS를 사용한다. HI
6. 표현 계층 : 표현 계층은 이 HI를 아스키 코드로 번역하고, 압축하고,암호화한다. (EX. 72 105).
5. 세션 계층 : 세션 계층에서 컴퓨터가 연결될때 인증, 허가 기능과 세션 복구를 한다.
4. 전송 계층 : 연결된 컴퓨터에서 데이터를 쪼개서(세그먼트) 포트번호를 붙여 보내준다.(HTTP는 80번), 컴퓨터의 속도 차이 조정도 해주고, 에러 컨트롤도 한다. (TCP, UDP 헤더를 추가하여 세그먼트를 생성한다.)
3. 네트워크 계층 : 데이터 전송 경로와 순서등을 결정하는 계층으로 최적화된 경로로 데이터를 보내주고 나의 IP주소와 목적지 IP주소를 사용하여 보내준다.(목적지 IP주소는 DNS서버에서 제공해준다.)
도메인 이름을 통해 IP 주소를 알아내는 과정
- 도메인 이름 입력:
- 사용자가 웹 브라우저에서 www.naver.com을 입력합니다.
- DNS 캐시 확인:
- 브라우저는 먼저 자신의 DNS 캐시에 www.naver.com의 IP 주소가 저장되어 있는지 확인합니다.
- 운영 체제의 DNS 캐시도 확인합니다.
- 호스트 파일 확인:
- 운영 체제는 hosts 파일을 확인하여, 도메인 이름과 IP 주소의 매핑이 있는지 검사합니다.
- 로컬 DNS 서버 질의:
- 만약 캐시나 hosts 파일에 IP 주소가 없다면, 브라우저는 운영 체제의 네트워크 설정에 지정된 로컬 DNS 서버로 질의를 보냅니다.
- 이 로컬 DNS 서버는 보통 ISP나 회사 네트워크에 의해 제공됩니다.
- DNS 서버 간의 질의:
- 로컬 DNS 서버는 도메인 이름의 IP 주소를 모르는 경우, 다음과 같은 단계로 DNS 서버 간의 질의를 진행합니다:
- 루트 DNS 서버: 로컬 DNS 서버는 루트 DNS 서버로 질의를 보냅니다.
- TLD DNS 서버: 루트 DNS 서버는 com TLD(Top-Level Domain) DNS 서버의 주소를 로컬 DNS 서버에 반환합니다.
- 네임 서버: TLD DNS 서버는 naver.com 도메인에 대한 권한을 가진 네임 서버의 주소를 로컬 DNS 서버에 반환합니다.
- 권한 DNS 서버: 로컬 DNS 서버는 naver.com 도메인의 권한 DNS 서버로 질의를 보내고, 이 서버는 www.naver.com의 IP 주소를 반환합니다.
- 로컬 DNS 서버는 도메인 이름의 IP 주소를 모르는 경우, 다음과 같은 단계로 DNS 서버 간의 질의를 진행합니다:
- IP 주소 반환:
- 로컬 DNS 서버는 웹 브라우저에 IP 주소를 반환합니다.
- 예를 들어, www.naver.com의 IP 주소가 125.209.222.141이라고 가정합니다.
- IP 주소 사용:
- 웹 브라우저는 이 IP 주소를 사용하여 www.naver.com 웹 서버에 HTTP 요청을 보냅니다.
2. 데이터링크 계층 : 패킷을 프레임으로 구성하고 맥주소(실제기기 주소)를 사용하여 데이터를 전송하고
1. 물리 계층 : 이 프레임을 0101과 같은 비트 단위로 전송하게 된다.
이렇게 데이터를 보내는 과정을 캡슐화 라고 하고, 상대방이 받을때는 역 캡슐화 해서 HI라는 글로 내가 받아볼 수 있는것이다.
📌 OSI 7계층 주요 프로토콜 정리
1계층: 물리 계층 (Physical Layer)
- 기능: 물리적 매체를 통한 데이터 전송, 전기적/광학적 신호로 변환
- 주요 프로토콜 및 표준:
- Ethernet: 전기적 신호를 통해 데이터를 전송하는 네트워크 기술.
- USB (Universal Serial Bus): 주변 기기를 컴퓨터에 연결하는 표준.
- IEEE 802.11 (Wi-Fi): 무선 네트워크 표준으로, 무선 주파수를 통해 데이터를 전송.
- Bluetooth: 근거리 무선 통신 기술로, 주로 개인용 기기 간의 데이터 전송에 사용.
2계층: 데이터 링크 계층 (Data Link Layer)
- 기능: 프레임 단위의 데이터 전송, 물리 계층의 오류 검출 및 수정, MAC 주소 기반 통신
- 주요 프로토콜:
- Ethernet (IEEE 802.3): LAN에서 널리 사용되는 데이터 링크 계층 프로토콜, MAC 주소 사용.
- PPP (Point-to-Point Protocol): 두 노드 간의 직접 연결을 제공하는 프로토콜, 주로 다이얼업 연결에서 사용.
- HDLC (High-Level Data Link Control): 데이터 전송의 오류 검출 및 수정을 위한 프로토콜.
- Frame Relay: 고속 데이터 전송을 위한 WAN 프로토콜, 비동기식 전송.
- ATM (Asynchronous Transfer Mode): 고정 크기의 셀을 사용하여 데이터 전송, QoS 제공.
- Wi-Fi (IEEE 802.11): 무선 네트워크에서의 데이터 전송, SSID와 MAC 주소 사용.
3계층: 네트워크 계층 (Network Layer)
- 기능: 패킷의 라우팅 및 전송, IP 주소 기반 통신
- 주요 프로토콜:
- IP (Internet Protocol): 패킷의 출발지와 목적지 주소를 포함하여 데이터를 라우팅.
- IPv4: 32비트 주소 체계.
- IPv6: 128비트 주소 체계로, IPv4의 주소 부족 문제 해결.
- ICMP (Internet Control Message Protocol): 네트워크 오류 보고 및 진단 (예: ping).
- ARP (Address Resolution Protocol): IP 주소를 MAC 주소로 변환.
- RIP (Routing Information Protocol): 거리 벡터 라우팅 프로토콜, 최대 홉 수 15.
- OSPF (Open Shortest Path First): 링크 상태 라우팅 프로토콜, 빠른 수렴성.
- BGP (Border Gateway Protocol): 자율 시스템 간의 라우팅 정보를 교환.
- IPsec (Internet Protocol Security): 네트워크 계층에서 데이터의 무결성과 기밀성을 보장.
- IP (Internet Protocol): 패킷의 출발지와 목적지 주소를 포함하여 데이터를 라우팅.
4계층: 전송 계층 (Transport Layer)
- 기능: 종단 간 통신, 데이터 전송의 신뢰성 보장, 세그먼트 전송 및 연결 관리
- 주요 프로토콜:
- TCP (Transmission Control Protocol): 연결 지향, 신뢰성 있는 데이터 전송, 흐름 제어, 오류 수정.
- UDP (User Datagram Protocol): 비연결형, 빠른 전송, 오류 검출만 수행, 신뢰성 없음.
- SCTP (Stream Control Transmission Protocol): 메시지 지향, 다중 스트림 지원, TCP와 UDP의 장점 결합.
5계층: 세션 계층 (Session Layer)
- 기능: 세션 설정, 유지, 종료, 체크포인트 및 복구
- 주요 프로토콜:
- RPC (Remote Procedure Call): 원격 서버에서 함수나 프로시저를 실행.
- NetBIOS: 네트워크 기본 입출력 시스템, 이름 등록 및 해제, 세션 서비스 제공.
- PPTP (Point-to-Point Tunneling Protocol): VPN 구현에 사용, 세션 관리 및 데이터 캡슐화.
6계층: 표현 계층 (Presentation Layer)
- 기능: 데이터 형식 변환, 암호화, 압축
- 주요 프로토콜:
- TLS (Transport Layer Security): 데이터 암호화 및 전송 보안 제공.
- SSL (Secure Sockets Layer): TLS의 전신, 데이터 암호화.
- MIME (Multipurpose Internet Mail Extensions): 이메일에서 텍스트, 이미지, 오디오, 비디오 등 다양한 데이터 형식을 전송.
7계층: 응용 계층 (Application Layer)
- 기능: 네트워크 응용 프로그램과 직접 상호작용, 네트워크 서비스 제공
- 주요 프로토콜:
- HTTP (Hypertext Transfer Protocol): 웹 페이지 요청 및 전송.
- FTP (File Transfer Protocol): 파일 전송.
- SMTP (Simple Mail Transfer Protocol): 이메일 전송.
- DNS (Domain Name System): 도메인 이름을 IP 주소로 변환.
- POP3 (Post Office Protocol 3): 이메일 수신.
- IMAP (Internet Message Access Protocol): 이메일 수신 및 관리.
- Telnet: 원격 서버 접속.
- SNMP (Simple Network Management Protocol): 네트워크 관리 및 모니터링.
'CS > Network' 카테고리의 다른 글
[Network] Stateless와 Connectionless (0) | 2024.05.24 |
---|---|
[Network] 3-Way Handshake란 (0) | 2024.05.22 |
컴퓨터 네트워크의 계층 (0) | 2023.06.19 |
컴퓨터 네트워크의 품질 기준 (0) | 2023.06.14 |
컴퓨터 네트워크의 소개 (0) | 2023.06.05 |