의견.png

"프로토콜"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
28번째 줄: 28번째 줄:
  
 
==계층별 분류==
 
==계층별 분류==
 +
===OSI 7===
 
프로토콜은 통신 기능의 확장과 새로운 통신 기술, 방식의 도입을 쉽게 만들기 위하여 적절한 기능 단위로 프로토콜 층이라 불리는 계층으로 분할된다. 아키텍처에 따라 다소 다르지만, 기본적으로는 물리적, 전기적 인터페이스, 노드 간의 데이터 전송 등을 규정하는 데이터 전송제어에 관한 계층과 메시지 전송, 파일 전송 가상 단말 기능 등을 규정하는 통신처리에 관한 계층으로 구분하고 있다. OSI 7계층에는 응용계층, 프레젠테이션 계층, 세션 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층 총 7개의 기능으로 계층화하고 있다. OSI 7계층을 이해하고 있으면, 해당 계층에 존재하는 프로토콜의 역할을 이해하는 데 도움을 준다. 물리 계층은 데이터 링크 계층의 프레임을 받고, 다음 장치에 구리나 광섬유(케이블) 또는 무선 통신 매체를 통신해 전송하기 위한 신호로 바꾸어준다. 물리적 매체를 통해 비트 단위 데이터를 전송하기 위해 요구되는 기능들을 정의하고, USB 케이블, 동툭 케이블 등 두 디바이스 간의 실제 접속을 위한 기계적, 전기적 특성에 대한 규칙을 정의하는 역할을 한다. 물리적인 기기의 대부분이 해당된다. 데이터링크 계층은 네트워크 계층 패킷 데이터를 물리적 매체에 실어 보내기 위한 계층으로, 포인트 투 포인트 간 신뢰성 있는 전송을 보장하기 위한 계층이다. 신뢰성 있는 전송을 위해 오류 검출 및 회복을 위한 오류 제어 기능을 수행하고, 송수신 측의 속도 차이 해결을 위해 흐름 제어 기능을 수행한다. 프레임 단위의 데이터를 전송하고, 대표적인 프로토콜로는 이더넷(Ethernet), PPP, HDLC, ALOHA 등이 있다. 네트워크 계층은 상위 레벨 데이터를 패킷 안으로 캡슐화하여 데이터 종류에 상관없이 한 호스트에서 다른 호스트로 그 패킷들을 라우팅한다. 데이터는 패킷 안으로 캡슐화되며, 패킷 헤더는 패킷의 송신지와 수신지 주소들을 포함하는 필드를 가진다. 패킷 단위의 데이터를 전송하고, IP, RIP, ARP, ICMP 등의 프로토콜이 있다.
 
프로토콜은 통신 기능의 확장과 새로운 통신 기술, 방식의 도입을 쉽게 만들기 위하여 적절한 기능 단위로 프로토콜 층이라 불리는 계층으로 분할된다. 아키텍처에 따라 다소 다르지만, 기본적으로는 물리적, 전기적 인터페이스, 노드 간의 데이터 전송 등을 규정하는 데이터 전송제어에 관한 계층과 메시지 전송, 파일 전송 가상 단말 기능 등을 규정하는 통신처리에 관한 계층으로 구분하고 있다. OSI 7계층에는 응용계층, 프레젠테이션 계층, 세션 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층 총 7개의 기능으로 계층화하고 있다. OSI 7계층을 이해하고 있으면, 해당 계층에 존재하는 프로토콜의 역할을 이해하는 데 도움을 준다. 물리 계층은 데이터 링크 계층의 프레임을 받고, 다음 장치에 구리나 광섬유(케이블) 또는 무선 통신 매체를 통신해 전송하기 위한 신호로 바꾸어준다. 물리적 매체를 통해 비트 단위 데이터를 전송하기 위해 요구되는 기능들을 정의하고, USB 케이블, 동툭 케이블 등 두 디바이스 간의 실제 접속을 위한 기계적, 전기적 특성에 대한 규칙을 정의하는 역할을 한다. 물리적인 기기의 대부분이 해당된다. 데이터링크 계층은 네트워크 계층 패킷 데이터를 물리적 매체에 실어 보내기 위한 계층으로, 포인트 투 포인트 간 신뢰성 있는 전송을 보장하기 위한 계층이다. 신뢰성 있는 전송을 위해 오류 검출 및 회복을 위한 오류 제어 기능을 수행하고, 송수신 측의 속도 차이 해결을 위해 흐름 제어 기능을 수행한다. 프레임 단위의 데이터를 전송하고, 대표적인 프로토콜로는 이더넷(Ethernet), PPP, HDLC, ALOHA 등이 있다. 네트워크 계층은 상위 레벨 데이터를 패킷 안으로 캡슐화하여 데이터 종류에 상관없이 한 호스트에서 다른 호스트로 그 패킷들을 라우팅한다. 데이터는 패킷 안으로 캡슐화되며, 패킷 헤더는 패킷의 송신지와 수신지 주소들을 포함하는 필드를 가진다. 패킷 단위의 데이터를 전송하고, IP, RIP, ARP, ICMP 등의 프로토콜이 있다.
  
