Spark Summit 2017 Boston에 다녀왔습니다.^^ 간단히 느낀점만 공유드리면,

1. Spark Ecosystem이 이제 곧 Hadoop Ecosystem을 능가할 것으로 예상합니다. 기존 분산처리시스템이 Store를 담당하는 부분은 거대하지만 정작 Execute에 대한 부분은 취약한 것을 몸은 크고 뇌는 작은 공룡에 비유하고 있습니다. 이와 반대로 뇌를 담당하는 execute영역에서는 Spark가 선두주자이며 storage는 필요에 따라 선택가능하고 HDFS외의 사례가 많음을 보이고 있습니다.

2. 특히 Spark는 기존의 약점이었던 실시간처리영역을 보완하기 위해서 많은 부분을 준비하고 있으며 Structered Streaming을 키워드로 내세우고 2.2  2.3릴리즈 준비에 박차를 가하고 있습니다. High Level API를 통해서 기존과 동일한 방식으로 코딩환경을 제공할 것으로 예상되며 Apache Beam과 유사성이 보이는데 더 지켜봐야할 것 같습니다.

3. 2010년이후 현재까지 Cpu의발전속도는 거의 없으나 Network,storage는 10배의성장을 보여주는 부분에 주목하여 이를 분산병렬처리의 핵심요소로 보고 여러가지 프로젝트가 진행되고 있었습니다. (ex, carnobdata tungsten parquet등)

전체적으로 방향성은 Store와 Execute를 분리하고 각자요건에 맞게 다양한 요소를 조합하여 사용하는 것이 대세입니다. 특히 streaming에서는 kafka를 안쓰는 곳이 없는 것 같습니다. 또한 분석영역에서 language의 점유율이 scala는 감소한반면 python은 2배가까이 증가하였습니다.

마지막으로 databricks를 포함한 많은 업체가 이러한 기능들을 클라우드상에서 서비스로 제공하기 위해서 노력하고 있습니다.

상세한 내용들은 시간을 내어 정리하고 공부해야 할 것 같습니다^^

'컨퍼런스' 카테고리의 다른 글

Azure Everywhere 2019 후기  (0) 2019.01.12
Red Hat Forum 2018 Seoul 후기  (0) 2018.11.07

Hive, MR Job의 Group별 YARN Queue 사용


0. YARN Queue

LDAP User Group별 Queue 생성


Queue Mappings : g:abiz:abiz,g:adev:adev

설정이 적용되도록  restart

1. Hive 

설치

ambari 활용

Hive 실행 및 데이터 생성

sudo su - hive
[hive@node01 ~]$ hive
hive> create table table1(a int, b int);
hive> insert into table1 values( 1,2);
hive> insert into table1 values( 1,3);
hive> insert into table1 values( 2,4);

 

LDAP 계정으로 Hive 실행


[hive@node01 ~]$ beeline
Beeline version 1.2.1000.2.5.3.0-37 by Apache Hive
beeline> !connect jdbc:hive2://node02:10000/default john
Enter password for jdbc:hive2://node02:10000/default: **** (hive)
Connected to: Apache Hive (version 1.2.1000.2.5.3.0-37)
Driver: Hive JDBC (version 1.2.1000.2.5.3.0-37)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://node02:10000/default> select sum(a) from table;
INFO : Tez session hasn't been created yet. Opening session
INFO : Dag name: select sum(a) from table(Stage-1)
INFO :
INFO : Status: Running (Executing on YARN cluster with App id application_1484727707431_0001)
INFO : Map 1: -/- Reducer 2: 0/1
INFO : Map 1: 0/1 Reducer 2: 0/1
INFO : Map 1: 0/1 Reducer 2: 0/1
INFO : Map 1: 0(+1)/1 Reducer 2: 0/1
INFO : Map 1: 0/1 Reducer 2: 0/1
INFO : Map 1: 1/1 Reducer 2: 0(+1)/1
INFO : Map 1: 1/1 Reducer 2: 1/1
+------+--+
| _c0 |
+------+--+
| 4 |
+------+--+
1 row selected (23.803 seconds)



2. MR Job (OS계정)

WordCount 실행

hadoop home (/usr/hdp/2.5.3.0-37/hadoop)에 Word Count Example 다운로드 후 압축풀기

