[Report] 통신 프로토콜과 OSI

 1. 통신 프로토콜


가. 프로토콜이란?
 프로토콜(Protocol – 규약)이란 서로 다른 시스템 간의 통신을 보장하기 위한 약속이다.
 대표적인 프로토콜에는 TCP(Transmission Control Protocol), IP(Internet Protocol), FTP(File Transfer Protocol), SMTP(Simple Mail Transfer Protocol)등이 있다.


나. 각종 프로토콜들
① TCP(Transmission Control Protocol) : 전송 관리 규약
TCP는 IP가 해당 시스템간의 성공적인 통신을 보장하지 못한다는 점을 보안하기 위한 규약이다.
② IP(Internet Protocol) : 인터넷 규약
IP는 네트워크 상의 전송을 위한 규약이다.
③ FTP(File Transfer Protocol) : 파일 전송 규약
FTP는 시스템간 효율적인 파일 전송을 위한 규약이다.
④ SMTP(Simple Mail Transfer Protocol) : 간단한 메일 전송 규약
SMTP는 메일을 전송하기 위한 가장 간단한 규약이다.
⑤ Apple Talk
매킨토시 시스템과 다른 시스템간 통신을 위한 규약이다.
⑥ DHCP(Dynamic Host Configuration Protocol) : 동적 호스트 설정 규약
네트워크 관리자들이 중앙에서 IP를 할당하고 관리할 수 있도록 해주는 규약이다.
⑦ HTTP(Hypertext Transfer Protocol) : 하이퍼텍스트 전송 규약
웹 상에서 파일을 주고 받기 위한 규약이다.
⑧ VoIP (voice over IP) : 음성 IP
IP를 이용하여 음성정보를 전달하기 위한 규약이다.
⑨ UDP (User Datagram Protocol) : 사용자 데이터그램 프로토콜
IP를 사용하는 네트웍 내에서 컴퓨터들 간에 메시지들이 교환될 때 제한된 서비스만을 제공하는 규약이다.
⑩ POP3 (Post Office Protocol 3)
POP3는 전자우편을 수신하기 위한 규약이다.
2. OSI 참조 모델


가. OSI란 무엇인가?
 OSI(Open System Interconnection)는 특정 하드웨어나 소프트웨어의 세부적 특징을 극복하여 서로 이질적인 시스템 사이의 개방적인 통신이 이루어질 수 있도록 하고 네트워크 구조를 공통적으로 이해할 수 있도록 국제기관인 ISO에서 정한 모델이다. 각 벤더(Vendor)마다 다른 프로토콜을 사용한다면, 시스템간의 통신이 이루어 질 수 없으므로 OSI참조모델을 국제 표준으로 정의하여 서로 다른 벤더간의 통신을 보장한다.


나. OSI 7계층
 OSI모델은 7계층으로 구분한다. 각 계층마다 하는 일이 정의되어 있기 때문에 자신이 속한 계층에서의 일을 정확하게 처리하여 다음 계층으로 넘겨주기만 하면 통신을 보장한다.
① OSI 참조모델 계층 구조
사용자 삽입 이미지


㉠ 물리 계층 : 물리적인 매체 즉 전화선, 케이블선 등을 통하여 효율적으로 신호를 전송


 물리계층에서 전송되는 신호는 0과 1로 표시되며 전송속도 즉, CPS 또는 BPS등으로 표시되는 전기적 규격과 제어방식 등으로 정의


㉡ 데이터링크 계층 : 물리 계층 위에서 각 컴퓨터 사이에 프레임 단위로 데이터를 전송


㉢ 네트워크 계층 : 링크 계층의 프레임을 패킷이라는 단위로 구성하여 각 목적지 컴퓨터로 보냄


 IP주소를 분석하고 네트워크 사이의 경로를 배정하며 호스트들 사이의 논리적 연결을 설정하고 해제함


㉣ 전송 계층 : 각 컴퓨터 사이의 연결을 관리하고 오류 제어 및 흐름 제어 기능을 담당


㉤ 세션 계층 : 각 컴퓨터가 아닌 서비스의 개설 및 유지, 종료를 담당


㉥ 표현 계층 : 데이터 표현 방식이 다른 컴퓨터들 사이의 통신을 지원


코드변환, 데이터 압축 및 복원등의 기능 수행


㉦ 응용 계층 : WWW, E-Mail, FTP와 같은 응용 프로그램을 담당


② 각 계층별 역할


물리 계층(Physical layer)


장치들 사이의 물리적 인터페이스를 정의하며 전송 회선에서 데이터 링크계층에서 넘겨받은 데이터 프레임을 비트스트림 형태로 전송하거나 수신하는 물리적 접속기능을 수행한다. 주로 장치 사이의 인터페이스에 관한 전기적, 기계적, 절차와 물리적 규격 등을 정의하고 있다. 물리 계층에서는 데이터에 특정한 의미를 부여하지 않고 단순히 전송해야 하는 비트의 조합으로 간주하며 물리적 회선의 특성에 맞도록 전기적인 신호나 광 신호로 변환하여 전달시키는 역할을 담당한다.


㉡ 데이터링크 계층(Data link Layer)


인접한 두 시스템 사이의 링크 즉, 노드 대 노드(node-to-node)의 전송을 담당한다. 상위층인 네트워크 층으로부터 넘겨받은 비트스트림에 헤더(header)와 트레일러(trailer)를 추가하여 데이터 전송단위인 데이터 프레임(data frame)을 구성한 후 물리계층에서 곧바로 전송할 수 있도록 해 준다. 결과적으로 이 과정을 통하여 단순한 물리 계층의 비트스트림 전송을 신뢰할 수 있는 상황으로 만들어 주는 역할을 한다.


