IT 기본용어

코코볼·2023년 5월 16일
0

네트워크 보안

목록 보기
4/35

인트라넷과 익스트라넷

인트라넷(Intranet)은 조직 내의 리소스를 파일 탐색기를 사용해서 다음 좌측처럼 호스트 대 호스트로 직접 서치하지 않고 다음 우측처럼 인터넷의 웹브라우저로 \192.168.100.12\data(OR file:///C:/data)식으로 서치해서 작업하는 기법으로써 인터넷에서 사용하는 TCP/IP 프로토콜을 사용한다.
익스트라넷(Extranet)은 인트라넷을 확장한 개념으로 해당 조직 내의 멤버뿐만이 아니라 그 조직과 관련된 하청업체나 벤더(vendor), 유관기관, 그리고 고객 등도 그 조직의 리소스를 웹브라우저를 통해서 리소스를 탐색하는 기법이다. 조직 외부에서 웹브라우저로 조직 내부의 리소스를 검색하고 접속해서 작업할 수 있기 때문에 원격 공유, 원격 교육, 수술과 같은 원격 작업이나 재택근무도 이 익스트라넷 덕분으로 볼 수 있다.

프로토콜(Protocol)

프로토콜이란 용어도 자주 나오는데 프로토콜은 시스템 혹은 노드끼리 통신을 하기 위한 규약으로써 두 노드는 프로토콜이 같아야 통신이 가능해 진다. 현재 사용되는 프로토콜은 만 여 개가 넘는데 TCP, IP, FTP, DHCP, RIP, OSPF, ... 등이다.

OSI 모델

네트워킹(Networking)은 한 노드에서 다른 노드로 데이터(리소스)를 주고받는다는 리소스 공유(sharing resources)라는 기본개념으로부터 발전해 왔다. 초기에는 한 컴퓨터에서 데이터를 플로피디스크(FDD)와 같은 저장매체로 복사한 뒤 그 디스크를 다른 컴퓨터로 가져가서 다시 복사해 넣는 방법을 사용했는데 이를 발품을 팔아야 한다는 뜻으로 스니커즈 넷(Sneakers Net)으로 불렀다.
이를 개선하기 위해서 구리선에 전기를 흘려보내는 원리를 이용해서 데이터를 송수신하는 방법이 고안되어서 널리 퍼지게 되었다. 하지만 표준 규격이 없어서 제조사 A가 만든 네트워크 카드에 물려있는 컴퓨터 A는 제조사 B가 만든 네트워크 카드에 물려있는 컴퓨터 B와 데이터를 송수신할 수 없었다. 예를 들어 IBM 라우터가 있다면 오직 IBM 컴퓨터와 장비들끼리만 데이터를 호환할 수 있어서 IBM 라우터에 물려있는 네트워크 장치들은 모두 IBM 브랜드로 구매해야만 하는데 이를 프로프리에터리(proprietary)하다고 한다. 이런 프로프리에터리한 것은 나중에 독점의 우려가 있어서 조직의 운영이나 네트워크 발전에 별로 도움이 되지 않는다. 예를 들어서 조직들은 메인 인터넷 선으로 KT 외에 백업으로 SK/LG U+과 같은 인터넷 선을 가지고 있어서 Non-proprietary 하게 네트워크나 시스템을 구성해야 한다. 웹브라우저만 해도 너무 Google Chrome만 사용할 것이 아니라 Microsoft Edge와 같은 브라우저도 사용해야 Google Chrome 브라우저의 프로프리에터리 한 것을 막을 수 있다.

1984년에 IOS(International Organization for Standardization)라는 단체가 이런 문제를 해결하기 위해서 OSI(Open System Interconnect) model을 만들었는데 각 제조사 장치 간 상호 호환성을 위한 지침으로써 많은 제조사들이 이 지침에 따라서 제품을 출시하게 되었다. 이제 조직들은 네트워크를 구축할 때 여러 다양한 제조사의 장치와 프로토콜을 혼용해서 사용해도 리소스 공유에 문제가 없게 되었고, 제조사 간 경쟁으로 인해서 기술개발 향상과 장비의 가격 저하 효과도 이뤄냈다.

OSI 모델은 단지 네트워크 시스템의 구성 등을 위한 표준적 모델을 정의한 것이다. 물론 다른 정의의 모델들도 몇 개가 더 있지만 이 OSI 모델을 이해하면 다른 모델들도 이해하기 쉽고, 이 모델이 업계 표준이므로 네트워크 입문의 가장 기본지식으로 여겨지고 있다. OSI 모델은 하지만 사용자를 위한 것이 아니라 네트워크 벤더(Vendor)들을 위한 지침인 것을 기억해야 한다.

OSI 모델은 계층별로 특성을 가지고 있는 계층적(layer) 모델인데, 네트워크를 통해서 데이터를 송수신할 때 필요한 과정들을 단계(계층)별로 분류해 놓은 것이다.
같은 프로토콜을 사용하는 두 컴퓨터 호스트는 언제 어느 경우라도 해당 프로토콜을 통해서 서로 정확하고 완전히 상호 이해할 수 있어야 한다. 이런 표준 모델 없이 장치나 프로토콜을 사용하는 솔루션 등을 개발한다면 개발이 주먹구구식으로 지루하게 진행 될 것이고 다른 벤더의 장치나 솔루션과 호환되지도 못할 것이다. 그리고 개발 시간도 오래 걸리게 될뿐더러 개발된 제품을 설명하기도 힘들게 된다.
하지만 개발 영역을 쪼개서 OSI에 따른 계층별 규약에 맞게 설계하고 테스트해서 특정 계층에 넣어두면 표준 모델에 따른 계층적 설계가 가능하고, 합리적이며, 에러 수정도 쉽고, 계층별로 논리적 설명도 가능해진다. 또 코드를 업데이트하거나 부분 수정을 가할 때에도 전체를 다 손볼 필요 없이 해당 계층만 따로따로 손보면 되기 때문에 시간과 비용 면에서도 유리하다. 또 개발자 A가 개발한 코드를 개발자 B가 보고 이해할 수 있고 더 개선시킬 수도 있다. 물론 이 표준 모델에 따라서 다른 개발자들이 만든 코드와 호환 되는 코드를 개발할 수 있다는 장점도 있다.
=>예를 들어서 조직 내에서 각 호스트들이 인터넷에는 연결되지만 주변 호스트들과 통신에 문제가 있다면, 인터넷 연결은 가능하기 때문에 OSI 층의 L1, L2에서는 문제가 없고, L3에 해당되는 IP_주소나 작업 그룹 등을 점검하면 된다.
또 조직 내에서 각 호스트들과는 연결되는데 인터넷에 연결되지 못한다면, OSI 층의 L1, L2에 문제가 있을 수 있기 때문에 L2 스위치나 L3 라우터에서 연결 등을 점검하는 것이 좋다.

DoD 4계층 모델을 기본으로 해서 OSI 7계층 모델을 만들었다.
OSI 모델은 각 계층에서 ‘무엇을 해야 하는지’만 정의하고 ‘어떻게 (그것을) 구현해야 하는지’에 대해서는 정의하지 않고 있는데 이는 개발자나 제조사가 자신의 판단에 따라 가장 좋은 방법으로 그것을 수행하게 자유를 준 것으로 볼 수 있다. OSI 모델은 7계층으로 나누고 맨 아래층부터 차례로 제1계층, 제2계층, ..제7계층으로 부른다. 이 계층을 알아야 네트워크상의 데이터 흐름을 이해할 수 있다.
각 계층은 다른 계층과 분리되어져서 자신만의 기능을 캡슐화(encapsulate) 해서 데이터의 헤더부분에 추가한 다음, 이웃한 층으로 보낸다. 이렇게 순수한 데이터 이외에 추가되는 부가 정보를 오버헤드(overhead)라고 부른다.
각층은 바로 위/아래 이웃한 층하고만 통신이 된다.

호스트 A와 호스트 B가 통신한다면
호스트 A의 각 계층은 가상링크(virtual link)를 통해서 호스트 B의 같은 층과 연결된다. 그리고 각 층은 바로 위아래 층과 직접 통신할 수 있지만 다른 층과 통신할 수는 없는데, 예를 들어 호스트 A의 전송층은 바로 아래의 네트워크층이나 바로 위의 세션층과 직접 통신할 수 있고 가상링크를 통해서 호스트 B의 전송층과 통신할 수 있다.
사용자 A의 데이터는 호스트 A의 제일 위 응용층부터 시작해서 계층을 따라 내려가면서 각층에서 필요한 요소를 캡슐화해서 데이터 헤더에 추가한 뒤, 제일 아래 물리층에서 케이블을 거쳐 호스트 B로 전달된다.
호스트 B에서는 제일 아래 물리층으로부터 위로 거슬러 올라가면서 각층에서 캡슐을 하나씩 벗겨서 필요한 작업을 해당 층에서 실행한 뒤 제일 위 응용층으로 가서 호스트 B에게 순수 데이터가 전달되는 메카니즘이다.

=>실제 예로써 MS Word 어플로 작업하던 사용자 A가 원격 사용자 B에게 Word 문서를 보낸다면
① 사용자 A는 응용층에 있는 MS Office Word 어플을 호출해서 프로세스를 시작시킨 다.
② 응용층은 사용자의 입력 데이터를 받아서 데이터의 정보가 무엇으로 되어 있는지 등의 정보를 헤더 앞에 붙여서 원격 사용자 B의 응용층에게 알려줄 것이다. 이제 응용층은 헤더가 포함된 데이터를 다음 표현층으로 내려 보낸다.
③ 표현층은 압축, 암호화 등에 관한 정보를 보고 원격 사용자 B의 응용층의 어느 프로 토콜에게 전달해야 하는지에 관한 정보를 헤더에 또 붙여서 다음 세션층으로 내려 보낸다.
④ 세션층도 원격 사용자 B와 통신하기 위한 동기화된 통신 정보를 헤더에 추가해서 다음 전송층으로 헤더가 포함된 데이터를 내려 보낸다.
⑤ 전송층에서도 출발지와 목적지 호스트를 식별하고 연결지향적인지 아닌지를 구별 해주는 정보 등을 헤더에 포함시켜서 다음 네트워크층으로 연결지향적인 경우엔 TCP 패킷(packet)으로, 비연결지향적이면 UDP 데이터그램(datagram)으로 내려 보 낸다.
⑥ 네트워크층에서는 출발지와 목적지의 IP주소 중 네트워크주소를 헤더에 포함시 켜서 다음 데이터링크층으로 내려보내고
192.168.100.12/24, ~ /30
=>네트워크 주소 192.168.100.0
호스트 주소 0.0.0.12
(서브)네트마스크 255.255.255.0, 255.255.255.252
브로드캐스트 192.168.100.255(directive broadcast) cf. 255.255.255.255(broadcast)
⑦ 데이터링크층에서는 어느 전송층 프로토콜로 보내야 하는지 구별하기 위해서 헤더 에 SSAP과 DSAP, 그리고 타겟 호스트의 출발지와 목적지 MAC_주소를 헤더에 포 함시켜서 다음 물리층으로 내려 보낸다.
⑧ 물리층에서는 데이터를 비트 단위로 변환해서 물리적 매체로 수신자B에게 전송한 다.
⑨ 이제 수신자 B는 이 비트들을 받아서 앞의 과정 모두를 역으로 진행하는데 층을 올 라가면서 각 층마다 헤더를 보고 필요한 작업을 수행한 뒤 벗겨버리면 맨 위로 올 라갈 때에는 원래(raw) 데이터만 수신자 B의 응용층의 Word 어플에게 전달해서 사 용자가 볼 수 있게 된다.

층별 구분

1) PDU
응용, 표현, 세션 ->data
전송 ->segment
네트워크 ->packet, datagram
데이터링크 ->frame
물리 ->bit