36번째 줄: 37번째 줄:
  
 
==종류==
 
==종류==
TCP/IP 계층을 기준으로 분류하였다. [[SSH]], [[SSL]], [[POP3]], [[IMAP]], [[SMTP]], [[IRC]], [[SOAP]], [[Ripple]], [[SNMP]], [[POP]], [[TFTP]], [[DHCP]] 등 다양한 프로토콜이 있다.
+
TCP/IP 계층을 기준으로 분류하였다. [[IMAP]], [[IRC]], [[SOAP]], [[Ripple]], [[TFTP]] 등 다양한 프로토콜이 있다.
 
===네트워크 액세스 계층===
 
===네트워크 액세스 계층===
 
*이더넷, 토큰링, PPP, Frame Relay
 
*이더넷, 토큰링, PPP, Frame Relay

2021년 1월 26일 (화) 10:34 판

프로토콜(protocol)이란 표준화된 절차를 서술한 규칙의 체계를 말한다. 규약(規約)이라고 한다. 일반적으로 통신 프로토콜을 의미한다. 통신 프로토콜은 네트워크상 통신 회선을 통해 컴퓨터, 단말기와 같은 시스템 간에 내부적으로 통신, 접속하기 위하여 정보, 자료, 메시지 등을 주고받는 프로토콜이다.[1]

개요

공통의 데이터 교환 방법 및 순서에 대해 정의한 의사소통 약속, 규약 혹은 규칙 체계를 말한다. 프로토콜 종류는 여러 가지가 있지만, 일반적으로 프로토콜을 이야기 할 때는 통신 프로토콜을 의미한다. 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계를 뜻한다. 신호 체계, 인증, 오류 감지 및 수정 기능 등을 포함할 수 있다. 비단 언어뿐만이 아니라, 데이터가 어떤 과정과 절차를 통해 송신했는지, 수신측에서는 어떻게 원래의 데이터로 복구할 수 있는지와 같은 약속도 포함된다.[2] 프로토콜을 정의하는 기관으로는 IEEE(Institute of Electrical Electronic Engineers), ISO(International Organization standardization), EIA(Electronic Industries Organization) 등이 있다. 프로토콜은 통신을 위한 물리적, 소프트웨어적 등 여러 가지 조건을 취하여 결정한다. 동일한 통신망에 연결되어 있더라도, 같은 프로토콜을 이용하는 컴퓨터들 사이에만 통신할 수 있다. 컴퓨터끼리 혹은 컴퓨터와 단말기 사이의 정보 교환이 필요한 경우, 상호 간에 접속되어 정보의 오류를 없애거나 최소화함으로써 정보를 원활하게 교환하게 해주는 여러 가지 통신 규칙과 방법의 집합이고, 상호 간에 이해할 수 있는 의미 내용을 신뢰성이 유지되도록 표현하는 형식이다. 이기종간의 정보통신을 하려면, 표준 프로토톨을 설정하여 통신망을 구축해야 한다. 단순한 메시지 전송 이외에 다른 노드 안에 있는 복수의 프로세스 끼리 파일이나 데이터베이스 등에 대한 접근과 처리 신청까지 포함한 통신기능을 실현하려면, 각종 제어정보 수수에 관한 약속을 사전에 엄밀히 정해 두기 위하여 프로토콜을 사용해야 한다.[1]