[root@node01 hadoop]# unzip Hadoop-WordCount.zip
Archive:  Hadoop-WordCount.zip
   creating: Hadoop-WordCount/
   creating: Hadoop-WordCount/classes/
   creating: Hadoop-WordCount/input/
  inflating: Hadoop-WordCount/input/Word_Count_input.txt 
  inflating: Hadoop-WordCount/WordCount.java 
  inflating: Hadoop-WordCount/clean.sh 
  inflating: Hadoop-WordCount/build.sh 
  inflating: Hadoop-WordCount/classes/WordCount$Reduce.class 
  inflating: Hadoop-WordCount/classes/WordCount.class 
  inflating: Hadoop-WordCount/classes/WordCount$Map.class 
  inflating: Hadoop-WordCount/wordcount.jar

 

adev의 jane으로 실행

[root@node01 Hadoop-WordCount]# su - hdfs
[hdfs@node01 Hadoop-WordCount]$ hadoop fs -mkdir /user/jane
[hdfs@node01 Hadoop-WordCount]$ hadoop fs -chown jane:adev /user/jane
[hdfs@node01 Hadoop-WordCount]$ exit
[root@node01 Hadoop-WordCount]# su jane
[jane@node01 Hadoop-WordCount]$ hadoop fs -put input/ /user/jane/input

 

Word Count jar 실행

[jane@node01 Hadoop-WordCount]$ hadoop jar /usr/hdp/2.5.3.0-37/hadoop/Hadoop-WordCount/wordcount.jar WordCount input output
17/01/19 02:28:04 INFO impl.TimelineClientImpl: Timeline service address: http://node02:8188/ws/v1/timeline/
17/01/19 02:28:04 INFO client.RMProxy: Connecting to ResourceManager at node02/172.31.1.255:8050
17/01/19 02:28:04 INFO client.AHSProxy: Connecting to Application History server at node02/172.31.1.255:10200
17/01/19 02:28:05 INFO input.FileInputFormat: Total input paths to process : 1
17/01/19 02:28:05 INFO mapreduce.JobSubmitter: number of splits:1
17/01/19 02:28:05 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1484790795688_0002
17/01/19 02:28:05 INFO impl.YarnClientImpl: Submitted application application_1484790795688_0002
17/01/19 02:28:05 INFO mapreduce.Job: The url to track the job: http://node02:8088/proxy/application_1484790795688_0002/
17/01/19 02:28:05 INFO mapreduce.Job: Running job: job_1484790795688_0002
17/01/19 02:28:16 INFO mapreduce.Job: Job job_1484790795688_0002 running in uber mode : false
17/01/19 02:28:16 INFO mapreduce.Job:  map 0% reduce 0%
17/01/19 02:28:29 INFO mapreduce.Job:  map 100% reduce 0%
17/01/19 02:28:35 INFO mapreduce.Job:  map 100% reduce 100%
17/01/19 02:28:36 INFO mapreduce.Job: Job job_1484790795688_0002 completed successfully
17/01/19 02:28:36 INFO mapreduce.Job: Counters: 49
    File System Counters
        FILE: Number of bytes read=167524
        FILE: Number of bytes written=616439
        FILE: Number of read operations=0
        FILE: Number of large read operations=0
        FILE: Number of write operations=0
        HDFS: Number of bytes read=384328
        HDFS: Number of bytes written=120766
        HDFS: Number of read operations=6
        HDFS: Number of large read operations=0
        HDFS: Number of write operations=2
    Job Counters
        Launched map tasks=1
        Launched reduce tasks=1
        Data-local map tasks=1
        Total time spent by all maps in occupied slots (ms)=10159
        Total time spent by all reduces in occupied slots (ms)=8196
        Total time spent by all map tasks (ms)=10159
        Total time spent by all reduce tasks (ms)=4098
        Total vcore-milliseconds taken by all map tasks=10159
        Total vcore-milliseconds taken by all reduce tasks=4098
        Total megabyte-milliseconds taken by all map tasks=10402816
        Total megabyte-milliseconds taken by all reduce tasks=8392704
    Map-Reduce Framework
        Map input records=9488
        Map output records=67825
        Map output bytes=643386
        Map output materialized bytes=167524
        Input split bytes=121
        Combine input records=67825
        Combine output records=11900
        Reduce input groups=11900
        Reduce shuffle bytes=167524
        Reduce input records=11900
        Reduce output records=11900
        Spilled Records=23800
        Shuffled Maps =1
        Failed Shuffles=0
        Merged Map outputs=1
        GC time elapsed (ms)=144
        CPU time spent (ms)=2950
        Physical memory (bytes) snapshot=1022894080
        Virtual memory (bytes) snapshot=6457335808
        Total committed heap usage (bytes)=858783744
    Shuffle Errors
        BAD_ID=0
        CONNECTION=0
        IO_ERROR=0
        WRONG_LENGTH=0
        WRONG_MAP=0
        WRONG_REDUCE=0
    File Input Format Counters
        Bytes Read=384207
    File Output Format Counters
        Bytes Written=120766

 