㉢ 네트워크 계층(Network Layer)


데이터가 발신지로부터 여러 네트워크를 경우하여 최종 수신지까지 안전하게 전송할 수 있도록 해 준다. 전송계층과는 달리 패킷의 순서에는 관여하지 않는다. 2개의 전송계층 프로토콜 개체간의 연결을 설정하고 해제하는 데이터 교환기능을 수행하여 전송계층에서 분할된 패킷을 목적지까지 신뢰성 있게 전달하는 것을 목적으로 한다.


㉣ 전송 계층(Transport Layer)


상위 3 계층과의 인터페이스를 제공하며 전체 메시지에 대한 종단 간(end to end)의 믿을 만한 전송을 책임진다. 송신단에서는 전체 메시지를 전송 가능한 크기의 세그먼트로 분할하여 전송하고 수신 단에서는 이를 재조립하여 전체 메시지를 형성하게 된다.


㉤ 세션 계층(Session Layer)


응용프로세스간의 대화(dialogue)를 설정하고 제어하는 역할을 수행한다. 세션 계층의 아래에 위치한 전송계층이 응용 프로세스의 단순한 논리적 연결만을 제공하는데 비해 세션 계층은 연결기능과 함께 정보교환을 유지시키는 부가가치를 제공하며 정보블록이 시작되는 곳에 식별자(identifier)를 두어 메시지 기능을 정의하기도 한다.


㉥ 표현 계층(Presentation Layer)


응용계층의 개체(entity) 사이에 정보를 표현하는 방식(syntax)이 다를 경우 이를 공통된 데이터 표현 방식으로 통일시키고 데이터의 안전성을 보장하기 위해 암호화(encryption)와 효율적인 전송을 위한 정보의 압축(data compression) 기능을 수행한다.


㉦ 응용 계층(Application Layer)


참조 모형에서 최상위 계층에 해당하며 사용자가 응용 프로그램을 통하여 네트워크에 접근하여 정보교환을 할 수 있도록 해 준다. 네트워크의 최종 이용자들에게 이미 친숙해져 있는 월드와이드 웹(WWW)의 HTTP나 파일전송 프로토콜인 FTP, 전자메일 프로토콜인 SMTP를 비롯하여 은행의 자동 창구업무와 항공기 좌석예약에 사용되고 있는 파일전송과 접근관리(FTAM; File Transfer, Access, and Manipulation), 다른 사양의 터미널들을 동일 규격의 터미널로 보이게 하는 가상터미널 프로토콜(VT; Virtual Terminal), EDI(Electrical Data Interchange)에서 메시지의 교환을 축적한 후 전송 형태로 다루는 MHS(Message Handling System) 등이 모두 응용계층에 해당한다.


③ OSI의 실제 작동 방식


 밥과 엘리스가 서로 편지를 주고받는 과정에서 OSI 7계층은 다음과 같이 동작한다.


 TCP/IP의 동작 형태를 보다 잘 관찰하기 위해 OSI 7계층이 아닌 TCP/IP 프로토콜로 단순화 시켜서 표현하면


㉠ 밥이 편지를 쓴다.(응용 프로세스가 데이터 생성)


㉡ 응용 프로세스는 TCP/IP(이하 생략) 응용 계층의 SMTP로 넘긴다.


㉢ SMTP는 데이터에 헤더(Application Header)를 추가하여 어플리케이션 데이터(Application Data)를 생성한 후 이를 전송계층의 TCP로 넘긴다.


㉣ TCP는 어플리케이션 데이터에 TCP 헤더(TCP Header)를 추가하여 TCP 세그먼트(TCP Segment)를 생성한 후 이를 네트워크 계층의 IP에게 넘긴다.


㉤ IP는 TCP 세그먼트에 IP 헤더(IP Header)를 추가하여 IP 데이터그램(IP Datagram, 패킷 Packet)을 생성한 후 이를 링크 계층으로 넘긴다.


㉥ 링크 계층에서는 IP 데이터그램에 이더넷 프레임 포맷(Ethernet Frame Format)을 추가하여 이더넷 프레임(Ethernet Frame)을 만들고 네트워크상로 뿌려준다.


㉦ 엘리스의 컴퓨터는 밥의 이더넷 프레임을 받는다.


㉧ 엘리스의 링크 계층에서는 밥의 이더넷 프레임에서 이더넷 프레임 포맷을 제거하여 IP 데이터그램으로 변환한 후 네트워크 계층으로 보낸다.


네트워크 계층에서는 IP 헤더를 제거하여 TCP 세그먼트로 변환한 후 전송 계층으로 보낸다.


전송 계층에서는 TCP 헤더를 제거하여 어플리케이션 데이터로 변환한 후 응용 계층으로 보낸다.


㉪ 응용 계층에서는 어플리케이션 헤더를 제거하여 응용 프로세스로 보낸다.


㉫ 엘리스가 편지를 읽어 본다.


와 같이 된다. TCP/IP 프로토콜의 작동 방식을 보면 밥과 엘리스의 컴퓨터에서는 서로 반대가 되는 작업이 일어나고 있음을 알 수 있다. 밥의 컴퓨터에서 일어나고 있는 작업을 Encapsulation이라고 하고 엘리스의 컴퓨터에서 일어나고 있는 과정을 Demultiplexing이라고 한다.

댓글 남기기

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.