특징

네트워크는 여러 가지 계층으로 나누어져 있고, 각 계층마다 프로토콜이 하는 기능이 다른데, 계층적 역할의 관점에서 보면 물리적인 역할을 하는 측면과, 논리적인 역할을 하는 측면 두 가지로 볼 수 있다. 물리적 측면에서 프로토콜은 자료 전송에 쓰이는 전송 매체, 접속용 단자 및 전송신호, 회신규격 등을 말한다. 논리적 측면에서의 프로토콜은 프레임의 구성, 프레임 안에 있는 각 항목의 뜻과 기능, 자료 전송의 절차 등을 담는다. 논리적인 측면에서의 프로토콜은 폐쇄적인 프로토콜과 공개된 범용 프로토콜로 나눌 수 있다. 폐쇄적인 프로토콜은 자사 장치들끼리 통신하기 위한 독자적인 통신 규약이며, 자세한 규격이 공개되어 있지 않아, 크래킹 위협에 상대적으로 안전하다. 공개된 범용 프로토콜은 여러 장치에 쓰이는 널리 알려진 규격이며, 규격이 널리 공개되어 있어, 컴퓨터와 네트워크 크래킹에 취약한 편이다.[2] 같은 프로토콜을 사용하면 기종이나 모델이 달라도 컴퓨터 상호 간에 통신할 수 있게 되고, 각각의 컴퓨터상에서 다른 프로그램을 사용하고 있더라도 컴퓨터 사이에서 데이터의 의미를 일치시켜 프로그램을 동작시킬 수 있게 된다. 예전에는 각국의 각 기업에서 독자적인 프로토콜을 만들었지만, 타사 혹은 타국과의 통신이 어려워지면서, 국제적으로 프로토콜의 표준화가 시도되었다. ISO에서 개방형 시스템 간 상호접속(OSI)에 관하여 7계층으로 나눈 프로토콜을 검토하였다.[1] 특성에 따라 직접 프로토콜과 간접 프로토콜, 단일체 프로토콜과 구조적 프로토콜, 대칭 프로토콜과 비대칭 프로토콜 등이 있다.

구성 요소

구문(syntax): 데이터를 어떻게 구성할 지에 대한 형식, 구체적인 코딩 방법, 신호 레벨 등에 대한 형식을 규정한다. 의미(sematic): 데이터에 대하여 구체적으로 어떻게 제어할 것인지에 대한 처리 방법과 에러가 발생했을 때 어떻게 처리할 것인가에 대한 정보를 포함한다. 타이밍(timing): 통신이 이루어질 때 데이터를 주고받을 속도에 대한 조절과, 여러 데이터가 동시에 통신을 해야 할 경우 순서 관리를 위한 기법을 포함한다.[2]

