//구글콘솔 광고 추가가
728x90
반응형

유니티 6에서 프로젝트를 새로 만들려고 봤더니 뭔가 엄청 빠져있는 게 보인다.

 

가령 create 에서 script 추가가 Scripting을 클릭해서 MonoBehaviour Script로 만들 건지 Empty C# Script로 만들 건지를 선택해야 한다거나, 

버튼을 만들었는데 OnClick이 빠지고 clicked로 바꼈다거나...

여러모로 귀찮아졌다.

 

그래서 새로 알게 된 내용을 정리해 둔다. 또 찾아보고 싶지 않기 때문이지.

그냥 이전 걸 그대로 사용하는 게 더 편할 것 같아서 잠깐 UI Toolkit을 사용하지 말고 uGUI를 그대로 사용해 볼까도 했는데 나온 지도 꽤 됐길래 이쪽으로 쓰는 게 더 맞을 것 같다.

 

일단 

UXML 파일 생성

 

1. UXML 파일을 만들어야 한다.(UI Document)

- 프로젝트 창에서 

Assets > Create > UI Toolkit > UI Document를 선택해 UXML 파일을 생성한다.

2. UI Builder 열기.

- 생성한 UXML 파일을 더블 클릭하면 UI Builder가 열린다.

 

2. UI 구성 만들기 (UI Builder 사용)

 

1. UI Builder에서

- VisualElement를 루트로 두고,
Library에서 자신이 쓸,
- Label(Text 출력용),
- Button(추가할 버튼)
- 필요하다면 Image드래그해서 배치.

 

2. 각 요소에 이름 지정하기.

- Inspector에서 각 요소의 Name 필드를 입력한다. 

ex.

- Label의 Name : DialogueText

- Button의 Name : StartButton

 

사이즈나 위치값은 inspector에서 수정하면 된다.

 

3. UIDocument 컴포넌트 추가

 

1. 씬에 빈 GameObject 생성(ex. DialogueUI)

2. UIDocument 컴포넌트 추가.

3. UIDocument의 SourceAsset에 방금 만든 UXML파일 할당.

 

4. C# 코드에서 UI 컨트롤 제어 

 

1. UI 요소 찾기 및 이벤트 연결.

using UnityEngine;
using UnityEngine.UIElements;

public class DialogueUIController : MonoBehaviour
{
    public UIDocument uiDocument; // Inspector에서 연결

    void Start()
    {
        var root = uiDocument.rootVisualElement;

        // UXML에서 지정한 이름으로 요소 찾기
        Label dialogueText = root.Q<Label>("DialogueText");
        Button startButton = root.Q<Button>("StartButton");

        // 버튼 클릭 이벤트 등록
        startButton.clicked += () =>
        {
            dialogueText.text = "대화가 시작되었습니다!";
            // 여기에 Dialogue System 연동 코드 추가
        };
    }
}

 

2. GameObject에 스크립트 추가

위에 있는 스크립트를 UIDocument가 붙은 GameObject에 추가하고, Inspector에서 uiDocument 필드에 UIDocument 컴포넌트 연결.

 

 

728x90
반응형
728x90
반응형
IP의 핵심 기능, 주소지정!
- 주소 지정은 IP 주소로 이루어짐.
- IP 주소의 구조 : 네트워크 주소와 호스트 주소로 구성.

>> 네트워크 주소(== 네트워크 ID, 네트워크 식별자(network identifier))
: 네트워크를 표현하는 부분, 호스트가 속한 특정 네트워크를 식별.
>> 호스트 주소(== 호스트 ID, 호스트 식별자(host identifier))
: 호스트를 표현하는 부분, 특정 호스트를 식별. 

