본문 바로가기

728x90

Study

(63)
7.4 IPv4 - (1) 인터넷에서 네트워크층 프로토콜은 여러 버전이 개발되었지만 현재는 IPv4와 IPv6 2개의 버전만 사용되고 있다. 1. IPv4 주소 지정 IPv4 주소는 32비트 주소로 라우터나 호스트의 인터넷 연결을 범용적이고 유일하게 만들어 준다. IPv4 주소는 각 인터넷으로의 연결을 하나씩 유일하게 정의한다. 만약 하나의 장치가 두 네트워크를 통해 인터넷으로 2개의 연결을 가지고 있는 경우, 2개의 IPv4주소를 가지게 된다. - 주소 공간 주소 공간(address space)은 프로토콜에서 사용 가능한 전체 주소의 수 이다. 만약 프로토콜이 주소를 정의하기 위해 b비트를 사용한다면 주소공간은 2^b가 된다. IPv4는 32비트의 주소를 사용하므로 주소 공간은 2^32 혹은 4,294,967,296(약 40억개..
7.3 Performance 네트워크의 성능은 지연(delay), 처리량(throughput), 패킷 손실률(packet loss)로 측정 가능하다. 1. 지연 패킷이 발신지에서 목적지까지 전송될 때 필욘적으로 지연(delay)이 발생한다. 네트워크상의 지연은 전송 지연, 전파 지연, 처리 지연, 그리고 대기 지연 이라는 네 가지 형태로 분류된다. 전송 지연 발신지 호스트나 라우터는 패킷을 즉시 보낼 수 없다. 송신기는 선로 상에 패킷의 비트를 하나씩 차례로 보낼 필요가 있다. 만약 패킷의 첫 번째 비트가 시간 t1에 선로 상에 놓이고, 마지막 비트가 시간 t2에 놓아졌다면, 패킷의 전송 지연은 (t2 - t1)이 된다. 따라서 패킷의 길이가 길수록 전송 지연은 길어지고, 또한 송신기가 빨리 전송한다면 전송 지연은 짧아진다. Del..
7.2 Packet Switching 라우터는 마치 전기 스위치가 입력단의 전기를 출력단으로 연결하는 것과 같이, 입력 포트와 출력 포트 사이의 연결을 만드는 교환기 이다. 네트워크층에서 사용되는 데이터는 패킷이기 떄문에 니트워크 층에서는 단지 패킷 교환만 사용된다. 오늘날 패킷 교환망에서 패킷의 경로를 찾기 위해 데이터그램 방식(datagram approach)과 가상회선방식(virtual-circuit approach)을 사용한다. 1. 데이터그램 방식: 비연결형 서비스 인터넷이 처음 만들어질 때, 간소화를 위해 네트워크층 프로토콜은 모든 패킷을 독립적으로 처리하도록 하였다. 즉, 각 패킷은 어떤 다른 패킷과도 아무 관계를 가지지 않는 비연결형 서비스를 제공하도록 설계되었다. 네트워크층의 기본 개념은 발신지에서 목적지로 패킷을 전달하는 ..
7.1 Services 인터넷은 "nuts and bolts"와 같다. nuts and bolts란? 어떤 시스템이나 기계의 핵심적인 부품이나 기본적인 원리를 나타내며 보통 복잡한 것을 간단한 구성 요소로 분해하거나, 어떤 일을 수행하는데 필수적인 핵심적인 부분들을 말할 때 사용된다. 우리가 수백만개의 ISP에게 access를 줄 때 우리는 이것드을 어떻게 연결을 할 수 있을까? 먼저, 무식하게 전부 다 연결하는 방법이 있다. 하지만 이 방법은 비용이 많이 들어간다. 또 다른 방법으로는 중간에 또다른 ISP를 두어 중간에서 중계를 하는 방법이 있다. 이것은 경제적인 관점에서 아주 좋은 방법이다. 하지만 이 방법을 사용할 시 무수히 많은 중간 ISP업자들이 등장하여 경쟁을 하게 될 것이다. 그리고 또한 다른 ISP끼리 연결할 수..
넘파이(Numpy) - 비교 연산과 데이터 추출 1. 비교 연산 연산 결과는 항상 불린형(boolean type)을 가진 배열로 추출 - 브로드캐스팅 비교 연산 하나의 스칼라 값과 벡터 간의 비교 연산은 벡터 내 전체 요소에 적용 In import numpy as np x = np.array([4, 3, 2, 6, 8, 5]) x > 3 Out array([ True, False, False, True, True, True]) - 요소별 비교 연산 두 개의 배열 간 배열 구조(shape)가 동일한 경우 같은 위치에 있는 요소들끼리 비교 연산 [1 > 2, 3 > 1, 0 > 7]과 같이 연산이 실시된 후 이를 반환 In x = np.array([1, 3, 0]) y = np.array([2, 1, 7]) x > y Out array([False, Tr..
넘파이(Numpy) - 배열 연산 1. 연산 함수 연산 함수: 배열 내부 연산을 지원하는 함수 축: 배열의 랭크가 증가할 떄 마다 새로운 축이 추가되어 차원 증가 - sum 함수: 각 요소의 합을 반환 In import numpy as np test_array = np.arange(1, 11) test_array.sum() Out 55 - sum함수를 랭크가 2이상인 배열에 적용할 떄 축으로 연산의 방향을 설정 In test_array = np.arange(1,13).reshape(3,4) test_array Out array([[ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12]]) In test_array.sum(axis=0) Out array([15, 18, 21, 24]) In test_array.s..
넘파이(Numpy) - 배열 객체 다루기 넘파이란? 파이썬의 고성능 과학 계산용 라이브러리 벡터나 행렬 같은 선형대수의 표현법을 코드로 처리 사실상의 표준 라이브러리 다차원 리스트나 크기가 큰 데이터 처리에 유리 넘파이의 특징 속도가 빠르고 메모리 사용이 효율적 반복문을 사용하지 않음 다양한 선형대수 관련 함수 제공 C, C++, 포트란 등 다른 언어와 통합 사용 가능 넘파이 배열 객체 np.array함수를 사용하여 배열 생성 import numpy as np test_array = np.array([1, 4, 5, 8], float) 매개변수 1: 배열 정보 매개변수 2: 넘파이 배열로 표현하려는 데이터 타입 파이썬 리스트와 넘파이 배열의 차이점 텐서 구조에 따라 배열 생성 동적 타이핑 지원 안함 데이터를 메모리에 연속적으로 나열 배열의 생성..
TCP/IP Protocol Suite / OSI Model TCP/IP 프로토콜그룹은 5개의 계층으로 정의되어 있다. 각 계층을 간단히 살펴보자면 Physical: 전송 매체 Data link: 가족 안에서의 통신 연결 Network: 각각의 집들을 연결하여 목적지 까지 데이터 전달 Transport: 정보가 정확한지 신뢰성을 검증 Application: 사용자 계층적 구조 3개의 LAN(링크)로 이루어진 작은 인터넷 안의 그룹을 사용하고 하나의 라우터에 연결되어 있다고 가정하자. 컴퓨터 A가 컴퓨터 B와 통신한다고 가정할 때 5개의 장비 (발신지 호스트, 링크1 스위치, 라우터, 링크2 스위치, 목적지 호스트)로 구성되어 있고 양 호스트는 5개의 계층(물리층, 데이터링크층, 네트워크층, 전송층, 응용층)과 관련되어 있다. 라우터는 3개의 계층(물리층, 데이터링..

728x90