기능

  • 주소설정(Addressing): 통신을 하기 위해서는 통신의 대상이 누구인지를 알아야 데이터를 전송할 수 있고, 프로토콜에는 각 전송 계층에 맞는 주소를 지정하는 기능이 있다.
  • 순서제어(Sequence Control): 데이터가 전송될 때는 PDU(Protocol Data Unit)을 통해서 하나의 데이터를 여러 개의 각 프로토콜에 맞는 단위로 쪼개어 전송하게 된다. 순서제어란 프로토콜 데이터 단위가 전송될 때 순서를 명시하는 기능이며, 연결 지향형에만 사용한다. 순서를 지정하는 이유는 흐름제어, 혼잡제어, 오류제어를 위해서다. 순서제어에 의해서 정해진 PDU를 수신측에 보내면 순서에 맞게 데이터를 재구성한하고, 오류가 있을 경우 재전송을 요청한다. 해커는 순서가 뒤죽박죽인 패킷을 생성하여 보내, 시스템 과부하를 야기하기도 한다.
  • 분할 및 재조립(Fragmentation&Reassembly): 데이터의 크기와 종류는 다양한데, 한꺼번에 덩어리가 큰 데이터를 전달하는 것은 통신에 있어서 비효율적이기 때문에 하나의 데이터를 전송 효율이 높은 작은 단위로 분할하여 전송하고 수신측에서는 해당 데이터를 사용하기 위해 재조립하는 과정을 거친다. 해커는 이런 과정에서 데이터 분할 기능을 이용해 대량의 패킷을 공격 재상에 보내기도 하고, 재조합 불가능한 데이터를 보내 혼란에 빠뜨리기도 한다.
  • 캡슐화(Encapsulation): 순서제어에서 언급한 PDU는 PCI(Protocol Control Unit)와 SDU(Sercive Data Unit)으로 구성된다. PCI는 발신지 주소, 수신지 주소, 순서 번호, FCS등 각종 헤더 정보를 담고 있고, SDU에는 실제 서비스 데이터 정보를 담고 있다. 통신을 구성하는 각각의 계층을 통과하기 위해서는 캡슐화를 통해 포장하는 과정을 거치며, 데이터를 사용하기 위해서는 캡슐화된 데이터는 수신측에서 역캡슐화 하는 과정을 통해 각각의 계층을 통과한다. 캡슐화는 해커로부터 자신의 통신 내용을 숨길 수 있게 해준다.
  • 흐름 제어(Flow Control): 송신측에서 오는 데이터의 양이나 속도를 조절하는 기능이다. 송신과 수신에 있어서 속도차이로 인한 데이터의 유실을 방지한다. 송신 노드의 송신 속도가 수신노드 측의 처리 속도, 처리 능력을 고려하여서, 송신자가 정보를 내보낼 때 상대방이 수신할 수 있는 만큼만 효율적으로 전송해서, 이를 초과로 수신 장치의 데이터가 넘치지 않아 상호 간에 데이터 손실이 발생하지 않도록 전송되는 정보 흐름의 양, 속도를 조절, 조정, 제어하기 위한 송신장치 제어 방법 혹은 기술이다. 정리하자면, 수신 장치가 모든 송신장치로부터 받은 데이터를 수신 장치의 버퍼에서 처리하기 전에 송신장치로부터 수신 장치에게 다른 데이터가 추가적으로 전송되지 않도록 제어하는 방식이다. 수신 노드가 수신 확인응답을 송신 노드에 제공함으로써 흐름제어가 수행되는데, 수신 확인응답 방식은 2가지가 있다.
  1. 정지-대기(Stop and wait): 패킷에 대한 응답 후에 다음 패킷을 보내는 방식으로, 가장 단순한 형태의 자동 재전송 요구(ARQ)로서, 송신 측이 1개의 블록을 전송하면, 수신 측에서 오류의 발생을 점검하여 전송 중 오류가 발생하지 않았을 경우 긍정 응답(ACK)을, 오류가 발생하였을 경우 부정 응답(NAK)을 보낼 때까지 기다리는 방식이다. 이에 따라 송신 측은 다음의 데이터 블록을 전송하거나, 오류가 발생한 데이터 블록을 재전송한다. 즉, 송신장치에서 한 번에 하나의 프레임을 전송하고, 송신측에서 프레임을 전송한 후 확인 받을 때까지 다음 프레임을 보낼 수 없도록 대기하는 방식이다.[3]
  2. 슬라이딩 윈도우(sliding window): 가용 데이터 분량의 패킷을 한꺼번에 보낸 후 응답 패킷을 받으면 다시 그만큼의 데이터를 한꺼번에 보내는 방식이다. 송신측이 수신측의 확인 응답을 받기 전에 상대방의 윈도우 사이즈 범위 내에서 즉, 수신측의 수신 가능한 범위인 수신 버퍼의 여유 공간 크기 내에서 데이터에 해당하는 여러 프레임을 연속해서 전송하는 방식이다. 세그먼트를 전송할 때마다 수신확인응답을 수신한 후 전송하게 되면, 왕복 시간인 RTT(Round Trup Rime)이 길 경우, 단위 시간당 데이터 전송량(Throughput)이 매우 떨어지므로, 효율적으로 전송하기 위해 상대방이 받을 수 있는 범위 내에서 연속적으로 전송한다. 이 방식에서는 송수신 흐름을 위해서 각 프레임에 순서 번호를 부여한다. 순서번호를 부여하여 수신측에서 기대하는 다음 프레임의 순서번호를 포함하는 확인응답 번호를 송신측에 보내줌으로써 계속 받을 수 있는 프레임들의 번호를 알려준다.[4]
  • 혼잡 제어(Congestion Control): 네트워크의 혼잡 정도에 따라서 송신자가 데이터의 전송량을 제어하는 것을 말한다. 혼잡 정도에 대한 판단기준은 데이터의 손실 발생 유무로 판단한다. 전송한 데이터에 누락이 발생하면 네트워크가 혼잡한 상태로 판단하여 전송량을 조절하는 것인데, 손실, 폐기, 지연 등이 누락에 해당한다. 물리적인 네트워크 장애나, TTL 초과 등은 손실에, 데이터 오류 등으로 인한 폐기는 폐기에, 네트워크 혼잡 등에 의한 지연은 지연에 해당한다.[5]
  • 연결 제어(Connection Control): 연결제어는 연결 지향형 데이터 전송(Connection oriented data transfer)과 비연결 지향형 데이터 전송(Connectionless data transfer) 두 가지 방식이 있다. 연결 지향형 데이터 전송은 두 시스템이 서로 데이터를 교환할 EO 연결을 설정하는 경우로, 연결 설정, 데이터 전송, 연결 해제 3단계로 구성된다. 대표적인 예로 TCP가 있고, 이러한 연결 제어 패킷을 이용하면 네트워크 연결을 끊을 수도, 해당 세션을 빼앗을 수도 있다. 비연결 지향형 데이터 전송은 UDP와 같이 연결을 설정하지 않은 경우다. 이렇게 전송되는 데이터들은 데이터그램 이라고 한다.
  • 오류 제어(Error Control): PDU로 데이터를 교환할 때 SDU나 PCI가 잘못되었는지 발견하는 기법을 의미한다. 데이터의 오류나 누락 없이 안전한 전송을 보장해주어야 하는데, 오류나 누락이 발생할 경우 재전송을 수행하여 이를 보장한다. 데이터의 오류는 송신측에서 계산한 체크섬을 수신측에서 검증하여 오류 여부를 판단한다. 오류의 발생 여부는 패리티 비트(parity bit)나 잉여도 검사(Cyclic Rebundancy Check)를 통해 발견할 수 있다. 오류 제어는 순서를 검사하거나, 특정 시간 안에 데이터를 받지 못하면 재전송을 요구하는 방식으로 이루어진다.
  • 동기화(Synchronization): 송수신측 간의 데이터를 주고받는 시점을 정확하게 일치시키기 위한 기법이다.
  • 다중화(Multiplexing): 하나의 통신 선로에서 시스템이 동시에 통신할 수 있는 기법을 다중화라고 한다. 조금 더 쉽게 말하자면 하나의 기능 혹은 매체를 여러 영역에서 동시에 사용하는 기법을 말한다. 역다중화는 공유하는 기능이나 매체로부터 개별 영역으로 분할하는 기법을 말한다.
  • 전송 서비스: 우선 순위를 결정하고, 서비스 등급과 보안 요구 등을 제어하는 서비스이다.[6]