ex. 네트워크 주소가 16비트, 호스트 주소가 16비트인 IP주소 172.16.12.45 (10101100.00010000.00001100.00101101
- 여기서 네트워크 주소는 172.16 / 호스트 주소는 12.45

**
- IP 주소는 총 32비트로 구성. But, 언제나 반반은 아님. 그때그때마다 달라.
>> 네트워크 주소가 하나의 옥텟으로 이루어질 경우, 한 네트워크당 호스트 주소 할당에 24비트를 사용할 수 있음.(상대적으로 많은 호스트에 IP 주소를 할당.)
        .        .        .        
>> 네트워크 주소가 세개의 옥텟으로 이루어질 경우, 한 네트워크당 호스트 주소 할당에 8비트를 사용할 수 있음.(상대적으로 적은 호스트에 IP 주소를 할당.)
        .        .        .        
- 무조건 호스트 주소 공간을 크게 할당하면, 호스트가 할당되지 않은 다수의 IP 주소가 낭비됨.
- 무조건 호스트 주소 공간을 작게 할당하면, 호스트가 사용할 IP 주소가 부족함.
>> 이런 고민을 해결하기 위해 생겨난 개념이 IP주소의 클래스(class)!!

 
 
 

클래스풀 주소 체계
클래스(class)
- 네트워크 크기에 따라 IP 주소를 분류하는 기준.
- 클래스풀 주소 체계(classful addressing) : 클래스를 기반으로 IP주소를 관리하는 주소 체계.
- 필요한 호스트 IP 개수에 따라 클래스를 달리 선택 - 네트워크 크기 조정 가능.
총 5개의 클래스가 존재함. (IP주소지정에 사용되는 실질적인 클래스는 3개 - A,B,C 클래스! )
A 클래스 0       .        .        .         많은 호스트 할당이 필요하다면 A 클래스.
B 클래스 10      .        .        .         중간
C 클래스 110     .        .        .         많은 호스트 할당이 필요 없다면 C클래스.
D 클래스, E클래스는 각각 멀티캐스트를 위한 클래스로, 특수한 목적을 위해 예약된 클래스. 
< A클래스 > 
- B와 C 클래스에 비해 할당 가능한 호스트 주소의 수가 많음.
- 네트워크 주소는 비트 '0'으로 시작하는 1옥텟, 호스트 주소는 3옥텟으로 구성.
- 이론상 2의 7승(128)개의 A 클래스 네트워크 존재 가능.
- 각 네트워크에 2의 24승(16,777,216)개의 호스트 주소 할당 가능. 
- A 클래스로 나타낼 수 있는 IP 주소 범위
  >> 최솟값을 10진수로 표현하면 0.0.0.0
  >> 최댓값을 10진수로 표현하면 127.255.255.255
- 가장 처음 옥텟의 주소가 0~127일 경우 A 클래스 주소임을 짐작할 수 있음.

< B클래스 >
- 네트워크 주소는 비트 '10'으로 시작하는 2옥텟, 호스트 주소도 2옥텟으로 구성.
- 이론상 2의 14승(16,384)개의 B클래스 네트워크 존재 가능.
- 각 네트워크에 2의 16승(65,534)개의 호스트 주소 할당 가능. 
- B클래스로 나타낼 수 있는 IP 주소 범위
  >> 최솟값을 10진수로 표현하면 128.0.0.0
  >> 최댓값을 10진수로 표현하면 191.255.255.255
- 가장 처음 옥텟의 주소가 128 ~ 191 일 경우 B 클래스 주소임을 짐작할 수 있음. 

< C클래스 >
- 네트워크 주소는 비트 '110'으로 시작하는 3옥텟, 호스트 주소도 1옥텟으로 구성.
- 이론상 2의 21승(2,097,152)개의 C클래스 네트워크 존재 가능.
- 각 네트워크에 2의 8승(256)개의 호스트 주소 할당 가능. 
- C클래스로 나타낼 수 있는 IP 주소 범위
  >> 최솟값을 10진수로 표현하면 192.0.0.0
  >> 최댓값을 10진수로 표현하면 223.255.255.255
- 가장 처음 옥텟의 주소가 192 ~ 223 일 경우 C 클래스 주소임을 짐작할 수 있음. 

 
 
 

호스트의 주소 공간을 모두 사용할 수 있는 것은 아님!!

 

< 대표적인 두가지 >
- 호스트 주소가 전부 0인 IP 주소
 >> 해당 네트워크 자체를 의미하는 네트워크 주소로 사용.
- 호스트 주소가 전부 1인 IP 주소
 >> 브로드캐스트 주소로 사용. 

그래서, 위의 두가지의 경우의 수를 빼야 진짜 할당 가능한 호스트 수가 됨.
>> 할당 가능한 호스트 수 -2 = 진짜 할당 가능한 호스트 수.

 

클래스별 할당 가능한 주소의 개수 정리
클래스초기 비트네트워크 주소 비트/
호스트 주소 비트
할당 가능한 네트워크 수할당 가능한 호스트 수
A08 / 242의 7승(128)2의 24승(16,777,216) - 2
= 16,777,214
B1016 / 162의 14승(16,384)2의 16승(65,536) - 2
= 65,534
C11024 / 82의 21승(2,097,152)2의 8승(256) - 2 
= 254

 

728x90
반응형
728x90
반응형
IP 주소로 MAC 주소 알아내기 : ARP

 

 

ARP(Address Resolution Protocol)
: 매우 매우 중요한 프로토콜!!
< ARP >
- IP 주소를 통해 MAC 주소를 알아내는 프로토콜.
  >> 동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC 주소를 알아낼 수 있음.
- ARP 동작 (동작 과정을 이해하는 게 중요!)
1. ARP 요청.
2. ARP 응답.
3. ARP 테이블 갱신.

ex.
상황 ) 
동일한 네트워크에 속한 호스트 A,B. / 호스트 A는 호스트 B의 IP주소는 알지만 MAC주소는 모름. / 이 상황에서 호스트 B의 MAC 주소를 알아내는 과정.

1. ARP 요청 메시지를 보냄. (ARP Request)
- 호스트 A : 브로드캐스트 메시지 전송.
- 이 브로트케스트 메시지 = ARP 요청이라는 ARP 패킷. (ex. 나 땡땡이랑 통신하고 싶은데 주소가 뭐예요!! 하고 소리 지르는 것과 같음.)