WordCount 결과

[jane@node01 Hadoop-WordCount]$ hadoop fs -ls /user/jane/
Found 3 items
drwx------   - jane adev          0 2017-01-19 02:28 /user/jane/.staging
drwxr-xr-x   - jane adev          0 2017-01-19 02:17 /user/jane/input
drwxr-xr-x   - jane adev          0 2017-01-19 02:28 /user/jane/output

 


3. MR Job (HADOOP_USER_NAME parameter)

WordCount 실행 

HDFS에 user를 위한 폴더를 생성 후 input을 업로드


 

Word Count jar 실행 (HADOOP_USER_NAME=lucy)


[root@node01 Hadoop-WordCount]# HADOOP_USER_NAME=lucy hadoop jar /usr/hdp/2.5.3.0-37/hadoop/Hadoop-WordCount/wordcount.jar WordCount input output
17/01/19 04:58:54 INFO impl.TimelineClientImpl: Timeline service address: http://node02:8188/ws/v1/timeline/
17/01/19 04:58:54 INFO client.RMProxy: Connecting to ResourceManager at node02/172.31.1.255:8050
17/01/19 04:58:54 INFO client.AHSProxy: Connecting to Application History server at node02/172.31.1.255:10200
17/01/19 04:58:55 INFO input.FileInputFormat: Total input paths to process : 1
17/01/19 04:58:55 INFO mapreduce.JobSubmitter: number of splits:1
17/01/19 04:58:56 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1484800564385_0001
17/01/19 04:58:56 INFO impl.YarnClientImpl: Submitted application application_1484800564385_0001
17/01/19 04:58:56 INFO mapreduce.Job: The url to track the job: http://node02:8088/proxy/application_1484800564385_0001/
17/01/19 04:58:56 INFO mapreduce.Job: Running job: job_1484800564385_0001
17/01/19 04:59:05 INFO mapreduce.Job: Job job_1484800564385_0001 running in uber mode : false
17/01/19 04:59:05 INFO mapreduce.Job:  map 0% reduce 0%
17/01/19 04:59:12 INFO mapreduce.Job:  map 100% reduce 0%
17/01/19 04:59:19 INFO mapreduce.Job:  map 100% reduce 100%
17/01/19 04:59:19 INFO mapreduce.Job: Job job_1484800564385_0001 completed successfully
17/01/19 04:59:19 INFO mapreduce.Job: Counters: 49
    File System Counters
        FILE: Number of bytes read=167524
        FILE: Number of bytes written=616439
        FILE: Number of read operations=0
        FILE: Number of large read operations=0
        FILE: Number of write operations=0
        HDFS: Number of bytes read=384328
        HDFS: Number of bytes written=120766
        HDFS: Number of read operations=6
        HDFS: Number of large read operations=0
        HDFS: Number of write operations=2
    Job Counters
        Launched map tasks=1
        Launched reduce tasks=1
        Data-local map tasks=1
        Total time spent by all maps in occupied slots (ms)=5114
        Total time spent by all reduces in occupied slots (ms)=7530
        Total time spent by all map tasks (ms)=5114
        Total time spent by all reduce tasks (ms)=3765
        Total vcore-milliseconds taken by all map tasks=5114
        Total vcore-milliseconds taken by all reduce tasks=3765
        Total megabyte-milliseconds taken by all map tasks=5236736
        Total megabyte-milliseconds taken by all reduce tasks=7710720
    Map-Reduce Framework
        Map input records=9488
        Map output records=67825
        Map output bytes=643386
        Map output materialized bytes=167524
        Input split bytes=121
        Combine input records=67825
        Combine output records=11900
        Reduce input groups=11900
        Reduce shuffle bytes=167524
        Reduce input records=11900
        Reduce output records=11900
        Spilled Records=23800
        Shuffled Maps =1
        Failed Shuffles=0
        Merged Map outputs=1
        GC time elapsed (ms)=148
        CPU time spent (ms)=3220
        Physical memory (bytes) snapshot=1033814016
        Virtual memory (bytes) snapshot=6464356352
        Total committed heap usage (bytes)=833617920
    Shuffle Errors
        BAD_ID=0
        CONNECTION=0
        IO_ERROR=0
        WRONG_LENGTH=0
        WRONG_MAP=0
        WRONG_REDUCE=0
    File Input Format Counters
        Bytes Read=384207
    File Output Format Counters
        Bytes Written=120766

 

