1. OSI 7 Layer 개요
- 네트워크 통신을 체계적으로 다루고 있는 ISO 표준은 개방시스템 상호연결 (OSI) 모델이다. OSI 모델은 통신 규약으로 1984년에 정의되었다.
- 개방시스템(Open System)이란 기반구조와 관계없이 시스템 간의 통신을 제공하는 프로토콜의 집합이다. (Open System Intercon-nection)
- 계층구조를 가짐으로써 데이터자체의 흐름을 각 구간별로 데이터의 움직임을 알 수 있다. 문제가 생긴 계층을 수정하면 되기 때문에 문제 해결에 쉬운 편이고, 또한 트러블슈팅 자체가 용이해지며 각기 다른 벤더사 와의 호환성도 해결될 수 있다.
<N계층이 잘 작동하기 위해서는 1부터 N-1 계층이 작동되어야 한다는 특징이 있다>
2. TCP/IP Protocol Suite 개요
① TCP/IP는 현재의 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 통신규약 (프로토콜)의 모음이다.
② ARPANET이 개발된 이후 현대의 인터넷으로 발전해 나가는 과정에서 대부분 데이터 통신이 tcp, ip기반으로 이루어졌기 때문에 표현하는 용어
③ 하드웨어, 운영체제, 접속매체에 관계없이 동작할 수 있는 개방성을 가진다.
다시 OSI로 돌아가서,
OSI 7 Layer [OSI 7 계층]
(1) Physical Layer - 물리계층
- 데이터를 물리 매체상으로 전송하는 역할을 담당하는 계층으로, 전송을 위해 필 필요한 물리적 링크의 설정, 유지, 해제를 담당.
- 사용자 장비와 네트워크 종단장비 사이의 물리적, 전기적인 인터페이스 규정에 초점을 두고 있으며, 전송 선로의 종류에 따라 전송방식과 인코딩 방식을 결정.
- 단지 데이터 전달의 역할을 할 뿐이다. 송수신하는 데이터가 무엇인지는 상관 안 쓴다
전송 단위는 Bit를 사용한다. <대표적인 장치> 통신 케이블, 리피터, 허브
(2) Data-Link Layer - 데이터링크 계층
- Mac 주소를 가지고 통신
- 물리계층의 있는 그대로의 전송설비를 신뢰할 수 있는 링크로 변환한다. 그리고 정보의 오류와 흐름을 관리하여 안정한 정보의 수행을 도와준다. 이는 상위 계층인 네트워크 계층에게 오류 없는 물리계층으로 보이도록 한다.
- 네트워크계층에서 정보를 받아 주소와 제어정보를 헤더와 테일에 추가한다.
전송 단위는 Frame를 사용한다. <대표적인 장치> 브리지 스위치
(3) Network Layer - 네트워크 계층
- 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)을 한다.
- 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해 주는 역할을 한다.
- 대표적인 장비로 라우터, (라우팅 기능이 포함된) 스위치가 있으며, IP 주소를 사용한다.
- 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층이다.
- 송신 측에서 수신 측까지 데이터를 안전하게 전달하기 위해서 논리적 링크(네트워크)를 설정하고 상위계층 데이터를 작은 크기의 패킷으로 분할하여 전송하는 역할을 수행한다.
전송 단위는 Packet을 사용한다
(4) Transport Layer - 전송계층
- OSI 7 계층 구조는 전송계층을 기점으로 하위계층으로 이루어진 네트워크 서비 스와 상위계층으로 이루어진 사용자 서비스로 구별될 수 있다.
- 전체 메시지를 발신지 대 목적지 (end-to-end) 간 제어와 에러를 관리한다.
- end-to-end 전송은 단순히 한 컴퓨터에서 다음 컴퓨터로의 전달이 아니라, 송신 컴퓨터의 응용프로그램(프로세스)에서 최종 수신 컴퓨터의 응용프로그램(프로세스) 으로 전달을 의미한다.
- 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고 연결 기반이다. 전송 계층의 패킷들이 유효한지 확인하고 전송 실패한 패킷을 다시 전송함을 의미한다.
전송 단위는 Segment를 사용하며 주소는 Port를 사용한다.
(5) Session Layer - 세션계층
- 데이터가 통신하기 위한 논리적인 연결을 한다.
- 세션 설정, 유지, 종료, 전송 중단 시 복구 등의 기능이 있다.
- 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다.
- TCP/IP 세션을 만들고 없애는 책임을 진다
(6) Presentation Layer - 표현계층
- 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고, 암호화한다.
- 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로 덜어준다.
- 예를 들면, EBCDIC로 인코딩 된 문서 파일을 ASCII로 인코딩 된 파일로 바꿔주는 것
- 해당 데이터가 텍스트인지, 그림인지, GIF인지, JPG인지의 구분 등의 역할을 한다.
(7) Applicaion Layer - 응용계층
- 최종 목적지로서 HTTP, FTP, SMTP, Telnet 등과 같은 프로토콜이 있다.
- 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.
- 네트워크 소프트웨어의 UI 부분, 사용자의 입출력 부분을 담당한다.
TCP/IP Protocol Suite
(1) Network Access Layer
- OSI 7 Layer의 물리계층과 데이터링크 계층[1,2 계층]에 해당한다.
- OS의 네트워크 카드와 디바이스 드라이버 등과 같이 하드웨어적인 요소와 관련된 는 모든 것을 지원하는 계층
- 송신 측 컴퓨터의 경우 상위 계층으로부터 전달받은 패킷에 물리적인 주소은 MAC 주소 정보를 가지고 있는 헤더를 추가하여 프레임을 만들고, 프레임을 하위계층인 물리 계층으로 전달한다.
- 수신 측 컴퓨터의 경우 데이터 링크 계층에서 추가된 헤더를 제거하여 상위 계층인 네트워크 계층으로 전달한다.
- 에러 검출 기능과 패킷의 프레임화 기능을 수행한다.
- 네트워크 접근 방법, 프레임 포맷, 매체에 대해 독립적으로 동작하도록 설계되었다.
- 흐름 제어(Flow Control)는 Header(MAC)에서, 에러 제어(Error Control)는 Tailer(CRC)에서 수행한다.
(2) Internet Layer
- OSI 7 Layer의 네트워크 계층에 해당한다.
- 인터넷 계층의 주요 기능은 상위 트랜스포트 계층으로부터 받은 데이터에 IP패킷 헤더를 붙여 IP패킷을 만들고 이를 전송하는 것이다.
- 어드레싱(addressing), 패키징(packaging), 라우팅(routing) 기능을 제공한다.
- 논리적 주소인 IP를 이용한 노드 간 전송과 라우팅 기능을 처리하게 된다.
- 네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공한다.
- 핵심 프로토콜은 IP, ARP, ICMP, IGMP 등이 있다.
(3) Transport Layer
- OSI 7 Layer의 전송계층에 해당한다.
- 네트워크 양단의 송수신 호스트 사이에서 신뢰성 있는 송수신기능을 제공한다.
- 시스템의 논리주소와 포트를 가지고 있어서 각 상위 계층의 프로세스를 연결해서 통신한다.
- 정확한 패킷의 전송을 보장하는 TCP와 정확한 전송을 보장하지 않는 UDP 프로토 콜을 이용한다.
- 데이터의 정확한 전송보다 빠른 속도의 전송이 필요한 멀티미디어 통신에서 UDP를 사용하면 TCP보다 유용하다.
(4) Application Layer
- OSI 7 Layer에서 세션계층, 프레젠테이션계층, 애플리케이션 계층에 해당한다.
- 다른 계층의 서비스에 접근할 수 있게 하는 애플리케이션을 제공한다.
- 애플리케이션들이 데이터를 교환하기 위해 사용하는 프로토콜을 정의한다.
- TCP/IP 네트워크를 사용하거나 관리하는 것을 도와주는 프로토콜이다.
4. 각 계층별 관련 프로토콜
Application Layer
①FTP (File Transfer Protocol)
- 파일 전송 프로토콜
②VSFTP (Very Secure File Transfer Protocol)
- VSFTP는 보안 부분을 특히 강조한 데몬으로 Redhat, Suse, Open-BSD에서 기본 FTP로 채택하고 있으며 보안, 빠른 퍼포먼스, 안정성을 주요 특징으로 소개하고 있다.
③SNMP (Simple Network Management Protocol)
- SNMP는 TCP/IP 프로토콜 그룹을 이용하여 인터넷상에서 장치를 관리하기 위한 기반구조이다. 이것은 인터넷을 감시하고 관리하기 위한 기본적인 운영을 제공한다.
④SMTP (Simple Mail Transfer Protocol)
- 전자 우편을 보내고 받는 데 사용되는 TCP/IP 프로토콜이다.
⑤HTTP (Hyper Text Transfer Protocol)
- Web-Browser 같은 응용프로그램을 통해 Web-Client와 Web-Server사이에 데이터를 전송하는 프로토콜이다.
- 평문 (암호화하지 않은) 통신이기 때문에 도청이 가능하다.
⑥HTTPS (Hyper Test Transfer Protocol Secure)
- HTTP의 약점을 보안하기 위하여 HTTP 암호화나 인증 등의 구조를 더한 것이다.
- 웹페이지의 로그인이나 쇼핑의 결제 화면 등에서 사용되고 있다.
⑦DNS (Domain Name System)
- 네트워크상에서 컴퓨터들은 IP주소를 이용하여 서로를 구별하고 통신한다. 사람들이 네트워크를 통해 원격의 컴퓨터에 접속하기 위해서는 IP주소를 이용하여야 하지만, 숫자의 연속인 IP주소를 일일이 외울 수 없기 때문에 쉽게 기억할 수 있는 도메인 주소 체계가 만들어졌다.
- 도메인 주소를 IP주소로 변환시켜 주거나 그 반대의 기능을 한다.
Transport Layer
① TCP (Transmission Control Protocol)
- 인터넷상의 컴퓨터들 사이에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용되는 프로토콜이다. IP가 실제로 데이터의 배달처리를 하는 동안, TCP는 데이터 패킷을 추적 관리한다.
- TCP는 연결지향 프로토콜인데, 이것은 메시지들이 각단의 응용프로그램들에 의해 교환되는 시간 동안 연결이 확립되고 유지되는 것을 의미한다.
- TCP는 IP가 처리할 수 있도록 메시지를 여러 개의 패킷들로 확실히 나누고, 반대편에서는 완전한 메시지로 패킷들을 재조립할 책임이 있다.
② UDP (User Datagram Protocol)
- UDP는 IP를 사용하는 네트워크 내에서 컴퓨터들 간에 메시지들이 교환될 때 제한된 서비스만을 제공하는 통신 프로토콜이다.
- UDP는 TCP와는 달리 메시지를 패킷으로 나누고, 반대편에서 재조립하는 등의 서비스는 제공하지 않는다.
- 교환해야 할 데이터가 매우 적은 네트워크 응용프로그램들은 처리시간 단축을 위해 Tcp보다 UDP를 쓴다.
③SCTP (Stream Control Transmission Protocol)
- TCP와 UDP의 단점을 개선한 전송계층 기술로 고속전송과 신뢰성을 보장한다.
- Flow control : 시간당 송신자가 보내는 패킷의 양이 수신자가 수신할 수 있는 패킷의 양을 넘어서지 않게 하는 것이다.
Network Layer
① IP (Internet Protocol)
- TCP/ IP 기반의 인터넷 망을 통하여 데이터 전달을 담당하는 프로토콜이다.
- 패킷의 완전한 전달을 보장하지 않는다.
- IP패킷 헤더 내에 수신 및 발신 주소를 포함한다.
② ICMP (Internet Control Message Protocol)
- 인터넷 계층 프로토콜 중 ICMP는 호스트 또는 라우터 사이에 오류정보, 제어 메시지를 전달하는 데 사용되며 주로 IP가 이용하지만 ping과 같은 응용프로그램이 직접 사용하는 경우도 있다.
③ IGMP (Internet Group Message Protocol)
- 로컬 네트워크상의 멀티캐스팅 그룹관리를 위한 프로토콜
- 하나의 라우터와 여러 호스트로 구성되는 서브네트워크 상에서, 호스트들이 어떤 멀티캐스트 그룹에 속하는 가를 라우터가 알도록 하기 위한 일종의 그룹 관리용 프로토콜
- ICMP, IGMP 등은 데이터 전송용 프로토콜이 아니고, 네트워크상에 이벤트 또는 변화를 알리는 데 사용되는 제어용 프로토콜이다.
④ ARP (Address Resolution Protocol)
- 인터넷에 연결되는 모든 호스트는 네트워크 계층 주소에 해당하는 32bit의 IP주소를 가지고 있다.
- LAN에서 어떤 컴퓨터에 IP패킷을 물리적으로 전달하기 위해서는 먼저 그 장비의 MAC주소를 알아야 하는데 어떤 장비의 IP주소를 가지고 그 장비의 MAC 주소를 알아내기 위한 절차(프로토콜)를 ARP라고 한다.
- 동일한 목적지 호스트에 IP패킷을 연속하여 보낼 때 매번 ARP를 사용하면 ARP를 처리하기 위한 패킷들을 자주 전송하게 되어 대역 이용률이 떨어진다. 이와 같이 매번 ARP request 패킷을 방송하지 않도록 하기 위하여, ARP로 얻은 최근의 정보를 캐시에 기록해 두는 것이 효율적이다.
⑤ RARP (Reverse Address Resolution Protocol)
- ARP의 역과정, 즉 48 비트의 MAC주소로부터 그 장비의 32비트 IP 주소를 알아내는 과정을 RARP라고 한다.
Data-Link Layer
① 이더넷
- 회선상에서 데이터를 전송하는 여러 가지 방식들 중 현재 전 세계적으로 90% 이상 사용되는 대표적인 네트워크 형태이다.
- 데이터를 전송하기 위해 CSMA/CD라는 약속을 사용하며 전송속도는 현재 10~1000 Mbps까지 다양하게 존재한다.
- 이더넷에 접속되어 있는 장치들은 어느 때라도 데이터를 전송할 수 있는데, 전송하기 전에 회선이 사용 중인지 감시하고 있다가 회선이 비어 있을 때 데이터를 전송한다. 만약 데이터를 전송하는 시점에 다른 장치가 동시에 전송을 개시하면 충돌이 발생하게 되며, 충돌한 데이터들은 버려지고 데이터를 전송한 장치들에게 재전송을 요구하게 된다.
OSI 7 Layer vs TCP/IP Protocol Suite <차이점 >
- TCP/IP 프로토콜은 OSI 모델보다 먼저 개발되었다.
> TCP/IP 프로토콜의 계층은 OSI 모델의 계층과 정확하게 일치하지 않고 비슷한 구조.
- OSI의 세션(Session)과 표현(presentation) 2개의 계층이 TCP/IP프로토콜 그룹에 없다는 것을 알 수 있다.
- 두 모델 모두 계층형이라는 공통점을 가지고 있으며 TCP/IP는 인터넷 개발 이후 계속 표준화되어 신뢰성이 우수인 반면, OSI 7 Layer는 표준이 되기는 하지만 실제적으로 구현되는 예가 거의 없어 신뢰성이 저하되어 있다.
- OSI 7 Layer는 장비 개발과 통신 자체를 어떻게 표준으로 잡을지 사용되는 반면에 실 질적인 통신 자체는 TCP/IP 프로토콜을 사용한다.
참고 자료
1. https://tar-cvzf-studybackup-tar-gz.tistory.com/38
'Computer Science (CS) > 인터넷 공학' 카테고리의 다른 글
JWT(JSON Web Token) 이란? (0) | 2024.01.23 |
---|---|
[인터넷 공학] 흐름제어(Flow Control)와 TCP혼잡제어 (Congestion Control) (0) | 2023.01.18 |