계층별 분류

OSI 7

프로토콜은 통신 기능의 확장과 새로운 통신 기술, 방식의 도입을 쉽게 만들기 위하여 적절한 기능 단위로 프로토콜 층이라 불리는 계층으로 분할된다. 아키텍처에 따라 다소 다르지만, 기본적으로는 물리적, 전기적 인터페이스, 노드 간의 데이터 전송 등을 규정하는 데이터 전송제어에 관한 계층과 메시지 전송, 파일 전송 가상 단말 기능 등을 규정하는 통신처리에 관한 계층으로 구분하고 있다. OSI 7계층에는 응용계층, 프레젠테이션 계층, 세션 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층 총 7개의 기능으로 계층화하고 있다. OSI 7계층을 이해하고 있으면, 해당 계층에 존재하는 프로토콜의 역할을 이해하는 데 도움을 준다. 물리 계층은 데이터 링크 계층의 프레임을 받고, 다음 장치에 구리나 광섬유(케이블) 또는 무선 통신 매체를 통신해 전송하기 위한 신호로 바꾸어준다. 물리적 매체를 통해 비트 단위 데이터를 전송하기 위해 요구되는 기능들을 정의하고, USB 케이블, 동툭 케이블 등 두 디바이스 간의 실제 접속을 위한 기계적, 전기적 특성에 대한 규칙을 정의하는 역할을 한다. 물리적인 기기의 대부분이 해당된다. 데이터링크 계층은 네트워크 계층 패킷 데이터를 물리적 매체에 실어 보내기 위한 계층으로, 포인트 투 포인트 간 신뢰성 있는 전송을 보장하기 위한 계층이다. 신뢰성 있는 전송을 위해 오류 검출 및 회복을 위한 오류 제어 기능을 수행하고, 송수신 측의 속도 차이 해결을 위해 흐름 제어 기능을 수행한다. 프레임 단위의 데이터를 전송하고, 대표적인 프로토콜로는 이더넷(Ethernet), PPP, HDLC, ALOHA 등이 있다. 네트워크 계층은 상위 레벨 데이터를 패킷 안으로 캡슐화하여 데이터 종류에 상관없이 한 호스트에서 다른 호스트로 그 패킷들을 라우팅한다. 데이터는 패킷 안으로 캡슐화되며, 패킷 헤더는 패킷의 송신지와 수신지 주소들을 포함하는 필드를 가진다. 패킷 단위의 데이터를 전송하고, IP, RIP, ARP, ICMP 등의 프로토콜이 있다.