WordCount 결과

[lucy@node01 Hadoop-WordCount]$ hadoop fs -ls /user/lucy
Found 3 items
drwx------   - lucy adev          0 2017-01-19 04:59 /user/lucy/.staging
drwxr-xr-x   - lucy adev          0 2017-01-19 04:48 /user/lucy/input
drwxr-xr-x   - lucy adev          0 2017-01-19 04:59 /user/lucy/output



'BigData' 카테고리의 다른 글

Hadoop Security for Multi tenant #4  (0) 2017.04.03
Hadoop Security for Multi tenant #3  (0) 2017.03.24
Hadoop Securiy for Multi tenant #1  (0) 2017.01.17
Flume-Kafka-Elasticsearch 테스트  (0) 2016.03.14
Storm특징 및 Spark와의 차이점  (0) 2014.12.12

Hadoop 은 기본적으로 하나의 계정을 이용해서 작업하는 것이 매우 편한 구조이지만, 저장공간 및 병렬처리 Application을 Platform의 형태로 다양한 사용자에게 서비스를 제공하기 위해서는 반드시 Multi tenant가 지원되어야 하며 이를 위해서 스터디를 진행했던 내용으로 정리합니다.



Hadoop은 별도의 group정보를 가지고 있지 않습니다. 따라서 GroupMapping을 위해서 다음과 같은 방법들이 권장되고 있는데 이 중에서 추천되고 있는 LDAP - SSSD 연계방안을 테스트해보았습니다.

http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html#Group_Mapping


https://docs.hortonworks.com/HDPDocuments/Ambari-2.2.2.18/bk_ambari-security/content/setting_up_hadoop_group_mappping_for_ldap_ad.html



1. OpenLDAP

사용자가 늘어날 때 마다 매번 OS에 사용자를 만드는 작업은 부담이 될 수 있으며 portal, OS, HDFS등 여러 곳에 사용자 정보가 있을경우 관리Point가 늘어나기 때문에 LDAP으로 저장소를 통일합니다.



- 기본환경 설정

yum update;

yum upgrade;

/etc/init.d/iptables save;

/etc/init.d/iptables stop;

chkconfig iptables off;

yum install -y ntp;

chkconfig --level 3 ntpd on;

service ntpd start;

yum update –y openssl


- OpenLDAP설치

yum install openldap-servers

yum install openldap-clients



- OpenLDAP설정 및 실행

service slapd start 



- 환경변수 설정 OpenLDAP설정

LDAP 설정 참조 


- 사용자/그룹 추가

LDAP 설정 참조 



- Config 및 Entry 조회

ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config 

ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn
ldapsearch -x -D "cn=Manager,dc=company,dc=com " -w admin123 -b dc=company,dc=com


* OS와 연동을 위해서 posixGroup 생성을 추천



2. SSSD 설치 및 LDAP 연동

- 참고사이트


- NSS 설정 (/etc/nsswitch.conf)

passwd:     files sss

group:      files sss


- SSSD 설치 및 설정(/etc/sssd/sssd.conf)

 yum install sssd


[sssd]

services = nss, pam
sbus_timeout = 30
domains = LDAP
 
[nss]
filter_users = root
filter_groups = root
 
[domain/LDAP]
enumerate = true
cache_credentials = TRUE
 
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
 
ldap_uri = ldap://
ldap_user_search_base = dc=company,dc=com
tls_reqcert = demand
ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt


service sssd start




3. 실제 HDFS 환경 테스트