2. ARP 응답(ARP Reply)
- 호스트 B : 자신의 MAC 주소를 담은 유니캐스트 메시지를 A에게 전송. / 호스트 B외에 나머지 호스트는 자신의 IP주소가 아니므로 무시.
- 이 유니캐스트 메시지 = ARP 응답 이라는 ARP 패킷. (ex. 접니다! 제 MAC 주소는 뭐뭐뭐예요!)
 >> 이 메시지를 수신한 A와 B는 MAC 주소를 알게 됨. 
ARP 패킷이란?
- ARP 요청, ARP 응답 과정에서는 송수신되는 패킷.
  >> 오퍼레이션 코드(Opcode; Operation Code) - ARP 요청의 경우 1, ARP 응답의 경우 2.
  >> 송신지 하드웨어 주소(Sender Hardware Address) 수신지 하드웨어 주소(Target Hardware Address)에는 MAC주소가 명시됨. 
  >> 송신지 프로토콜 주소(Sender Protocol Address)와 수신지 프로토콜 주소(Target Protocol Address)에는 IP 주소가 명시됨.
3. ARP 테이블 갱신( 테이블에 IP 주소와 맵핑된 MAC 주소를 기록해 둠)
- ARP 테이블(ARP Table) : ARP 요청 - 응답을 통해 알게 된 IP 주소와 MAC 주소의 연관 관계.
  >> ARP 테이블 항목은 일정 시간이 지나면 삭제, 임의 삭제도 가능.
  >> ARP 테이블에 등록된 호스트에 대해선 ARP 요청을 보낼 필요 없음. 

통신하고자 하는 호스트 A와 B가 서로 다른 네트워크에 속해 있을 경우, ARP는 네트워크 별로 수행됨.
728x90
반응형
728x90
반응형

평화롭던 봄날을 느끼며, 평소와 다름없이 밤 산책을 하고 있던 어제였다.

나의 하루 루틴 중 하나인 밤 산책은 아파트 단지 3개를 지나 아름답게 조성되어 있는 하천가 산책로에서 이루어지는데,

사건은 두 번째 아파트 단지에서 벌어졌다. 

 

분명 가는 길에 개똥을 발견했다.

개똥이 3개나 있었는데 제일 큰 건 진짜 커서 특히나 누군가 밟겠구나 싶었다. (말한 놈이 걸리는 건 불변의 법칙인가.)

분명 나는 개똥을 인지하고 피했다.

분명 돌아오는 길에도 개똥을 피해야 된다는 것을 잊지 않았다.

분명 그랬는데...

유독 어두웠던 시간 대였던 게 문제였을 까.

가장 큰 걸 밟는 순간, 아 개똥.

찰나에 잊었던 아까 그 큰 개똥이 내 발밑에 있다는 것을 깨달았다.

 

그래. 살다 보면 개똥도 밟고 그러는 거지.

운동화가 왜 두꺼운가. 

그럴 수도 있지 하는 마음으로 동네 놀이터 가서 사정없이 발을 쓸었다.

질질 끌고 있을 때쯤. 아무래도 나무 가지 하나를 주워 이 딱 붙어 있는 왕건이를 제거해야겠다는 생각이 들었다.

단단히도 밟혔는지 떨어트리는데도 손가락에 힘이 들어갔다. 

그래. 생각해 보니 이러고 있는 것도 오랜만이구나 생각하며 마저 개똥을 제거했다.

 

집으로 돌아오는 길 내내 발을 질질 끌며 아주 작은 개똥도 내 운동화 밑창에 남아있을 수 없게 최선을 다했다.

물론 결과는 아주 만족할 정도로 밟기 전으로 돌아간 상태였다.

이때까지만 해도 해프닝이었다.

 

그리고 오늘, 마찬가지로 오늘도 나의 루틴을 지키기 위하여 준비를 하고 밤산책을 출발했다.

오늘따라 유독 특별한 길을 걸어보고 싶다는 생각에 산책로가 아닌 산책로 옆 풀 숲을 걸어 다녔다.

이게 문제였던 걸까.

만보를 채우고 집으로 돌아오는 길. 이때까지만 해도 난 전혀 인지하지 못했다. 

아주 작은 느낌. 정말 아주 작게 발밑에 약간 두꺼운 게 있는 느낌적인 기분이 있긴 했었는데.

그게 똥이었던 거지.

 

아무렇지 않게 오늘도 잘 갔다 왔다는 마음으로

아무렇지 않게 집문을 열고 그저 전실에서 신발을 벗기 위해 허리를 숙였을 뿐이었는데.

나는 또 똥을 목격했다. 

내 운동화에 완전 밀착한 그 똥을.

학 씨. 진짜.

어제보다 더 질은 그 똥은, 진짜 대형견의 똥이 아니면 사람 똥인가 의심이 들정도로 많이 컸다.

왜냐면 내 운동화 양옆으로 튀어나와 붙어있었거든... 솔잎들과 함께.

 

왜, 이런 일이 나한테 생기는 것인가.

조용히 다시 뒤를 돌아 문을 열고 엘리베이터를 탔다.

그리고 집 뒤에 있는 놀이터로 향했다. 