전송 계층은 헤더에 송수신지 포트번호를 포함하여 올바르게 전달될 수 있게 하는 계층으로, 전체 메시지에 대하여 양 끝 간 제어와 오류를 관리한다. 패킷의 전송이 유효한지 확인하고, 전송에 실패된 패킷을 재전송 하는 등 신뢰성 있는 통신을 보장해야한다. 주소 설정, 오류 제어, 흐름 제어, 다중화 수행 등의 기능을 하고, TCP(Transmission Control Protocol)일 때는 세그먼트 단위로, UDP(User Datagram Protocol)일 때는 데이터그램 단위로 데이터를 전송한다. 세션 계층은 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공하는 역할을 하고, 통신 세션을 구성하며 포트 번호를 기반으로 연결한다. 메시지나 데이터 단위의 데이터 전송을 하고, NetBIOS, SSH 등의 프로토콜이 있다. 표현 계층은 응용 계층으로부터 받은 데이터를 하위 계층인 세션 계층에 보내기 전 통신에 적당한 형태로 변환한다. 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 역할을 수행한다. 코드 변환, 구문 검색, 데이터 압축 및 암호화 등의 기능 수행을 한다. 메시지나 데이터 단위의 데이터를 전송하고, JPG, MPEG, AFP, PAP 등의 프로토콜이 있다. 응용 계층은 컴퓨터 네트워크 프로그래밍에서 인터넷 프로토콜(IP) 컴퓨터 네트워크를 통하는 프로세스 간 통신 접속을 위해 설계되어 통신 프로토콜과 방식을 위해 보유된 추상 계층이다. 응용 계층 프로토콜은 기반이 되는 전송 계층 프로토콜을 사용하여 호스트 간 연결을 확립했다. 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행하고, 응용 프로세스 간의 정보 교환, 전자 메일, 파일 전송 등의 서비스를 제공한다. 메시지나 데이터 단위로 데이터를 전송하고, HTTP, FTP, DNS, SMTP 등이 응용 계층 프로토콜에 해당한다.[7]

