본문 바로가기

CS BASIC/네트워크와 정보통신

[CS BASIC] 네트워크(Network)와 OSI 7계층

개요

오늘은 네트워크(Network)의 정의와 OSI 7계층, 그리고 각 계층별 프로토콜까지 알아보도록 하겠습니다.

컴퓨터가 처음 발명 되었을 때에는 다이소에서 몇천원을 지불하면 구매할 수 있는 계산기와 같은 역할을 주로 수행하였습니다.

수학에서 필요로 하는 단순, 반복, 복잡한 계산에 대해서 사람과 달리 실수 없이 꾸준히 할 수 있는 훌륭한 기계였습니다.

그렇기에 과거에는 수학에서 계산의 효율성을 위해 널리 사용 되다가 

점차 사용자가 늘어가다보니 컴퓨터가 수행하는 역할이 늘어갔습니다.

 

과거의 컴퓨터를 사용하던 컴퓨터 과학자, 수학자들은 이러한 과정 조차도 더 효율적으로 하고 싶었던 것인지,

서로 다른 컴퓨터, 즉 계산기 사이에 데이터를 주고 받으면 더 효율적으로 업무를 처리할 수 있을까 하는 생각을 가지게 되었고

이것이 오늘날 너무도 보편적으로 누리고 있는 네트워크의 시초가 되었습니다.

 

그 당시의 컴퓨터 과학자, 수학자들은 '계산 데이터를 효율적으로 공유하자' 라는 생각이 이토록 복잡하고 거시적인 네트워크를 만들줄 예견 했을까요?

본론으로 돌아와서 네트워크는 컴퓨터라는 기계를 사람 간에 대화하듯 소통하게 하는 기술, 아키텍처라고 할 수 있을 것 같습니다.

네트워크에서 컴퓨터는 하나의 점, 즉 노드(Node)라고 불리는 연결점이 되어 상호 간에 필요로하는 정보를 주고 받고 있습니다.


네트워크(Network)란?

컴퓨터 네트워크 또는 컴퓨터망은 노드들이 자원을 공유할 수 있게 하는 디지털 전기통신망의 하나.


네트워크란 분산되어 있는, 즉 서로 다른 공간(Space)에 있는 컴퓨터를 통신망으로 연결한 것을 말합니다. 

네트워크 덕분에 컴퓨터 장치들은 상호 간에 노드(Node)가 되어 연결되고 서로 데이터를 교환할 수 있습니다.

우리는 이러한 네트워크를 통해 수많은 정보를 주고 받고,  웹 브라우저라는 도구를 너무도 쉽게 그리고 빠르게 원하는 정보를 찾아볼 수 있습니다.


웹 브라우저에 www.naver.com을 검색하면 일어나는일