어제보다 질었던 그 똥은 발을 끈다고 떨어지지 않더라.

나뭇가지 하나를 주워 시소에 앉아 찰흙 떼는 기분으로 똥을 떨어트렸다.

 

이게 연속으로 밟을 수도 있는 건가 싶다가 

내가 밟은 거니 누굴 탓할 수도 없었다가도

어떤 견주 놈이 이 똥을 안 치우고 튀튀를 한 건지 

분노를 느꼈다가도 이 상황이 어이가 없어 진정됐다.

도대체 어디서 밟은 건지 느껴지지도 못한 게 날 더 어이없게 만들었다.

운동화 밑창을 이렇게 끌어본 것도 일생에 없었던 것 같다.

 

 

내일 로또 사야지.

 

 

 

견주 가만안둬.

728x90
반응형
728x90
반응형
물리 계층과 데이터 링크 계층만으로는 LAN을 넘어서 통신하기 어렵다.
** 어려운 이유 2가지.
1. 다른 네트워크까지의 도달 경로를 파악하기 어려움.
2. 모든 네트워크에 속한 모든 호스트의 위치를 특정하기 어려움.

자세히 ) 

1. 물리 계층과 데이터 링크 계층만으로는 다른 네트워크까지의 도달 경로를 파악하기 어려움.
 - 라우팅(routing) : 패킷이 이동할 최적의 경로를 결정하는 것.
 - 라우터(router) : 라우팅을 수행하는 대표적인 장비. 
** 네트워크 계층이 있어야 네트워크 간의 라우팅이 가능하다!

2. MAC 주소만으로는 모든 네트워크에 속한 모든 호스트의 위치를 특정하기 어려움.
 - MAC 주소와 IP 주소는 함께 사용되고, 기본적으로 IP 주소를 우선 활용.

IP 주소 MAC 주소
택배의 수신지 택배의 수신인 역할 
논리 주소 물리 주소
- 유동적으로 할당.
- 자동으로 할당받거나 사용자가 직접 할당.
- NIC 마다 할당되는 고정된 주소.

 

 

네트워크 계층의 핵심, 인터넷 프로토콜(IP)
인터넷 프로토콜(IP)
: 물리 계층 & 데이터 링크 계층의 한계를 극복하는 프로토콜
< IP의 공식적인 2가지 기능 >
1. 주소 지정 (IP addressing).
2. 단편화에 사용 (IP fragmentation).

** RFC 문서에서 확인 가능
RFC(Request for Comments) 문서
- 네트워크/ 인터넷 관련 신기술 제안, 의견 등을 남긴 문서.
- 일부 RFC는 오늘날까지 사용되는 인터넷 표준이 됨.
  >> 이러한 RFC문서에는 번호가 부여됨(ex. RFC 791)
  >> "세상에서 가장 정확한 네트워크 이론 지식"
  >> 새 RFC 문서로 개정 출판이 될지 언정, 폐지되거나 수정되지 않음.  

자세히 >>

1. 주소 지정
- IP 주소(IPv4 주소)를 바탕으로 송수신 대상을 지정하는 것을 의미.
- 4바이트(32비트)로 하나의 주소를 표현.
- 숫자당 8비트로 표현 : 0 ~255 범위 안에 있는 4개의 10진수로 표기.
- 각 숫자는 점(.)으로 구분
  >> 점으로 구분된 8비트(0~255 범위의 10진수)를 옥텟(octet)이라 함. 
ex. 192.168.1.1 

2. 단편화
- 전송하고자 하는 패킷의 크기를 MTU 이하의 복수의 패킷으로 나누는 것.
  >> MTU(Maximum Transmission Unit)
     - 한 번에 전송 가능한 IP패킷의 최대 크기.
     - IP 패킷의 헤더도 MTU 크기에 포함.
     - 일반적인 MTU 크기는 1500바이트, MTU 크기 이하로 나누어진 패킷은 수신지에 도착하면 다시 재조합.

 

< IPv4 패킷의 핵심 필드 7가지 >
단편화에 주로 관여하는 필드