TCP/IP

TCP와 IP는 각각 다른 프로토콜을 뜻하지만 TCP/IP 프로토콜이라고 쓰여 있을 경우, TCP/IP를 사용하는 프로토콜의 모음으로, 응용 계층, 전송 계층, 네트워크 계층, 링크 계층, 물리 계층 5개의 계층을 가지는 프로토콜을 사용한다는 것을 의미한다. 계층을 나눈 이유는 복잡하고 큰 작업을 각각의 계층을 여러 개의 모듈처럼 생각하여, 여러 개의 작고 단순한 작업들로 나누어 수행할 수 있기 때문이다. 모듈성이 있어, 서비스 구현의 분리, 전문화, 중가 시스템의 통신이 가능하다. 프로토콜을 계층화할 때는 각 계층은 각 방향으로 한 가지씩, 상반되는 두 가지 작업을 수행할 수 있도록 해줘야 한다. 또한 양측의 각 계층에 있는 객체는 서로 동일해야 한다. OSI는 7계층인 반면, TCP/IP는 4계층으로 이루어져 있다. 네트워크 액세스 계층은 OSI 7 계층에서의 물리 계층과 데이터 링크 계층에 해당한다. 물리적인 주소로 맥(MAC)을 사용하고, 랜(LAN), 패킷망 등에 사용된다. 네트워크 액세스 계층에 해당하는 프로토콜은 랜 상인지, 광역 통신망(WAN) 상인지에 따라 다르다. 랜의 경우 이더넷, 토큰 링, PPP 등이 있고, 광역 통신망의 경우 X.25, Frame Relay, PPP 등이 있다. 인터넷 계층은 OSI 7계층의 네트워크 계층에 해당하고, 통신 노드 간의 IP 패킷을 전송하는 기능과 라우팅 기능을 담당한다. 해당하는 프로토콜로는 IP(Internet Protocol), ARP(Address Resolution Protocol), RARP(Reverse ARP), ICMP(Internet Control Message Protocol), IGMP(Internet Group Message Protocol), 라우팅 프로토콜 등이 있다. 전송 계층은 OSI 7계층의 전송계층에 해당한다. 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다. 신뢰성 있는 연결 지향형 프로토콜인 TCP와 비신뢰성 비연결형 프로토콜인 UDP가 전송 계층의 프로토콜이다. 응용 계층은 OSI 7계층의 세션 계층, 표현 계층, 응용 계층에 해당하고, TCP, UDP 기반의 응용 프로그램을 구현할 때 사용된다. 응용 계층 프로토콜에는 HTTP, HTTPS, FTP, Telnet, SMTP, SNMP, POP, SSH, FTP, DNS, SSI, SSL, TLS, DHCP 등이 있다.[8]

종류

TCP/IP 계층을 기준으로 분류하였다. IMAP, IRC, SOAP, Ripple, TFTP 등 다양한 프로토콜이 있다.

네트워크 액세스 계층

  • 이더넷, 토큰링, PPP, Frame Relay

인터넷 계층

  • IP, ARP, RARP, ICMP, IGMP, 라우팅 프로토콜(OSPF, IGRP, EIGRP, RIP, BGP)