- UGI 생성 테스트 코드

 public class UGI {

        public static void main(String[] args){
                try {
                        String username = "john";
                        UserGroupInformation ugi
                                        = UserGroupInformation.createRemoteUser(username);
                        ugi.doAs(new PrivilegedExceptionAction<Void>() {
                                public Void run() throws Exception {
                                        Configuration conf = new Configuration();
                                        conf.set("fs.defaultFS""hdfs://host01:8020");
                                        conf.set("hadoop.job.ugi", username);
                                        FileSystem fs = FileSystem.get(conf);
                                        fs.createNewFile(new Path("/user/john/test"));
                                        FileStatus[] status = fs.listStatus(new Path("/user/john"));
                                        for(int i=0;i<status.length;i++){
                                                System.out.println(status[i].getPath());
                                        }
                                        return null;
                                }
                        });
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
}


- UGI 조회 테스트 코드

 public class UGIRead {

        public static void main(String[] args){
                try {
                        String username = "john";
                        UserGroupInformation ugi
                                        = UserGroupInformation.createRemoteUser(username);
                        ugi.doAs(new PrivilegedExceptionAction<Void>() {
                                public Void run() throws Exception {
                                        Configuration conf = new Configuration();
                                        conf.set("fs.defaultFS""hdfs://host01:8020");
                                        conf.set("hadoop.job.ugi", username);
                                        FileSystem fs = FileSystem.get(conf);
                                        InputStream stream = fs.open(new Path("/user/john/test"));
                    BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
                    System.out.println(reader.readLine());
                                        reader.close();
                    stream.close();
                    fs.close();
                                        return null;
                                }
                        });
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
}

 

- hadoop fs 명령어 테스트

hadoop fs -ls /user/john

hadoop fs -cat /user/john/test


4. 기타 참고사항
LDAP에 있는 사용자들이 실제 OS는 존재하지 않기 때문에 home 디렉토리가 없는 상태이기 때문에 자동으로 생성해줄수 있도록 패키지 설치 및 환경설정이 필요합니다.

yum install oddjob-mkhomedir oddjob

chkconfig oddjobd on
service oddjobd start
authconfig --enablemkhomedir --update



5. 결과내용
- 프로세스를 기동한 OS계정이 아닌 LDAP에 등록되어 있는 계정으로 HDFS 사용이 가능합니다.
 (Java API 및 hadoop fs 명령어 모두 사용가능)
- Hadoop의 namenode가 판단하기 때문에 sssd는 namenode에 설치되어야 합니다.
- 실제 작업이 수행될 때 YARN Queue에 사용자/그룹별로 queue name을 지정해서 수행해야 할텐데 이부분은 추가 테스트가 필요합니다.
- 사용자 인증에 대한 부분이나 기타 보안사항에 대해서는 추가 보완이 필요합니다.
- 단일 Hadoop Cluster에 대한 multi tenant내용이기 때문에 서로 다른 Hadoop Cluster 연계에 대한 부분은 아닙니다.


참고)

A. createRemoteUser

1. OS에 없는 계정으로 시도 : 오류발생

2. OS에 있는 계정으로 하면 성공  : createRemoteUser API의 인자를 user 로 인식함

 

B. ugi.doAs

- createRemoteUser와 Configuration의 hadoop.job.ugi 가 다를 경우 : 별도 오류는 발생하지 않음

 

- FileSystem.createNewFile 시도시 권한없으면 오류 발생 

 ex) jane 계정으로  /user/hdfs/test22파일생성 시도

  Permission denied: user=jane, access=EXECUTE, inode="/user/hdfs/test22":hdfs:hdfs:drwx------

 

- FileSystem.listStatus 시도시 권한 없으면 오류 발생

 ex) jane 계정으로 /user/hdfs 조회시도

  Permission denied: user=jane, access=READ_EXECUTE, inode="/user/hdfs":hdfs:hdfs:drwx------

 

- 적합한 계정으로 작업할 경우 모두 성공


'BigData' 카테고리의 다른 글

Hadoop Security for Multi tenant #3  (0) 2017.03.24
Hadoop Securiy for Multi tenant #2  (0) 2017.01.20
Flume-Kafka-Elasticsearch 테스트  (0) 2016.03.14
Storm특징 및 Spark와의 차이점  (0) 2014.12.12
CAP 정리  (0) 2014.11.28

1. Server Security

 - OS 보안기능

     자원권한 관리

     사용자 관리

     보안점검 및 로딩

     특별 권한 할당

 - OS 보안툴(분야별)

 - SSO

     Single Logon으로 모든 시스템 사용

 - EAM/IAM

     SSO와 연계하여 권한/인증 통합관리

 - LDAP

    

2. Network Security

 - ACL : 네트워크 Port 접근 제어

 - NAC : 네트워크 접근제어를 위한 인증

 - VPN : 분리된 네트워크망 연결

 - Firewall : 특정 대역 보호

 - IDS/IPS : 침입 탐지/방지

 - 발신통제 : 외부통신 통제

 

3. Application Security

 - Web Server 보안 : HTTPS/SSL, PKI, 웹 방화벽

 - WAS Server 보안 : 접근 통제 및 암호화, 노드인증

 

 

PKI, 공개키/개인키등등 상세한 내용은 추후 정리한다.

'Infra Architecture' 카테고리의 다른 글

Storage Platform  (0) 2016.06.28
Network Platform  (0) 2016.06.27
IT Platform History & 구성요소  (0) 2016.06.27

*Storage 연결방식

-DAS(Direct Access Storage)

-NAS(Network Access Storage)

-SAN(Storage Area Network)

 

 

*디스크시스템 고려요소

1. 용량 : 물리용량 <> 사용가능용량

 - RAID Level 1(50%이하) or 5(75%)

 - Hot spare - local

                 - global

  ex) 2400   local 5 + 1 = 6.....   400 개

                global 5%

                       2400 * 5% = 120

                       2280 / 5 = 456 개

 - HDD Type. 용량

 - 디스크 구성

 

 