1. 식별자
(identifier)
- 패킷에 할당된 번호.
- 쪼개져서 도착한 IPv4 패킷들이 어떤 메시지에서 쪼개졌는지를 알기 위해 사용. 
2. 플래그
(flag)
- 세개의 비트로 구성. (미사용, DF, MF)
- 첫 번째 비트는 항상 0 : 현재 사용되지 않음.
- DF 비트(Don't Fragment) - IP 단편화를 수행하지 말라는 표시.
  >> 1이라면 : IP 단편화 수행하지 말라.
  >> 0이라면 : IP 단편화 가능하다.
- MF 비트(More Fragment) - 단편화된 패킷이 더 있는지를 나타냄.
  >> 1이라면 : 쪼개진 패킷이 아직 더 있다.
  >> 0이라면 : 이 패킷이 마지막 패킷이다. 
3. 단편화 오프셋
(fragment offset)
- 초기 데이터에서 몇 번째로 떨어진 패킷인지를 나타냄.
  >> 단편화되어 전송되는 패킷들은 수신지에 순서대로 도착하지 않을 수 있음.
  >> 수신지가 패킷들을 순서대로 재조합하려면 단편화된 패킷이 초기 데이터에서 몇 번째에 해당하는 패킷인지 알아야 함. 

ex.
단편화 오프셋 0 : 제일 첫번째 데이터
단편화 오프셋 1480 : 첫 데이터로부터 1480만큼 떨어진 패킷.
라우팅에서
중요하게 사용
4. TTL
(Time To Live)
- 패킷의 수명.
- 무의미한 패킷이 네트워크상에 지속적으로 남아있는 것을 방지하기 위해 존재.
- 패킷이 하나의 라우터를 거칠 때마다 TTL이 1씩 감소, TTL값이 0으로 떨어진 패킷은 폐기.
- 홉(hop) : 패킷이 호스트 또는 라우터에 한번 전달되는 것.
  >> 즉, TTL 필드의 값은 홉마다 1씩 감소. 
  5. 프로토콜 - 상위 계층의 프로토콜이 무엇인지를 나타내는 필드.
- ex. 전송 계층의 대표적인 프로토콜인 TCP는 6번, UDP는 17번.
주소지정에
관여하는 필드

6. 송신지 IP 주소 - 이름 그대로 송수신지의 IPv4 주소. 
7. 수신지 IP 주소

 

 

IPv6
: IP주소 부족문제를 해결하기 위해 나온 프로토콜. 
IPv6
-  IPv6은 16바이트(128비트)로 주소를 표현할 수 있고, 콜론(:)으로 구분된 8개의 그룹의 16진수로 표기.
- 이론적으로 할당 가능한 Ipv6 주소는 2의 128승으로 사실상 무한에 가까운 수 할당 가능.
IPv6 패킷의 핵심 필드
1. 다음 헤더
(next header)
- 상위 계층의 프로토콜 또는 확장 헤더를 가리키는 필드.
- 확장헤더 란?
  >> IPv6는 기본 헤더와 더불어 확장 헤더(extension header)라는 추가 헤더를 가질 수 있음.
  >> 확장 헤더는 기본 헤더와 페이로드 데이터 사이에 위치.
  >> 마치 꼬리에 꼬리를 물듯 또 다른 확장 헤더를 가질 수 있음. 

< 대표적인 확장 헤더 종류 >
- 홉 간 옵션(Hop-by-Hop Options) : 송신지에서 수신지에 이르는 모든 경로의 네트워크 장비가 이 패킷을 검사하도록 하는 옵션. 
- 수신지 옵션(Destination Options) : 수신지에서만 해당 패킷을 검사하도록 하는 확장 헤더.  
- 라우팅(Routing) : 라우팅과 관련한 정보들이 저장되는 확장 헤더. 
- 단편(Fragment) : IPv6의 단편화와 연관되어 있는 확장 헤더.
- ESP(Encapsulating Security Payload), AH(Authentication Header) : 암호화와 인증과 관련된 확장 헤더. 
... 
2. 홉 제한
(hop limit)
- IPv4 패킷의 TTL 필드와 비슷.
- 패킷의 수명을 나타내는 필드.
3. 송신지 IP 주소
(source address)
- IPv6 주소를 통한 송수신지 지정.
4. 수신지 IP 주소
(destination address)

 

IPv6의 단편화
- IPv6는 단편화 확장 헤더를 통해 단편화가 이루어짐.
- 단편화 확장 헤더에도 다음 헤더 필드가 있음.
  >> 예약됨(reserved)과 예약(res) 필드는 0으로 설정되어 사용되지 않음.
  >> 단편화 오프셋(fragment offset)과 M 플래그(M flag), 식별자(Identification) 필드.
단편화 오프셋 - 전체 메시지에서 현재 단편화된 패킷의 위치(IPv4의 단편화 오프셋 필드와 유사)
M 플래그 - 1일 경우 더 많은 단편화된 패킷이 있음을 의미,
- 0일 경우 마지막 패킷(IPv4의 MF 플래그 필드와 유사)
식별자 - 동일한 메시지에서부터 단편화된 패킷임을 식별(IPv4의 식별자 필드)

IPv6

 

 

 

 

 

참고 RFC 공식 문서 링크

https://datatracker.ietf.org/

 

IETF Datatracker

Datatracker The IETF Datatracker is the day-to-day front-end to the IETF database for people who work on IETF standards. It contains data about the documents, working groups, meetings, agendas, minutes, presentations, and more, of the IETF. The primary pub

datatracker.ietf.org

 

728x90
반응형
728x90
반응형

2024년 7월부터 읽은 책 내용 간단하게 기록하기.

제목 글쓴이 / 옮긴이(번역)
쓸만한 인간 박정민
배우 박정민을 알고 있다. 그래서 나름 재미가 있었던 내용. 
내가 한 말을 내가 오해하지 않기로 함 문상훈
이 글을 쓴 사람이 단순히 가벼운 사람은 아니란 걸 알게 된 내용.
어느 평범한 사람의 일기 조지 그로스미스 / 이창호
제목 그대로 어떤이의 일기를 훔쳐보는 듯한 기분. 꽤 오래전에 도서관에서 아무생각 없이 읽었던 책인데 눈에 다시 보이길래 다시 읽어보았다.
누군가의 일상을 조심스럽게 훔쳐보는 기분이 드는 내용.
햄릿 윌리엄 세익스피어 / 최종철
뻔히 보이는 죽음 앞에서 상황을 피할 수 있음에도 불구하고 피하지 않고 받아들이는 햄릿의 모습을 보았다. 나였어도 과연 저런 선택을 했을까 고민하게 만들면서 빠져들어 읽게되었다. 작가의 다른 작품들까지 궁금하게 만들었던 내용.
셰익스피어의 책 스탠리 웰스 / 이시은, 박유진, 최윤희
셰익스피어의 다양한 작품들을 한번에 만날 수 있는 책.
등장인물들과 시간 순서 대로 작품이 설명되어 있기에 이해하기 쉽고 빠르게 집중할 수 있는 내용이 담겨있다. 셰익스피어의 작품들을 해설해둔 책이라 생각하면 딱 맞다.
단테의 신곡 지옥편 단테 알리기에로 / 김용선 
처음엔 무슨 소리인지 눈에 안들어오다가 중간쯤 부터는 어느새 빠져들어 읽게 된 책. 처음 읽을 때는 아무래도 남들의 생각이 들어있지 않은 내용을 읽고 싶어 해설집이 아닌 걸로 선택했었는데 역시나 잘 한 선택이었다. 다양한 죄들에서 겪게 되는 영혼들의 모습이나 형벌들은 아주 흥미롭게 다가왔다. 가족여행으로 다녀왔던 이탈리아 단테의 생가를 이 책을 읽고 난 후에 갔다 왔다면 그때의 감정이 달라졌었을 것 같았다. 
동물 농장 조지 오웰
권력을 잡는 모든 생명체들은 왜 항상 탐욕적이며 타락적인가.
과연 내가 그 계층에 있을 때도 다른 선택을 할 수 있을까를 생각해 본다.  
마테오 팔코네 프로스페르 메리메
-ing
노르웨이의 숲 무라카미 하루키
죽을 사람들은 죽었고, 주인공은 여전히 아이다. 
처음부터 끝까지 의문으로 읽었다. 어린 주인공의 나이 때문이었을지, 한없이 가벼운 관계들에 대해 쓸데없이 나열된게 거슬렸는지, 그것도 아니라면 청춘에 대해 다룬 하루키의 방식이 문제였는지는 모르겠지만, 꽤 많은 사람들이 좋아하는 작가에 대해 의문만 남는 감정이 남았다. 이게 진짜 재밌다고? 적어도 필독서란 표현은 아니지 않는가. 
 한밤이여, 안녕  진 리스
 슬픔, 소외, 반복적인 의심. 절망, 죽음, 차별, 동정심. 다양한 감정들이 스며들어 있어서 천천히 읽어볼 수 있는 책이다. 지긋 지긋하게도 돈이 나오고, 잊을만 하면 방은 말을 걸어온다. 보다보면 페르노의 맛이 궁금해진다.
이반 일리치의 죽음, 광인의 수기 레프 톨스토이
 
자살 에두아르 르베
누군가의 죽음이 누군가의 삶에 의해 쓰였고, 누군가의 삶이 누군가의 죽음에 의해 쓰였고, 그리고 나는 이것을 읽었다. 
처음엔 "태어나는 것은 나에게 일어난 일이고, 사는 것은 나를 차지하는 일이고, 죽는 것은 나를 끝내는 일이다."라는 문구를 보고 읽고 싶다는 마음이 들어서 구매하였다. 하지만 이 저자가 이 책을 마지막으로 제목대로 자살을 했다는 사실을 알고서는 이 책의 끝을 읽는 다는 것이 그를 정말 세상에서 지우는 일이 아니게 될까 싶었다.
또한 이 책에서 나와 너무도 닮은 그의 생각들이 담긴 내용들은 빠르게 읽히는 것 보다 여러 번 곱씹으며 문장들을 다시 읽어보게 만들었다. 이제 그가 선택한 결말을 읽어봤으니 내가 선택하며 만들 결말을 더 신중하게 생각해 봐야 겠다.
 소년이 온다  한강
 대개 모두가 아는 그 날들의 이야기가 담겨있다. 책을 다 읽고 한참을 침을 삼켰다. 모두가 안다 해서 무거운 마음이 옅어지는 것은 아니다. 누군가에게는 아직도 여전히 그 어두움에서 살고 있을지 모른다. 나는 과연 그때 그 순간 그곳에 있었다면, 무언가라도 행동할 용기가 있었을 까.
 채식주의자  한강
 뭐지 이게. 동박새의 죽음을 읽고 난 후 그대로 덮었다. 이책에는 채식주의자 외에, 몽고반점과 나무 불꽃의 내용도 담겨있었지만 채식주의자를 끝으로 그만 읽기로 했다. 10년후에 다시 읽어보자.
고도를 기다리며 사뮈엘 베케트 / 오증자 
 
나르치스와 골드문트 헤르만 헤세 / 임홍베
 
   
 
   
 
   
 
   
 

 
 


 
우리 가족은 책을 읽는 것을 좋아한다. 그렇기 때문에 가끔 시간이 나는 주말이나 쉬는 날에 도서관이나 교보문고를 간다.
나는 시집이나 고전을 좋아하지만, 나의 혈육은 에세이를 좋아한다.
어쨌든 서로가 읽는 책의 장르가 다르기 때문에 읽고 난 후에 서로 대화를 주고받을 수가 없다. 참 아쉬운 일이다. 그럼에도 공통된 취미로 인해 책들이 가득한 곳을 찾아가게 되는 것 같다. 장르가 다른 게 무슨 상관인가. 공통된 주가 있다는 게 참 소중한 것 같다.
 
아주 가끔 혈육이 추천해 준 에세이들을 읽어볼 때가 있는데 여전히 이 책이 주는 매력을 나는 잘 모르겠다.
느껴질 수 도 있겠지만 맨 위 두 책은 추천받은 책이었다.

728x90
반응형
728x90
반응형
스위치
허브의 충돌 문제
- CSMA/CD로 어느 정도 완화할 수 있었지만... 보다 근본적인 해결 방법이 있다.
- 전달받은 신호를 수신지 호스트가 연결된 포트로만 내보내고, 전이중 모드로 통신하면 된다!

** 이를 위한 장비가 바로 스위치(switch - (2 계층에서 사용한다 하여)L2 스위치를 지칭한다 생각해.) 
- 허브와는 달리 특정 MAC 주소를 가진 호스트에만 프레임 전달 가능.
- 전이중 모드 통신 지원
 >> CSMA/ CD 프로토콜이 필요하지 않음.

 

스위치의 주요 기능
1. 스위치의 MAC 주소 학습 기능.
 >> 전달 받은 신호를 원하는 포트로만 내보냄.
 >> 포트별로 콜리전 도메인이 나누어지기에 충돌 위험이 감소.

자세히 )
1. 스위치의 MAC 주소 학습 기능(MAC address learning)
- 특정 포트와 해당 포트에 연결된 호스트의 MAC 주소와의 관계를 기억.
- 원하는 호스트에만 프레임을 전달.
- MAC주소 테이블(MAC address table)
 >> 스위치 포트와 연결된 호스트의 MAC 주소 간의 연관 관계를 나타내는 정보.