전송 계층

  • TCP, UDP

응용 계층

  • HTTP, HTTPS, FTP, Telnet, SMTP, SNMP, POP, SSH, FTP, DNS, SSI, SSL, TLS, DHCP
  • FTP: 파일 전송 프로토콜은 웹 페이지 파일들을 서버로 파일을 옮기는 과정에서 사용하거나 서버의 파일을 자신의 컴퓨터에 옮기는 다운로드에 사용한다. 최초의 FTP 클라이언트는 명령 줄 인터페이스(Command Line Interface)의 형태였다. 보안 프로토콜로 계획된 것이 아니기 때문에 여러 보안 취약점이 존재한다. 이런 문제점이나 기능을 보완하기 위해 FTPS, SFTP, TFTP 등이 있다.
  • HTTP: HTML과 같은 웹문서를 전달하기 위한 응용 계층 프로토콜이다. 브라우저가 웹 사이트와 호환하기 위해 브라우저는 요청을, 웹 사이트는 응답을 한다. 흔히 볼 수 있는 403 응답코드와, 404코드를 예로 들 수 있는데, 403 응답 코드는 권한이 없는 페이지에 접근하는 경우 회신되고, 404 응답 코드는 존재하지 않는 페이지에 접근하는 경우에 회신된다.
  • 텔넷: 인터넷이나 근거리 통신망에서 사용되는 프로토콜이다. 원격 지원 프로토콜로서 다른 사람의 호스트 컴퓨터의 사용권한을 가지고 있다는 전제하에 원격지에서 접근할 수 있도록 도와준다. 웹 서비스를 제공하는 FTP 프로토콜과 HTTP 프로토콜은 특정 파일을 요구하는 프로토콜인 반면, 텔넷은 정식 사용자로서 그 컴퓨터에 로그인 한 뒤 특정 응용 프로그램이나 데이터를 이용할 수 있다.
  • DNS: 호스트에 대한 이름 주소 변환을 위한 분산 데이터베이스 시스템으로, 실제 IP 주소가 아닌 도메인 이름을 입력해도 접속할 수 있게 도와준다. DNS 서버는 도메인 이름과 이에 대응하는 IP 주소에 관한 데이터베이스를 가지고 있다. 예를 들어 최상위 계층의 도메인에는 영리를 목적으로 하는 기관인 “com”, 네트워킹 회사가 사용하는 “net”, 비영리기관이 사용하는 “org”, 한국 서버에 사용하는 “kr”이 있다.

각주

  1. 1.0 1.1 1.2 밤공기후하후하, 〈프로토콜 – Protocol 이란 무엇인가〉, 《네이버 블로그》, 2019-04-09
  2. 2.0 2.1 2.2 탕탕탕구리, 〈프로토콜(Protocol) 그래서 그게 뭔데?〉, 《티스토리》, 2019-03-15
  3. 밤공기후하후하, 〈프로토콜 – Stop and Wait, 정지 대기 기법이란 무엇인가〉, 《네이버 블로그》, 2019-04-16
  4. 밤공기후하후하, 〈프로토콜 – Sliding Window, 슬라이딩 윈도우 방식 이란 무엇인가〉, 《네이버 블로그》, 2019-04-16
  5. 밤공기후하후하, 〈프로토콜 – Congestion Control, 혼잡 제어 란 무엇인가〉, 《네이버 블로그》, 2019-04-20
  6. 홀인원, 〈(네트워크 실습) 3. 프롵토콜의 기능〉, 《네이버 블로그》, 2014-07-06
  7. 99CORN, 〈OSI 7계층 (OSI 7 LAYER)〉, 《티스토리》, 2015-12-01
  8. 99CORN, 〈TCP/IP 4계층(TCP/IP 4 Layer)〉, 《티스토리》, 2015-12-12

참고자료

같이 보기


  의견.png 이 프로토콜 문서는 인터넷에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.