네트워크의 구조에 대해 본격적으로 알아보기 전에  사용자가 네이버(http://www.naver.com)를 방문하면 어떤 일이 일어나는지 살펴보도록 하겠습니다.

fig 1.0. www.naver.com을 검색하면 일어나는 일

 


네이버 홈페이지를 방문하기 위해 위와 같이 수많은 단계를 거치지만 일반적인 사용자는 이러한 과정을 체감하기 어려우며, 매우 빠른 속도로 처리된다는 점은 정말 놀라운 기술이 아닌가 라는 생각이 듭니다.


OSI 7계층(OSI 7 Layer, Open Systems Interconnection Reference Model)

컴퓨터 네트워크는 1970년도에 국제 기구에 의하여 관리가 시작되었고, 현재 널리 쓰이는 OSI 7계층 모델의 개념은 허니웰 인포메이션 서비스(Honeywell Information Services)의 찰스 바크만의 노고에 의해서 탄생하였습니다.

초기에는 다양한 관점의 OSI 모델이 제시되었는데, ARPANET, NPLNET, EIN, CYCLADES 네트워크, 그리고 IFIP 2G6.1와 같은 스펙에서 발전하였습니다.

 

fig 1.1. OSI 7계층

 

 

OSI 7계층에 따른 프로토콜(Protocol)과 장비

컴퓨터 네트워크에서 컴퓨터간에 데이터는 OSI 7계층에 따라서 통신하고 있으며 아래와 같은 프로토콜, 정보, 장비를 사용합니다.

계층 설명 프로토콜 전송 단위 장비
응용 계층
(Application Layer) 
- 사용자와 네트워크 간 응용 서비스 연결
- 데이터 생성
 HTTP,  FTP  데이터(Data)


호스트(PC 등)


표현 계층 
(Presentaion Layer)
- 데이터 형식 설정
- 부호 교환, 암-복호화
JPEG, MPEG
세션 계층 
(Session Layer)
- 송수신간의 논리적인 연결 연결 접속
- 동기 제어
RPC, NetBIOS
전송 계층 
(Transport Layer) 
- 송수신 프로세스 간의 연결
- 신뢰성 있는 통신 보장
- 데이터 분할, 재조립, 흐름 제어, 오류 제어, 혼잡 제어
TCP, UDP  세그먼트(Segment) L4 스위치
네트워크 계층
(Network Layer)
- 단말기 간 데이터 전송을 위한 최적화된 경로 제공 IP, ICMP 패킷(Packet) 라우터
데이터링크 계층
(Data Link Layer)

- 인접 시스템 간 데이터 전송
- 전송 오류 제어
- 동기화, 오류 제어, 흐름 제어, 회선 제어 
HDLC, PPP 프레임(Frame) 브리지, 스위치
물리 계층
(Physical Layer)
- 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환  RS-232C 비트(Bit) 허브, 리피터

 


프로토콜(Protocol)이란?

프로토콜은 서로 다른 시스템이나 기기들 간의 데이터 교환을 하기 위한 표준화된 통신 규약

 

 

심리학자 톰 마릴은 컴퓨터가 메시지를 전달하고, 메시지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 ‘기술적은어’로 지칭하는 말에서 기원했다고 합니다.

 

 

통신을 위해 프로토콜이 가져야 하는 일반적인 기능에는 데이터 처리 기능, 제어 기능, 관리적 기능이 있습니다.

프로토콜의 구성요소

구성 요소 설명
구문 (Syntax) 시스템 간의 정보 전송을 위한 데이터 형식, 코딩, 신호 레벨 등을 규정함
의미 (Semantic) 시스템 간의 정보 전송을 위한 제어 정보로, 조정과 에러 처리를 위한 규정
타이밍 (Timing) 시스템 간의 정보 전송을 위한 속도 조절과 순서 관리 규정

 

 


OSI 계층별 프로토콜의 종류

계층별 프로토콜은 대표적으로 많이 사용 되는 프로토콜을 기준으로 아래와 같이 정리할 수 있습니다.

 


물리 계층의 프로토콜

프로토콜 설명
RS-232 - RS-232(Recommended Standard 232)는 1960년에 도입된 표준의 하나
- PC와 음향 커플러, 모뎀 등을 접속하는 직렬 방식의 인터페이스의 하나.
- 인터페이스는 포트라고도 하여 일반적으로 직렬 포트라고 불리기도 함.

- IBM사가 만든 9핀 단자(직렬 포트)가 있으며 널리 보급되어 있음
- 새롭게 규격에 더해져서 ANSI/TIA/EIA-574-90으로 정해짐.

- 규격이 오래된 인터페이스로 분류되며, 주변기기의 접속 용도는 USB, IEEE1394 등에 대체되고 있고 통신 용도로는 이더넷(ethernet) 등에 그 역할이 대체 되는 중인 프로토콜

 


데이터 링크 계층의 프로토콜

프로토콜 설명
HDLC 
(High-Level Data Link Control)
점대점 방식이나 다중방식의 통신에 사용되는 ISO에서 표준화한 동기식 비트 중심의 데이터 링크 프로토콜
PPP
(Point-to-Point Protocol)
네트워크 분야에서 두 통신 노드 간의 직접적인 연결을 위해 일반적으로 사용되는 데이터 링크 프로토콜



데이터 링크 계층의 네트워크 기법

기법 설명
회선 제어 - 두 개의 스테이션이 동시에 신호를 전송하는 경우 신호 간 충돌이 발생하지 않도록 제어하는 기술 ENQ/ACK 기법과 풀링(Pooling) 기법이 있음
흐름 제어 - 전송 스테이션으로 하여금 전송 데이터의 양을 제한하기 위해서 사용되는 기술로 정지-대기(Stop And Wait) 기법과 슬라이딩 윈도(Sliding Window) 기법이 있음
오류 제어 - OSI 7 계층의 하위의 두 계층 사이에서 데이터의 전송 오류를 검출하여 복구하는 기술
- 해밍 코드와 같은 전진 오류 수정(FEC) 기법과 체크썸, CRC, ARQ와 같은 후진 오류 수정(BEC)기법이 있음

 

네트워크 계층의 프로토콜

프로토콜 설명
IP (Internet Protocol) - 송수신 간의 패킷 단위로 데이터를 교환하는 네트워크에서 정보를 주고받는 데 사용하는 통신규약
ARP (Address Resolution Protocol) - IP 네트워크상에서 IP 주소를 MAC 주소(물리 주소)로 변환하는 프로토콜
RARP (Reverse Address Resolution Protocol) - IP 호스트가 자신의 물리 네트워크 주소(MAC)는 알지만 IP 주소를 모르는 경우, 서버로부터 IP 주소를 요청하기 위해 사용하는 프로토콜
ICMP (Internet Control Message Protocol) - IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜
- 메시지 형식은 8바이트의 헤더와 가변 길이의 데이터 영역으로 분리
- 수신지 도달 불가 메시지는 수신지 또는 서비스에 도달할 수 없는 호스트를 통지하는 데 사용
- ICMP 프로토콜을 사용해서 ping 유틸리티 구현
IGMP (Internet Group Management Protocol) - 인터넷 그룹 관리 프로토콜, 호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버십을 구성하는 데 사용하는 통신 프로토콜
화상회의, IPTV에서 활용되는 프로토콜
- IGMP 기능에는 그룹 가입, 멤버십 감시, 멤버심 응답, 멤버십 탈퇴가 있음
라우팅 프로토콜 (Routing Protocol) - 내부 라우팅 프로토콜에는 RIP, OSPF가 대표적
- 외부 라우팅 프로토콜에는 EGP, BGP가 대표적
IPsec (Internet Protocol Security) - 통신 세션의 각 IP패킷을 암호화하고 인증하는 안전한 인터넷 프로토콜(IP) 통신을 위한 인터넷 프로토콜 스위트이다. 
- 이 보안은 통신 세션의 개별 IP 패킷을 인증하고 암호화함으로써 처리 됨.
- IPsec은 세션의 시작에서 에이전트들 사이에서 상호 인증을 확립하거나 세션을 맺는 중에 사용될 암호화 키의 협상을 위한 프로토콜을 포함.



IPSec의 프로토콜의 기능

기법 설명
인증 프로토콜 
(AH, Authentication Header)
- 강력한 무결성, 데이터 인증을 제공하는 프로토콜
- 발신자가 보낸 콘텐츠를 그대로 수신자가 수신 가능
암호화 프로토콜 
(ESP, Encapsulation Security Payload)
- 암호화 옵션을 사용하여 IP 페이로드를 암호화하는 포로토콜
- 캡슐화 기반의 페이로드 기밀성을 제공
키관리 프로토콜
(Inter Key Exchange)
- Key를 주고 받는 알고리즘
- 공개된 네트워크를 통하여 Key를 어떻게 교환할 것인가를 정의함
- IKE을 위한 메시지 전달을 위한 프로토콜

 

 

전송계층의 프로토콜 (TCP vs UDP)

프로토콜 설명
TCP 
(Transmission Controll Protocol)
전송 계층에 위치하면서 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 해주는 프로토콜
UDP
(User Datagram Protocol)
비연결성이고, 신뢰성이 없으며, 순서화되지 않은 데이터그램 서비스를 제겅하는 전송 계층의 통신 프로토콜

 

TCP의 통신 기법

통신 기법 설명
흐름제어 (Flow Control) 전송 계층에서 데이터 패킷을 전송할 때 수신 한도를 넘는 과잉 패킷의 입력으로 패킷 분실이 일어나지 않도록 패킷의 흐름을 조절하는 기법
정지-대기 (Stop & Wait) 프레임이 손실되었을 때, 손실된 프레임 1개를 전송하고 수신자의 응답을 기다리는 방식, 한번에 프레임 1개만 전송할 수 있음

 

TCP 핸드셰이킹(TCP Handshaking)이란?

전송 계층에서 신뢰성 있는 세그먼트 전송 보장을 위해 송신 측과 수신측 간의 TCP Connection 수립 및 전달, 종료 되도록 TCP Flag 기반 동작을 수행하는 접속 규약

 

종류 설명
TCP 3방향 핸드세이킹 (연결설정) 전송 계층에서 송신 측과 수신 측 간 TCP 연결설정, 수락, 확인의 세 가지 절차를 거치는 연결설정 규약
TCP 4방향 핸드셰이킹 (연결종료) 전송 계층에서 송신 측과 수신 측 간 서로의 연결을 종료할 때 수행하는 접속 종료 규약


 
UDP 프로토콜의 특징

특징 설명
비신뢰성 - 데이터그램 지향의 전송 계층용 프로토콜로, 논리적인 가상회선 연결이 필요 없음
- 메시지가 제대로 도착했는지 확인 응답 없음
순서화되지 않은 데이터그램 서비스 제공 - 수신된 메시지의 순서를 맞추지 않음
- 흐름 제어를 위한 피드백을 제공하지 않음
실시간 응용 및 멀티캐스팅 가능 - 빠른 요청과 응답이 필요한 실시간 응용에 적합
- 여러 다수 지점에 전송 가능
단순 헤더 - 헤더는 고정 크기의 8바이트(TCP는 20바이트)만 사용
- 헤더 처리에 시간과 노력을 필요하지 않음

 

 
세션 계층의 프로토콜의 종류

프로토콜 설명
NetBIOS (Network Basic Input/Output System) -  응용계층(7계층)의 애플리케이션 프로그램에 API를 제공하여 상호 통신할 수 있도록 해주는 프로토콜
TLS / SSL 
(Transport Layer Security, Secure Sockets Layer)
- 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약이다.
TLS이라는 이름은 SSL가 표준화 되면서 바뀐 이름.
-  이 규약은 인터넷 같이 TCP/IP 네트워크를 사용하는 통신에 적용되며, 통신 과정에서 전송계층 종단간 보안과 데이터 무결성을 확보.
-  이 규약은 웹 브라우징, 전자 메일, 인스턴트 메신저, voice-over-IP (VoIP) 같은 응용 부분에 적용.
-  국제 인터넷 표준화 기구(IETF)에 의해 현재 구식(deprecate)으로 간주되어 있다.
-  최종 갱신은 RFC 5246이고, 최종 갱신 버전은 넷스케이프에서 만든 SSL 표준을 바탕으로 함.

 

표현 계층의 프로토콜

프로토콜 설명
ASCII
(American Standard Code for Information Interchange)
- 영문 알파벳을 사용하는 대표적인 문자 인코딩 방식.
-  컴퓨터와 통신 장비를 비롯한 문자를 사용하는 많은 장치에서 사용되며, 대부분의 문자 인코딩이 아스키에 기초를 둠.
-  아스키는 7비트 인코딩으로, 33개의 출력 불가능한 제어 문자들과 공백을 비롯한 95개의 출력 가능한 문자들로 총128개로 이루어진다. 제어 문자들은 역사적인 이유로 남아 있으며 대부분은 더 이상 사용되지 않음

-  출력 가능한 문자들은 52개의 영문 알파벳 대소문자와, 10개의 숫자, 32개의 특수 문자, 그리고 하나의 공백 문자로 이루어짐.
EBCDIC
(확장 이진화 십진법 교환 부호, Extended Binary Coded Decimal Interchange Code)
- IBM 메인프레임용 운영 체제인 z/OS, OS/390, VM 운영 체제, VSE 운영 체제와 IBM의 중급 컴퓨터 운영 체제인 OS/400과 i5/OS 등에서 사용되는 8비트 문자 인코딩 방식.
- 후지쯔-지멘스의 BS2000/OSD나 휴렛 패커드의 MPE/iX, 유니시스의 MCP 등 IBM 외 플랫폼에서도 사용 됨.
- EBCDIC은 천공 카드에서 사용하던 코드와 1950년대 후반에서 1960년대 초에 나온 대부분의 IBM 컴퓨터 주변 기기에서 사용됐던 6비트 이진화 십진법 부호에서 유래함.
- EBCDIC(=엡시딕)은 IBM에서 1963년과 1964년에 걸쳐 고안되었고 IBM System/360 계열의 메인프레임 컴퓨터와 함께 소개 됨.
- 별도로 개발된 7비트 인코딩 방식인 ASCII와 달리 8비트 문자열 인코딩 방식.
- 천공 카드 상의 두 "존(zone)"과 "숫자"를 6비트에 인코딩하는 효율적인 방법으로 고안된 기존 IBM 이진화 십진법 인코딩을 확장하기 위해 만들어짐.
MIDI
(악기 디지털 인터페이스,Musical Instrument Digital Interface = 미디)
- 전자 악기끼리 디지털 신호를 주고 받기 위해 각 신호를 규칙화한 일종의 규약.
- 악기와 컴퓨터, 악기와 악기끼리 주고받을 수 있는 언어와 통로의 신호 체계 표준.

MPEG
(Moving Picture Experts Group)
- MPEG(엠펙)는 영문 Moving Picture Experts Group의 약자.
국제표준화단체로서의 공식 명칭은 ISO/IEC JTC1/SC29/WG11 임.
- MPEG은 ISO 및 IEC 산하에서 비디오와 오디오 등 멀티미디어의 표준의 개발을 담당하는 소규모의 그룹이다. 
- ITU 산하의 비디오 압축 표준화 단체인 VCEG과 함께 Joint Video Team (JVT)를 구성해 H.264/AVC 표준을 공동 제정

 

 

응용계층의 프로토콜

프로토콜 설명
HTTP 
(HyperText Transfer Protocol)
- 텍스트 기반의 통신규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜
- 하이퍼텍스트를 빠르게 교환하기 위한 프로토콜
FTP
(File Transfer Protocol)
- TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일을 전송하기 위한 프로토콜
SMTP
(Simple Mail Transfer Protocol)

- 인터넷에서 TCP 포트 번호 25번을 사용하여 이메일을 보내기 위해 이용되는 프로토콜
POP3
(Post Office Protocol Version 3)
- TCP 110번 포트를 사용하고, 응용 계층 인터넷 프로토콜 중 하나로, 원격 서버로부터 TCP/IP 연결을 통해 이메일을 가져오는데 사용하는 프로토콜
IMAP (Internet Messaging Access Protocol) - TCP 143번 포트를 사용하고, 원격 서버로부터 TCP/IP 연결을 통해 이메일을 가져오고, 온라인 및 오프라인을 모두 지원하는 프로토콜
Telnet
- 인터넷이나 로컬 영역에서 네트워크 연결에 사용되는 네트워크 프로토콜





참고자료
https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%93%A8%ED%84%B0_%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC

 

컴퓨터 네트워크 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 퓨전테크놀로지센터에서 차세대 네트워크에 대해 세미나중인 일본정보통신연구소 연구원 컴퓨터 네트워크(computer network) 또는 컴퓨터망(문화어: 콤퓨터망)은

ko.wikipedia.org

https://ko.wikipedia.org/wiki/OSI_%EB%AA%A8%ED%98%95

 

OSI 모형 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. OSI 모형의 통신 (3-5계층의 예) OSI 모형(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신

ko.wikipedia.org

https://ko.wikipedia.org/wiki/IPsec

 

IPsec - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. IPsec(Internet Protocol Security)은 통신 세션의 각 IP패킷을 암호화하고 인증하는 안전한 인터넷 프로토콜(IP) 통신을 위한 인터넷 프로토콜 스위트이다. 이 보안은 통

ko.wikipedia.org

https://ko.wikipedia.org/wiki/%ED%99%95%EC%9E%A5_%EC%9D%B4%EC%A7%84%ED%99%94_%EC%8B%AD%EC%A7%84%EB%B2%95_%EA%B5%90%ED%99%98_%EB%B6%80%ED%98%B8

 

확장 이진화 십진법 교환 부호 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. EBCDIC 인코딩 계열분류8비트 베이식 라틴 인코딩 (ASCII 아님)이전 인코딩BCD 확장 이진화 십진법 교환 부호(EBCDIC, Extended Binary Coded Decimal Interchange Code)는 IBM 메인프

ko.wikipedia.org

https://ko.wikipedia.org/wiki/ASCII

 

ASCII - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 1972 프린터 사용 설명서에 개시된 아스키 코드 차트표 미국정보교환표준부호(영어: American Standard Code for Information Interchange), 또는 줄여서 ASCII( , 아스키)는 영문

ko.wikipedia.org

https://ko.wikipedia.org/wiki/%EC%A0%84%EC%86%A1_%EA%B3%84%EC%B8%B5_%EB%B3%B4%EC%95%88

 

전송 계층 보안 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 전송 계층 보안(영어: Transport Layer Security, TLS, 과거 명칭: 보안 소켓 레이어/Secure Sockets Layer, SSL)[1]는 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호

ko.wikipedia.org