- MAC 주소 학습 : 프레임 내 "송신지 MAC 주소" 필드를 바탕으로 이루어짐. 
MAC 주소테이블을 어떻게 생성하고 관리할까? 3개의 용어를 학습해 보자.
플러딩 허브처럼 모든 포트로 프레임 전송. 
- 호스트 A가 호스트 C에게 프레임을 전송하면,
포워딩과 필터링 - 스위치는 호스트 B, D가 연결된 포트로는 내보내지 않도록 필터링(filtering)을 하고,
- 호스트 C가 연결된 포트로 프레임을 포워딩(forwarding)함
에이징 - 만약 MAC 주소 테이블에 등록된 포트에서 일정 시간 동안 프레임을 받지 못하면 해당 항목은 삭제.
- 일정 시간 동안 "송신지 MAC 주소"가 ab:cd:ac:cd:00:01인 프레임을 1번 포트에서 못 받으면 이 항목은 삭제. 
참고 ) 브리지
- 브리지(bridge)는 데이터 링크 계층의 스위치와 유사한 장비
 >> 네트워크 영역을 구획하여 콜리전 도메인을 나누거나 네트워크를 확장.
 >> 브리지는 앞서 설명한 스위치의 기능들도 제공. (MAC 주소를 학습, 포워딩, 필터링) 