2) Protocol
응용 ->http, ftp, dns, smtp, telnet
표현 ->EBCDIC, mpeg, jpeg, midi, tls, smb, nfs
세션 ->netbios, sap, nwlink, X, ssh
전송 ->tcp, udp, spx, rip, bgp, ssl
네트워크 ->ip, ipx, appletalk, ipsec, icmp
데이터링크 ->ethernet, mac, tokenring, fddi, atm, hdlc, ppp, isdn, arp
물리 ->fiber-optic, rs-232(serial cable), x.21

3) Device cf. Equipment(Concentrator, Distributer, Multiplexer, ....) <=CO(Central Office: 전화국)
Application ->L7 Switch <- service,
Presentation -> - <- multimedia, encrypt, compression
Session -> - <- virtual line, error check, 전이중/반이중방식
Transport -> L4 Swtich <- virtual circuit, packer reassemble, error repair
Network ->Router, L3 Switch <- lowest cost route finding, flow control
DataLink ->Bridge, Switch <- LLC/MAC
Physical ->Hub, Repeater, (Amplifier) <- actual data transit

장치끼리의 통신에서
full duplex : 전이중(동시에 서로 데이터를 송수신함) <= 전화기
half duplex : 반이중(디폴트: 동시에 데이터를 송수신하지만 한 순간에는 한 방향으로 로만 통신 됨) <= 군대 무전기
simplex : 한 방향으로만 통신됨 <= 컴퓨터 주변장치, monitor, keyboard, mouse, ...

0개의 댓글