2. 성능

 - HDD Type - RPM  - (Avg seek time/latency time)

                    IOPS

 - 컨트롤러 : 성능(CPU,RAM) , 갯수

 - 채널 : 갯수, 토폴로지

 - 캐쉬 : 용량

           

 

예제)

VDI : windows 7

최대응답시간 : 3초

IO Size : 8kb

총 데이터 크기 : 3MB     .. 3초로 나누면 초당 1M 전송속도 필요

 

HDD : IOPS - 20 !

8kb x 20 = 160kb        그렇다면 디스크 7개로 묶으면 1MB 달성할 수 있겠군!

 

그러나 실제로는 실패한다.

왜? 벤더가 제공한 IOPS는 MAX값이었다.

 

왠만하면 50%의 수치로만 신뢰하자 (권장은 30~40%)

 

 

3. 기능

 - 스토리지 가상화

 - 씬프로비저닝

 - 중복제거

 - 컨트롤러 부가기능

 

'Infra Architecture' 카테고리의 다른 글

Security Platform  (0) 2016.06.28
Network Platform  (0) 2016.06.27
IT Platform History & 구성요소  (0) 2016.06.27

* Network의 개념 Level 설명

- 사람간의 Network -> 연결, 소통, 관계

- 사람들이 서로 Networking을 한다 -> 상호작용 -> 대화

- OSI 7 Layer <- 개념 Level

 

 

 Web Browser

 

 

 

 HTTP

 

 

 

 -

 

 

 User

SSL(TLS) 

 

 

 Kernel

 TCP

<- Port 번호 (Application)

 

 IP

<- IPv4 주소 (Host)

 WAN

 H/W

 Ethernet

<- MAC 주소 (NIC) 

 LAN

-

 

 

Link, Connection, Session 등 연결이라는 추상개념에 다양한 구현이 있다.

각 계층에서의 주관심사는 모두 다르다.

역할자에 따라서도 TCP Port번호를 Application, Process ,Service, Socket의 식별자로 볼 수도 있다.

 

 

* 망구성

출발지에서 목적지를 찾아가는 행위를 Switch라고 볼 때 그 기준이 되는 값에 따라서 Switch분류를 할 수 있다. (L2, L3등.)

 

 

                                                                     Core는 2중화 ==> core에서 R거쳐서 ISP로

                                                                      [backbone개념]

                                                  라우터 : Gateway

                                  L2(VLAN지원) : Distribution

                      [up link]

        L2 : Access

 1          6

PC    Notebook

 

 

 

* 네트워크를 이용해서 각 Layer에서 목적지로 보내기 위한 작업을 수행한다. 각 Layer는 독립적

 

                    L4            L3          L2

Payload -> Segment -> Packet -> Frame

 

 

Frame은 각 구간에서 갈아타기 위해서 계속 바뀔 수 있으나 Packet은 변하지 않는다.

수신처에서 검사할때 Header만 보는 것은 방화벽, 내용을 보면 IPS 로 볼 수 있겠다.

 

 

 

 

- 수강한지 10년도 넘은 네트워크 이론을 다시 Review해보는 좋은 시간!

'Infra Architecture' 카테고리의 다른 글

Security Platform  (0) 2016.06.28
Storage Platform  (0) 2016.06.28
IT Platform History & 구성요소  (0) 2016.06.27

+ Recent posts