- 다만 단일 장비로서의 브리지는 스위치에 비해 사용 빈도가 줄어드는 추세.
- 일반적으로 스위치의 기능이 더 다양하고 성능도 우수하기 때문. 
But, 브리지라는 용어는 여기저기서 사용됨.
- 개념으로서의 브리지는 자주 사용된다! 그렇기 때문에 개념으로서는 알아둬.
2. 스위치의 VLAN 기능.
 >> 논리적으로 LAN을 분리하는 가상의 LAN, VLAN 구성 가능.

자세히 ) 
2. 스위치의 VLAN 기능.
- VLAN(Virtual LAN) - 한 대의 스위치로 가상의 LAN을 만드는 방법.
 >> 불필요한 트래픽(허브, 스위치의 플러딩)으로 인한 성능 저하 방지. 
* VLAN의 주요 의의
- "한대의 물리적 스위치라 해도", "마치 여러 대의 스위치가 있는 듯이", "호스트의 물리적 위치와 관계없이" 만드는 가상의 LAN.  
- VLAN은 사실상 다른 LAN : 서로 다른 네트워크로 간주, 브로드캐스트 도메인 달라짐.

** VLAN의 종류 2가지.
1. 포트 기반 VLAN(port based VLAN) - 정적 VLAN
 - 스위치의 포트가 VLAN을 결정하는 방식.
 - 특정 포트에 VLAN을 할당한 뒤, 해당 포트에 호스트를 연결하여 VLAN에 참여.
  >> 호스트 A와 B는 VLAN2를 할당한 포트에 연결되어 있으므로 같은 LAN에 속한 셈.
  >> 호스트 C는 VLAN3에 속해 있으므로 호스트 A, B와는 다른 LAN에 속한 셈. 

2. MAC 기반 VLAN(MAC based VLAN) - 동적 VLAN
- 사전에 설정된 MAC 주소에 따라 VLAN이 결정.
- 송수신하는 프레임 속 MAC 주소가 호스트가 속할 VLAN을 결정하는 방식. 

 

728x90
반응형
728x90
반응형
물리 계층과 데이터 링크 계층의 장비에 대해 알아보자.
네트워크 장비
물리 계층의 대표 장비 : 허브.(오늘날 네트워크에서 거의 사용 X, but  통신 특성이 스위치와 대비되는 특성을 갖고 있기 때문에 알아둬야 함.)

데이터 링크의 대표 장비 : 스위치.(오늘날 주로 사용하는 네트워크 장비)

 

주소개념이 있다 없다로 특징이 나뉨.

** 물리 계층에는 주소 개념이 없다!

>> 단지 호스트와 통신 매체 간의 연결과 통신 매체상의 송수신이 이루어질 뿐.

>> 물리 계층 장비는 송수신되는 정보에 대한 어떠한 조작(송수신 내용 변경)이나 판단도 할 수 없음. 

 

** 데이터링크 계층에는 주소 개념이 있다!!

>> MAC 주소.

>> 데이터 링크 계층 이상 장비들은 송수신지 특정 할수 있음(특정 가능), 송수신 정보에 대한 조작 가능!

 

허브
: 물리 계층의 허브(hub)
- 여러 대의 호스트를 연결하는 장치.
- 리피터 허브(repeater hub) 혹은 이더넷 허브(Ethernet hub). 
- 포트(port) : 커넥터를 연결할 수 있는 연결 지점.
< 허브의 특징 >
1. 받은 정보는 모든 포트로 내보냄.
- 정보에 대한 어떠한 조작도 판단도 하지 않음(물리 계층 장비니까)
- 전달받은 신호를 다른 모든 포트로 그대로 다시 내보냄
  >> 데이터 링크 계층에서 패킷의 MAC주소를 확인하고 자신과 관련 없는 주소는 폐기. 
*불필요한 트래픽이 너무 많아진다는 문제점이 있음.

2. 반이중 통신을 한다. (한 번에 하나씩의 메시지만 주고받을 수 있음. 동시에 메시지 전해지면 충돌!)
- 반이중 통신(half duplex) 모드 : 마치 1차선 도로처럼 송수신을 번갈아 가면서 하는 통신 방식. (ex. 무전기)
- 전이중 통신(full duplex) 모드 : 송수신을 동시에 양방향으로 할 수 있는 통신 방식. (ex. 전화기)

참고 ) 또 다른 물리 계층 장비, 리피터(repeater)
- 허브 이외에 물리 계층의 대표적인 장비.
- 전기 신호가 감소하거나 왜곡되는 것을 방지하기 위해 전기 신호를 증폭시켜 주는 장비.
- 리피터는 물리 계층의 장비이므로 신호에 대한 어떠한 판단이나 조작을 하지 않음.
 >> 그저 신호를 증폭시키기만 함. 주소 개념 없음.
- 허브는 리피터의 기능을 포함하는 경우가 많음.

허브의 특징이 야기하는 문제, 충돌(collision)!!
- 동시에 허브에 신호를 송신하면 충돌(collision, 콜리전)이 발생.
- 허브에 호스트가 많이 연결되어 있을수록 충동 발생 가능성이 높음.

* 충돌이 발생할 수 있는 영역 : 콜리전 도메인(collision domain)
- 허브에 연결된 모든 호스트는 같은 콜리전 도메인에 속함.
- 당연히 충돌을 피해야 한다 -> 콜리전 도메인은 작아야 한다!
콜리전 도메인으로 인한 충돌의 해결 방법.
1. CSMA/CD 프로토콜 사용. 
or
2. 다른 장비(스위치) 사용.
CSMA/CD
- 반이중 이더넷 네트워크에서 충돌을 방지하는 대표적인 프로토콜.
 >> (반이중) 이더넷을 대표하는 송수신 방법. 

 

CSMA / CD
: Carrier Sense Multiple Access with Collision Detection
Carrier Sense
1) 캐리어 감지
- 통신 매체의 현재 사용 가능 여부 검사 : 메시지를 보내기 전 현재 전송 중인 것이 있는지를 먼저 확인. 

Multiple Access
2) 다중 접근
- 복수의 호스트가 부득이 동시에 네트워크에 접근할 때 : 충돌 발생. 

Collision Detection
3) 충돌 검출
- 전송 중단, 충돌 발생을 알리는 잼 신호(jam signal) 보냄.
- 임의의 시간 동안 기다린 뒤에 재전송하게 됨. 
728x90
반응형

+ Recent posts